2013년 8월 30일 금요일

보안솔루션 기반 기술, 패턴매칭

IDS는 구식? DPI는 신식?

지난 글에서 IDS 로그 전수 검사를 통해 룰의 문제점을 찾아 수정함으로써 침입 탐지 정확도를 향상시킨 사례를 살펴봤었다

IDS? 어떤 이는 생소하게 느꼈을 것이고, 어떤 이는 '트렌드에 안 맞게 왠 IDS? 그 구식 보안솔루션 아직도 쓰나?' 라며 의아하게 생각했을지도 모르겠다

이 시간에는 네트워크 기반의 최초이자 본격 패턴매칭 기반 보안솔루션임에도 '구식'이란 오명을 쓰고 있는 IDS와 핵심 기술인 '패턴매칭'에 대해서 알아볼까 한다.

1980년대에 처음 제시된 침입탐지시스템, IDS(Intrusion Detection System)는 크게 '비정상 행위' '오용 행위' 기반으로 나뉘는 동작 모델을 가지고 있었다.

구분
개념
세부 기술
비정상 행위
사전 정의된 정상 상태와 다른 비정상 행위 추적
통계학적 분석,
신경망 네트워크 등
오용 행위
사전 정의된 위협 정보와 일치하는 오용 행위 추적
전문가 시스템, 상태 전이 분석, 패턴매칭 등

그러나 대부분의 동작 모델은 실험적인 구현 수준을 벗어나지 못했고, 특히 비정상 행위 기반 동작 모델이 정상과 비정상의 구분이란 난제를 쉽게 해결하지 못하면서, IDS는 보안 위협으로 의심되는 문자열 패턴의 일치 여부를 검사하는 '패턴매칭'을 기반으로 발전하게 된다

다양한 동작 모델 중에서 패턴매칭이 핵심 기술로 남게 된 이유는 무엇일까네트워크를 통해 전달되는 데이터는 최종적으로 인간이 식별 가능한 문자나 숫자 등의기호로 표현되는 정보를 주고 받으면서 상호 간의 의도했던 의미를 수립한다. 

데이터의 발생 주체가 인간인 만큼 너무나 당연하게도 인간의 의사 소통과 그 성격이 똑같다. '' 다르고 '' 다른 인간의 의사 소통처럼, 데이터 역시 표현에 사용된 기호의 성격에 따라 최종 전달되는 정보의 의미가 달라지는 것.

이런 배경을 바탕으로 컴퓨터 간에 전달되는 정보의 보안 위협 여부를 판단하기 위해, 트래픽 데이터 영역에 사용된 문자열을 검사하는 방식은 가장 효과적인 기술로 인정받으면서 자연스럽게 사용자의 선택을 받게 된다.


이후 패턴매칭은 패킷 페이로드까지, 즉 패킷 깊숙한 곳까지 검사한다는 의미에서 'DPI(Deep Packet Inspection)'란 세련된 이름으로도 불리면서 IDS는 물론 IPS, 웹방화벽, UTM 등등 다양한 네트워크 보안솔루션들의 기반 기술로 자리잡게 된다.

다양한 보안솔루션들이 각자 우수성과 차별성을 강조하고 있지만, 사실은 패턴매칭이란 동일 기술을 사용하고 있다는 것. 그렇다면 탄생한 지 30여 년이 지난 지금, 패턴매칭은 침입탐지라는 본연의 임무를 잘 수행하고 있을까?

문제는 해킹당할 땐 몰랐다는 사실

패턴매칭 보안솔루션의 문제점을 알 수 있는 가장 최근의 사례로 '사이버 6.25' 사태가 있다. 당시 청와대 홈페이지가 해킹당하는 보안 사고가 발생했는데, 해당 사고의 핵심은 홈페이지가 변조되고 나서야 해킹 사실이 알려졌다는 점.


청와대가 IDS, IPS, 웹방화벽 등의 보안솔루션 중 최소 하나 이상의 보안솔루션을 사용하고 있다고 가정해보자. 

홈페이지가 변조되고 나서야 해킹 사실이 알려졌다는 얘기는 보안솔루션이 해커의 공격 시도를 탐지하지 못했거나, 탐지는 했지만 그 탐지로그를 적시에 확인하지 못했음을 의미한다여기에서 우리는 패턴매칭의 두 가지 문제점을 알 수 있다.

첫 번째는 공격 시도를 탐지하지 못하는 현상, 즉 미탐(False Negative, 2종 오류라는 학술적 용어도 가끔 쓰임)의 발생이다

