과학연구

악성프로그람표적자동생성의 실현

 2020.6.29.

경애하는 김정은동지께서는 다음과 같이 말씀하시였다.

《과학연구부문에서는 나라의 경제발전과 인민생활향상에서 전망적으로 풀어야 할 문제들과 현실에서 제기되는 과학기술적문제들을 풀고 첨단을 돌파하여 지식경제건설의 지름길을 열어놓아야 합니다.》

악성프로그람은 정보체계에 대한 중요한 보안위협의 하나로 되고있다. 세계적으로 매일 수많은 새로운 악성프로그람들이 출현하고있으며 그 수는 계속 증가하고있다.

악성프로그람검출을 위한 기본방법은 표적에 의한 방법이다. 새로운 악성프로그람이 출현하면 보안전문가는 그것을 분석하여 계렬을 확인하고 표적자료기지를 갱신하여 배포한다. 그러나 이와 같은 수동적인 방법은 시간과 품이 많이 들며 중요하게는 새로운 악성프로그람들의 출현에 원만히 대응하기 어렵다. 그러므로 악성프로그람의 분석과 표적생성을 자동화하여야 할 필요성이 제기된다.

표적생성의 자동화에서 중요한것은 오검출률을 극히 작게 하는것이다. 다시말하여 정상화일을 악성프로그람으로 오검출하는 현상을 없애는것이다. 오검출의 원인은 표적으로 선택한 바이트렬이 특정한 악성프로그람에만 존재하는 고유한 프로그람이 아니라 정상화일에서도 나타나기때문이다. 이것은 표적을 서고함수부분에서 추출하거나 혹은 악성행위를 수행하는 프로그람이 아니라 정상프로그람들에서도 흔히 볼수 있는 프로그람부분에서 추출하였을 경우에 발생한다.

자동표적생성은 기계어로 된 표본을 역아쎔블러를 리용하여 기호언어로 넘긴 다음 서고함수제거, 표적후보생성, 검증의 3단계를 거쳐 진행된다.

1) 서고함수제거

일반프로그람작성자들과 마찬가지로 악성프로그람제작자들도 Visual Studio와 같은 개발도구나 서고를 리용하여 악성프로그람을 제작할수 있으며 이때 화일입출력, 문자렬조작, 도형처리 등과 같은 기능을 수행하는 서고함수들이 악성프로그람에 포함될수 있는데 이러한 서고함수들은 정상프로그람들에서도 자주 나타날수 있다. 그러므로 먼저 서고함수부분들을 제거하여야 한다.

IDA Pro는 서고함수식별기능을 지원하지만 패턴대조방식으로 식별하므로 발견하지 못하는 경우도 있다. 이로부터 우리는 대규모의 서고함수자료기지를 구축하고 류사도측정에 의하여 서고함수식별을 진행하였다. 류사도측정은 패턴정합에 비하여 계산시간이 오래므로 우리는 국부민감하쉬(LSH)를 리용하여 비교회수를 줄임으로써 시간을 단축하였다.

2) 표적후보생성

서고함수를 제거한 나머지프로그람부분에서 악성프로그람에 고유한 프로그람이라고 볼수 있는 부분들에서 표적후보들을 선택하는 단계이다. 이를 위하여 우리는 다음의 두가지 방법으로 순위화를 진행하고 점수가 높은 순서로 후보들을 선택하였다.

첫째로 기호언어로 된 프로그람들을 분석하여 수학연산명령들과 이상한 상수값을 포함하거나 16bit등록기를 리용하는 명령들은 점수를 올려주도록 하였다.

둘째로 계렬정보를 리용하여 같은 계렬에 속하는 다른 표본들에서 자주 출현하면서 다른 계렬의 표본들에서는 거의 출현하지 않는다면 점수를 올려주도록 하였다.

3) 검증

생성된 표적후보들의 바이트렬이 임의의 정상화일에서 존재하는가를 검사하여 표적의 믿음성을 검증하는 단계이다. 이를 위하여 우리는 대규모의 정상화일모임을 구축하고 표적바이트렬이 정상화일에서 발견되는가를 검사하였다.

제안한 자동표적생성방법의 효과성을 검증하기 위하여 320개의 악성프로그람표본에 대하여 자동생성된 표적들의 적합성과 오검출에 대한 실험을 진행하였다. 분석자가 생성된 표적들에 대하여 적합성을 《예》, 《아니》로 평가하였다. 실험결과 95%이상의 표본들에 대하여 자동생성된 표적이 적합한것으로 평가되였다. 그리고 모든 표적들에 대하여 오검출은 확인되지 않았다.