1081. IPS 시그니처 정규식 - Intrusion Prevention System 침입 방지 시스템 정규표현식 PCRE 스노트 Snort 룰 패턴 매칭 오탐지

핵심 인사이트: 회사 방화벽을 뚫고 들어온 수백만 개의 트래픽 중, 해커의 공격 패킷을 어떻게 단 1초 만에 찾아내서 찢어버릴 수 있을까? "야! 해커들이 자주 쓰는 공격 코드(예: admin' or 1=1--)를 몽땅 '블랙리스트 수배 전단지(시그니처)'로 만들어! 그리고 스위치 길목에 엑스레이 기계(IPS)를 달아서, 지나가는 패킷의 속살(페이로드)에 저 수배 전단지의 글자가 조금이라도 포함돼 있으면 그 자리에서 패킷의 목을 따버려! 단, 해커가 띄어쓰기를 섞거나 대소문자를 바꿔서 변장할 테니, 무식한 텍스트 비교 대신 '정규 표현식(Regex)'이라는 완벽한 지문 검색 마법을 써라!" 네트워크 최전방의 저격수, IPS와 정규식이다.

Ⅰ. 방화벽(FW)의 한계와 IPS의 등장

  • 방화벽 (L3/L4): IP 주소와 포트 번호(껍데기)만 보고 문을 열어줍니다. 해커가 정상적인 웹 포트(80번)를 달고 들어오면 문을 활짝 열어주는 바보입니다.
  • IPS (Intrusion Prevention System, 침입 방지 시스템): 껍데기는 기본이고, 패킷의 진짜 속살(L7 페이로드 데이터)까지 싹 다 뜯어봐서 악성코드나 SQL 인젝션 공격이 들어있는지 확인하고 **'실시간으로 즉각 차단(Drop)'**해 버리는 네트워크의 경찰입니다. (탐지만 하고 보고서만 쓰는 IDS와 달리 직접 죽입니다.)

Ⅱ. 시그니처 (Signature) 패턴 매칭의 원리 🌟

IPS가 해커를 잡는 가장 기본적이고 확실한 블랙리스트 방식입니다.

  • 시그니처 (수배 전단지): 과거에 알려진 해킹 공격들의 특징적인 문자열 패턴이나 바이트 배열을 모아둔 데이터베이스입니다. (Snort, Suricata 등 오픈소스 룰셋이 유명합니다.)
  • 동작: 패킷이 들어오면 IPS는 패킷 내용과 수십만 개의 시그니처 DB를 빛의 속도로 1:1 비교(패턴 매칭)합니다.

Ⅲ. 해커의 회피와 정규 표현식 (Regular Expression)의 흑마법 🌟 핵심 기출 🌟

해커도 바보가 아닙니다. IPS를 속이기 위해 꼼수를 씁니다.

1. 단순 문자열 매칭의 한계

  • IPS 룰: content: "cmd.exe" (윈도우 해킹 명령어)
  • 해커의 회피: 해커가 패킷에 cMd.exe 대소문자를 섞거나, c m d . e x e 띄어쓰기를 섞어버리면 단순 텍스트 비교 엔진은 "어? 스펠링 다르네?" 하고 통과시켜 줍니다(미탐지, False Negative).

2. 정규 표현식 (PCRE, Perl Compatible Regular Expressions)의 투입

텍스트 비교를 포기하고, 수학적이고 추상적인 '패턴(규칙)' 자체를 코딩해 버리는 흑마법입니다.

  • 정규식 룰 작성: pcre:"/c\s*[mM]\s*d\.exe/i"
    • \s*: 중간에 띄어쓰기나 탭 공백이 0개든 100개든 무조건 다 허용!
    • [mM]: 대문자 M이든 소문자 m이든 둘 다 허용!
    • /i: 전체 대소문자 구분 없이 무조건 잡아라!
  • 결과: 해커가 C m D.EXE라고 띄어쓰기를 100번 치고 대소문자를 미친 듯이 섞어 변장해도, IPS의 정규식 그물망을 절대 빠져나가지 못하고 100% 멱살이 잡혀 차단됩니다.

Ⅳ. 정규식 IPS의 치명적 딜레마 (성능 폭망)

  • CPU의 비명 (ReDoS 공격): 정규식은 문자 하나하나마다 수십 가지 경우의 수를 계산해야 하는 엄청난 CPU 연산 괴물입니다.
  • 해커가 이를 역이용합니다. 일부러 정규식이 계산하기 미치도록 복잡한 쓰레기 패킷(예: 엄청나게 긴 특수문자 조합)을 1초에 1만 번씩 날리면(ReDoS 공격), IPS의 CPU가 정규식을 풀다가 100% 과부하가 걸려 네트워크 전체가 뻗어버리는 대참사가 터집니다.
  • 해결책: 실무에서는 무작정 정규식부터 돌리지 않습니다. 가볍고 빠른 content: "exe" (단순 문자열 매칭)로 1차 필터링을 한 뒤, 여기서 걸린 놈들만 2차로 무거운 pcre (정규식)를 돌려 핀셋으로 적발하는 하이브리드 엔진 설계가 필수적입니다.

📢 섹션 요약 비유: 기존 방화벽이 여권(IP/포트)만 확인하고 클럽 문을 열어주는 **'멍청한 가드'**라면, IPS는 클럽 안으로 들어가는 손님의 가방 속까지 다 뜯어서 마약이나 칼이 있는지 뒤져보는 **'현미경 엑스레이'**입니다. 해커가 엑스레이를 속이려고 마약 봉지에 '사탕'이라고 적거나(단순 문자열 회피), 마약을 잘게 부숴서 밀가루처럼 위장합니다(공격 코드 난독화). IPS에 탑재된 **'정규 표현식(Regex)'**은 아무리 부수고 위장해도 마약 특유의 **'화학적 분자 구조(패턴)' 자체를 냄새 맡아 찾아내는 '마약 탐지견'**과 같습니다. 해커가 대소문자를 바꾸고 띄어쓰기를 섞는 등 수만 가지 방법으로 변장해도, 마약 탐지견(정규식)은 오직 본질적인 해킹의 뼈대 패턴만을 추적하여 100% 찢어버립니다. 단, 탐지견이 너무 복잡한 냄새를 오래 맡으면 코가 마비되듯, 정규식이 너무 복잡해지면 IPS 장비의 CPU가 타버리는 양날의 검입니다.