. 해당 운영체제에 대한 지식

먼저 해당 운영체제에 대한 지식이라 함은, 악성코드가 번식하는 해당 운영체제가 작동

하는 원리와 구조에 대한 지식이라 할 수 있다. 운영체제가 어떤 하드웨어를 기반으로

동작하며, 어떤 API들을 제공하며, 시스템 주요정보가 저장되는 위치는 어디인지 등에

대한 세부 지식을 말한다.

악성코드도 하나의 프로그램이다. 다른 프로그램들과 똑같이 대상 운영체제가 지원하는 자원을 빌려 쓰며, 그 운영체제 내에서만 존재가 가능하다.

그렇게 때문에 우리는 악성코드를 분석하기에 앞서 해당 운영체제에 대해 알아야 할 필요가 있는 것이다.

그럼 어떤 운영체제를 공부해야 할까? 최근 거의 대부부분의 악성코드는 MS Windows

시리즈 운영체제를 대상으로 만들어지고 있는데, 그 이유는 일반 PC용으로 Linux등의 타

운영체제보다 Windows의 사용자가 압도적으로 많기 때문이다.

그러므로 악성코드를 분석하기 위해서는 Windows 운영체제에 대해 잘 알아야 한다.

지만 여기서 잘 안다는 건 일반적인 사용용도로서의 지식이 아닌 악성코드가 운영체제를

악용하는데 쓰이는 기술을 파악하기 위한 지식이다

 

. 어셈블리 언어에 대한 지식

다음으로, 어셈블리 언어에 대한 지식이다. 우리가 접하는 악성코드가 프로그램 소스일

가능성은 0% 이다. 모든 악성코드는 그 실행파일만으로 전파되며 우리는 그것을 분석해

야 한다. 즉 이미 컴파일 된 바이너리만 가지고 그 소스를 역으로 분석할 수 있어야 한

다는 것이다. 바로 이 기술을 리버스 엔지니어링이라 한다. 어셈블리 언어는 컴퓨터가 사

용하는 기계어와 11 대응이 되므로, 컴퓨터로 실행되는 파일을 역으로 어셈블리 언어

로 바꾸는 것이 가능하다. 이를 디스어셈블(Disassemble)이라 한다. 어셈블리 언어를 알면

디스어셈블된 코드를 토대로 악성코드의 소스를 복원할 수 있으며, 이것이 분석에 있어

서 가장 어렵고 중요하다고 할 수 있다.

 

. 네트워크에 대한 지식

마지막으로 네트워크에 대한 지식이다. 예전 도스시절 바이러스를 분석할 때는 전혀 필

요 없었던 지식이지만, 인터넷이 발달하여 전세계 모든 컴퓨터들이 거미줄처럼 엮여 서

로 통신하는 지금은, 웜의 출현으로 리버스 엔지니어링만큼 중요한 지식이 되었다.

모든 국가기관, 단체, 은행, 기업, 가정의 컴퓨터들이 서로 네트워크로 연결되어 있다.

칫 잘못해서 네트워크가 마비되기라도 한다면 사회적 대공황으로 이어질 수도 있을 만큼

네트워크는 IT 그 자체라고도 볼 수 있다. 2001년 코드레드 웜11을 보라. 단지 수백 바이

트의 작은 패킷이 우리나라 네트워크 전체를 과부하로 정지시켰다. 이는 분명 네트워크

의 관점에서 분석되어야 한다. 리버스 엔지니어링이 미시적 분석 방법이라 한다면, 네트

워크 분석은 거시적 분석 방법이라 할 수 있겠다.

반응형

WRITTEN BY
J cert
Freedom of Liberty and the establishment of a law to establish the law of cyberspace will defend freedom and try to build a just society.

,