가. 해당 운영체제에 대한 지식
먼저 해당 운영체제에 대한 지식이라 함은, 악성코드가 번식하는 해당 운영체제가 작동
하는 원리와 구조에 대한 지식이라 할 수 있다. 운영체제가 어떤 하드웨어를 기반으로
동작하며, 어떤 API들을 제공하며, 시스템 주요정보가 저장되는 위치는 어디인지 등에
대한 세부 지식을 말한다.
악성코드도 하나의 프로그램이다. 다른 프로그램들과 똑같이 대상 운영체제가 지원하는 자원을 빌려 쓰며, 그 운영체제 내에서만 존재가 가능하다.
그렇게 때문에 우리는 악성코드를 분석하기에 앞서 해당 운영체제에 대해 알아야 할 필요가 있는 것이다.
그럼 어떤 운영체제를 공부해야 할까? 최근 거의 대부부분의 악성코드는 MS Windows
시리즈 운영체제를 대상으로 만들어지고 있는데, 그 이유는 일반 PC용으로 Linux등의 타
운영체제보다 Windows의 사용자가 압도적으로 많기 때문이다.
그러므로 악성코드를 분석하기 위해서는 Windows 운영체제에 대해 잘 알아야 한다. 하
지만 여기서 잘 안다는 건 일반적인 사용용도로서의 지식이 아닌 악성코드가 운영체제를
악용하는데 쓰이는 기술을 파악하기 위한 지식이다
나. 어셈블리 언어에 대한 지식
다음으로, 어셈블리 언어에 대한 지식이다. 우리가 접하는 악성코드가 프로그램 소스일
가능성은 0% 이다. 모든 악성코드는 그 실행파일만으로 전파되며 우리는 그것을 분석해
야 한다. 즉 이미 컴파일 된 바이너리만 가지고 그 소스를 역으로 분석할 수 있어야 한
다는 것이다. 바로 이 기술을 리버스 엔지니어링이라 한다. 어셈블리 언어는 컴퓨터가 사
용하는 기계어와 1대1 대응이 되므로, 컴퓨터로 실행되는 파일을 역으로 어셈블리 언어
로 바꾸는 것이 가능하다. 이를 디스어셈블(Disassemble)이라 한다. 어셈블리 언어를 알면
디스어셈블된 코드를 토대로 악성코드의 소스를 복원할 수 있으며, 이것이 분석에 있어
서 가장 어렵고 중요하다고 할 수 있다.
다. 네트워크에 대한 지식
마지막으로 네트워크에 대한 지식이다. 예전 도스시절 바이러스를 분석할 때는 전혀 필
요 없었던 지식이지만, 인터넷이 발달하여 전세계 모든 컴퓨터들이 거미줄처럼 엮여 서
로 통신하는 지금은, 웜의 출현으로 리버스 엔지니어링만큼 중요한 지식이 되었다.
모든 국가기관, 단체, 은행, 기업, 가정의 컴퓨터들이 서로 네트워크로 연결되어 있다. 자
칫 잘못해서 네트워크가 마비되기라도 한다면 사회적 대공황으로 이어질 수도 있을 만큼
네트워크는 IT 그 자체라고도 볼 수 있다. 2001년 코드레드 웜11을 보라. 단지 수백 바이
트의 작은 패킷이 우리나라 네트워크 전체를 과부하로 정지시켰다. 이는 분명 네트워크
의 관점에서 분석되어야 한다. 리버스 엔지니어링이 미시적 분석 방법이라 한다면, 네트
워크 분석은 거시적 분석 방법이라 할 수 있겠다.
'Security' 카테고리의 다른 글
국내 블랙 마켓 타깃. 악성코드 정보 (0) | 2021.05.30 |
---|---|
피싱 사례 및 위협 동향 (0) | 2021.05.13 |
카스퍼스키 로드쇼 2021 (0) | 2021.05.03 |
클럽하우스(Clubhouse) 1,300,000명 사용자 정보 유출 (1) | 2021.04.12 |
Anti-root에서 신규 멤버를 상시 모집 중입니다. (0) | 2021.04.09 |
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.