SNORT2011. 9. 19. 15:15

깔끔하게 정리가 잘되어있습니다.

아래 링크에서 받으실 수 있으며, 혹시나 해서 첨부합니다.


http://binary-zone.com/Projects/howto-install-config-snort.pdf

'SNORT' 카테고리의 다른 글

정규 표현식 기호-2  (0) 2010.03.02
정규 표현식 기호-1  (0) 2010.03.02
byte_test 기능에서 & 연산방법  (0) 2009.10.09
국내 Snort Rule 공유 블로그  (1) 2009.09.15
Posted by regexkorea
SNORT2010. 3. 2. 16:09

 문자  설명
 [^a-z]  제외 문자 범위이다. 지정된 범위 밖의 문자를 찾는다. 예를
들어, "[^a-z]" 는 "a" 부터 "z" 사이에 없는 모든 문자를
찾는다.
 ₩b  단어의 경계, 즉 단어와 공백 사이의 위치를 찾는다. 예를
들어, "er₩b" 는 "never" 의 "er" 는 찾지만 "verb" 의 "er" 는
찾지 않는다.
 ₩B  단어의 비경계를 찾는다. "er₩B" 는 "verb" 의 "er" 는
찾지만 "never" 의 "er" 는 찾지 않는다.
 ₩cx  X 가 나타내는 제어 문자를 찾는다. 예를 들어, ₩cM 은
Control-M 즉, 캐리지 리턴 문자를 찾는다. x 값은 A-Z 또는
a-z 의 범위 안에 있어야 한다. 그렇지 않으면 c 는 리터럴
"c" 문자로 간주된다.
 ₩d  숫자 문자를 찾는다. [0-9] 와 같다.
 ₩D  비숫자 문자를 찾는다. [^0-9] 와 같다.
 ₩f  폼피드 문자를 찾는다. ₩x0c 와 ₩cL 과 같다.
 ₩n  줄 바꿈 문자를 찾는다. ₩x0a 와 ₩cJ 와 같다.
 ₩r  캐리지 리턴 문자를 찾는다. ₩x0d 와 ₩cM 과 같다.
 ₩s  공백, 탭, 폼피드 등의 공백을 찾는다. "[ ₩f₩n₩r₩t₩v]"
와 같다.
 ₩S  공백이 아닌 문자를 찾는다. [^ ₩f₩n₩r₩t₩v] 와 같다.
 ₩t  탭 문자를 찾는다. ₩x09 와 ₩cI 와 같다.
 ₩v  수직 탭 문자를 찾는다. ₩x0b 와 ₩cK 와 같다.
 ₩w  밑줄을 포함한 모든 단어 문자를 찾는다. '[A-Za-z0-9_]' 와
같다.

'SNORT' 카테고리의 다른 글

SNORT+BASE 설치 메뉴얼 (DEBIAN/UBUNTU)  (0) 2011.09.19
정규 표현식 기호-1  (0) 2010.03.02
byte_test 기능에서 & 연산방법  (0) 2009.10.09
국내 Snort Rule 공유 블로그  (1) 2009.09.15
Posted by regexkorea
SNORT2010. 3. 2. 15:18

 문자 설명 
 ₩  그 다음 문자를 특수 문자, 리터럴, 역참조, 또는 8 진수
이스케이프로 표시한다. 예를 들어, 'n' 은 문자 "n" 을 찾고
'₩n' 은 줄 바꿈 문자를 찾는다. '₩₩' 시퀀스는 "₩" 를
찾고 '₩(' 는 "(" 를 찾는다.
 ^  입력 문자열의 시작 위치를 찾는다. Multiline 속성이
설정되어 있으면 ^ 는 '₩n' 또는 '₩r' 앞의 위치를 찾는다.
 $  입력 문자열의 끝 위치를 찾는다. Multiline 속성이 설정되어
있으면 $ 는 '₩n' 또는 '₩r' 뒤의 위치를 찾는다.
 *  부분식의 선행 문자를 0 개 이상 찾는다. 예를 들어, 'zo*'
는 "z", "zoo" 등이다. * 는 {0,} 와 같다.
 +  부분식의 선행 문자를 한 개 이상 찾는다. 예를 들어, 'zo+'
는 "zo", "zoo" 등이지만 "z" 는 아니다. + 는 {1,} 와 같다.
 ?  부분식의 선행 문자를 0 개 또는 한 개 찾는다. 예를 들어,
"do(es)?" 는 "do" 또는 "does" 의 "do" 를 찾는다. ? 는
{0,1} 과 같다.
 {n}  n 은 음이 아닌 정수이다. 정확히 n 개 찾는다. 예를 들어,
