[박경수, 이융 교수팀] H/W병렬성 최대로 활용하는 아키텍처 구성, 같은 개념의 S/W보다 4배 빨라

우리 학교 전기및전자공학과 박경수, 이융 교수 연구팀이 범용 하드웨어를 이용하는 소프트웨어만으로 네트워크 침입 감지 시스템(NIDS, Network Intrusion Detection System)의 성능을 획기적으로 올린 ‘카거스(Kargus)’를 개발하는 데 성공했다. 이 논문은 미 계산기학회(ACM) 컴퓨터보안협회(CCS, Conference on Computer and Communications Security)에서 발표될 예정이다. 이 협회는 보안 분야 세계 최고 권위를 자랑하는 학회로, 논문 채택율도 낮아 순수 국내기관에서 나온 논문 중에서는 이 논문이 최초로 채택되었다.

해커의 공격 판별하는 NIDS

전 세계가 네트워크망으로 연결되면서, 수많은 서버나 내부망이 해킹의 위험에 노출되고 있다. 이때 각 네트워크망에 들어오는 데이터를 검사하고 망이나 서버를 공격하는 패킷을 탐지하는 시스템이 필요한데, 이를 NIDS라고 한다. 패킷은 네트워크에서 데이터를 전송하기 위해 자른 데이터의 단위다. 해커가 서버나 네트워크망을 공격하면 패킷이 특정한 패턴을 보이는데, NIDS는 이러한 패턴을 검출해 알려준다. 이러한 공격 패턴은 수천 가지 종류가 있어, 공격 패턴인지를 알아보려면 수천가지 공격 패턴 라이브러리에서 하나씩 맞춰보는 패턴 매칭을 거쳐야 한다.

소프트웨어 기반 NIDS로는 한계 존재해

기존의 범용 하드웨어를 이용한 NIDS 소프트웨어로는 1Gbps 정도의 속도로 패킷을 검사하는 것이 한계였다. 하지만 네트워크망에서 주고받는 데이터의 양과 속도가 증가하면서, 기존의 소프트웨어 기반 NIDS로는 한계에 봉착했다. 데이터 전송량이 많은 네트워크망에서는 이를 해결하려 NIDS를 여러 개 설치하거나, 전용 하드웨어로 NIDS를 설치해왔다. 하지만 이러한 방법은 비용이 지나치게 많이 들며, 특히 전용 하드웨어를 사용하면 새로운 공격 패턴이나 검출 알고리즘을 쉽게 업데이트할 수 없다는 단점이 있다.

GPU와 병렬성 이용한 효율 증대

연구팀은 GPGPU(General Purpose computing on GPU)와 하드웨어 병렬성에 주목했다. GPGPU는 컴퓨터의 영상 정보를 처리하는 GPU(Graphics Processing Unit)가 CPU처럼 일반적인 목적의 연산을 수행하게 하는 기술이다. GPU는 데이터를 순서대로 하나씩 처리하는 CPU와 달리 간단한 계산을 동시에 대량으로 처리할 수 있기 때문에 병렬성이 높다. 따라서 GPU를 이용하면 수많은 패킷을 일괄적으로 처리해 패턴 매칭을 수행할 수 있다.

기존의 소프트웨어 기반 NIDS는 멀티코어(multicore) CPU의 병렬성도 제대로 활용하고 있지 않았다. 멀티코어 CPU는 2개 이상의 코어를 탑재한 프로세서로, 2개 이상의 CPU가 탑재된 것과 비슷하다고 볼 수 있다. 최근 생산되는 네트워크 인터페이스는 이러한 멀티코어 CPU의 병렬성을 활용할 수 있도록 만들어지고 있다.

▲ 카거스의 아키텍쳐 모식도 /박경수, 이융 교수 제공

아키텍처가 성능 좌우해

작년 ACM CCS에서는 GPU와 하드웨어 병렬성을 이용한 NIDS인 MIDeA가 소개된 바 있다. 하지만 MIDeA의 경우는 GPU와 하드웨어 병렬성에 대한 아이디어를 접목했을 뿐, 최적화된 소프트웨어라고 보기는 어려웠다. 멀티코어 CPU에 데이터를 분배하는 방식이나 GPU와 데이터를 주고받는 방식에 따라 처리속도가 달라질 수 있는데, MIDeA는 이에 대한 최적의 방식을 찾지 못했기 때문이다. 박경수, 이융 교수팀은 2년에 걸쳐 병렬성을 이용한 NIDS 최적의 아키텍처를 구성하는데 성공했다. 아키텍처는 소프트웨어와 하드웨어를 포함하는 컴퓨터 시스템 전체의 설계 방식으로, 하드웨어의 각 부분을 어떻게 사용하는지 등에 대한 설계를 의미한다.

또한, 연구팀은 부하 분산(load balancing)을 고려해, 전송되는 패킷 양이 적을 때는 GPU를 사용하지 않다가 패킷 양이 늘어날 때만 GPU를 사용하도록 했다. 이는 여유가 있을 때 전력 소모가 큰 GPU를 쉬게 해 전력 낭비를 줄이는 효과도 있을 뿐 아니라, CPU와 GPU 사이에 데이터를 주고받는 시간을 줄여 CPU 스스로 처리할 수 있는 수준의 패킷이 들어올 때는 오히려 처리속도가 빨라지는 효과를 볼 수 있다.

연구팀이 개발한 NIDS인 카거스는 공격이 없는 상황에서 33Gbps, 들어오는 모든 패킷이 공격인 경우에도 10Gbps에 가까운 성능을 보여준다. 이는 똑같이 GPU와 병렬성을 응용한 MIDeA보다 4배나 빠른 속도다.

이 교수는 “아키텍처는 하드웨어에 혼을 불어넣는 것과 같다”라며, “카거스를 개발하는 과정에서 최적의 아키텍처를 찾는 것이 매우 어려운 부분이었다”라고 밝혔다. 

저작권자 © 카이스트신문 무단전재 및 재배포 금지