235. 시그니처 기반 탐지 (Signature-based Detection) - 오용 탐지
⚠️ 이 문서는 해커가 보낸 네트워크 패킷(데이터) 덩어리를 까보고, 그 안에 전 세계 보안 전문가들이 미리 엑셀(DB)에 모아둔 **'과거 범죄자들의 몽타주(알려진 해킹 문자열)'와 단 1바이트라도 일치하는 놈이 있으면 그 즉시 멱살을 잡아채는, 백신 프로그램(V3, 알약)부터 거대한 기업용 침입 방지 시스템(IPS)까지 가장 널리 쓰이는 빠르고 정확한 1차 방어선인 '시그니처 기반(오용 탐지) 기법'**을 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 해킹 공격 코드가 가진 특유의 '지문(Signature)'을 데이터베이스에 등록해 두고, 날아오는 패킷의 텍스트를
Ctrl+F(문자열 검색)로 매칭시켜 100% 똑같은 글자가 튀어나오면 사살하는 블랙리스트(Blacklist) 방식이다.- 가치: 전단지에 얼굴이 올라온 뻔한 범죄자는 절대 놓치지 않는다. 오탐(정상인을 범인으로 착각할 확률, False Positive)이 거의 제로에 가까우며, 문자열 비교 연산이 가벼워 10Gbps의 트래픽이 쏟아져도 딜레이 없이 1초 만에 차단할 수 있는 극강의 속도를 자랑한다.
- 기술 체계 (치명적 한계): 과거의 범죄 이력(Known Attack)만 막을 수 있다. 해커가 코드를 한 글자라도 비틀어 전단지에 없는 얼굴을 하고 들어오거나 세상에 처음 나온 신종 공격(제로데이 공격, Zero-day)을 쓰면 눈뜨고 코 베이듯 100% 뚫려버린다.
Ⅰ. 시그니처(Signature)의 해부학: 해커의 지문을 떠라
모든 해킹 공격은 흔적(Text)을 남긴다. 그 흔적을 복사해라.
- 시그니처란 무엇인가?:
- 해커가 웹사이트 게시판의 비밀번호를 뚫기 위해 SQL 인젝션 공격을 쏜다.
- 날아가는 HTTP 패킷 내용물(Payload)을 뜯어보면
SELECT * FROM users WHERE id='' OR 1=1 --'라는 무조건 들어가는 아주 특징적인 문자열 덩어리(' OR 1=1 --)가 있다. - 보안 회사는 이 특징적인 문자열 쪼가리들을 '이놈은 범죄자다!'라는 증거물, 즉 **시그니처(지문)**로 규정하고 암호 책자(DB)에 기록한다.
- 패킷 매칭(Pattern Matching)의 작동:
- 기업의 IPS 장비가 이 수백만 개의 시그니처 DB 책자를 다운로드받아 장착한다.
- 외부에서 트래픽이 슝슝 지나가면, 장비는 패킷의 배를 갈라 속살(L7 데이터)을 꺼낸 뒤, 자기 책자에 있는 100만 개의 지문과 빛의 속도로 1:1 비교를 돌린다.
- 단 한 글자라도 100% 똑같이 일치하는 놈이 걸리면? "침입자 발견!" 사이렌을 울리고 패킷을 쓰레기통에 찢어 버린다.
📢 섹션 요약 비유: 공항 출입국 심사대의 '지명 수배자 명부' 대조 시스템입니다. 경찰청(보안 회사)에서 매일 아침 "오른쪽 뺨에 별 모양 흉터가 있고(특징 문자열), 빨간 모자를 쓴(포트 번호) 놈이 연쇄 살인마(SQL 인젝션)다"라는 전단지 10만 장(시그니처 DB)을 나눠줍니다. 심사대 직원(IPS)은 뇌를 쓰지 않고, 1초에 한 명씩 지나가는 사람의 얼굴과 전단지 사진을 겹쳐서 비교해 봅니다. 100% 완벽하게 똑같이 생긴 놈이 나타나면 묻지도 따지지도 않고 그 자리에서 수갑을 채우는(차단) 가장 확실하고 빠른 검문 방식입니다.
Ⅱ. 시그니처 탐지의 영광: 무적의 정확도와 속도
머리를 쓰지 않는 것은 때론 최고의 무기가 된다.
- 압도적인 저(Low) 오탐률 (False Positive $\approx 0$):
- 어제 배운 이상 탐지(Anomaly)는 "평소랑 다르면 일단 쏴라!"라서 정상인도 마구잡이로 패죽이는 오탐(오진)의 지옥이었다.
- 하지만 시그니처는 "명확한 범죄 지문"만 찾는다. 일반 고객이 게시판에 정상적인 글을 쓰는데 우연히
' OR 1=1 --이라는 특수 해킹 코드가 완벽한 배열로 들어갈 확률은 천문학적으로 0에 가깝다. - 따라서 시그니처가 울린 알람은 "이건 99.9% 진짜 해킹 공격이 맞다"고 보안 관제 요원들이 100% 신뢰(Trust)하고 조치할 수 있다.
- 연산 퍼포먼스 (High Speed):
- 복잡한 AI 딥러닝이나 통계 확률을 계산할 필요가 전혀 없다. 단순히 메모리 위에서 A 글자와 B 글자가 똑같은지 비교하는 스트링 매칭(String Matching,
Aho-Corasick알고리즘 등)만 미친 듯이 돌리면 끝이다. - 이 덕분에 데이터센터에 쏟아지는 100Gbps 이상의 거대한 트래픽 물결 속에서도 인터넷 속도 지연(Latency) 없이 0.001초 만에 악성 패킷만 쏙쏙 걷어낼 수 있다.
- 복잡한 AI 딥러닝이나 통계 확률을 계산할 필요가 전혀 없다. 단순히 메모리 위에서 A 글자와 B 글자가 똑같은지 비교하는 스트링 매칭(String Matching,
📢 섹션 요약 비유: 백신(V3) 검사와 같습니다. AI가 "이 파일이 평소와 다르게 행동하네? 악성코드 아냐?"라며 30분 동안 끙끙대며 시뮬레이션(이상 탐지)하는 동안 컴퓨터는 버벅거립니다. 하지만 시그니처 탐지는 파일을 딱 까보고 "어? 이거 트로이 목마 32번 파일 코드랑 바이트 단위로 정확히 일치하네? 쓰레기통으로 가라!"라며 0.1초 만에 깔끔하게 판결을 내리고 컴퓨터 속도도 전혀 떨어뜨리지 않는 명쾌한 사이다 판사입니다.
Ⅲ. 파멸의 맹점: 우회(Evasion)와 제로데이(Zero-day)
전단지에 사진이 없는 신종 범죄자 앞에서는 투명 인간이나 다름없다.
- 난독화(Obfuscation)와 우회 기법:
- 해커들도 바보가 아니다. 자기가 쏜 글자(
SELECT)가 뻔한 시그니처로 등록되어 차단당한다는 걸 안다. - 그래서 해커는 글자를 인코딩(URL 인코딩, Base64 등)하거나 대소문자를 섞어서 쏜다.
sElEcT또는%53%45%4C%45... - 만약 IPS 장비가 이 꼬여있는 암호를 해독(디코딩)해서 원본 글자로 다시 펴주는 똑똑한 전처리 기능이 없다면, "어? 전단지에 있는 스펠링이랑 1글자 다르네? 통과~"라며 바보처럼 해커를 회사 안으로 프리 패스시켜 버린다. (이래서 최신 장비는 시그니처 매칭 전에 10번씩 디코딩을 돌리는 노가다를 한다.)
- 해커들도 바보가 아니다. 자기가 쏜 글자(
- 제로데이 (Zero-day) 공격의 무방비:
- 이게 제일 무섭다. 어제 밤에 러시아 해커가 전 세계 아무도 모르는 윈도우 OS의 새로운 구멍(취약점)을 발견했다.
- 보안 회사(안랩, 시스코)가 이 공격 패턴을 분석해서 새로운 지문(시그니처 전단지)을 만들어 전 세계 IPS 장비에 백신 업데이트를 뿌려주기 전까지 **약 1~2일간의 끔찍한 시간(Zero-day)**이 존재한다.
- 이 1~2일 동안 해커가 신종 공격을 쏘면, IPS 장비의 전단지에는 그 얼굴이 없으므로 무방비로 100% 뻥뻥 뚫리며 회사가 통째로 날아간다. 시그니처는 오직 '과거(알려진 것)'만 막을 뿐 '미래'를 방어할 지능이 없기 때문이다.
📢 섹션 요약 비유: 지명 수배 전단지(시그니처)의 한계입니다. 해커가 전단지에 있는 얼굴 그대로 안 오고, 점 하나를 찍고 가발을 쓰고 옵니다(난독화). 멍청한 경찰은 못 알아보고 통과시킵니다. 더 끔찍한 건, 오늘 아침 세상에 처음 태어난 사이코패스 연쇄살인마(제로데이 공격)입니다. 경찰청 본부에서 몽타주를 그려 파출소 팩스로 내려보내 주기(업데이트) 전까지의 하루 이틀 동안, 이 살인마는 경찰의 눈앞에서 칼을 휘둘러도 수배 명단에 없다는 이유로 유유히 검문소를 통과해 버리는, 상상력 제로 기계의 뼈아픈 한계입니다.