[소만사 악성코드 분석리포트 ] CrowdStrike 보안 업데이트 사칭, 와이퍼 악성코드 분석
1. 요약
1) CrowdStrike의 소프트웨어 장애 사건을 이용하여
보안 소프트웨어 업데이트 파일로 위장한 와이퍼 악성코드가 유포됨.
피해자가 직접 클릭하여 와이퍼 악성코드를 실행하도록 유도.
2) 와이퍼 악성코드는 1차 Dropper인 보안 패치 위장 악성코드를 통해
2차 인젝터인 Champion.pif를 거쳐 RegAsm.exe 내 삽입되어
데이터 삭제, 시스템 파괴, 복구 방해를 수행함.
3) 목표 지향적인 와이퍼 악성코드는 이메일 첨부 파일, 악성 웹사이트,
제로데이 취약점을 통해 배포되어 데이터나 시스템에
영구적인 손상을 안겨 큰 피해를 발생시킬 수 있음.
2. 대응 방안
1) Privacy-i EDR과 같은 EDR 제품을 통해 취약점 실행을 행위 기반으로 차단
2) 주요 데이터는 주기적인 백업을 통해 시스템 파괴 시에도 복구가 가능하도록 대비
3) 논리적 망분리를 적용하여 악성코드 PC 유입을 원천 차단
4) AV(패턴기반탐지) + EDR(행위기반탐지) 솔루션
5) PC 취약점을 주기적으로 점검, 보완
6) 신뢰할 수 없는 메일의 첨부파일 실행 금지
7) 비 업무 사이트 및 신뢰할 수 없는 웹사이트의 연결 차단
8) OS나 어플리케이션은 최신 형상 유지
────────────────────────────────────────────────────────────
1. 개요
1.1 배경
[그림 1] 해외 유명 보안업체 크라우드 스트라이크 사칭 이메일
소만사 악성코드 분석 센터는 최근 CrowdStrike(이하 크라우드 스트라이크)의 보안 소프트웨어 업데이트 파일로 위장하여
전 세계 시스템에 장애를 발생시켜 큰 피해를 유발한 와이퍼 악성코드가 유포되고 있는 것을 확인하고, 신속히 악성코드 샘플을 확보해 분석하였다.
또한 본 악성코드 분석 보고서 발간을 통해 와이퍼 악성코드의 특징과 대응 방안에 대해 서술하였다.
공격자는 피해자에게 CrowdStrike를 사칭한 소프트웨어 업데이트 안내 메일을 전송해 첨부 파일 다운로드를 유도하였다.
해당 파일은 실제 CrowdStrike 아이콘을 사용하여 사용자의 의심을 피한 악성코드였다.
또한 공격자는 윈도우 호스트 장애 대응 및 보안 업데이트로 위장한 링크를 이메일에 포함시켰으며,
사용자가 링크를 클릭하면 ‘Update’라는 이름의 압축 파일이 다운로드된다.
이 압축 파일에는 보안 패치로 가장한 와이퍼 악성코드가 포함되어 있었다.
피해자가 이를 실행할 경우 시스템이 파괴되며, 그 결과가 공격자에게 전송된다.
────────────────────────────────────────────────────────────
2. 정보
2.1 파일 정보
[표 1] 해외 유명 보안 업체 크라우드 스트라이크의 업데이트 파일로 위장한 압축 파일
[표 2] 악성코드를 드롭하는 업데이트 위장 실행 파일
[표 3] 드롭되어 최종 페이로드를 인젝션하는 인젝터
[표 4] 와이퍼 악성코드가 인젝션되는 정상 윈도우 유틸리티
────────────────────────────────────────────────────────────
2.2 크라우드 스트라이크 사칭 공격 흐름
[그림 2] 국내 유명 엔터테인먼트 社 사칭 공격 흐름
[그림 3] 크라우드 스트라이크의 업데이트 파일로 위장한 와이퍼 악성코드
① 크라우드 스트라이크 사칭 악성 이메일 제작
공격자는 피해자에게 보낼 와이퍼가 첨부된 악의적인 이메일을 제작한다.
② 피해자에게 악성 이메일 송신
해커는 악의적인 이메일 내 보안 패치로 위장한 압축 파일을 삽입하고 피해자에게 발송한다.
③ 압축 파일 내 보안 패치로 위장한 와이퍼 악성코드
압축을 해제하고 보안 패치를 실행한 사용자의 PC에서 와이퍼 악성코드가 실행된다.
④ 와이퍼 악성코드에 의한 피해자 시스템 파괴
와이퍼 악성코드가 실행되어 사용자의 시스템 내 모든 정보가 파괴된다.
⑤ 해커에서 작업 결과 전송
파괴 작업 수행 결과는 텔레그램을 통해 해커에게 전송한다.
────────────────────────────────────────────────────────────
3. 분석
3.1 와이퍼 악성코드 Dropper 분석
3.1.1 DLL 로드 확인
[그림 4] DLL 로드 확인
COMCTL32.DLL이 정상적으로 로드되어 있는지 확인한다.
이는 공통 컨트롤을 사용하기 위함이며,
본 악성코드에서 추후 사용자의 악성코드 실행 유도를 하기 위해 툴팁을 생성하고
Temp 폴더가 없을 시 이를 생성하도록 유도하기 위한 툴팁에도 사용된다.
3.1.2 Temp 폴더 존재 확인
[그림 5] Temp 폴더 존재 확인
향후 Dropper는 Temp 폴더에 악성코드를 드롭하고 이후 해당 악성코드를 실행시키는 흐름을 갖는다.
본 행위를 위해 동적으로 API를 로드하여 Temp 폴더의 존재를 확인하는 작업을 수행한다.
3.1.3 Temp 폴더 경로 확인
[그림 6] Temp 폴더 경로 확인
Temp 폴더의 존재를 확인한 후 GetTempPathW API를 사용하여 Temp 폴더 경로를 확인한다.
3.1.4 Temp 폴더 내 파일 생성 가능 여부 확인
[그림 7] Temp 폴더 내 파일 생성 가능 여부 확인
최종적으로 CreateDirectoryW API를 호출해
Temp 폴더의 존재 여부를 확인하고, 폴더가 없을 경우 생성한다.
또한, 해당 폴더에 파일 생성이 가능한지 확인하기 위해
임시 파일을 생성한 후, 성공하면 이를 삭제한다.
3.1.5 Dropper 내 악성 리소스 획득
[그림 8] Dropper 내 악성 리소스 획득
자기 자신의 바이너리를 읽어 내부에 존재하는 악성 리소스를 획득한다.
악성 리소스는 이후, 이전에 구한 Temp 폴더 내 생성되어 추가적인 악성 행위를 수행하게 된다.
3.1.6 사용자 사용 언어 확인
[그림 9] 사용자 사용 언어 확인
GetUserDefaultUILanguage API를 호출하여 사용자가 사용하는 언어를 확인한다.
이는 추후 사용자의 악성코드 실행을 유도하기 위한 툴팁에
안내 메시지로 사용될 언어를 확인하는 작업이다.
3.1.7 Temp 폴더 작업 디렉토리 설정
[그림 10] Temp 폴더 작업 디렉토리 설정
Temp 폴더 내 악성 파일 드롭 및 악의적인 행위에 필요한 데이터를 생성하기 위해
현 작업 디렉토리를 Temp 폴더로 변경한다.
3.1.8 페이로드 및 주요 악성 리소스 분할 드롭
[그림 11] Temp 폴더 내 와이퍼 및 주요 악성 리소스 분할 드롭
Temp 폴더 내 와이퍼의 PE 파일 조각과 악성 리소스들을 분할하여 드롭한다.
이 분할된 파일들은 이후 다시 재조합 및 파싱되어 페이로드와 악성 리소스로 동작하게 된다.
[표 5] 드롭되는 파일 이름
3.1.9 윈도우 유틸리티를 통한 페이로드 재조립 및 악성 행위 수행
CreateProcessW API를 반복적으로 호출하여 윈도우 프로세스를 실행하며 악성 행위를 수행하는데,
이는 아래와 같이 수행된다
[그림 12] 추가 페이로드 생성 및 실행
새로 생성된 Temp 폴더 내 564784 폴더에는
‘Champion.pif’ 이름의 AutoIt v3 Script 파일이 생성된다.
이와 함께 ‘L’이라는 파일도 생성되는데,
이들은 각각 최종 와이퍼 코드를 대상 프로세스에 인젝션하는 인젝터와 와이퍼 소스코드이다.
이들은 생성과 동시에 실행된다.
3.1.10 타임아웃 및 Dropper 종료
[그림 13] 타임아웃
1차 Dropper인 보안 패치 위장 악성코드는 마지막으로 타임아웃을 15초로 설정하고 종료한다.
이를 통해 와이퍼 악성코드, 인젝터, 와이퍼 코드가 피해자 PC에 생성된다.
────────────────────────────────────────────────────────────
3.2 Champion.pif 인젝터 분석
3.2.1 권한 확인 및 관리자 권한으로 실행
[그림 14] 관리자 권한 확인 및 실행
2차 인젝터인 Champion.pif는 자신의 권한을 확인하고
관리자 권한이 아닐 경우 관리자 권한으로 자기 자신을 실행한다.
3.2.2 안티 디버깅
[그림 15] 안티 디버깅
IsDebuggerPresent API를 호출하여 현재 디버깅되고 있는지 확인한 후 안티 디버깅을 수행한다.
3.2.3 와이퍼 코드 로드
[그림 16] 와이퍼 코드 로드
Dropper가 생성한 ‘L’ 와이퍼 코드 파일을 메모리로 읽어 이를 로드한다.
해당 코드 파일은 복잡하게 난독화 및 암호화되어 있어
이를 일련의 과정을 통해 복호화하고 재가공하여 추후 윈도우 유틸리티에 인젝션한다.
3.2.4 윈도우 유틸리티 생성
[그림 17] 윈도우 유틸리티 생성
인젝션을 수행해 와이퍼로 동작할 윈도우 유틸리티를 현재 폴더에 생성한다.
해당 윈도우 유틸리티는 RegAsm으로 어셈블리 등록 도구라고도 불리며,
악성 파일이 아닌 정상적인 윈도우 유틸리티이다.
3.2.5 프로세스 권한 획득
[그림 18] 탐색기 핸들을 열어 권한 획득
RegAsm을 실행하고 인젝션을 수행하기에 앞서, 탐색기의 핸들을 열어 프로세스의 권한을 획득한다.
이를 통해 향후 와이퍼로서 동작할 RegAsm 프로세스에 필요한 권한을 주기 위함이다.
3.2.6 RegAsm 실행 및 와이퍼 코드 삽입
[그림 19] RegAsm 내 와이퍼 코드 삽입
RegAsm을 실행하고 이전의 L 파일에서 획득한 와이퍼 악성코드를 삽입한다.
위와 같이 Native API를 이용하여 수행되는데,
이는 저수준의 함수 호출로서 후킹 기반 탐지를 피할 확률을 높혀준다.
────────────────────────────────────────────────────────────
3.3 RegAsm.exe 내 와이퍼 코드 분석
3.3.1 RegAsm.exe의 경로 획득
[그림 20] RegAsm.exe의 경로 획득
RegAsm.exe는 인젝터로부터 내부에 삽입된 와이퍼 코드가 실행을
시스템 내 모든 경로를 탐색하며 파일을 파괴한다.
3.3.2 RegAsm.exe의 파일 타입 확인
[그림 21] 파일 타입 확인 후 대상 여부 판단
RegAsm.exe는 경로 내 파일이 존재하면 해당 파일의 타입을 확인하고
SYS 파일 외 등 시스템에 장애를 발생시키지 않는 확장자가 발견되면 이를 파괴한다.
3.3.3 RegAsm.exe의 파일 파괴
[그림 22] 파일 내용 덮어쓰기 후 삭제
RegAsm.exe 내 와이퍼 악성코드는
대상 파일을 0으로 파일 크기만큼 덮어씌우며 모든 데이터를 파괴한다.
이후 대상 파일이 다 덮어씌워지면 해당 파일을 제거한다.
3.3.4 시스템 장애/파괴
[그림 23] 와이퍼로 유발된 시스템 장애/파괴
경로 내 존재하는 대부분의 파일을 파괴하여 시스템에는 심각한 장애가 유발된다.
위와 같이 피해 PC 내 존재하는 대부분의 파일은 파괴되어 정상적인 동작을 할 수가 없게 된다.
[표 6] 소만사 악성코드 분석 센터 분석 결과
────────────────────────────────────────────────────────────
4. Privacy-i EDR 탐지 정보
4.1 이상 파일 I/O 행위 탐지를 통한 와이퍼 탐지 및 차단
[그림 24] 이상 파일 I/O 기반 와이퍼 탐지 및 차단
와이퍼 악성코드는 시스템 내부의 데이터를 파괴하고
복구가 불가한 상태로 만드는 이상 파일 I/O 행위를 수행한다.
소만사의 Privacy-i EDR은 이러한 시스템 파괴 행위를 이상 파일 I/O 행위로 탐지 및 차단하고 시스템의 복구까지 완료하였다.