[3강] Snort를 이용한 이상징후 분석
SNORT란? | 리눅스 환경에서 동작하는 프로그램( IDS의 대표적인 오픈소스 ) 대표적인 오픈소스 IDS로 네트워크를 통한 침투를 탐지/방어 하는데 사용 네트워크 상에서 실시간으로 흐르는 트래픽을 분석하여 패킷 로깅(로그 생성)을 수행하는 시스템 |
기능 | 1. 패킷 스니퍼 - 패킷 냄새를 맡는 탐지기, 패킷을 감시하는 기능 2. 패킷 로거 - 패킷의 로그를 기록하는 기능 3. IDS 기능 - 네트워크 트래픽을 이용한 침입을 탐지하는 기능 4. Snort Inline(IPS) 기능 - 네트워크 망은 Inline과 Mirroring이라는 방식 존재 - Inline은 한 회선안에 직접 장비가 들어가서 해당 회선에 영향을 주는 것을 의미 - Mirroring은 패킷이 흐르는 것을 복사하는 것으로 해당 회선에 영향을 주지 않는다. - Snort는 Mirroring 방식을 통해 IDS를, Inline방식을 탐지되는 트래픽에 따라 해당 트래픽을 차단하는 기능도 수행 |
SNORT 설치 | snort 설치가 힘든 편이다. 그래서 T-academy의 snort 가상서버에 이미지를 사용하거나 설치 스크립트 ppt 참고하여 해야한다. |
snort 구성 |
snort에 룰을 적용해 놓으면 barnyard2 끼고 mysql에 적용을 시킨다. |
1. PUTTY 실행
리눅스 서버를 접속하여 로그인 한다
* 종료 명령어
shutdown -h now
네트워크가 연결이 안될 때 => ping 명령어 실행
* ping : 해당 도메인에 ip를 확인할 때 많이 사용
ping [ip or 도메인]
2. SNORT 설치 후 확인
강의에서는 snort가 이미 설치된 image를 제공해주었음. 이 쉘 파일로도 설치 가능!
3. SNORT내 폴더 확인
중요한 파일은 barnyard2.conf, sid-msg.map, snort.conf 파일 등이 있다.
여기서 rules 폴더를 열어보면, community.rules, local.rules가 있다.
우리는 local을 사용할 것이다.
snort가 떨구는 log파일은 아래의 이미지를 참고하면 된다.
4. local.rule 파일 확인
vim으로 확인 및 수정 가능하고, 아래와 같은 링크를 통해 vim 명령어를 공부하면 편하다.
vi/vim 명령어 모음
vi 편집기 종료 마치기 명령 :q : 그대로 종료하기(quit) :q! : 변경된 내용을 저장하지 않고 강제로 종료하기 :wq : 변경된 내용을 저장하고 종료하기(write and quit) :x : :wq와 동일한 명령 ZZ : :wq와 동일.
5. 필요한 파일 실행시키기
(1) banyard2 실행
banyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f alert.log -w /var/log/snort/barnyard2.waldo
해당 명령어의 의미는 barnyard를 실행할 때 해당 conf파일을 이용해 실행할 것이고, -d 옵션으로 읽어올 파일의 경로를 설정하고, -f로 실제 읽어올 파일 이름을 설정하고, -w로 읽은 내용을 waldo라는 폴더에 저장시키겠다는 의미이다.
위와 같은 화면이 뜨면 성공한 것이다. 지금 snort 읽기를 대기하고 있는 상태라는 것이다.
6. putty 창을 하나 더 띄워서 snort 실행시키기
snort 실행 명령어
snort -c /etc/snort/snort.conf -i enp0s3
-i 옵션은 실행할 RAM카드를 설정하는 부분인데 ipconfig
로 확인한 내용을 이용하면 된다.
해당 명령어 입력시 아래와 같은 창이 뜬다. 내부포트를 사용할 것이므로 enp0s3을 이용한 것이다.
위와 같이 Commencing packet processing
이 떠있으면 snort가 성공적으로 실행되었다는 의미이다.
7. ping명령어 실행 후 log가 수집되는 것 확인하기
아래와 같이 ping 명령어를 치면 지속적으로 로그를 수집한다.
ping [ip 주소] -t
위에 Snort Alert이라고 뜨는 자리에 사실은 적용한 rule이 들어가야한다.
이러한 오류는 아래 sid-msg.map을 확인해야한다.
8. sid-msg.map 파일 확인
sid-msg.map파일은 snort rule의 지도라고 이해하면 된다.
vim을 이용해 rule 번호 100만번을 매치해준다
그러면 이렇게 icmp-test라는 rule이름으로 운영되고 있는 것을 확인할 수 있다.
Snort Rule
Snort가 가장 많은 사용자를 가진 오픈소스이다.
그 원인 중 하나가 위와 같은 rule구조이다.
아까와 같이 읽어보면 대충 무슨 내용인지 알 수 있어서, 간편해서 많이 사용하는 것이다.
즉 직관적이다. rule 만들기도 쉽다.
* payload 검사 옵션
snort의 payload 검사 옵션에는 msg, content, offset, depth, nocase, sid, flow, rev가 있다.
content가 있는데 uricontent가 또 있는 이유는 아무래도 웹 해킹이 많다보니, 웹만 위주로 하기 위해서 있는 것이다.
즉, 웹 해킹의 경우에는 uricontent만 선택적으로 검사하면 된다는 것이다.
pcre는 정규표현식을 지원한다.
payload 검사 옵션이 제일 중요하다.
대표적으로는 위에 3가지가 있고, 그래서 그런지 정보보안기사에도 출제되는 항목이라고 한다.
기타 룰로는 아래와 같이 확인할 수 있다.
추가적으로 강의에서는 sql 관리 툴로 sqlyog로 snort도 연결하는데 아래와 같이 확인할 수 있다.
이는 sql에 대한 공부를 하면 되는데 이는 거의 복습이여서 걍 설명 없이 강의내용만 공유한다.
참고
'개발 > 보안' 카테고리의 다른 글
[개인정보보호 포털] (신)개인정보보호법 이해하기 (2강) (1) | 2020.12.29 |
---|---|
[개인정보보호 포털] (신)개인정보보호법 이해하기 (1강) (9) | 2020.12.29 |
[T academy]데이터 분석 관점에서의 네트워크 보안 (엘라스틱 서치) (0) | 2020.12.29 |
[T academy]데이터 분석 관점에서의 네트워크 보안 (네트워크 보안 개념) (0) | 2020.12.28 |
[개인정보보호 포털] 일반인 개인정보보호 온라인 교육 (1) | 2020.12.28 |