커널 보호를 위한 정적 바이너리 재작성과 프로그램 셰퍼딩
초록
본 논문은 Windows 커널과 핵심 모듈을 정적 재작성하여 모든 제어 흐름을 감시하고, 비정상적인 점프를 차단함으로써 원격 및 로컬 커널 공격을 방어하는 시스템을 제안한다. 재작성된 바이너리는 별도 파일 또는 직접 수정된 PE 형태로 제공되며, 인스트루멘테이션, 주소 재계산, 오프셋 복구의 3단계 과정을 거친다. 모니터링 드라이버는 메모리 맵을 활용해 실행 권한이 없는 페이지로의 전이를 탐지하고, 악성 시도를 로그하거나 시스템을 종료한다. 실험 결과 CVE‑2009‑3103, CVE‑2010‑2743 등 실제 익스플로잇을 차단했으며, 통합 단계는 수 초, 런타임 오버헤드는 2~5% 수준에 머문다.
상세 분석
이 연구는 기존 동적 바이너리 인스트루멘테이션이 커널 레벨에서 불안정하고 성능 저하를 초래한다는 점을 인식하고, 완전 정적 재작성(static binary rewriting) 접근을 선택한다. 핵심 아이디어는 PE 포맷을 그대로 유지하면서 기존 코드와 데이터를 그대로 보존하고, 새로운 인스트루멘테이션 코드를 파일 끝에 추가하는 것이다. 이를 위해 분석기(analyzer) 모듈은 재귀적 디스어셈블과 휴리스틱을 결합해 ‘Solid code’와 ‘Prospect code’를 구분한다. Solid code는 확실히 명령어로 판별된 영역이며, Prospect code는 재배치 정보나 테스트를 통해 추정된 영역이다. 이렇게 구분함으로써 코드‑데이터 혼동을 최소화하고, 특히 짧은 상대 점프 명령을 5바이트 이상으로 확장해 재배치 단계에서 오프셋 충돌을 방지한다.
재작성 단계는 Instrumentation, Calculation, Repairing의 3단계로 구성된다. Instrumentation 단계에서는 CALL, 간접 JMP, RET 명령 앞에 필터링 루틴을 삽입한다. 여기서 필터는 메모리 맵을 조회해 대상 페이지가 실행 가능하고 커널/모듈 영역인지 확인한다. 이때 API 호출을 통한 외부 모듈은 제외해 성능 저하를 억제한다. Calculation 단계에서는 새로 생성된 기본 블록에 대한 가상 주소를 할당하고, 필요시 재배치 테이블을 갱신한다. Repairing 단계에서는 기존 상대 주소를 새 주소에 맞게 보정해 프로그램 흐름이 끊기지 않도록 한다. 특히 첫 기본 블록이 5바이트 미만인 경우 패치가 불가능하다고 판단해 원본 함수를 그대로 두며, 이는 시스템 안정성을 위한 보수적 선택이다.
모니터링 모듈은 커널 드라이버 형태로 구현되어, 초기화 시 현재 로드된 모듈들의 페이지 속성을 메모리 맵에 저장한다. 필터링 로직은 페이지가 쓰기 가능하거나 사용자 공간에 속하면 즉시 차단한다. 로컬 권한 상승 방지를 위해 NtQuerySystemInformation을 훅하고, SystemModuleInformation 클래스에 대한 요청을 모두 거부한다. 이는 공격자가 커널 모듈의 베이스 주소를 알아내는 것을 방지해, 주소 기반 익스플로잇을 무력화한다. 탐지 후 동작은 로그만 남기고 계속 실행하거나, 즉시 시스템을 셧다운하는 두 가지 옵션을 제공한다.
성능 평가에서는 통합 단계(디스어셈블, 기본 블록 생성, 재작성) 전체가 24초 내에 완료되었으며, 런타임 오버헤드는 Windows 7 기준 25% 수준으로 보고된다. 이는 정적 재작성 방식이 동적 인스트루멘테이션에 비해 훨씬 낮은 부하를 유지함을 의미한다. 다만, 현재는 모든 함수에 패치를 적용하지 못하고, 일부 함수는 원본 그대로 남겨야 하는 제약이 있다. 또한, 파일 소유권을 변경하고 Windows File Protection을 우회하는 과정이 필요해 배포 및 유지보수 측면에서 추가적인 관리 비용이 발생한다.
전체적으로 이 논문은 정적 바이너리 재작성과 프로그램 셰퍼딩을 결합해 커널 수준의 제어 흐름을 실시간 감시하고 차단하는 실용적인 방안을 제시한다. 코드‑데이터 구분, 상대 주소 재계산, 안전한 패치 결정 등 여러 기술적 난관을 체계적으로 해결했으며, 실제 CVE 사례에 대한 차단 성공을 통해 실효성을 입증한다. 그러나 배포 자동화, 전체 시스템 호환성, 그리고 복잡한 커널 자체 변형 코드에 대한 대응력 강화가 향후 연구 과제로 남는다.
댓글 및 학술 토론
Loading comments...
의견 남기기