본문 바로가기
IT/정보보안

Snort 설치, 옵션 및 daq에 대한 설명

by 미니송 2019. 6. 4.

Snort와 daq(data acquisition library)

Snort는 Sniffer 이상의 일을 한다는 뜻에서 유래되었습니다. 오픈 소스 기반의 IDS, IPS프로그램으로 보시면 됩니다. 1998년 Martin Roesch에 의해 시작되어 Sourcefire팀에서 개발하였습니다. 시그니처, 프로토콜, anomaly(이상 탐지) 기반 조사의 장점을 결합하여 만들었으며 현재 가장 널리 사용되고 있는 IDS, IPS 기술입니다. 특히나 Sourcefire는 2013년에 CISCO사에 인수되었습니다.


오픈소스이기 때문에 무료로 사용할 수 있으며 설치하여 사용하면 됩니다. 패키지로 설치하여서 사용하여도 되고 소스코드를 다운받아서 사용해도 됩니다. 패키지 설치는 간단하게 apt-get이나 yum으로 실행할 수 있습니다.


#Apt-get install snort

#Yum install snort

등으로 패키지 설치하여 사용하면 됩니다.



Snort 구조


패킷 스니퍼, 선처리기(Preprocessors), 탐지엔진(Detection Engine), 출력(outputs)로 구성되어 있습니다. 패킷스니퍼는 패킷을 캡처하는 역할을 하며 선처리기(Preprocessors)는 원본 패킷을 받아들여 특정 플러그인으로 전송합니다. 또한 플러그인은 패킷에서 특정 행위가 검색되면 탐지엔진으로 전송하게 됩니다. 탐지엔진(Detection Engine)은 전처리기와 플러그인에서 전송된 데이터를 받아 여러규칙을 비교하며 일치하는 규칙이 있으면 그 패킷은 경고 처리기로 전송됩니다. 출력(Outputs)은 탐지엔진의 규칙과 일치한다면 경고를 발생시키고 경고는 로그파일, 네트워크연결, UNIX소켓, SNMP트랩, DB등으로 전달됩니다.



DAQ(Data Acquision Library)

DAQ는 libpcap에 대한 직접호추을 대체하며 snort의 변경없이 HW, SW의 다양한 인터페이스에 대해 추상계층으로 동작합니다. 

Snort 설치 후 #Snort --daq-list 명령어를 통해서 daq에 대해 확인할 수 있습니다. Pcap이 default DAQ로 되어 있으며 sfpacket은 memory mapped pcap DAQ와 유사하나 외부 라이브러리가 필요 없습니다. 또한 dump는 다양한 인라인 모드의 특징을 테스트할 수 있습니다.




Snort 실행 옵션

-u <uname> : <uname> 권한으로 snort 실행

-g <gname> : <gname> 그룹권한으로 snort 실행

--daq-dir <dir> : DAQ라이브러리가 있는 경로 설정

-M : alert 하지 않고 syslog로 메시지 로깅

-Q : Inline 모드 활성화

-G : Log 식별자 (snort가 여러 개 실행중인 경우)

-I <interface> : 패킷을 수집할 인터페이스 지정

--daq <type> : 패킷 수집 모듈 선택 (기본은 pcap)

--pid-path <dir> : snort PID 저장 경로

--cs-dir <dir> : control socket 저장 경로

-c <rules> : rule 파일 설정 (snort 환경 설정 파일)

-Z <file> : preprocessor 성능 모니터링 파일

-I <log dir> : 로그 저장 경로 설정

--no-interface-pidfile : snort PID 파일에 인터페이스 이름을 포함하지 않도록 함.

-P <snap> : 패킷의 snap 길이 (기본은 1514)



2017/07/29 - [IT/정보보안] - 정보보안 - IDS, IPS, Snort에 대해서

2017/08/14 - [IT] - 정규표현식, Regular Expression의 기본



댓글