남덕쿵
덕쿵 ITLOG
남덕쿵
전체 방문자
오늘
어제
  • 분류 전체보기 (38)
    • 🖐 Flutter (2)
    • ⭐ 보안기사 (25)
    • 🔆 업무 (4)
    • 🎵 SQLD (6)
    • 🧡 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • MariaDB
  • Flutter
  • 엔터티 개념
  • SQLP
  • DB함수
  • SQL순서
  • 플러터
  • Flutter 버전 오류
  • SQL
  • 정보보안
  • 절차형SQL
  • Flutter 오류
  • Dart SDK
  • 쿼리순서
  • 보안기사 14회 실기
  • SQL문
  • SQLD
  • 데이터베이스 이론
  • 프로시저 이론
  • 정보보안기사
  • 센토스
  • 보안교실
  • 정보보안기사 실기
  • 엔터티의 이름
  • 보안기사 실기
  • DB이론
  • 보안기사 기출문제
  • DB속성
  • 보안기사
  • 보인기사 기출문제

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
남덕쿵

덕쿵 ITLOG

Snort(스노트) 문법 & 예제 & 기출문제
⭐ 보안기사

Snort(스노트) 문법 & 예제 & 기출문제

2020. 6. 15. 10:52
반응형

#1 Snort(스노트) 문법

- snort(스노트)란 자유-오픈 소스 네트워크 침입 차단 시스템이자, 네트워크 침입 탐지 시스템이다. (IPS/IDS)
IP network 상에서 실시간 트래픽 분석과 패킷 로깅을 뛰어나게 수행하는 작고 가벼운 네트워크 침입 탐지 시스템!

Snort rules

[Header]
alert tcp any any <> any [443,465,523] (content:"|18 03 00|"; depth: 3;content:"|01|"; distance: 2;within: 1;content:!"|00|"; within: 1;msg: "SSLv3 Malicious Heartbleed Request V2";sid: 1;)
alert : 룰 액션 (alert, log, pass, drop, reject 등)
alert : alert만 발생, 패킷은 로그에 기록, log : alert발생 없이 로그만 기록, pass : 패킷 통과, drop : 패킷을 차단하고 로그에 기록, reject : Reset, ICMP 메시지를 전송
tcp : 프로토콜 (tcp, udp, icmp, ip)
any : 출발지 IP
any : 출발지 port
-> : 방향 ( -> , <> ), <- 이건없다.
[Body]
alert tcp any any <> any [443,465,523](content:"|18 03 00|"; depth: 3;content:"|01|"; distance: 2;within: 1;content:!"|00|"; within: 1;msg: "SSLv3 Malicious Heartbleed Request V2";sid: 1;)
content : 패킷의 페이로드의 검사할 문자열 |18 03 00| 이건 바이너리 값을 검사
depth : 바이트의 길이, 값 (depth:3은 3바이트 값)
distance : 지정된 값만큼 바이트값 건너뜀 (distance:2는 2바이트값을 건너뜀)
within : 범위 내 검사 (within:1은 1바이트 내 값)
msg : 해당 룰 조건만족 시 로깅하는 메시지
 

#2 Snort(스노트) 예제

1) 비정상적인 SSH 로그인 시도 탐지 시나리오 (Brute Force Attack : 30초안에 5번 로그인 시도 공격 탐지)
alert tcp any any -> any 22 (msg:"SSH Brute Force Attack"; content:"SSH-2.0"; nocase; threshold:type both, track by_src, count 5, seconds 30; sid:1000001;)
2) XMAS 스캔 탐지 시나리오
alert tcp any any -> any 22 (msg:"XMAS scan detected"; flags:FPU+; threshold:type both, track by_src, count 1, seconds 30; sid:1000002;)
3) HTTP Get Flooding 탐지 시나리오
alert tcp any any -> any 80 (msg:"HTTP GET Flooding detected"; content:"GET"; offset:0; depth:3; nocase; threshold:type threshold, track by_src, count 5, seconds 30; sid:1000003;)
 

#3 Snort(스노트) 기출문제

11회 문제) 모든 네트워크 대역에서 Telnet으로 접속하는 패킷 중 14번째 자리까지 'anonymous'가 포함된 트래픽에 대해서 'Dangerous' 메시지로 경고한느 snort rule을 만드시오.
alert tcp any any -> any 23 (msg:"Dangerous"; content:"anonymous"; depth:14; sid:1;)
 
13회 문제) Snort Role 설정 의미를 설명하시오.
alert tcp any any <> any ①[443,465,523] (②content:"|18 03 00|"; depth: 3; ③content:"|01|"; distance: 2; within: 1; ④content:!"|00|"; within: 1; ⑤msg: "SSLv3 Malicious Heartbleed Request V2";sid: 1;)
① 목적지 443, 465, 523 포트
② content에서 첫 3바이트를 바이너리 값으로 |18 03 00| 을 검사
③ 2번이 끝난 위치에서 2바이트 건너뛰고 1바이트 값이 바이너리 값으로 |01| 검사
④ 3번이 끝난 위치에서 바로 1바이트 값이 바이너리 값 |00|이 아닌지(!) 검사
⑤ 위의 모든 조건 만족시 msg : "SSLv3 ~" 를 기록하고 해당 룰의 식별자를 1로 지정
 
14회 문제) XSS 공격을 탐지하기 위한 Snort rule에 대하여 다음 물음에 답하시오.
alert any any -> any 80 ( msg : "XSS"; content : "GET "; offset : 1; depth : 3; content : "/Login.php<script>XSS"; distance 1; )
1) content : "GET", offset : 1, depth : 3 의미
- 전송된 패킷의 첫 1바이트 띄고(offset) 3바이트(depth) 값이 "GET"인지 검사
2) content:"/Login.php XSS"; distance 1; 의미
- 위의 첫번째 검사 후 한칸 띄고(distance) "/Login.php XSS" 값 검사
3) 위의 룰로 탐지 안될 경우 어떻게 수정해야 하는지 기술
- 패킷의 내용 이 "/login.php xss" 소문자로 들어올 수도 있으니, nocase(대소문자 구분안함)옵션을 추가하거나 offset을 0 또는 삭제한다. 

반응형
저작자표시 (새창열림)

'⭐ 보안기사' 카테고리의 다른 글

클라우드 서비스 제공모델 3가지(SaaS,PaaS,IaaS), 구축모델 4가지  (1) 2020.06.22
리눅스 슈퍼데몬 Xinetd (Xinetd.conf)  (0) 2020.06.17
OWASP Top 10 (2017)  (0) 2020.06.12
정보보안기사 실기 13회 기출문제  (0) 2020.06.11
정보보안기사 실기 14회 기출문제  (0) 2020.06.10
    '⭐ 보안기사' 카테고리의 다른 글
    • 클라우드 서비스 제공모델 3가지(SaaS,PaaS,IaaS), 구축모델 4가지
    • 리눅스 슈퍼데몬 Xinetd (Xinetd.conf)
    • OWASP Top 10 (2017)
    • 정보보안기사 실기 13회 기출문제
    남덕쿵
    남덕쿵
    열심히 해보쟈 ^____^

    티스토리툴바