악성코드를 분석하다 보면 악성코드 실행 시 일반 실행 파일과는 다르게 여러 주요 악성행위를 하는 것을 볼 수 있다. 주요 행위에는 파일 조작, 레지스트리 조작, 프로세스 메모리 변조 및 프로세스 감염, 서비스 추가, 새 프로세스 실행, 네트워크 연결, 추가적 다운로드 등으로 나눌 수 있다.


1. 파일 조작
    대부분의 실행 파일들도 파일 조작을 하지만 드로퍼나 다운로더와 같은 경우는 자기 자신이 아닌 최종 악성코드에 의해 악성 행위를 하게 되는 것이므로 최종 악성코드 파일을 생성해야한다. 또한 키로거가 사용자의 키보드 입력 정보를 공격자에게 전달하기 전에 임시로 파일에 기록해 둠으로서 악성코드에 대한 파일 조작은 불가피하다고 볼 수 있다.


2. 레지스트리 조작
    악성코드는 재부팅 시에도 실행이 보장 되어야한다. 이럴 때 사용하는 방법중 하나는 레지스트리의 시작 프로그램 부분에 해당 악성코드를 등록시켜 놓는 방법으로 재부팅 시엗 항상 해당 악성코드가 실행 되게 한다.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run 부분에 프로그램을 등록하면 매번 부팅할때마다 실항되게 한다. 또한 여러 레지스트리를 조작함으로서 악성행위를 극대화할 수 있다. (실행창에서 regedit을 실행시키면 편집기를 킬 수 있다)

3. 프로세스 메모리 변조 및 프로세스 감염
    악성코드의 가장 큰 적은 백신이다. 그래서 악성코드들은 백신의 탐지를 우회하기 위해 여러 가지 방법을 사용하고 있으며 그 중 한 가지 방법으로 다른  프로세스의 메모리를 변조하여 악성행위를 하도록 하는 방법이 사용된다. 악성 코드는 자신의 프로세스를 실행하지 않아 백신에 탐지되지 않았으며, 부팅시 부터 시스템 종료까지 항시 활동하는 프로세스를 변조하여 악성행위를 하게 만든다. 가장 많이 감염되는 프로세스는 explorer.exe와 svchost.exe이다.
explorer.exe는 실행되는 모든 애플리케이션의 부모 프로세스이므로 시스템 종료까지 해당 프로세스가 종료되는 일이 없으므로 공격자들에겐 안성맞춤이다.
svchost.exe는 윈도우에서 다양한 기능을 수행하는 데 사용하는 기타 개별 서비스를 호스팅하거나 포함하는 컴퓨터 프로세스이다. 악성코드가 svchost.exe를 추가하거나 변조하여 공격자의 컴퓨터로 전송하는 역할을 할 수도있다.



4. 서비스 추가
    앞에서 레지스트리 조작을 통한 악성코드 시작 프로그램 등록에 관해서 알아보았는데 레지스트리 조작 이외에 부팅 시 악성코드 실행 보장을 위한 방법은 서비스에 악성코드를 추가하는 것이다. 서비스에 해당 악성코드가 추가되면 아래와 같은 경로에 어떠한 파일이 실행되는지에 대해 알 수 있다.
내 컴퓨터 -> 우클릭 -> 관리에 들어가면 확인 할 수 있다.



5. 새 프로세스 생성
    어떠한 악성행위를 하더라도 악성코드가 실행되어야 가능하다. 또한 악성코드가 실행되고 추가적인 악성코드를 실행하기도 하기에 새로운 프로세스 생성은 매우 중요한 것이라고 볼 수 있다. 새로운 프로세스 모니터링에는 Sysinternals의 Process Explorer라는 툴을 쓰는데 새로운 프로세스가 생성되면 아래와 같이 표시 된다.
초록색은 생기는 것이도 빨간색은 없어지는 것이다.


6. 네트워크 연결
    악성코드 중 대다수가 사용자의 정보를 훔치는 것이므로 훔친 정보를 공격자에게 보내주기 위해서는 네트워크 연결은 필수라고 할 수 있다. 또한 다운로더와 같은 경우엔 실질적인 악성행위를 하는 악성코드를 내려받아 실행시켜야 하므로 악성코드 분석시에 네트워크 연결에 대한 모니터링은 매우 중요하다고 볼 수 있다. svchost.exe를 사용하여 통신 할 수도 있다. 통신 하는 것을 보기위해 TCPView를 사용하면 쉽게 감시 할 수 있다.



'Malware' 카테고리의 다른 글

악성코드가 하는 주요 행위  (0) 2016.01.15
악성코드 유형  (0) 2016.01.15

+ Recent posts