'o{2}' 는 "Bob" 의 "o" 는 찾지 않지만 "food" 의 o 두
개는 찾는다.
{n,} n 은 음이 아닌 정
 {n,}  n 은 음이 아닌 정수이다. 정확히 n 개 찾는다. 예를 들어,
'o{2}' 는 "Bob" 의 "o" 는 찾지 않지만 "foooood" 의 모든
o 는 찾는다. 'o{1,}' 는 'o+' 와 같고, 'o{0,}' 는 'o*' 와
같다.
 {n,m}  m 과 n 은 음이 아닌 정수이다. 여기서 m 은 n 보다 크거나
같다. 최소 n 개, 최대 m 개 찾는다. 예를 들어, "o{1,3}" 은
"fooooood" 의 처음 세 개의 o 를 찾는다. "o{0,1}" 은 "o?"
와 같다. 쉼표와 숫자 사이에는 공백을 넣을 수 없다.
 ?  이 문자가 다른 한정 부호(*, +, ?, {n}, {n,}, {n,m})의 바로
뒤에 나올 경우 일치 패턴은 제한적이다. 기본값인 무제한
패턴은 가능한 많은 문자열을 찾는 데 반해 제한적인 패턴은
가능한 적은 문자열을 찾는다. 예를 들어, "oooo" 문자열에서
"o+?" 는 "o" 한 개만 찾고, "o+" 는 모든 "o" 를 찾는다.
 .  "₩n" 을 제외한 모든 단일 문자를 찾는다. "₩n" 을 포함한
모든 문자를 찾으려면 '[.₩n]' 패턴을 사용한다.
 (pattern)  pattern 을 찾아 검색한 문자열을 캡처합니다. 캡처한
문자열은 VBScript 의 경우 SubMatches 컬렉션, JScript 의
경우 $0...$9 속성을 이용하여 결과로 나오는 Matches
컬렉션에서 추출할 수 있다. 괄호 문자인 ( ) 를 찾으려면
"₩(" 또는 "₩)" 를 사용한다.
 (?:pattern)  pattern 을 찾지만 검색한 문자열을 캡처하지 않는다. 즉,
검색한 문자열을 나중에 사용할 수 있도록 저장하지 않는
비캡처 검색이다. 이것은 패턴의 일부를 "or" 문자(|)로 묶을
때 유용하다. 예를 들어, 'industr(?:y|ies) 는
'industry|industries' 보다 더 경제적인 식이다.
 (?=pattern)  포함 예상 검색은 pattern 과 일치하는 문자열이 시작하는
위치에서 검색할 문자열을 찾는다. 이것은 검색한 문자열을
나중에 사용할 수 있도록 캡처하지 않는 비캡처 검색이다.
예를 들어, "Windows(?=95|98|NT|2000)" 는 "Windows
2000" 의 "Windows" 는 찾지만 "Windows 3.1" 의
"Windows" 는 찾지 않는다. 예상 검색은 검색할 문자열을
찾은 후 예상 검색 문자열을 구성하는 문자 다음부터가
아니라 마지막으로 검색한 문자열 바로 다음부터 찾기
시작한다.
 (?!pattern)  제외 예상 검색은 pattern 과 일치하지 않는 문자열이
시작하는 위치에서 검색할 문자열을 찾는다. 이것은 검색한
문자열을 나중에 사용할 수 있도록 캡처하지 않는 비캡처
검색이다. 예를 들어, "Windows(?!95|98|NT|2000)" 는
"Windows 3.1" 의 "Windows" 는 찾지만 "Windows 2000"
의 "Windows" 는 찾지 않는다. 예상 검색은 검색할
문자열을 찾은 후 예상 검색 문자열을 구성하는 문자
다음부터가 아니라 마지막으로 검색한 문자열 바로 다음부터
찾기 시작한다.
 x|y  x 또는 y 를 찾는다. 예를 들어, "z|food" 는 "z" 또는 "food"
를 찾는다. "(z|f)ood" 는 "zood" 또는 "food" 를 찾는다.
 [xyz]  문자 집합이다. 괄호 안의 문자 중 하나를 찾는다. 예를들어, "[abc]" 는 "plain" 의 "a" 를 찾는다.
 [^xyz]  제외 문자 집합이다. 괄호 밖의 문자 중 하나를 찾는다. 예를
들어, "[^abc]" 는 "plain" 의 "p" 를 찾는다.
 [a-z]  문자 범위이다. 지정한 범위 안의 문자를 찾는다. 예를 들어,
