메모리 포렌식 기반 루트킷 탐지 시스템 MASHKA
초록
본 논문은 메모리 덤프와 분석을 통한 디지털 포렌식의 한계점을 짚고, 기존 도구들의 안티포렌식 회피 취약성을 보완한 새로운 시스템 MASHKA를 제안한다. MASHKA는 재부팅 없이도 다양한 플랫폼에서 빠르게 메모리를 수집하고, 커널 구조를 직접 조작하는 루트킷에 대한 견고한 탐지를 제공한다. 논문은 시스템 설계, 구현 세부 사항, 그리고 실제 루트킷 및 안티루트킷 도구에 대한 실험 결과를 제시한다.
상세 분석
MASHKA는 메모리 포렌식 분야에서 가장 큰 문제 중 하나인 안티포렌식 기술에 대한 저항성을 핵심 설계 목표로 삼았다. 기존 하드웨어 기반 덤프 장치는 물리적 접근이 필요하고, 소프트웨어 기반 툴은 종종 페이지 테이블을 조작하는 루트킷에 의해 위조될 위험이 있다. MASHKA는 이러한 위험을 최소화하기 위해 두 단계의 수집 메커니즘을 도입한다. 첫 번째 단계는 커널 모드 드라이버를 이용해 물리 메모리 페이지를 직접 읽어들이는 방식이며, 이때 DMA‑like 접근을 흉내 내어 페이지 테이블을 우회한다. 두 번째 단계는 사용자 모드에서 메모리 스냅샷을 검증하고, 해시 기반 무결성 검사를 수행한다. 이중 검증 구조는 루트킷이 하나의 경로를 차단하더라도 다른 경로를 통해 정확한 메모리 이미지를 확보할 수 있게 한다.
또한 MASHKA는 메모리 이미지의 구조화된 파싱 엔진을 포함한다. 파싱 엔진은 Windows, Linux, macOS 등 주요 운영체제의 커널 객체 레이아웃을 사전 정의된 템플릿으로 매핑한다. 이를 통해 프로세스 리스트, 모듈 리스트, 핸들 테이블, 그리고 페이지 테이블 자체를 자동으로 추출한다. 특히 페이지 테이블 파싱은 물리 주소와 가상 주소 매핑을 역추적하여, 루트킷이 가짜 페이지를 삽입했는지 여부를 판단한다. 이 과정에서 MASHKA는 메모리 페이지에 대한 체크섬을 계산하고, 알려진 정상값과 비교함으로써 변조 여부를 신속히 식별한다.
루트킷 탐지 알고리즘은 두 가지 주요 기법을 결합한다. 첫 번째는 서명 기반 탐지로, 알려진 루트킷 코드 조각이나 비정상적인 함수 포인터 패턴을 검색한다. 두 번째는 행동 기반 탐지로, 커널 객체 간 비정상적인 연결 관계나 숨겨진 프로세스/드라이버가 존재하는지를 그래프 분석 기법으로 검증한다. 이때 MASHKA는 시간적 스냅샷을 연속적으로 수집해 변화 양상을 추적함으로써, 일시적으로 은폐되는 루트킷도 포착한다.
실험 결과는 MASHKA가 기존 도구 대비 2배 이상의 수집 속도를 보이며, 99.8% 이상의 탐지 정확도를 달성했음을 보여준다. 특히 최신 커널 모드 루트킷인 “Ring‑3 Hooker”와 “SilentSys”에 대해서는 페이지 테이블 변조를 정확히 식별하고, 숨겨진 프로세스를 복원하는 데 성공했다. 안티루트킷 도구인 “RootkitRevealer”와 “GMER”와의 비교에서도 MASHKA는 false negative를 현저히 낮추었으며, false positive 비율도 기존 도구와 동등 수준을 유지했다.
보안 현장 적용성을 고려해 MASHKA는 모듈형 설계와 플러그인 인터페이스를 제공한다. 사용자는 필요에 따라 새로운 OS 템플릿이나 탐지 플러그인을 추가할 수 있다. 또한, 수집된 메모리 이미지는 표준 포맷(Lime, Rekall)으로 내보낼 수 있어 기존 포렌식 워크플로와의 호환성을 확보한다. 이러한 설계는 향후 클라우드 기반 메모리 포렌식이나 실시간 위협 인텔리전스와의 연계에도 유연하게 대응할 수 있게 한다.
댓글 및 학술 토론
Loading comments...
의견 남기기