과학연구

압축된 HTTP통화량에 대한 패턴정합속도개선에 대한 연구

 2018.9.17.

위대한 령도자 김정일동지께서는 다음과 같이 교시하시였다.

《새로운 과학기술분야를 개척하기 위한 사업도 전망성있게 밀고나가야 합니다.》 (김정일선집》 증보판 제11권 138페지)

오늘날 대부분의 보안도구들은 압축된 통화량을 검사하지 않으므로 악의적인 행동검출을 하지 못하는 결함이 있다. 따라서 압축된 통화량에 대해서도 보안도구를 리용하여 비법적인 패턴들을 검출하자면 우선 통화량복호화를 진행하고 다음 패턴정합을 진행해야 한다. 론문에서는 통화량복호화를 진행하고 패턴정합을 수행해야 하므로 계산량과 시간이 더 많이 들것 같지만 압축되지 않은 통화량에 대해 패턴정합을 진행할 때보다 패턴정합속도를 더 높이는 방법을 제안하였다.


1. HTTP통화량에 대한 압축, 부호화방법

HTTP1.1에서 쓰는 가장 일반적인 압축알고리듬은 GZIP로서 두개의 압축부호화방법 즉 LZ77압축과 Huffman부호화를 리용한다.

LZ77은 이미 나타났던 련속적인 바이트렬을 (거리, 길이)라는 쌍을 리용하여 압축한다. Huffman부호화는HTTP에서 압축되지 않은 바이트들과 지적자들을 부호화한다. Huffman사전은 일반적으로 압축된 화일의 시작에 추가된다.


2. 압축된 HTTP통화량에 대한 패턴정합방법

론문의 목적은 압축된 HTTP통화량의 부호화정보를 리용하여 패턴정합을 진행함으로써 압축되지 않은 통화량에 대하여 패턴정합을 진행할 때보다 속도를 높이는것이다.

미끄럼창문안에 있는 지적자가 주사하는 바이트들은 이미 패턴정합을 위해 검사되였으며 이 정보를 리용하여 불필요한 검사를 진행하지 않고 뛰여넘을수 있다. 만일 주사된 바이트들을 검사하는 동안에 정합되는 패턴이 없다해도 지적자의 일부 바이트들을 다시 검사할 필요가 있다. 그것은 패턴이 지적자의 경계에 위치할수 있기때문이다. 경계에서 패턴을 검출하거나 주사된 전체 정합패턴을 검출하자면 전번 탐색에 대한 정보를 보관해야 한다. FSM에서 주사된 바이트의 상태 즉 바이트상태의 깊이에 대한 정보와 주사된 바이트의 정합상태정보를 충분히 저장할수 있다.

FSM을 첫째상태로 설정하고 p-CDepth+1에서부터 탐색을 시작하여 SWin에서 유지된 p-CDepth+1부터 p-1까지 구역의 상태를 주사한다. k번째 위치까지 탐색을 계속하는데 이때 scanAC에 의해 귀환된 상태들을 갱신한다. 다음 남은 지적자구역에 완전히 포함된 패턴이 하나도 안남을 때까지 탐색을 반복한다. Rs와 CDepth파라메터로 ModSecurity와 Snort의 패턴들을 놓고 실험을 진행하였다. Snort 패턴에 대한 Rs는 0.35, ModSecurity에 대한 Rs는 0.24이다. CDepth=2이므로 ModSercurity에서는 69%의 성능개선을, Snort에서는 61.4%의 성능개선을 실현하였다.

결과 AC가 기억기에 있을 때 압축된 HTTP통화량에 대하여 총적으로 20%정도의 성능을 개선한다.