알려진 공격 패턴이 없으면 룰을 만들 수 없고, 룰이 없으면 당연히 트래픽 패턴과 비교할 대상이 없기 때문에 탐지가 불가능하다. 인류가 방패보다 칼을 먼저 발명한 것처럼, 공격이 알려져야만 방어를 할 수 있는 패턴매칭의 태생적 한계라고 할 수 있다.

두 번째는 공격 시도가 아닌데 공격으로 오인하는 현상, 즉 오탐(False Positive, 1종 오류)의 발생이다. 패턴매칭은 알려진 공격 패턴을 기록한 룰과 트래픽 패턴을 비교하는 방식이다. 알려진 공격 패턴으로 룰을 만들었는데 왜 공격이 아닐까?

패턴매칭의 기원은 도청

도청이 성공하기 위한 필수 조건은 정확한 타겟 선정이다. 그런데 대부분의 정보보안 환경에서는 타겟을 특정할 수 없다. 도대체 누가 해커란 말인가? 시작부터 망함


결과적으로 수집 가능한 모든 패턴을 검사해야 한다. 그리고 그 패턴의 속성 때문에 한 번 더 망한다. '가방'이란 문자열 패턴을 검사하는 룰이 있다고 가정해 보자. 잘못된 띄어쓰기에 의해서 의미가 달라진 다음 문장을 컴퓨터는 어떻게 이해할까?
친구가방에 들어갔다

컴퓨터는 정보를 구성하는 문장의 맥락을 이해하지 못하고 룰에 기록된 패턴과의 일치 여부만을 검사한다. 결국 '가방' 공격이 발생하고 만다. 극단적인 사례로 보이겠지만 현장에서 가장 흔하게 볼 수 있는 오탐 사례.

그런데 이 문제점은 사실 꽤나 오래 전부터 제기되어 왔었다. 다음은 '오탐'을 핵심 이유로 2003년 미국에서 제기된 'IDS 무용론'IDS를 직접 만든 미국조차 '오탐'때문에 IDS가 '무용'하다는 판단을 내렸음을 알 수 있다.


이후 여전히 패턴매칭 기반이지만, 차단 기능을 추가한 IPS나 웹해킹 방어에 특화된 웹방화벽 등 IDS와의 차별화를 주장하는 보안솔루션들이 출시되기 시작한다

여기서 주목할 점은 IDS와의 차별화를 주장하는 어떤 보안솔루션도 패턴매칭의 문제, 특히 오탐 문제를 해결하지 못했다는 것.

지난 연재에서 KISA가 배포한 웹쉘 공격 패턴으로 룰을 만들었음에도 발생한 탐지로그의 약 80%가 오탐이었음을 기억할 것이다. 오탐이 많이 발생하면 어떤 일이 벌어질까?


'월리를 찾아라'라는 게임에서 월리를 찾기 어려운 이유는 월리라는 사람이 다른 수많은 사람들과 함께 섞여 있기 때문이다. 마찬가지로 모든 로그에 대해서 룰 패턴을 포함한 전체 메시지의 의미를 분석해야 하는 상황에서,

오탐의 증가로 인해 전체 로그의 발생량이 증가하면,
그 중에서 진짜 공격 시도를 찾아낼 가능성은 점점 줄어들게 되며,
로그가 누적될수록 공격 시도를 적시에 찾아낼 가능성은 더욱 줄어들게 된다.

이 얘기는 오탐이 증가하면 공격 시도가 있었다는 사실 자체를 아예 모를 가능성이 높아진다는 뜻이다. 그런 의미에서 공격 사실을 알 수 있게끔 홈페이지를 변조하는 공격자는 고마운 공격자라고 할 수 있다.

패턴매칭의 치명적인 문제점이 밝혀졌다. 그런데 이상하지 않은가? IDS가 무용하다는 판단, 기반 기술인 패턴매칭이 무용하다는 판단이 나왔고, 그 문제가 해결되지 않았음에도 IPS, 웹방화벽 등 대부분의 보안솔루션들은 여전히 패턴매칭을 사용하고 있다. ?

그 이유는 패턴매칭이 문제가 있음을 알지만, 즉 특정 문자열 패턴으로 전체 문장의 위협 여부를 판단하는 방식이 불완전하지만 현존하는 보안 기술 중에서는 그나마 가장 효율적이고 정확하기 때문이다. 선택의 여지가 없는 것.

그렇기 때문에 우리는 CPU 속도, 클라우드, 평판, 빅데이터 등에 의존하기 전에 보다 근본적인 문제, 즉 패턴매칭의 효과적인 사용 방법을 찾아야 한다.

