2019년 3월 10일 일요일

간만에 Snort(multi source one db)

Snort로 2개 이상의 네트워크를 모니터링하는 방법은 간단하다. 프로세스 2개 띄우면 됨. 2개의 네트워크에서 발생한 탐지로그는 각각 다른 alert.log에 기록된다.


그런데 해당 로그의 DB 연동은 좀 까다롭다. Snort 탐지로그를 DB에 집어넣을 때는 모니터링 네크워크에 대한 고유 ID인 s(ensor)id를 부여해야 한다. 네트워크가 둘 이상이면 sid도 둘 이상이라는 얘기.

현재 Snort 탐지로그의 DB 연동은 Barnyard2를 통해서만 가능. Barnyard2는 기본 설정 상태에서 연동 로그의 네트워크 출처에 대해 하나의 sid를 부여한다. 결과적으로 Snort 프로세스 2개를 띄워도 마지막에 실행된 프로세스 하나만 연동됨.


둘 이상의 sid를 부여하려면 네트워크별로 설정 파일을 따로 잡아줘야 한다. barnyard2.conf를 barnyard2-ext.conf와 barnyard2-int.conf로 분리한 후, 네트워크를 지정해줬다.

barnyard2-ext.conf

barnyard2-int.conf

참고로 Barnyard2 설정은 그저 sid를 구분하는 용도. Snort가 실제 모니터링하는 네트워크와 헷갈리지 않게끔만 지정해주면 된다. 설정 완료 후 외부 네트워크 감시를 위한 Snort 및 Barnyard2 실행.



다음은 내부 네트워크 감시를 위한 Snort 및 Barnyard2 실행. Snort 실행 시 '-l /var/log/snort2' 옵션으로 로그 경로를 바꿨음에 주의. 같은 로그에 기록하면 마지막에 실행된 Barnyard2가 읽어들이는 로그만 기록된다.



내외부를 감시하는 Snort가 각각 다른 경로에 떨군 탐지로그를 서로 다른 Barnyard2가 각각 읽어들여 하나의 DB에 임포트. 번잡하다, 번잡해(..)


관련 글

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스