2023년 5월 21일 일요일

Snort unified2 problem

Snort는 크게 두 가지 방식의 탐지로그 출력을 지원한다. A 옵션을 이용한 경고와 패킷 로그 분리,
[root@Centos7 ~]# snort --help

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.5.3
           Using PCRE version: 8.32 2012-11-30
           Using ZLIB version: 1.2.7

USAGE: snort [-options] <filter options>
Options:
        -A         Set alert mode: fast, full, console, test or none  (alert file alerts only)

또는 unified2 설정을 이용한 경고와 패킷 로그 통합. 


이때 unified2를 설정해도 Snort 실행 시 A 옵션을 사용하면 unified2 설정은 동작하지 않는다. 명령어가 우선하기 때문. 결과적으로 A 옵션 사용 여부에 따라 출력 방식 변경이 가능하다.

그런데 최근 테스트 과정에서 A 옵션을 사용하지 않았음에도 unified2 설정이 동작하지 않고, A 옵션 모드로만 동작하는 문제 발생. 실행 프로세스를 확인해보면 분명 A 옵션이 없는데 왜?
[root@Centos7 ~]# ps -ef | grep snort
root      3065  1216  1 20:19 pts/1    00:00:00 snort -i eth0 -c /etc/snort/snort.conf
root      3076  1195  0 20:19 pts/0    00:00:00 grep --color=auto snort

구글 뒤져보면 비슷한 문제를 호소하는 글들이 좀 있는데 뚜렷한 해결책은 보이지 않는다. 최초 사용했던 설치 파일은 snort-2.9.9.0-1.centos7.x86_64.rpm.  과정은 대략

① 최초 설치 후 unified2 정상 동작 확인 처음부터 되질 말던가
② virtualbox 스냅샷 기능으로 centos 초기화 후 재설치
③ 재설치 후 A 옵션을 사용하지 않아도 unified2 동작 실패
④ 이후 버전(2.9.9 이상)과 설치 방법(rpm, tarball)을 이리저리 바꿔봐도 계속 ③상태
⑤ snort-2.9.20-1.centos.x86_64.rpm 설치 후 정상 동작 확인

이렇게 끝났으면 다행인데

강의 때 또 같은 문제 발생. 설치 후 A 옵션 실행 과정을 먼저 보여주고, 이후 unified2 출력 결과를 보여주려고 하는데 동작하지 않는다. 

다행히 스냅샷 초기화 후 재설치하면 문제는 사라짐. 설치 후 A 옵션을 먼저 실행하면 문제가 발생하나 싶어 다시 테스트해봤는데 재현은 안 된다.
  
① 최초 설치 후 A 옵션 실행: 정상
② 이후 A 옵션 없이 실행: unified2 정상 동작
③ 스냅샷 초기화 후 재설치
④ 설치 후 A 옵션 없이 실행: unified2 정상 동작
⑤ A 옵션 실행도 정상

결국 원인 불명(..) 참고로 최종 설치 파일 버전은 daq-2.0.7과 호환되지 않는다. 의존성 에러 발생.
[root@Centos7 ~]# rpm -ivh https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
Retrieving https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
error: Failed dependencies:
        libsfbpf.so.0()(64bit) is needed by snort-1:2.9.20-1.x86_64

관련 패키지 설치를 시도하면 daq-2.0.6이 설치된다.
[root@Centos7 ~]# yum install libsfbpf*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.elice.io
 * epel: ftp.riken.jp
 * extras: mirror.elice.io
 * updates: mirror.elice.io
Resolving Dependencies
--> Running transaction check
---> Package daq.x86_64 0:2.0.6-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================
 Package                   Arch                         Version                              Repository                  Size
==============================================================================================================================
Installing:
 daq                       x86_64                       2.0.6-1.el7                          epel                        82 k

Transaction Summary
==============================================================================================================================
Install  1 Package

Total download size: 82 k
Installed size: 207 k
Is this ok [y/d/N]: y
Downloading packages:
daq-2.0.6-1.el7.x86_64.rpm                                                                             |  82 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : daq-2.0.6-1.el7.x86_64                                                                                     1/1
  Verifying  : daq-2.0.6-1.el7.x86_64                                                                                     1/1

Installed:
  daq.x86_64 0:2.0.6-1.el7

Complete!

이후 설치 성공.
[root@Centos7 ~]# rpm -ivh https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
Retrieving https://snort.org/downloads/snort/snort-2.9.20-1.centos.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:snort-1:2.9.20-1                ################################# [100%]

아직 안 끝났다. libdnet 라이브러리 문제도 발생. 다행히 같은 문제를 겪은 이가 이미 구글에 존재한 덕에 해결.
[root@Centos7 ~]# snort -V
snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory
[root@Centos7 ~]# ln -s /usr/lib64/libdnet.so.1.0.1 /usr/lib64/libdnet.1
[root@Centos7 ~]# snort -V

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.5.3
           Using PCRE version: 8.32 2012-11-30
           Using ZLIB version: 1.2.7

23.09.06
unified2 문제 해결 안 되는 모양.

댓글 없음:

댓글 쓰기

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