Suricata는 OISF에서 개발한 NIDS/IPS로, 2010년에 발표한 이후 빠르게 성장한 오픈소스 프로젝트이다.
​Suricata는 오랫동안 사용된 IDS인 Snort의 단일 스레드 방식에서 벗어나, 대용량 트래픽을 실시간으로 처리 할 수 있도록 멀티 코어/멀티 스레드를 지원하며, 기존의 Snort룰을 완벽하게 호환하기 때문에 Snort 사용에 익숙하다면 Suricata를 사용하는데 무리가 없을 것이다.

Suricata : https://suricata-ids.org

 

 

 

1. Suricata 설치
  - 필요 라이브러리 설치

$ sudo apt-get install libpcre3 libpcre3-dev libyaml-dev libpcap-dev libmagic-dev zlib1g-dev pkg-config

 

  - Suricata 다운로드 (https://suricata-ids.org/download)

$ wget https://www.openinfosecfoundation.org/download/suricata-3.2.1.tar.gz


  - Suricata 설치

    $ tar xvf suricata-3.2.1.tar.gz
    $ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
    $ make && make install && ldconfig
    $ make install-full
    $ suricata --build-info


다음과 같이 Suricata에서는 다양한 기능들을 지원한다. 혹여나 필요한 라이브러리가 있다면 필요에 맞게 Configure 설정을 하여 컴파일을 하도록 한다.

 

 

 

  - Suricata 실행

$ suricata -c /etc/suricata/suricata.yaml -i Ethernet_ID 


 

 

2. Suricata 설정 및 로그

  - Suricata 설정 경로 (/etc/suricata)

$ vi /etc/suricata/suricata.yaml 


 

 

- Suricata 로그 경로 (/var/log/suricata)

 

 

 

3. Suricata를 이용한 파일 추출
Suricata에서는 파일 시그니쳐 및 파일 확장자명을 이용한 파일 추출 기능을 제공한다.
  - Suricata를 이용한 네트워크 통신 파일 추출 룰 경로 (/etc/suricata/rules/files.rule)

 

 

 

  - Suricata 설정 수정

      = 추출할 파일의 룰 설정 파일 명시

$ vi /etc/suricata/suricata.yaml


 

 

      = 추출할 파일 저장 기능 및 로그 활성화

 

 

 

      = 추출할 파일의 stream 크기를 무제한 설정

 

 

 

  - NIC offloading 설정 변경

$ ethtool -k Ethernet_ID
$ ethtool -K eth0 tx off
$ ethtool -K eth0 rxvlan off
$ ethtool -K eth0 txvlan off


 

 

  - 추출된 파일 로그 확인 (/var/log/suricata/files-json.log)

 

 

 

  - 추출된 파일 저장 경로(/var/log/suricata/files)
      = file.ID ​형식으로 저장되며 메타 정보는 file.ID.meta를 통하여 파일에 대한 메타 정보를 확인할 수 있다.

 

 


 

테스트 환경 : Ubuntu 16.04

+ Recent posts