본문 바로가기
IT/Snort

[Snort] #3 Payload Option - Snort Rule OTN

by 초록술 2023. 7. 19.
반응형

Snort Rule - Payload Option

앞에서 Snort Rule 기초 RTN, OTN 및 General Option에 대해 알아보았습니다.

이번에는OTN(Option Tree Node)의 Payload Option에 대해 포스팅을 하겠습니다.

Snort에서 Payload Option 은 말 그대로 Packet 의 Payload에서 데이터를 찾는 옵션으로 Snort 규칙에서 매우 중요한 요소 중 하나입니다. 이 옵션을 통해 패킷의 내용을 분석하고, 원하는 데이터를 추출하거나, 악성 트래픽을 감지할 수 있습니다.

다음에서 Payload가 무엇인지와 Snort의 Payload Option은 어떤 것들이 있는지 알아보겠습니다.


이전 포스팅을 확인하시려면 제가 작성한 아래 링크를 참조 부탁드립니다.

[Snort] #2 Snort Rule 기초 포스팅 링크

[Snort] #2 Snort Rule 기초 포스팅 링크
[Snort] #2 Snort Rule 기초 포스팅 링크

Payload 

 네트워크 통신에서 Payload는 프로토콜 헤더를 제외한 실제 데이터 부분을 말합니다. 즉, 메시지나 패킷에서 응용 프로그램이나 사용자 데이터를 담고 있는 부분입니다. Payload는 네트워크에서 정보를 교환하는 데 있어서 가장 중요하며, 악성 코드나 데이터 감지, 보안 취약점 분석 등 다양한 네트워크 활동에서 중요한 역할을 합니다.

 

Wireshark에서 Payload를 한번 확인해 보겠습니다.

 

다음은 wireshark에서의 HTTP Packet의 payload 샘플입니다.

여기에서 Payload는 Ethernet , IP, TCP Header 이외에 Data 부분(http)이라고 보시면 됩니다.

wireshark 에서 payload 확인

좌측 맨 아래 보시면 Hypertext Transfer Protocol (http)의 Size 가 표시 됩니다.  여기서는 490 bytes입니다.

Transmission Control Protocol 항목에서 Payload Size를 확인 가능합니다.

 

 

TCP(Transmission Control Protocol) 항목을 확장하면 맨 아래 TCP Payload의 Size를 확인할 수 있습니다.

아래서는 TCP Payload의 Size는 490 bytes로 위의 http size와 동일합니다.

wireshark TCP payload size 확인

 

Payload 역할

 Payload는 네트워크 통신에서 프로토콜 헤더를 제외한 데이터 부분으로, 다양한 정보를 전송하는 데 사용됩니다. 주요 역할은 다음과 같습니다:

  • 응용 프로그램 데이터 전송: Payload는 응용 프로그램이나 사용자 데이터를 네트워크 상에서 교환하는 데 사용됩니다. 예를 들어, 이메일 메시지, 웹 페이지 내용, 파일 전송 등은 모두 Payload에 포함됩니다.
  • 네트워크 감지 및 분석: 보안 도구와 같은 시스템은 Payload를 분석하여 네트워크 활동을 모니터링하고, 악성 코드나 침해 사고를 탐지하는 데 사용합니다.
  • 보안 취약점 분석: 보안 전문가들은 Payload를 분석하여 악용될 수 있는 보안 취약점을 식별하고, 시스템의 보안을 강화하는 데 활용합니다.

 

Payload Option

 Snort에서 Payload Option은 패킷의 실제 데이터로 이루어진 부분을 다루는 데 사용됩니다. TCP, UDP, ICMP와 같은 다양한 프로토콜에서 실제 데이터는 패킷의 페이로드라고 불립니다. 이 페이로드는 패킷에서 데이터를 전송하는 데 사용되며, 실제 응용 프로그램 데이터가 포함되는 부분입니다.

 Payload Option을 사용하면 패킷의 페이로드 데이터를 조건부로 검사하고, 특정 패턴을 찾거나 패킷을 수정하는 등 다양한 작업을 수행할 수 있습니다. 주로 특정 문자열이나 패턴을 감지하여 알림을 생성하거나, 악성 코드나 악성 트래픽을 탐지하는 데 사용됩니다.

 

몇 가지 Payload Option 키워드들에 대해 간단히 설명드리겠습니다.

 

content

  • content 옵션은 패킷 페이로드에서 특정 문자열 또는 패턴을 검사하는 데 사용됩니다.

nocase

  • nocase 옵션은 대소문자를 구분하지 않고 패턴을 검사하는 옵션입니다.

depth

  • depth 옵션은 패킷 페이로드에서 검사할 최대 바이트 수를 지정하는 옵션입니다.

offset

  • offset 옵션은 패킷 페이로드에서 검사를 시작할 위치(오프셋)를 지정하는 옵션입니다.

distance

  • distance 옵션은 패턴이 출현한 후, 다음 검사를 시작하기까지의 최소 바이트 수를 지정하는 옵션입니다.

within

  • within 옵션은 패킷 페이로드에서 검사를 수행할 범위(바이트 수)를 지정하는 옵션입니다.

http_client_body

  • http_client_body 옵션은 HTTP 클라이언트 요청의 본문 부분에서 특정 패턴을 검사하는 옵션입니다.

http_cookie

  • http_cookie 옵션은 HTTP 쿠키 헤더에서 특정 패턴을 검사하는 옵션입니다.

http_raw_cookie

  • http_raw_cookie 옵션은 HTTP 쿠키의 내용을 원시(raw) 형태로 검사하는 옵션입니다.

http_header

  • http_header 옵션은 HTTP 헤더에서 특정 패턴을 검사하는 옵션입니다.

 pcre

  • pcre 옵션은 Perl Compatible Regular Expressions(PCRE)를 사용하여 패킷 페이로드를 검사하는 옵션입니다.

 

다음에는 Payload Option의 키워드들에 대해 자세히 확인하고 테스트하는 과정을 다루겠습니다.

[Snort] #4 Payload Option - content, nocase / rule test

 

[Snort] #4 Payload Option - content, nocase / rule test

content, nocase - OTN Payload Option지난번 포스팅에 이어 OTN(Option Tree Node) Payload option은 패킷의 실제 데이터 부분을 검사하는 데 사용됩니다. 그중 Snort rule에서 가장 많이 사용되는 content 키워드에 대해

greensul.tistory.com

 

반응형

댓글