2023. 12. 9. 22:06ㆍNetwork
Suricata란?
Snort를 대체하기 위해 2010년 미국 국토안보부가 비영리 단체인 OISF를 설립하여 만든 프로그램이다. Suricata는 크게 아래의 역할을 수행한다.
- IDS (Intrusion Detection System : 침입 탐지 시스템)
- IPS (Intrusion Prevention System : 침입 방지 시스템)
- NSM (Network Security Monitoring)
⇒ 패킷 스니핑, 패킷 로깅, 침입 탐지 기능을 갖고있음.
Snort가 갖고있던 대부분의 기능을 갖고있고 Snort의 기능외에 추가된 기능으로는 아래와 같다.
- Protocol Identification
- 포트번호를 지정 안하고 Protocol의 Name으로 Rule 지정가능
- HTTP Normalizer & Parser
- 7계층 (응용프로그램 계층)의 프로토콜 인식 가능
- File Identification
- 네트워크 패킷에서 전송되는 파일을 탐지
Suricata에서 요구되는 종속성 설치
수리카타를 컴파일하기 위해 필요한 종속성 설치 (시간 조금 걸림)
apt-get install rustc cargo make 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 libjansson-dev libjansson4 pkg-config
수리카카는 기본적으로 IDS로 동작함
IPS 기능을 포함하려면 아래 패키지도 설치
apt-get install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0
그리고 python3-pip 패키지 설치, suricata rule 업데이트 위한 suricata-update 설치
apt-get install python3-pip
pip3 install --upgrade suricata-update
ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update
Suricata 설치
wget으로 suricata 6.0.3버전 다운로드 후, 압출 풀기
wget https://www.openinfosecfoundation.org/download/suricata-6.0.3.tar.gz
tar -xvzf suricata-6.0.3.tar.gz
압축을푼 디렉터리로 들어가 configure입력
cd suricata-6.0.3
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make로 컴파일 후
make install로 suricata 설치
make
make install-full
모든 rule 파일 설치
make install-rules
수리카타 룰 경로 : /var/lib/suricata/rules/suricata.rules
Suricata 대상 ip설정
vi /etc/suricata/suricata.yaml
HOME_NET에 탐지 대상 ip를 입력해준다(설치중인 vm의 ip)
suricata 테스트
테스트전 suricata가 수신하는 네트워크 인터페이스에서 패킷 오프로드 기능을 비활성화해야함
ethtool 패키지를 설치하고, 패킷 오프로드 비활성화 시킴
apt-get install ethtool
ethtool -K eth0 gro off lro off
룰 파일 기본경로 /var/lib/suricata/rules/ 로 이동 후 , test.rules 파일 작성
cd /var/lib/suricata/rules
vi test.rules
룰이 잘 적용됐는지 테스트를 위해 ICMP 패킷발생시 alert하는 룰을 작성
alert icmp any any -> $HOME_NET any (msg:"ICMP 연결 시도"; sid:1000002; rev:1;)
/etc/suricata 경로로 가서 suricata.yaml파일 수정
rule-files에 teest.rules 를 추가
Suricata 실행
* IDS 모드 :
suricata -c /etc/suricata/suricata.yaml -i eth0
마지막 구문을 보아
4개의 패킷 처리 스레드와 4개의 관리 스레드가 모두 초기화되었고, 엔진이 시작되었다"는 의미로
네트워크나 시스템 관리를 위한 스레드가 성공적으로 설정되고 시동이 걸렸음을 알려주는 것
ctrl + C로 종료시
2481개의 패킷을 탐지했다는 구문이 나오는것을 보아
즉, 수리카타가 정상적으로 작동됨을 알 수 있음
* IDS 탐지되는 로그 실시간 확인 :
tail -f /var/lig/suricata/fast.log
로그파일에 로그 찍히는것도 확인 가능
* 기본 로그
Xerosploit - DOS 공격 탐지 테스트
공격자 ip : 192.168.35.66 (xerosploit 설치 -> DOS 공격 진행 )
피해자 ip : 192.168.35.70 (수리카타 + Wireshark 설치 )
우선 공격자 PC에서 피해자 PC에 Ping 전송시 잘 전달됨을 확인
수리카타가 설치된 피해자PC에서
DOS공격을 탐지하기 위한 TCP 패킷 탐지룰 추가
alert any any -> $HOME_NET any (msg:"DOS 공격"; sameip; sid:1000056;)
잘 탐지되는지 확인 위해 공격자pc에서 DOS공격 진행
우선, Xerosploit 실행
피해자 ip에 dos 공격 실행
피해자 PC의 wireshark에서 패킷 확인시,
많은 양의 DOS공격들이 TCP패킷으로 날라옴을 확인
수리카타 로그에서도 실시간으로
많은 양의 TCP 로그가 올라옴 (DOS 공격 패킷들)
성공적으로 Suricata에서 DOS 공격을 탐지하였다!
근데 자세히 보니 DOS패킷의 길이가 54로 일정한것을 보아
룰에 길이:54로 추가하여 탐지하면 더 정확히 탐지할것같다.
지금은 TCP 패킷 전체를 탐지하기 떄문이다.
//////////////////////////////////////////////////////// 수리카타 설치 시행착오들 ////////////////////////////////////////////////////////////
< HTTP 관련 라이브러리 설치 >
sudo wget https://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
< 네트워크 관련 라이브러리 설치 >
sudo apt-get -y install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0
< 수리카타 설치 >
sudo wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz
tar -xvzf suricata-1.4.4.tar.gz --------------------------- > suricata 다운받은 후 압축 해제
cd suricata-1.4.4
./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var
./configure
./configure 실행시 오류 발생
" configure: error: pcre.h not found " 오류는 Linux 시스템에 PCRE 개발 파일이 설치되어 있지 않음을 나타냄
따라서, 아래 명령어로 PCRE 설치
다시 ./configure
오류발생 !!
libyaml이 없어서 설치
다시 ./configure
pcap 라이브러리를 컴파일러가 인식하지 못하여 발생하는 오류
그래서 pcap라이브러리 설치 해줌
다시 ./configure
이제 오류 없이 잘 configure됨
다음으로
make ------------------ 소스를 컴파일하기 위해
make install-conf
make install-rules
make install-full
'Network' 카테고리의 다른 글
Wireshark에 들어온 변조된ip의 실 ip주소 찾기 (0) | 2023.02.13 |
---|---|
Kali_Linux (0) | 2023.02.08 |