운영체제 독립적인 하이퍼스캔 솔루션으로 성능 최적화 보장
[보안뉴스= 최우영 윈드리버코리아 이사] 네트워크 보안에 대한 관심이 높아지면서 악성 콘텐츠를 찾아내기 위해 데이터 스트림을 회선 속도로 스캐닝할 수 있는 혁신적인 보안장비에 대한 요구가 더욱 절실해지고 있다. 네트워크의 전송속도가 급격히 빨라지면서 기존 보장비들이 새로운 형태의 공격을 놓칠 확률이 보다 커지고 있을 뿐만 아니라 보안 취약점으로 인한 위험이 과거에 비해 크게 높아지고 있는 실정이다.
이미 ‘DPI(Deep Packet Inspection)’로 알려진 고속 콘텐츠 스캐닝 기술이 존재하고 있지만, 일반적으로 이 기술은 빠른 속도를 위해 특별히 제작된 하드웨어를 사용하는 경우가 많아 개발이나 생산에 많은 비용이 드는 솔루션으로 인식되어 왔으며, NFV(네트워크 기능 가상화)를 고려한 장래의 네트워크 구조에도 대응하기 어려운 형태다.
패킷 헤더만 살펴보는 기존의 방화벽과는 달리 최근의 네트워크 보안장비들은 DPI 기술을 사용해 각 패킷의 콘텐츠를 검사하고 위협을 감지해 낸다. DPI 기술은 오로지 패킷 헤더 부분에 의존해 보안과 관련된 결정을 내리는 것이 아니라, 보안 애플리케이션이 데이터 스트림의 세부적인 콘텐츠까지 들여다보고 유해한 의도를 파악할 수 있도록 해준다. 그러나 데이터 스트림에 대한 콘텐츠 스캐닝이 CPU 성능에 크게 의존하고 있을 뿐 아니라 트래픽 부하가 증가하면 실행할 수 없는 경우도 발생하기 때문에 데이터 스트림에 대한 더욱 상세한 검사는 추가적인 비용이 발생한다.
DPI의 툴로서의 가치는 부하가 가중되는 상황에서도 얼마나 잘 동작하느냐에 달려있다고 할 수 있다. 이론적인 환경에서 시스템에 아무런 문제가 없더라도 실제 대규모 트래픽 환경에서 장애가 발생한다면 보안상의 문제를 일으키게 된다. 국경을 지나가는 모든 차량에 대한 철저한 수색을 맡고 있는 국경수비대의 경우를 가정해 보자. 주요 국경 지역에서 이러한 검문검색이 심각한 정체를 일으키고, 국경 수비대는 혼잡을 완화하기 위해 임의로 자동차를 되돌리면서 혼란에 빠지는 상황을 예측해 볼 수 있다.
심지어 최악의 경우에는 위험요소가 아무런 통제 없이 무작위로 입국하게 되는 경우가 생길 수도 있다. 네트워크 상에서 이 같은 경우는 보안장비가 유입되는 데이터의 속도를 따라잡지 못할 때의 상황이다. 패킷은 큐에서 빠져나갈 수 있고, 이는 최종 시스템이 패킷을 재송신하게 만들며, 상황을 더욱 악화시키거나 패킷들을 아무런 대책 없이 받아들이게 될 수도 있다.
네트워크 보안업체들은 이런 일을 미연에 방지하고 성능을 향상시키기 위해 일반적인 네트워크 속도로 세밀한 스캐닝을 수행할 수 있는 하드웨어 지원 방식의 DPI 기술을 사용하고 있다. 그러나 특정 목적을 위해 만들어진 반도체는 소프트웨어에 비해 상대적으로 고가일 뿐 아니라 기능의 보강이나 사용자 요구에 유연하게 대처하기 힘들다는 문제가 부각되면서 점차 소프트웨어 방식의 DPI 솔루션으로 대체되고 있다.
멀티코어 프로세에서 동작하는 DPI 소프트웨어는 성능 측면에서도 이전의 하드웨어 기반 솔루션의 성능과 비슷하거나 심지어 그 이상의 성능을 제공하고 있으며, 무엇보다 사용자 요구나 기능 추가에 대해 유연하게 대처할 수 있는 장점과 네트워크 기능 가상화와 같은 트렌드 변화에도 잘 부합하는 솔루션으로 인정받고 있다.
DPI의 핵심은 패턴 매칭
DPI의 핵심에는 패턴 매칭(Pattern Matching)이라는 개념이 자리잡고 있다. 패턴 매칭은 유입되는 바이트 스트림(Byte Streams)을 시그니처라고 부르는 이미 알려진 공격 패턴의 데이터베이스와 비교하고 매치시키는 기능이다. 이 시그니처는 잠재적인 악성 콘텐츠를 의미하며, 단순한 문자열 형태나 혹은 별다른 연관이 없는 다양한 크기의 데이터로 분해된 데이터의 특정한 배열과 같이 더욱 복잡한 패턴으로 구성되는 경우도 있다. 후자와 같은 시그니처는 종종 일종의 정규 표현식(Regular Expression) 형태로 표현되며, 가끔은 전용 문법과 결합되는 경우도 있다.
말 그대로의 검색은 매우 복잡하며, 표현식의 검색은 상당히 많은 CPU 자원을 요구하기 때문에 고속으로 수행할 경우 문제가 발생할 수 있다. 더구나 수 천개의 시그니처를 검색해야 할 경우에는 문제가 더욱 심각하다. 아래는 단순한 패킷 필터링을 수행하는 기본적인 방화벽을 실행시키고 있을 경우와 동일 시스템으로 고도의 패킷 필터링을 일련의 규칙과 패턴의 제약 없이 수행하고 있는 경우의 성능의 차이를 보여주고 있다.
뛰어난 패턴 매처(Pattern Matcher)는 유입되는 바이트 스트림을 시그니처 데이터베이스와 비교할 때 시그니처의 수와 관계없이 동일한 성능으로 수행할 수 있어야 한다. 다시 말해 패턴 매처는 유입되는 바이트 스트림을 순차적으로 각 시그니처와 비교하는 단순 대입(Brute-force) 방식보다는 보다 개선된 방식으로 수행해야만 한다. 데이터 스트림을 앞뒤로 반복적으로 움직이는 방식은 캐시 활용에 있어 매우 비효율적이며, 패턴의 수가 증가해도 확장이 불가능하다.
일부 소프트웨어 기반 패턴 매처는 검색된 일련의 패턴을 데이터 스트럭처로 정리해 패턴 사이의 연관성 맵을 제공하는 트리 기반 알고리즘(Trie-based algorithm)을 사용함으로써 단순 대입 방식보다는 나은 방법을 제공한다. 유입 패킷이 도착하면 소프트웨어는 단지 매칭되는 콘텐츠를 찾아 맵을 따라가는 것이다. 이는 특정 IP 어드레스 검색 방식과 유사한 방식이다.
이 방법은 단순 대입 접근 방식에 비해 개선된 방식이기는 하지만, 패턴의 수가 늘어나면 단점이 드러나게 된다. 시그니처의 수와 프로세서 캐시의 크기에 따라서 이러한 방식으로 트리를 훑어가는 것은 패킷당 상당한 메모리 액세스를 요구하게 되며 최악의 경우에는 수신된 바이트당 하나의 메모리가 요구될 수도 있다. 그리고 이러한 경우에는 단순 대입 방식에 비해 성능 향상을 전혀 기대할 수 없다. 따라서 DPI 기술이 점점 더 정교해짐에 따라 성능의 효율적인 확장 또한 또 다른 문제로 떠오르고 있다. 심도 있고 정밀한 검사는 더 많은 프로세싱 성능을 요구한다. 이에 따라 현재 상황에 맞는 최적의 스캐닝을 위한 최신 메커니즘의 대안을 찾아내는 것이 더욱 중요하다.
패턴 매칭 라이브러리 솔루션을 통한 성능 최적화
업계의 많은 패턴 매처들은 단순한 순차적 접근방식과 캐시 비친화적(Cache-unfriendly) 알고리즘을 사용하거나 또는 전문화된 하드웨어의 일부로 도입되기 때문에 지연이나 확장성 문제에 직면하는 경우가 많았다. 이에 네트워크 장비 제조업체들은 효율적인 비용으로 DPI 성능 향상 및 확장을 보장할 수 있는 솔루션을 필요로 하고 있다.
이러한 도전 과제들에 대한 해결책으로 운영체제 독립적인 방식의 패턴 매칭 라이브러리 솔루션이 등장하게 됐다. 멀티스레드를 지원하며 통합이 간편하여 libPCRE에 대한 직접적인 대체가 가능하며, PCRE(Perl Compatible Regular Expression) 구문의 대규모 서브셋을 지원할 뿐 아니라, libPCRE보다 훨씬 더 나은 성능을 제공하고 있다.
인텔 아키텍처 플랫폼에 적용된 Hyperscan(하이퍼스캔) 솔루션은 하이퍼 스레딩이나 사이드 스케일링 수신, SIMD 인스트럭션 등의 기능을 통해 최대 160Gbps의 스캐닝 성능을 제공한다. 하이퍼스캔은 전통적인 정규 표현식 외에도 앵커(Anchor), 캐릭터 클래스(Character class), 바운드 리피트(Bounded repeat) 등과 같은 많은 보안 및 데이터 네트워킹 애플리케이션에서 요구하는 매우 다양한 시그니처를 지원한다.
대표적인 패턴 매칭 라이브러리 솔루션인 윈드리버 하이퍼스캔은 데이터베이스에 저장된 각 패턴과 매칭하기 위해 데이터 스트림을 앞뒤로 반복적으로 오가는 순차적 접근 방식과는 달리, CIE의 성능이 검색된 패턴의 수와 직접적인 연관성을 가지지 않는다. 데이터 스트림에 대해 시그니처 세트 내의 전체 정규 표현식에 있어서도 동시에 스캐닝이 이뤄지며, 매칭되는 시그니처가 발견되면 이를 애플리케이션으로 전달한다. 특히 항상 균일한 성능을 제공하며, 전통적 스캐닝 시스템에서 흔히 발견되는 성능의 급격한 변동이 나타나지 않는다는 것이 가장 큰 특징이다.
하이퍼스캔은 각각의 유입 패킷을 독립적으로 스캐닝하거나 여러 패킷에 걸친 공격을 탐지하기 위해 재조합된 하나의 데이터 스트림으로 스캐닝할 수 있다. 예를 들어, 보안 애플리케이션은 TCP 스트림을 재조합한 뒤에 스캐닝을 위해 하이퍼스캔 라이브러리를 적용할 수 있다. 또한 어떠한 부분적인 매치라도 지속적으로 파악해 더 많은 데이터가 해당 스트림에 도착하더라도 중단된 부분부터 스캐닝을 재시작할 수 있다.
성능 최적화를 보장하는 심층 패킷 분석
네트워크 보안장비 업체들은 제품을 단일화된 플랫폼에 통합할 때 성능에 대해서는 양보하는 경우가 종종 있다. 가벼운 성능의 프로세싱과 단순한 패킷 필터링을 위해 설계된 하드웨어와 소프트웨어는 대기업의 혁신적인 보안 애플리케이션을 위해 디자인된 것들과는 현저한 차이가 있다. 그러나 초기 개발 및 지속적인 소프트웨어 유지관리 비용의 절감은 통합의 가치를 더욱 높여준다. 비용을 절감하면서도 계속 새로운 제품을 빠르게 선보이길 요구하는 시장의 압박으로 인해 병렬화된 개발조직들이 서로 다른 플랫폼을 통해 유사한 제품을 만들어내는 것은 더 이상 무의미하다.
제품군 내의 모든 제품에 동일한 소프트웨어를 적용할 수 있도록 확장성과 유연성이 뛰어나고 예측 가능한 성능을 제공하는 플랫폼에 대한 요구가 갈수록 높아지고 있다. 이는 오직 멀티코어 프로세싱을 활용해 제품군을 1Gbps 이하의 작은 규모에서부터 수십 Gbps 이상의 대규모 네트워크 장비까지 확장하거나 축소할 수 있는 소프트웨어 기반 솔루션을 사용함으로써 가능한 일이다.
운영체제 독립적인 소프트웨어 기반 패턴 매칭 솔루션은 이러한 측면에서 네트워크 장비 제조업체들에게 해답을 제시한다. 하이퍼스캔의 경우 최신 보안 애플리케이션의 DPI 성능을 최대 160Gbps까지 확장할 수 있다.
또한, 구성된 하드웨어 프로세서 스레드의 숫자를 변경하는 것만으로 동일한 라이브러리를 사용해 대규모 엔터프라이즈 네트워크 장비에서와 동일한 수준의 효율성을 소규모의 어플라이언스에도 제공할 수 있다.
[글 _ 최 우 영 윈드리버코리아 한국 네트워크 총괄이사
(Wooyoung.Choi@windriver.com)]
<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>