[논문 리뷰] Van Wijngaarden grammars, metamorphism and K-ary malwares
이 논문은 범위가 넓은 문법을 사용하여 K-ary 악성코드—K개의 파일로 분할된 악성 코드로, 서로 협력하여 단일 바이러스로 작동하는 것—를 공식적으로 생성함으로써, 구성 요소 간의 의미 일致성과 상호 의존성을 인코딩하는 방법을 제안한다. 이 방법은 문맥에 민감한 재작성과 공유 정보 전파를 통해 구성 요소 간의 메타모픽 생성을 가능하게 하며, 탐지 불가능한 방식으로 구축된다.
Grammars are used to describe sentences structure, thanks to some sets of rules, which depends on the grammar type. A classification of grammars has been made by Noam Chomsky, which led to four well-known types. Yet, there are other types of grammars, which do not exactly fit in Chomsky's classification, such as the two-level grammars. As their name suggests it, the main idea behind these grammars is that they are composed of two grammars. Van Wijngaarden grammars, particularly, are such grammars. They are interesting by their power (expressiveness), which can be the same, under some hypotheses, as the most powerful grammars of Chomsky's classification, i.e. Type 0 grammars. Another point of interest is their relative conciseness and readability. Van Wijngaarden grammars can describe static and dynamic semantic of a language. So, by using them as a generative engine, it is possible to generate a possibly infinite set of words, while assuring us that they all have the same semantic. Moreover, they can describe K-ary codes, by describing the semantic of each components of a code.
연구 동기 및 목표
- 분산된 코드 부분 간의 복잡한 의미 제약 조건을 지원하는 범위가 넓은 문법을 사용하여 K-ary 악성코드의 생성을 공식화하는 것.
- 기존의 다형성 및 메타모픽 악성코드의 한계를 극복하기 위해, 공유된 의미 정보를 갖는 자동적이고 구축 가능한 K-ary 바이러스 생성을 가능하게 하는 것.
- 탐지가 본질적으로 어려운 결정 불가능 또는 NP-난이도 문제를 지원하는 공식적 프레임워크를 제공하는 것.
- 각 구성 요소가 공유된 맥락을 갖는 통합된 문법 시스템으로서 K-ary 바이러스의 분산 구조를 모델링하는 것.
- 범위가 넓은 문법이 코흐스키 계층을 초월한 고급 악성코드 계열의 강력한 생성 엔진으로 기능할 수 있음을 보여주는 것.
제안 방법
- 범위가 넓은 문법은 두 개의 문맥 자유 문법과 균일한 대체 규칙으로 구성되며, K-ary 악성코드 구성 요소의 구조와 의미를 정의하는 데 사용된다.
- 모든 K개의 바이러스 부분을 생성하기 위해 시작 기호 S를 정의하며, 각 부분은 공유된 맥락 정보(INFOS)에 의존하는 문법을 통해 생성된다.
- 각 구성 요소를 바인딩하기 위해 하이퍼규칙을 적용하여, 예를 들어 PART1 INFOS, PART2 INFOS와 같이, 문법적으로는 다를 수 있지만 의미적으로 동일한 코드를 생성하는 문법을 사용한다.
- ⊕ 연산자를 사용하여 입력 파일에서 부분어를 선택하고, 그 중 어떤 것도 언어 L(Gv) 내의 유효한 바이러스 단어가 되는지 확인함으로써 K-ary 바이러스 관계 Rv를 수립한다.
- 균일한 대체 규칙을 활용하여 문맥에 민감한 조건을 강제 적용함으로써, 생성 과정에서 구성 요소 간의 의미 일치성을 보장한다.
- 공유된 INFOS를 사용하여 문법 규칙을 반복적으로 적용함으로써 K-ary 악성코드를 구축적으로 생성하며, 각 구성 요소에서 동적 변형 및 메타모픽을 가능하게 한다.
실험 결과
연구 질문
- RQ1범위가 넓은 문법을 사용하여 분산된 의미적으로 조율된 구성 요소를 갖는 K-ary 악성코드를 공식적으로 정의하고 생성할 수 있는가?
- RQ2범위가 넓은 문법의 표현력을 어떻게 활용하여 다중 코드 파일 간의 메타모픽 변환을 모델링할 수 있는가?
- RQ3어떤 공식적 메커니즘이 구성 요소 간의 문법적 다양성과 의미적 동일성을 동시에 유지할 수 있도록 하는가?
- RQ4범위가 넓은 문법은 악성코드 인식 문제의 결정 불가능성 또는 NP-난이도를 어떻게 지원하여 탐지 회피 능력을 향상시키는가?
- RQ5공유된 맥락 정보(INFOS)는 어떻게 K개의 서로 다른 파일 간에 일관되게 전파되어 전체 바이러스의 기능적 일관성을 보장하는가?
주요 결과
- 범위가 넓은 문법은 무한한 수의 문법적으로는 다를 수 있지만 의미적으로 동일한 악성코드 변종, 즉 K-ary 바이러스를 생성할 수 있다.
- 구성 요소 간에 공유된 INFOS 맥락을 사용함으로써, 각 파일에서의 문법적 변형에도 불구하고 일관된 의미적 동작을 보장할 수 있다.
- 이 형식은 K-ary 악성코드의 구축적 생성을 지원하여, 자동적이고 탐지 불가능한 코드 생성에 대한 개념 증명을 제공한다.
- 균일한 대체를 통해 문맥에 민감한 조건을 표현할 수 있는 문법의 능력은 분산된 바이러스 부분 간의 복잡한 의존성을 모델링할 수 있다.
- 범위가 넓은 문법을 통해 정의된 K-ary 바이러스는 코헨의 원래 바이러스 모델의 대상이 아니며, 단일 시퀀스가 아니라 분산된 프로그램이기 때문이다.
- 이러한 방식으로 생성된 악성코드의 인식 문제는 본질적으로 어려운 문제(즉, NP-난이도 또는 결정 불가능)이며, 시그니처 기반 탐지 방법은 효과가 없다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.