정확한 룰

패턴매칭의 문제를 해결하지 못하면 IDS, IPS, 웹방화벽 등 어떤 룰 기반 보안솔루션도 무용지물일 뿐이다

룰 기반 보안솔루션이 무용지물이 되면 해당 보안솔루션의 로그를 통합하는 ESM SIEM 기반의 소위 통합 보안솔루션도 무용지물이 되고 만다.

그렇기 때문에 우리는 패턴매칭의 효과적인 사용 방법을 찾아야 한다

그리고 그 방법은 결국 공격 맥락에 가깝도록 룰 패턴을 정교하게 만드는 방법뿐이다. 룰 패턴을 정교하게 만드는 방법은 무엇일까?

지난 글에서 웹쉘 공격에 사용된 패턴만으로 룰을 만들었음에도 전체 발생량의 80%가 오탐이었던 이유는,

패턴매칭에 태생적 한계가 있고,
è  정상/공격 패턴 모두 영문 자판 키보드 범위 안에서 발생한다.
네트워크의 특성이 룰에 반영되지 않았기 때문이다.
è  네트워크마다 트래픽 발생 양상, 즉 패턴 발생 양상이 달라질 수 있다.

그래서 룰을 만들 때 알려진 공격 패턴과 함께 그 룰이 적용된 네트워크에서 발생하는 정상 또는 공격 패턴의 특성을 반영하면 패턴 표현의 한계에 의한 오탐을 줄일 수 있다.

지난 연재에서 우리는 번 룰을 번처럼 수정함으로써 약 80%의 오탐을 줄이는 효과를 경험한 바 있다.

alert tcp any any -> any 80 (content:"?Action="; nocase; pcre:"/\?Action\=(MainMenu|Show|Course|getTerminalInfo|ServerInfo|Cmd1?Shell|EditFile|Servu|sql|Search|UpFile|DbManager|proxy|toMdb)/i";)

alert tcp any any -> any 80 (uricontent:".asp?Action="; nocase; pcre:"/\?Action\=(MainMenu|Show|Course|getTerminalInfo|ServerInfo|Cmd1?Shell|EditFile|Servu|sql|Search|UpFile|DbManager|proxy|toMdb)/i";)

번 룰에 의해서 발생한 로그의 전수 검사를 통해 오탐 패턴의 발생 양상을 파악할 수 있었고, 그 발생 양상을 통해 룰의 문제점을 찾음으로써 번처럼 수정이 가능했던 것.

많은 룰 기반 보안솔루션들이 알려진 공격 패턴으로 만들어진 룰을 사용함에도 오탐이 많은 이유는 현장 트래픽의 특성이 룰에 반영되지 않고 있기 때문이며, 결과적으로 알려진 공격임에도 방어에 실패하는 사례는 갈수록 늘고 있다.

이런 상황임에도 가끔 알려지지 않은 공격 방어 기술을 강조하는 주장이 제기되곤 한다. 그럴 때마다 나는 묻고 싶다. 그럼 알려진 공격은?

국내외 대다수 룰 기반 보안솔루션들은 기본적으로 2 ~ 3,000개 내외의 룰을 제공한다. 이 얘기는 대부분의 공격은 이미 다 알려져 있다는 뜻

그리고 알려지지 않은 공격이라고 해서 기존 기술 체계를 완전히 벗어날 가능성은 낮다. 그렇다면 알려진 공격에 대한 방어가 완벽해지면 알려지지 않은 공격 역시 방어 가능성이 높아지지 않을까?

나가며

올해에만 시스코는 인공 지능을 이용해 보안 위협을 탐지하는 소프트웨어 업체 코그니티브 시큐리티와 사실상 IDS 기술 표준인 Snort 배포를 지원하는 소스파이어를 연달아 인수했다.

시스코의 의중은 알 수 없지만 언젠가 문장의 맥락을 이해하고 추론이 가능한 인공 지능 기술이 현실화되면, 패턴매칭은 자동화되고 지능화될 것이며, 그때가 되면 '그나마'란 꼬리표를 떼고 가장 효율적이고 정확한 보안 기술이 될 것이다.

그러나 아직까지는 미국 역시 패턴매칭의 문제를 제대로 해결하지 못하고 있다. 패턴매칭의 올바른 사용을 위해, 그리고 알려진 공격의 방어를 위해 로그 전수 검사를 통한 룰 정확도 향상에 관심을 가져야 하는 이유이다.

관련 글

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스