초록
정적 휴리스틱 분석은 알려지지 않은 악성 코드를 감지하는데 널리 사용되는 기법으로, 악성 코드에 보편적으로 존재하는 코드 조각들을 탐색하여 대상 코드의 악성 여부를 판단한다. 그러나, 스크립트로 작성된 악성 코드에서는 정형화된 코드 조각들을 찾아내기 어려우므로, 특정한 메소드 호출들의 존재만을 검사하는 것이 보편적이다. 이러한 감지 방식은 높은 감지 오류율을 보이게 되는데, 이는 많은 메소드들이 일반 스크립트에서도 빈번하게 사용될 수 있는 것들임에 기인한다. 따라서, 현재 정적 휴리스틱 분석은 일반 스크립트에서 거의 사용되지 않는 특별한 메소드 호출들로 이루어진 악성 행위만을 감지하는데 제한적으로 사용되고 있다. 본 논문에서는 메소드 호출 뿐 아니라 이에 관련된 파라미터와 리턴 값까지 고려하여 악성 행위 패턴을 정확하게 감지함으로써 이러한 단점을 극복할 수 있는 정적 분석 기법을 제안하고 그 구현을 제시한다. 또한, 구현된 시스템 상에서의 실험을 통해, 높은 긍정 오류 때문에 기존 기법의 적용이 어려웠던 악성 행위가 제안된 기법으로 감지될 수 있음을 보인다.
Analyzing the code using static heuristics is a widely used technique for detecting unknown malicious codes. It decides the maliciousness of a code by searching for some fragments that had been frequently found in known malicious codes. However, in script codes, it tries to search for sequences of method calls, not code fragments, because finding such fragments is much difficult. This technique makes many false alarms because such method calls can be also used in normal scripts. Thus, static heuristics for scripts are used only to detect malicious behavior consisting of specific method calls which is seldom used in normal scripts. In this paper. we suggest a static analysis that can detect malicious behavior more accurately, by concerning not only the method calls but also parameters and return values. The result of experiments show that malicious behaviors, which were difficult to detect by previous works, due to high false positive, will be detected by our method.