라자루스 그룹의 BYOVD를 활용한 루트킷 악성코드 분석 보고서

북한의 해킹 그룹으로 알려진 라자루스 그룹은 지난 2009년부터 국내를 비롯하여 미국, 아시아, 유럽 등의 다양한 국가를 대상으로 공격을 수행하고 있다. 자사 ASD(AhnLab Smart Defense) 인프라에 따르면 2022년 상반기에 라자루스 그룹은 국내의 방산, 금융, 언론, 제약 산업군에 대해 APT(Advanced Persistent Threat) 공격 활동을 전개하였다.

안랩에서는 이러한 APT 공격을 면밀히 추적하였으며 공격 과정에서 보안 제품을 무력화하는 정황을 확인하였다. 공격 과정을 분석한 결과, 라자루스 그룹은 오래된 버전의 이니텍(INITECH) 프로세스를 악용하여 기업에 초기 침투를 수행한 뒤 공격자 서버로부터 루트킷 악성코드를 다운로드 받아 실행하였다.

이번 제품 무력화 공격에 확인된 루트킷 악성코드는 취약한 드라이버 커널 모듈을 악용하여 직접적으로 커널 메모리 영역에 대해 읽기/쓰기 행위를 수행하였으며, 이에 따라 AV(Anti-Virus)를 포함한 시스템 내 모든 모니터링 시스템이 무력화되었다.

이러한 기법은 “BYOVD(Bring Your Own Vulnerable Driver)”라고 불리며 주로 하드웨어 공급 업체의 취약한 드라이버 모듈을 통해 공격이 이루어지는 것으로 알려져 있다. 최신 윈도우 운영체제에서는 더 이상 서명되지 않은 드라이버 로드는 불가하지만, 공격자는 이처럼 합법적으로 서명된 취약한 드라이버를 이용하여 쉽게 커널 영역을 조작할 수 있다.

이번 사례에서 라자루스 그룹이 사용한 취약한 드라이버 모듈은 “ENE Technology”에서 제작한 하드웨어 관련 모듈이다. 이 모듈은 1999년 Yariv Kaplan이 개발한 “WinIO” 라는 오픈소스 라이브러리를 그대로 사용하였다. 해당 모듈의 문제점은 오래된 오픈소스를 사용한 것뿐만 아니라 모듈을 호출하는 프로세스에 대한 검증 조건이 취약하여 간단한 우회 과정을 통해 커널 임의의 메모리 영역에 대해서 읽기/쓰기가 가능하다는 점이다.

따라서 공격자는 해당 모듈을 통해 임의의 커널 메모리 영역에 대한 읽기/쓰기를 수행하였으며 파일, 프로세스, 스레드, 레지스트리, 이벤트 필터 등 커널 관련 전역 데이터 수정을 통해 AV를 포함한 시스템 내 모든 모니터링 프로그램을 무력화하였다.

목차

1. 개요
2. ene.sys 분석
… 2.1. 물리 메모리 매핑
… 2.2. 호출자 및 유효 데이터 검증
……. 2.2.1. SB_SMBUS_SDK.dll 모듈 로드 검증
……. 2.2.2. AES 암호화 IOCTL 통신 및 호출 시간 검증
… 2.3. ene.sys 드라이버(WinIO 라이브러리) 취약성
3. 루트킷 악성코드 분석
… 3.1. 루트킷 로더 (~BIT353.tmp)
… 3.2. 루트킷 (사전 준비 단계)
……. 3.2.1. 루트킷 익스포트 함수
……. 3.2.2. 감염 대상 검증 루틴
……. 3.2.3. OS 버전 확인
……. 3.2.4. 취약한 드라이버 모듈 로드
……. 3.2.5. Kernel DTB (Directory Table Base) 주소 획득
……. 3.2.6. 주소 변환 (가상 주소 -> 물리 주소)
……. 3.2.7. 스레드 객체의 PreviousMode 필드 변조
… 3.3. 루트킷 (보안 제품 무력화 단계)
……. 3.3.1. 미니 파일 필터(fltmgr.sys) 무력화
……. 3.3.2. 프로세스/스레드/모듈 탐지 무력화
……. 3.3.3. 레지스트리 콜백 무력화
……. 3.3.4. 오브젝트 콜백 무력화
……. 3.3.5. WFP 네트워크 필터 무력화
……. 3.3.6. 이벤트 추적 무력화
안랩 대응 현황
결론
IoC (Indicators of Compromise)
파일 경로 및 이름
파일 Hashes (MD5)
참고 문헌

Categories:악성코드 정보

Tagged as:, , ,

5 3 votes
별점 주기
guest
0 댓글
Inline Feedbacks
View all comments