2023. 12. 27. 16:31ㆍInformation Security 정보보안/System Security 시스템 보안
배울 내용:
snort 로컬 룰
snort local.rules
snort 탐지
snort 환경설정
네트워크 기반 침입 탐지 시스템
NIDS
리눅스 탐지하는방법
snort FIN, NULL,X-MAX 탐지
스노트 웹탐지
snort Web 탐지
제가 지금 부터 작성하는 모든글은 제가 공부기록용이기 때문에 정확하지 않을수 있음을 알려드립니다.
틀린게 있으면 댓글로 써주시면 고치겠습니다.
지난번에 했던 Snort 란걸 이어서 해볼거다
다시 한번 씹어보자면
Snort는
인기 있는 오픈 소스로
네트워크 침입 탐지 시스템(Network Intrusion Detection System, NIDS)과
침입 예방 시스템(Intrusion Prevention System, IPS)의 이름이다
먼저
Scanning 탐지에는 4가지로
1 syn
2 FIN
3 NULL
4 X-MAX
가있다
vi /etc/snort/rules/local.rules 로 가서
# nmap (SYN)
alert tcp any any -> $HOME_NET any (msg:"Nmap Scan Syn";flags:S;sid:1000006; rev:1;)
이렇게 입력해준다
그리고 저장후 나와서 터미널을 하나 더 만든뒤
콘솔 출력을 위한
snort -i ens33 -A console -l /etc/snort/ -c /etc/snort/snort.conf
를 해주면 이런 창이 뜬다
를 해주면 이런 창이 뜬다
그리곤 공격자로 nmap 192.168.10.101 을 해보면
제대로 탐지가 된걸 볼수가 있다.
다음으론 FIN으로 하면 이렇다
# nmap (FIN)
alert tcp any any -> $HOME_NET any (msg:"Nmap Scan FIN"; flags: F; sid:1000006; rev:1;)
이렇게 바꾸면 되고
flags 만 0 으로 바꾸면 NULL 이고
UPF 는 flags 를 X-MAS 바꾸면 된다
이때 주의할점은
sid 는 같지 않게 수정해주자
이번에는 Web 으로 가보자
alert tcp any any -> $HOME_NET 80 (msg:"HTTP Request"; sid:1000010; rev:1;)
이렇게 웹은 포트번호만 80번으로만 지정해주면 간단하다
그대신
Web (get)
alert tcp any any -> $HOME_NET 80 (msg:"HTTP Request-GET"; content:"GET /cmd.exe";nocase; sid:1000011; rev:1;)
이렇게 GET을 하는것은 처음 볼것이다
이건 칼리에 cmd 에서 http 로 GET 할경우 알람이 뜨게한다
먼저 포트가 열려있는지 확인하고
curl http://192.168.10.101/cmd.exe
이렇게하면 탐지가 된다
kali에선 이렇게 나오지만
centos에선
이렇게 탐지가 된다.
이렇게 다 비슷비슷하게 응용하면된다
ICMP Flooding
또한
10초 내에 들어오는 패킷이 5개에 대해서 이벤트 (로그)를 1개 발생 이라는 조건 걸면
alert icmp any any -> $HOME_NET any (msg:"ICMP Flooding-Threshold";threshold:type threshold, track by_dst, count 5, seconds 10; sid:1000012; rev:1;)
이렇게 할수있다.
참고로 여기서 threshhold 엔 3가지 type이 있는데
>threshold : type threshold <-- 패킷량 기준 탐지
>threshold : type both <-- IP 기준 탐지
>threshold : type limit <-- 임계값 기준 탐지
잘 기억 하도록 하자
track by 도 2 가지로 나뉜다
>track by_src <-- 동일한 출발지 IP주소 기준으로 탐지(1:N)
>track by_dst <-- 동일한 목적지 IP주소 기준으로 탐지(N:1)
간단히 출발지와 목적지라고 생각하자
그외에는
>count <--패킷 발생량 탐지
>seconds <-- 시간 기준
등이 있다.
참고로 전 포스팅에서 말했지만 탐지는 로그를 남길수도 아니면 그냥 할수도있다
콘솔 출력, 로그 파일 저장
snort -i ens33 -A console -l /etc/snort/ -c /etc/snort/snort.conf
그냥 콘솔 출력만 하려면
snort -i ens33 -A console -c /etc/snort/snort.conf
하면 된다 . 그럼 20000~!