1. Snort 설치
apt update
apt install snort -y
snort --version
ip ad 로 ip 확인
cd /etc/snort/
snort.conf에
모니터링 할 대역,
변수가 들어가있음
마우스 패드 설치 → rule 편집 용이하게 하기 위해
apt install mousepad -y
mousepad snort.conf
1, 7번이 중요
새로운 터미널 창 열어서
snort -v -c /etc/snort/rules/local/rules // -v 자세히 실행, -c 룰 파일 지정
kali 에서 우분투로(내 ip로) ping 날려보기
로그가 저장되는 경로
cd /var/log/snort
여기까지가 Snort 환경구축 & 테스트 끝
4. 실습 (Snort 옵션 이해)
Option 4개
alert tcp any any -> 192.168. 내 ip any (msg:"file1"; file_data;content:"SIG";depth:8;sid:10000002;) -> 8 바이트 이내에 SIG가 있나
alert tcp any any -> 192.168. 내 ip any (msg:"file2"; file_data;content:"SIG";depth:24;sid:10000003;) -> 24 바이트 이내에 SIG가 있나
칼리에서
python3 -m http.server 8080
Option 4개
룰 작성 > 파일 다운로드 > 탐지확인, 스노트 종료 > 로그확인 > 파일 내용 확인 반복
alert tcp any any -> 192.168.147.129 any
(msg:"file7";file_data;content:"SIG";depth:24;content:"SIG2";within:4;content:"SIG3";distance:9;byte_test:4,>,5,12,relative,little;sid:10000004;)
alert : 경고, 탐지, 설정
->: 클라이언트 > 서버로
any any -> any any: 모든 출발지로부터 모든 목적지
msg: "test"로 기록
file_data: binary로 분석, 정확도 올리기 위해
depth: 지정한 값 안에 탐지할 문자열 (좌측 방향 content)이 있어야 함
within: 첫 번째 조건식을 만족한 위치(depth)로부터 지정값 이내(4)에 탐지할 문자열(test3)이 있어야 함
distance: 첫 번째, 두 번째 조건식을 만족하면서 마지막 조건식으로부터 지정한 값만큼 건너뛰어 지정한 바이트 내(within, 4) 탐지할 문자열 존재(test3)
byte_test: 앞 조건식을 모두 만족(distance)하면서, 마지막 조건식으로부터 지정한 바이트(12)만큼 건너뛰고, 지정한 바이트 범위(4)의 값과 비교 연산(> 지정한 바이트가 더 커야함, 5보다 커야함), 리틀은 수치를 리틀엔디언으로 읽어오겠다란 의미
이 4가지 옵션이 Snort에 있어, 오용탐지를 위한 옵션이 됨
flow: to_server, estableshed: 연결이 명확하게 되었다 탐지를 위해 사용
content는 문자열 뿐만아니라 16진수도 가능
content:"123" >> content:"|31 32 33|"
대소문자: nocase 옵션만 넣어주면 됨, 16진수 형태로 탐지하지 않는 한 일반적으로 사용 권장
pcre 정규표현식 사용이 가능
비정상행위 탐지
알려지지 않은 행동 탐지
횟수 기반의 접근 공격을 탐지 시
alert any any -> 192.168.147.129 (msg:"SYN Flood Attack1";flags:S; threshold:type threshold,track by_src, count 10, seconds1;sid:100000013;)
flags: 플래그 값 기반으로 탐지 S는 SYN을 의미 >> TCP 3 Way에서 기반
threshold: type threshold(대량의 패킷 발생), track by_src(동일한 출발지 기준), count(횟수), seconds(초)
>> 1초에 10번 동일한 출발지에서 발생하는 대량의 패킷이 발생하면 탐지하겠다.
DDOS를 생각해
alert any any -> 192.168.147.129 (msg:"SYN Flood Attack1";flags:S; threshold:type threshold,track by_dst, count 10, seconds1;sid:100000013;)
>> 1초에 10번 동일한 목적지로 향하는 대량의 SYN 패킷이 발생하면 탐지
마우스 패드에서 뭐 추가함 (뭔지 모름)
칼리에서
hping3 -c 20 192.168.135.168 -S --flood
고민해야하는 상황
오용탐지와 비정상행위 탐지 중 어느게 더 작성이 어려울까?
오용탐지가 더 쉬움 (정규표현식 이용)
비정상 >> 어디까지 카운팅을 허용할거냐에 대한 명확한 임계치가 없음
>> 서버 리소스를 감안해서 타협이 필요
snort 추가 실습
security onion 설치
splunk 설치 및 로그 수집
'보안 > 보안 관제' 카테고리의 다른 글
SoC (0) | 2024.12.12 |
---|---|
aws 로그 수집 구축 (0) | 2024.12.12 |
Snort Rule 구조 (0) | 2024.12.11 |
mod security (1) | 2024.12.11 |
실습 - 환경세팅 (2) | 2024.12.07 |