목차
- 커널 수준 악성코드란 무엇인가
- 커널 수준 악성코드의 작동 원리와 주요 기법
- 일반적인 유형과 행동 양상
- 예방 — 시스템 설정과 운영 방침
- Secure Boot와 TPM 2.0 활성화 확인
- 가상화 기반 보안 활성화
- 사용자 계정 제어(UAC) 강화
- 시스템과 드라이버, BIOS/UEFI 최신화
- 표준 사용자 계정으로 일상 작업 수행
- 부팅 시 스캔 주기적 실행
- 위험한 프로그램 실행 회피
- 감염 의심 시 즉시 조치 절차
- 초동 대응 체크리스트
- 루트킷 제거 도구 사용 가이드
- 재설치와 펌웨어 재플래시 고려 사항
- 운영자·사용자 역할별 체크리스트
- 사고 대응용 SOP와 런북
- 점검용 테스트 항목과 수용 기준
- 간단 용어집
- 요약
커널 수준 악성코드란 무엇인가
커널은 운영체제의 핵심 구성요소로서 하드웨어와 소프트웨어 간 상호작용을 관리합니다. 커널이 동작하는 특권 레벨을 흔히 “커널 모드” 또는 “링 0”이라고 부르며, 이 모드에서는 메모리, CPU, 장치 등 모든 시스템 자원에 대한 무제한 접근 권한을 가집니다. 커널 수준 악성코드는 바로 이 특권 레벨을 목표로 하여 커널 내부로 침투하거나 커널 권한을 획득해 정상 시스템 동작을 대체·조작하는 악성 소프트웨어를 의미합니다.
정의(한 줄): 커널 수준 악성코드는 운영체제의 커널 권한을 얻어 시스템 전반을 은밀하게 조작하는 악성 소프트웨어입니다.
중요 포인트:
- 커널 권한을 얻으면 표준 보안 소프트웨어보다 먼저 또는 더 깊게 시스템에 접근해 은닉, 지속성(persistence), 권한 상승을 달성할 수 있습니다.
- 커널에 직접 침투하면 탐지와 제거가 매우 어려워집니다. 때로는 운영체제를 완전히 재설치하거나 펌웨어 재플래시가 필요합니다.
커널 수준 악성코드의 작동 원리와 주요 기법
커널 수준 악성코드는 여러 기법을 통해 동작합니다. 주요 기법과 방어 관점에서 알아야 할 용어들을 정리합니다.
- 권한 상승(Privilege escalation): 일반 애플리케이션 권한에서 커널 권한으로 올라가는 과정.
- 드라이버/커널 모듈 삽입: 서명된 드라이버나 취약한 드라이버를 악용해 커널 모듈을 로드.
- 시스템 호출 훅킹: 시스템 호출 테이블(예: SSDT) 또는 inline 훅을 수정하여 보안 소프트웨어의 호출을 가로채거나 숨김.
- DKOM(Direct Kernel Object Manipulation): 커널 객체를 직접 조작해 프로세스, 스레드, 핸들을 은닉.
- 부트킷(bootkit): OS가 로드되기 전 부트 과정 또는 UEFI/MBR을 감염시켜 악성 코드를 먼저 실행.
- 펌웨어/BIOS 감염: 하드웨어 초기화 코드에 악성 코드를 넣어 운영체제 재설치로도 제거되지 않게 함.
- DMA 공격: 물리적 접근을 통해 외부 장치로 메모리에 직접 접근하여 코드 실행.
이들 기법은 탐지 회피와 지속성 확보에 초점을 둡니다. 따라서 방어는 사전 차단(부팅 체인 무결성, 서명 검증), 격리(VBS), 빠른 탐지(오프라인 검사)로 접근해야 합니다.
일반적인 유형과 행동 양상
- 커널 루트킷: 원격 제어, 은닉, 로그 조작, 포렌식 교란.
- 부트킷: OS 이전에 로드되어 복원·재설치 과정에서도 생존할 수 있음.
- 커널 모드 트로이목마: 특정 기능(키로깅, 방화벽 무력화, 파일 변조)에 특화.
- 커널 수준 랜섬웨어: 파일 암호화나 사용자 접근 차단을 커널 권한으로 수행하여 복구를 어렵게 함.
행동 징후(감염 의심 시):
- 평소보다 높은 CPU/메모리 사용량이나 빈번한 BSOD(블루스크린)
- 설명할 수 없는 네트워크 트래픽(외부 커맨드 앤 컨트롤)
- 보안 소프트웨어가 비활성화되었거나 업데이트가 차단됨
- 부팅 시 비정상적 동작 또는 재부팅 루프
예방 — 시스템 설정과 운영 방침
커널 수준 악성코드는 높은 권한을 요구하므로 원천적으로 권한 상승을 어렵게 하고, 부팅 체인 무결성을 확보하며 의심스러운 변화 발견 시 경고를 받도록 하는 것이 핵심입니다. 아래 항목은 가정 사용자와 기업 환경 모두에 적용 가능한 권장 조치입니다.
Secure Boot와 TPM 2.0 활성화 확인
Secure Boot는 부팅 시 로더와 커널의 디지털 서명을 확인해 검증되지 않은 코드의 실행을 차단합니다. TPM 2.0은 부팅 과정의 해시를 저장·검증하여 무결성 위반을 감지합니다.
확인 방법:
- Windows에서 “시스템 정보”를 검색하여 System Information 앱을 열고 System Summary의 Secure Boot State 값이 On인지 확인합니다.
- TPM 확인: Windows + R 누르고
tpm.msc
입력. Status가 The TPM is ready for use이며 Specification Version이 2.0인지 확인합니다.
설정 방법: BIOS/UEFI 설정에서 Secure Boot와 TPM(또는 fTPM)을 활성화합니다. 일부 구형 하드웨어는 TPM 2.0을 탑재하지 않을 수 있으므로 하드웨어 지원 여부를 확인해야 합니다.
중요: BitLocker 등 TPM에 의존하는 기능이 있는 경우 TPM을 변경하거나 초기화하면 복구 키가 필요합니다. TPM 초기화 전 반드시 복구 키 백업을 수행하세요.
가상화 기반 보안 활성화
가상화 기반 보안(VBS, Virtualization-Based Security)은 하드웨어 가상화를 이용해 보안 핵심 프로세스를 분리된 격리 환경(가상 보안 컨테이너)에 올려 커널 수준 공격의 영향을 줄입니다. HVCI(또는 메모리 무결성)도 이와 관련된 기술입니다.
활성화 방법: Windows 검색에서 “Windows 보안”을 열고 장치 보안(Device Security) → 코어 격리(Core isolation) → 메모리 무결성(Memory integrity) 을 On으로 설정합니다.
주의: 일부 오래된 드라이버는 메모리 무결성과 충돌할 수 있으며, 호환성 검사를 먼저 수행해야 합니다.
사용자 계정 제어(UAC) 강화
UAC는 애플리케이션이 관리자 권한을 얻는 시점을 사용자에게 알리고 승인을 요구합니다. UAC를 최고 수준으로 설정하면 악성 설치 시 승인을 강제로 요구하여 공격 표면을 줄입니다.
설정 방법: Windows 검색에서 “uac”를 검색해 Change User Account Control settings 를 열고 슬라이더를 최상단 Always notify로 설정합니다.
시스템과 드라이버, BIOS/UEFI 최신화
커널 수준 악성코드는 알려진 취약점을 악용합니다. 운영체제, 드라이버, 펌웨어(BIOS/UEFI)를 최신 상태로 유지하면 공격 성공 확률을 크게 낮출 수 있습니다.
권장 절차:
- Windows 업데이트를 정기적으로 확인하고 보안 패치를 적용합니다.
- 제조사 사이트에서 드라이버와 BIOS/UEFI 업데이트를 확인합니다. 부팅 시 로드되는 드라이버는 특히 취약점이 발견되기 쉬우므로 신뢰할 수 있는 출처의 서명된 드라이버만 설치하세요.
- 자동 드라이버 업데이트 도구 사용 시 신뢰 가능한 벤더 제품을 선택하고 변경 로그를 확인합니다.
표준 사용자 계정으로 일상 작업 수행
운영체제에서 관리 권한 계정으로 상시 로그인하면 악성 소프트웨어가 높은 권한을 얻기 쉬워집니다. 일상 작업에는 표준(비관리자) 계정을 사용하고, 관리자 권한이 필요할 때만 승인을 부여하세요.
표준 계정 생성 방법: Windows 설정 → 계정(Accounts) → 다른 사용자(Other Users) → 계정 추가(Add account) 후 Standard account 선택.
부팅 시 스캔 주기적 실행
부팅 전 검사(오프라인 스캔)는 운영체제 부팅 이전에 검사하므로 커널 수준 은닉 기법을 탐지하기 유리합니다. Microsoft Defender 등 대부분의 안티바이러스 제품에서 제공됩니다.
실행 방법: “Windows 보안” → 바이러스 및 위협 방지(Virus & threat protection) → 스캔 옵션(Scan options) → Microsoft Defender Antivirus(offline scan) 선택 후 지금 검사(Scan now)를 클릭하면 재부팅 후 오프라인 스캔이 실행됩니다.
위험한 프로그램 실행 회피
커널 수준 악성코드는 보통 높은 권한이나 보안 기능 비활성을 요구합니다. 게임 치트, 크랙, 불법 소프트웨어, 출처 불명 드라이버 설치 요청 등 의심스러운 프로그램은 실행하지 마십시오. 애플리케이션이 보안 설정 해제나 관리자 권한을 요구할 때는 특히 주의해야 합니다.
중요: 합법적 소프트웨어라도 서명이 없거나 출처가 불분명하면 설치를 피하는 것이 안전합니다.
감염 의심 시 즉시 조치 절차
커널 수준 감염은 영구화(persistence)를 위해 펌웨어나 부트 영역까지 침범할 수 있으므로 초동 대응 단계에서 정확하고 신속한 조치가 중요합니다.
초동 대응 체크리스트
- 네트워크 분리: 의심 장비를 즉시 네트워크에서 분리(유선/무선 모두)하여 추가 확산과 외부 제어를 차단합니다.
- 전원 관리: 감염이 의심되는 경우 즉시 시스템을 종료하거나 격리 상태로 전환합니다. 다만 일부 포렌식 기법에서는 전원 유지가 필요하므로 조직 규정에 따라 결정하세요.
- 이중 인증 및 자격 증명 변경: 의심되는 계정의 비밀번호를 깨끗한(비감염) 장치에서 변경하고, 모든 중요 자격 증명에 대해 점검 및 회전(rotate)합니다.
- 로그와 증거 보존: 이벤트 로그, 네트워크 캡처, 디스크 이미지 등 증거를 확보합니다. 가능한 경우 디스크 이미징을 통해 원본 보존 후 분석합니다.
- 루트킷 검사 도구 실행: 오프라인/부팅 전 검사를 통해 루트킷 탐지 시도.
- 필요 시 OS 재설치 및 펌웨어 재플래시: 루트킷 제거가 불가능하거나 펌웨어 감염 의심 시 재설치/재플래시를 준비합니다.
루트킷 제거 도구 사용 가이드
- 상용·무료 안티바이러스의 루트킷 스캔 옵션을 사용합니다. 일부 제품은 루트킷 전용 스캔을 별도로 활성화해야 합니다(예: Malwarebytes의 “Scan for rootkits”).
- 신뢰 가능한 벤더의 부팅 가능한 구제(Rescue) 미디어를 생성해 오프라인 검사 후 제거를 시도합니다.
- 타사의 강력한 부팅 시 검사 도구(예: Avast Rescue, Microsoft Defender Offline)를 사용해 검사합니다.
주의: 모든 루트킷이 완벽히 제거되는 것은 아니므로, 도구로 제거 후에도 재발·잔존 가능성을 고려해 추가 조치(재설치, 펌웨어 검사)를 계획해야 합니다.
재설치와 펌웨어 재플래시 고려 사항
- 운영체제 재설치: 가능한 경우 전체 디스크를 안전하게 포맷하고 운영체제를 새로 설치합니다. 단순한 복구나 업그레이드로는 루트킷이 남을 수 있습니다.
- 부트섹터와 MBR/GPT 초기화: 부트킷 감염 시 MBR 또는 EFI 파티션을 검토하고 필요하면 재생성합니다.
- BIOS/UEFI 재플래시: 펌웨어 감염이 의심되면 제조사 지침을 따라 펌웨어를 재플래시합니다. 재플래시 과정은 위험을 수반하므로 제조사 도구와 절차를 준수하세요.
- TPM 재설정: 펌웨어 재플래시 후 TPM을 초기화해야 할 수도 있습니다. 초기화 전 BitLocker 복구 키를 안전한 다른 매체에 백업하세요.
권장: 펌웨어 재플래시는 경험 많은 전문가 또는 제조사 지원을 통해 수행하는 것을 권장합니다.
운영자·사용자 역할별 체크리스트
홈 사용자 체크리스트:
- Secure Boot와 TPM 활성화 여부 확인
- Windows Update 자동 설치 활성화
- 신뢰 가능한 안티바이러스의 실시간 보호와 오프라인 스캔 주기 설정
- 표준 계정 사용, 관리자 권한은 필요 시만 사용
- 정기적 백업과 복구 키(BitLocker) 안전 보관
중소기업 IT 관리자 체크리스트:
- 엔드포인트 보안 정책으로 VBS, HVCI는 가능한 시스템에서 강제
- 드라이버 서명 정책과 신뢰할 수 있는 배포 채널 운영
- 펌웨어(UEFI/BIOS) 업데이트 절차와 중앙관리(예: Intune, WSUS)
- 사고 대응(Runbook)과 정기적인 훈련
대기업/보안팀 체크리스트:
- 하드웨어 기반 원격 검사와 하이퍼바이저 기반 모니터링 도입 검토
- 침해사고 인지·대응(EDR), 로그 중앙 수집(SIEM)과 상관분석
- 펌웨어 무결성 검증 절차 및 공급망 보안 점검
- 포렌식 및 복구 테스트 정기 수행
사고 대응용 SOP와 런북
간단 SOP(표준 운영 절차):
- 감염 의심 통보 접수
- 대상 장비 격리(네트워크 단선)
- 초기 증상 기록(로그 수집, 사용자 인터뷰)
- 디스크 이미지 생성(원본 보존)
- 오프라인 루트킷 검사 시행
- 루트킷 제거 시도 및 결과 기록
- 제거 실패 또는 펌웨어 감염 의심 시 운영체제 및 펌웨어 재설치 계획 수립
- 인증서·비밀번호·토큰 회전
- 영향을 받은 시스템의 모니터링 강화
- 포렌식 분석 결과에 따른 추가 조치 및 보고
간단 런북(실전 흐름):
flowchart TD
A[감염 의심 보고] --> B{긴급성 판단}
B -->|높음| C[네트워크 격리]
B -->|중간| D[모니터링 강화]
C --> E[디스크 이미지 생성]
E --> F[오프라인 루트킷 검사]
F --> G{검출 여부}
G -->|검출| H[루트킷 제거 시도]
G -->|미검출| I[심층 포렌식]
H --> J{제거 성공}
J -->|예| K[시스템 복구 및 모니터링]
J -->|아니오| L[OS/펌웨어 재설치]
I --> L
L --> K
점검용 테스트 항목과 수용 기준
- Secure Boot State가 On인지 확인한다.
- TPM 2.0이 활성화 및 준비 상태인지 확인한다.
- VBS(메모리 무결성)이 활성화된 시스템에서는 호환성 문제가 없어야 한다.
- 오프라인 루트킷 스캔에서 위협 없음 또는 모두 제거됨을 확인한다.
- 부팅 후 의심 프로세스나 비정상 모듈이 없어야 한다(Autoruns/Process Explorer로 확인).
- 재설치 또는 펌웨어 재플래시 후 동일 증상이 재발하지 않아야 한다.
수용 기준(예시):
- 보안 검증 후 30일간 이상 동일한 이상징후(이상 트래픽, BSOD, 권한 변경)가 관찰되지 않으면 정상으로 판단.
- 재설치 후 모든 계정의 자격 증명이 교체되고 백업·로그가 정상 복구되었을 것.
간단 용어집
- 커널: 운영체제의 핵심 코드로 하드웨어와 소프트웨어 자원 관리를 담당.
- 루트킷: 시스템 내부에서 은닉과 지속성을 제공하는 악성 소프트웨어.
- 부트킷: 부팅 체계(UEFI/MBR)를 감염시키는 악성코드.
- TPM: 하드웨어 기반 보안 모듈로 부팅 무결성 등을 지원.
- VBS: 가상화를 이용해 보안 핵심을 격리하는 기술.
요약
커널 수준 악성코드는 가장 위험한 악성코드 범주 중 하나지만, 적절한 사전 방어와 운영·대응 절차를 통해 위험을 크게 줄일 수 있습니다. 핵심은 부팅 체인 무결성 확보(Secure Boot, TPM), 가상화 기반 보안, 최신 상태 유지, 최소 권한 원칙 적용, 오프라인 검사와 명확한 사고 대응 절차입니다. 감염이 의심되면 신속히 네트워크를 격리하고 증거를 보존한 뒤 오프라인 스캔, 루트킷 제거 시도, 필요 시 OS와 펌웨어의 클린 설치를 수행하세요.
Image credit: Freepik. All screenshots by Karrar Haider.