티스토리 뷰

보안/Snort

[IPS] PCRE Rule Testing 방법

파웡블로겅 2020. 4. 28. 15:01
반응형

네트워크 보안 장비 운용 또는 관제 시 IPS 엔진에서 Custom Rule로 대응을 할때가 빈번 합니다.

IPS 엔진은 보통 시그니처와 행위규칙 두가지 카테고리로 대응 합니다

- 시그니처 규칙는 Packet의 Payload(데이타) 값을 찾아내는 기술이어요. 통상 스노트(Snort) , 수리카타 엔진을 통해 데이터를 매칭 작업을 수행합니다.

- 행위 규칙은 데이터 값을 찾는것보다 카운트에 중점을 둡니다. 예를 들어 동일한 패킷이 초당 몇회 발생했는지를 보아요. 해서 anti-ddos의 필수 탐지 기술입니다.

 

악성코드는 변종공격이 많기 때문에 하나의 탐지명 내에서도 다양한시그니처 탐지룰이 존재하거나, 혹은 Snort + PCRE 룰을 Combine 하여 대응 하는 경우가 빈번합니다.

 

Snort는 이미 많은 자료가 있고 예시가 있다보니, 생략하겠습니다.

 
문제는 PCRE룰입니다.

PCRE룰을 IPS 엔진내 Custom Rule로 올렸다가, 생각지도 못한 서비스 장애라도 발생한다면...

 

 

그렇다. 난리나겠지...

 

그래서 내가 생각하는 PCRE 룰이 맞게 동작하는지 검증을 하고 올려야 한다.

두번 생각하고 세번 생각하라.

 

PCRE Rule Testing 1

첫번째 추천하고 싶은 사이트는 https://regexper.com/ 
 

Regexper

 

regexper.com

 

 

  • 내가 작성한 룰이 Railroad-Diagrams으로 표현하다보니 직관적으로 알 수 있습니다.
PCRE Rule Testing 2

두번째 추천 사이트 : Reqular Expressions 101

Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript

Please wait while the app is loading...

regex101.com

 

 

  • 단순 IPS 에서 확장하여 다양한 언어(PHP, Python, PCRE 등등) 정규표현식을 테스트 할 수 있다. 
  • 본인의 작성한 룰에 예상 키워드를 입력하면 매칭 여부를 확인 할 수 있다.

 

IPS 룰을 적용하기 전에 두 사이트를 활용하여 사전에 검증 작업을 수행 하여 오탐율을 줄이도록 생활화 해봅시다.

반응형