"[a-z]" 는 "a" 부터 "z" 사이의 모든 소문자를 찾는다.

'SNORT' 카테고리의 다른 글

SNORT+BASE 설치 메뉴얼 (DEBIAN/UBUNTU)  (0) 2011.09.19
정규 표현식 기호-2  (0) 2010.03.02
byte_test 기능에서 & 연산방법  (0) 2009.10.09
국내 Snort Rule 공유 블로그  (1) 2009.09.15
Posted by regexkorea
SNORT2009. 10. 9. 16:16
공부하고 있는 것이다보니 틀린 부분이 분명히 있을것입니다.. 그리고 영어 이해력이 떨어져서 옵션의 설명이 틀릴 수 있습니다. 틀린 부분에 대한 지적 부탁 드리겠습니다.

byte_test는 특정 필드 값을 연산자를 이용해서 매칭 하는 기능(?)

사용방법
 byte_test: <bytes to convert>, [!]<operator>, <value>, <offset>[,relative] [,<endian>] [,<number type>, string];

byte to convert : 패킷으로 부터 끄집어 낼 byte 수
operator : <,>,=,!,&,^
value : 변환된 값과 비교할 값
offset : payload에서 프로세싱 시작할 byte 수
relative : 마지막으로 패턴 매칭된 offset에서 시작
endian : [byte to convert] 의 값을 big endian 또는 little endian 형태로 처리하는 옵션
            big-big endian으로 테이터 처리(default)
            little-little endian으로 데이터 처리
string :  패킷에서 데이터는 string 형태로 저장된다.(?)
number type : type of number being read
                    hex-변환된 string 데이터는 16진수로 표현된다.
                    dec-변환된 string 데이터는 10진수로 표현된다.
                    oct-변환된 string 데이터는 8진수로 표현된다

위에서 연산자 & 에 대해서 알아보자.
예는 https://forums.snort.org/forums/rules/topics/byte_test-and-the-operator-2 에서 언급된 것으로 해보자.

payload의 첫 16 byte 가 아래와 같다고 하자.
65 98 85 83 00 01 00 00 00 01 00 00 08 63 70 64

byte_test:1,&,2,3

10000101= '85’
00000010 = '2'
.........^ Not set
위 값들을 and 연산하면 아래와 같다.
00000000 ='0' 이기때문에 거짓

byte_test:1,&,1,3 
10000101 = ‘85’
00000001 ='1'
...........^ Set and Match!
00000001 ='1' 이기때문에 참

byte_test:1,&,128,2 
10011000 = ‘98’
10000000 = '128'
^ Not set
00000000 = '0' 이기때문에 거짓

snort에서는 참이면 탐지하는 것이다.

참고 했던 사이트에서 Joel_Esler 라는 사람이 답변한 내용에서 Bit Sequence 부분은 이해가 가지 않는다.

& is a bitwise “and”. So, for the first byte_test, it moves three bytes into a packet, takes one
byte, and checks to see if it is a 2. (So the 7th bit in the Bit Sequence is set), the second one
indicates that the 8th bit in the Bit Sequence is set, and the 3rd one indicates that the first bit in
the Bit Sequence is set.

'SNORT' 카테고리의 다른 글

SNORT+BASE 설치 메뉴얼 (DEBIAN/UBUNTU)  (0) 2011.09.19
정규 표현식 기호-2  (0) 2010.03.02
정규 표현식 기호-1  (0) 2010.03.02
국내 Snort Rule 공유 블로그  (1) 2009.09.15
Posted by regexkorea
SNORT2009. 9. 15. 14:49

http://snortrules.wordpress.com/

스노트 룰에 대한 글을 진행 하고 있으며, 새로운 네트워크 공격들을 분석하고

이를 막을 Snort기반 룰을 작성하고 있습니다. 

또한 룰의 성능을 위해 노력하며 오탐을 줄이고 문제점을 찾아 고쳐보겠다고 합니다.

 !!! snort rules에서 같이 활동할 editer를 구해봅니다.

mskim17@gmail.com 으로 메일주십시오.

여기에서 미약하게 활동(?)하고 있습니다..^^

'SNORT' 카테고리의 다른 글

SNORT+BASE 설치 메뉴얼 (DEBIAN/UBUNTU)  (0) 2011.09.19
정규 표현식 기호-2  (0) 2010.03.02
정규 표현식 기호-1  (0) 2010.03.02
byte_test 기능에서 & 연산방법  (0) 2009.10.09
Posted by regexkorea