[Threat Analysis] 하드디스크 파괴 악성코드, 기업 서버 노려
6.25 사이버테러 분석 보고서 2부_하드디스크 파괴 공격 분석
|
‘6.25 사이버테러’에 DDoS와 더불어 하드디스크를 파괴하는 악성코드를 이용한 공격까지 나타나 관계자들을 긴장시켰다. 해당 악성코드에 감염되면 ▲파일 삭제 ▲사용자 PC 재부팅 시 하드디스크 파괴(MBR 삭제, 데이터 영역 삭제) ▲하드디스크 파괴 기능의 MBR 직접 삽입 등의 특징을 보인다. 이 밖에도 패스워드 및 바탕화면 변경 등의 증상이 나타난다. 이는 지난 3월 발생한 3.20 사이버테러 당시의 하드디스크 파괴와는 다른 양상이다.
|
2013년 6월 25일 오전, 하드디스크 정보를 파괴하는 악성코드가 발견됐다. 6.25 사이버테러에서 발견된 하드디스크 파괴 유발 악성코드의 파일명은 다음과 같이 다양하나 그 기능은 동일하다. 이 글에서는 rdpshellex.exe를 중심으로 6.25 사이버테러의 하드디스크 파괴 공격을 살펴본다.
하드디스크 파괴 악성코드 동작 분석
6.25 사이버테러의 하드디스크 파괴를 유발한 rdpshellex.exe(245,760 바이트)는 다음과 같은 동작을 수행하는 것으로 확인됐다.
① 실행 조건 확인
해당 악성코드는 감염된 시스템에서 다음과 같이 윈도우 시스템 폴더에 lsass.exe 파일이 존재하는지 확인한다.
만약 감염된 시스템에 lsass.exe 파일이 존재하는 경우에는 바로 동작을 종료하고, 더 이상의 악의적인 기능을 수행하지 않는다. 또한 중복 실행을 방지하기 위해 다음의 Mutex를 확인한다.
② 서비스 등록
해당 악성코드는 서비스로 동작하며, 다음과 같은 정상 서비스 이름 중 하나를 사용한다.
③ 악성코드 인자별 기능
해당 악성코드는 다음과 같은 13개의 인자값을 갖고 있다.
인자값 –r 과 –I에 대한 분석 결과는 [그림 1]과 같으며, 그 외 각각의 인자값에 대해서는 추가 분석을 진행 중에 있다.
[그림 1] 특정 인자별 악성코드 기능
④ 감염 정보 전송
다음과 같은 IP의 시스템에 접속하여 감염된 시스템의 정보를 전송한다.
이때 전송되는 정보들은 다음과 같다.
[그림 2] 감염 정보 전송
⑤ 특정 윈도우 서비스 강제 종료
동일한 %System32%\icfg\ 폴더의 i18n.nms 파일에서 0x1200 바이트 가량을 읽어 추가 작업을 수행하며, 윈도우 시스템에서 실행 중인 다음의 서비스를 강제 종료한다.
⑥ 관리자 권한 설정 및 바탕화면 변경
사용자 계정의 임시 폴더(TEMP)에 [그림 3]과 같은 명령이 쓰여진 ‘[임의의 문자열]tmp.bat’ 파일을 생성하고 해당 파일을 실행해 감염된 시스템의 관리자 계정(Administrator)의 암호를 변경한다.
[그림 3] 로그인 패스워드 변경 배치 파일 정보
RDPSHELLEX.exe의 리소스 영역에 갖고 있는 데이터를 이용해 desktop_image001.tmp라는 파일을 생성하고 해당 파일을 이용해 감염된 시스템의 바탕화면으로 변경한다. 이때 바탕화면에 교체되는 이미지는 [그림 4]와 같다.
[그림 4] 변경되는 바탕화면 그림 파일
파괴 증상 분석
1. 하드디스크 파괴
해당 악성코드에 의해 감염(패치)된 MBR을 부팅하는 경우, MBR 코드가 수행되어 하드디스크가 파괴된다. 악성코드는 디스크 8개까지 MBR에 0x60 크기만큼을 감염(패치)시킨다. MBR 감염 방법은 PhysicalDrive를 연 후 WriteFile을 하는 방식이다.
[그림 5] 하드디스크 파괴를 위한 준비
감염(패치)된 MBR 코드의 주요 코드는 [그림 6]과 같다. INT 13H의 43 AH(Extended Write)를 이용해디스크를 파괴한다는 것이 핵심이다.
[그림 6] MBR 어셈 코드
위의 코드를 간단히 정리하면 다음과 같다.
[그림 7]은 감염 전후의 MBR을 비교한 것으로, 코드가 변경된 것을 확인할 수 있다.
[그림 7] MBR 감염 전후 비교
부팅 시, 첫 번째 루프에서는 하드디스크의 0번 섹터에 메모리 0번지에 위치한 데이터를 40h 섹터 크기(8000h)만큼 쓰는(write) 작업을 시작한다. 두 번째 루프에서는 400h 섹터의 크기만큼을 더한 하드디스크의 80000h 위치의 동일한 메모리 영역인 0번지의 데이터 40h 섹터 크기를 쓰는(write) 방식으로 구동된다. 코드상으로는 하드디스크 4개를 대상으로 진행하나, 편의상 한 개의 디스크로 가정하고 살펴본다.
디스크의 파괴 위치는 대략적으로 [그림 8]과 같다.
[그림 8] 감염 MBR 코드가 파괴하는 디스크 영역 개요
디버깅 시 확인된 메모리 0번지의 값은 [그림 9]와 같으며, 이와 같은 내용이 디스크에 쓰여진다.
[그림 9] 감염 MBR 코드가 디스크 파괴시 참조하는 메모리 0번지
하드디스크의 0번 섹터의 값이 [그림 10]과 같이 변경된 것을 확인할 수 있다.
[그림 10] 첫 번째 루프 시 변경된 하드디스크 0 섹터
두 번째 루프에서 변경되는 영역은 [그림 11]과 같이 80000h 위치부터 8000h 크기만큼이다.
[그림 11] 두 번째 루프 시 변경된 하드디스크 40h 섹터
100h만큼 루프를 돌면서 하드디스크를 파괴한 후 현재 (감염된)MBR이 올라와 있는 메모리 영역인 7C00h 오프셋의 1 섹터 크기(200h)를 하드디스크의 0번 섹터에 쓰는(write) 코드가 수행된다. 최초 루프의 시작 위치로 점프하여, 디스크 끝부분까지 수행된다.
[그림 12] 루프 종료 시 복원되는 MBR 영역
[그림 12]에서 확인할 수 있는 바와 같이 루프 종료 시 MBR 영역은 감염 시와 동일하게 복원된 것처럼 보이나, 200h 이후의 디스크 영역은 최초 루프 시 변경된 데이터임을 확인할 수 있다.
2. 파일 파괴
시스템의 모든 드라이브의 파일과 관련해 8.3 DoS 이름 규칙이거나 확장자가 *.exe, *.dll, *.ocx, *.sys인 경우, 즉시 해당 파일을 삭제한다. 그렇지 않으면 파일의 마지막에 0x80을 덧붙이고 파일의 시작부터 0xE00(또는 파일 사이즈)만큼 특정 코드로 덮어 씌운다.
‘abcdefghijklmnopqrstuvwxyz0123456789’ 테이블에서 파일명만큼 난수를 발생시켜 랜덤하게 파일의 이름을 변경한 후 삭제한다. 이를 정리하면 [표 1]과 같다.
[표 1] 파일 확장자별 삭제 증상
해당 악성코드가 웹 스크립트 언어 확장자에 대한 처리를 달리한 점으로 미루어 공격자는 기업의 웹 서버 파괴 목적에 좀 더 무게를 둔 것으로 짐작된다. 또한 서버와 PC의 사용 행태를 고려한 다양한 변형을 제작했을 것으로 추측할 수 있다.
[그림 13] 파일 삭제를 위해 쓰여지는 쓰레기값([표 1]의 조건 3의 경우)
이전과는 또 다른 하드디스크 파괴 증상 나타나
6.25 사이버테러에 사용된 하드디스크 파괴 악성코드는 지난 3.20 사이버테러의 그것과는 차이를 보인다. 하드디스크 파괴 기능이 MBR에 삽입되어 있으며, 데이터 영역 삭제 시에 특정 문자열을 이용했던 3.20 사이버테러와 달리 이번 공격에는 랜덤한 문자열로 덮어쓰기를 시도한다. 또한 감염 즉시 데이터 영역을 삭제하는 것이 아니라 재부팅 시 삭제하는 점, 이 밖에 패스워드나 바탕화면을 변경하는 점 등도 이전에는 없던 것이다.
한편, 해당 악성코드는 안랩 내부 테스트 결과 개인 PC에서도 동작하는 것으로 확인됐다. 기업 및 기관의 서버를 타깃으로 제작된 악성코드로 추측되지만 개인 사용자 또한 각별한 주의가 요구된다.@
- AhnLabASEC