kkamagi's story

IT, 정보보안, 포렌식, 일상 공유

Cyber Security

snort & suricata - opensource ids/ips

까마기 2020. 2. 16. 15:56
728x90
반응형
1. snort 개요
  • sourcefire사에서 만든 NIDS

  • 실시간 traffic 분석&packet logging용으로 적합

  • 수많은 개발자들에 의한 rule 제공

    • 물론 상용 rule는 구하기 어려움(돈주고 사야 함)

  • 다양한 OS를 지원

  • open source(GPL license)

 

Snort - Network Intrusion Detection & Prevention System

With over 5 million downloads and over 600,000 registered users, it is the most widely deployed intrusion prevention system in the world.

snort.org

 

2. snort를 사용해야 하는 이유
  • 새로 만든다 하더라도 snort 만큼 performance를 낼 수 있는 software는 만들기 어려움(시간이 많이 걸림)

  • snort에 적용된 수많은 최적화 algorithm을 배워서 구현한다는 것은 현실적으로 적합하지 않음

  • aho-corasick algorithmn
 

Aho–Corasick algorithm - Wikipedia

In computer science, the Aho–Corasick algorithm is a string-searching algorithm invented by Alfred V. Aho and Margaret J. Corasick.[1] It is a kind of dictionary-matching algorithm that locates elements of a finite set of strings (the "dictionary") withi

en.wikipedia.org

http://www.prism.gatech.edu/~jgirata3/boyermoore/

* boyer-moore algorithm
-------------------------------------------------------------------------------------------------------------------------------
1. suricata 개요
  • multi-core, multi-threading 지원

  • 기존 snort rule과 완벽 호환

  • gpu 하드웨어 가속 지원

  • lua와 같은 script language와 interface 가능

2. snort vs suricata

 

3. suricata install

3)

 

# add-apt-repository ppa:oisf/suricata-stable
# sudo apt-get update
# sudo apt-get install suricata
 
4) suricata install(Pre-installation requirements)

sudo apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \

build-essential autoconf automake libtool libpcap-dev libnet1-dev \

libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 \

make libmagic-dev

 

5) suricata install(HTP)

 

wget http://www.openinfosecfoundation.org/download/libhtp-0.2.3.tar.gz

tar -xzvf libhtp-0.2.3.tar.gz

cd libhtp-0.2.3

./configure

make

make install

 

6) suricata install(IPS)

sudo apt-get -y install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

 

7) suricata install(suricata)

wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz

tar -xvzf suricata-1.4.4.tar.gz

cd suricata-1.4.4

 

8) suricata install(Compile and install the engine)

./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var

 

9) suricata install(Auto setup)

./configure

make

make install-conf

make install-rules

make install-full

 

4. 설치 확인

- 명령어 확인

# suricata

 

 

5. 설정

 

  • /etc/suricata.yaml 파일을 수정한다

rule-files:을 찾아서 전부 주석(#)처리를 하고 " - test.rules " 내용을  추가한다.

 

  • /etc/suricata/rules/test.rules 파일에 다음과 같은 내용으로 저장한다.

alert tcp any any -> any 80 (msg:"test rule"; content:"GET /"; content:"Host: www.gilgil.net"; sid:10001; rev:1;)

alert tcp any any -> any 80 (msg:"test rule"; content:"GET /"; content:"Host: www.naver.com"; sid:10002; rev:1;)

 

 

6. 동작 확인(로그)

/var/log/suricata/fast.log 파일 확인

  • /src/alert-fastlog.c 파일의 AlertFastLogIPv4 함수 하단의 fprintf 문에 테스트 코드를 추가하여 컴파일한다

  • 수정된 컴파일 모듈이 제대로 실행이 되는지 확인한다

 

반응형