Computer >> 컴퓨터 >  >> 시스템 >> Windows 10

CPU 권한 링(Protection Ring)이란? 커널 보안의 핵심 원리

CPU 보호 링(protection ring)은 컴퓨터에 설치된 애플리케이션과 핵심 프로세스 간의 상호작용을 제한하는 구조적 계층입니다. 일반적으로 가장 바깥층인 링 3부터, 커널(kernel)이라고도 불리는 가장 안쪽 계층인 링 0까지로 구성됩니다.

링 0은 모든 시스템 프로세스의 중심에 있습니다. 커널을 제어할 수 있는 사람은 사실상 컴퓨터의 모든 측면을 통제할 수 있습니다. 이러한 핵심 영역의 남용을 막기 위해 시스템 아키텍트들은 해당 영역과의 상호작용을 엄격히 제한하며, 그 결과 사용자가 접근할 수 있는 대부분의 프로세스는 링 3으로 한정됩니다. 그렇다면 권한 링은 구체적으로 어떻게 작동할까요?

권한 링은 어떻게 상호작용할까?

링 0의 프로세스는 슈퍼바이저 모드(supervisor mode)에서 작동하기 때문에 사용자 입력이 필요하지 않습니다. 이들에 간섭하면 심각한 시스템 오류와 해결하기 어려운 보안 문제가 발생할 수 있습니다. 바로 이런 이유로 링 0은 사용자가 접근할 수 없도록 의도적으로 설계되어 있습니다.

Windows를 예로 들어보겠습니다. 링 3 프로세스의 링 0 접근은 소수의 데이터 명령으로만 제한됩니다. 커널에 접근하려면 링 3의 애플리케이션이 가상화된 메모리를 통해 처리되는 연결을 만들어야 하며, 그마저도 극소수의 애플리케이션만 허용됩니다.

여기에는 네트워크 접근이 필요한 브라우저나 네트워크 연결이 필요한 카메라 등이 포함됩니다. 또한 이러한 데이터 호출은 중요한 시스템 프로세스에 직접 간섭하지 못하도록 별도로 격리되어 있습니다.

Windows 95/98 같은 초기 버전은 권한 링 간의 차단막이 상대적으로 약했습니다. 이것이 당시 시스템이 불안정하고 오류가 잦았던 주요 원인 중 하나입니다. 반면 현대 시스템에서는 전용 하드웨어 칩을 통해 커널 메모리 보안이 한층 강화되었습니다.

현재 Windows의 침입 대비 커널 메모리 보호 기술

CPU 권한 링(Protection Ring)이란? 커널 보안의 핵심 원리

Microsoft는 Windows 10 버전 1803부터 강력한 커널 메모리 보호 기능을 도입하기 시작했습니다.

그중 가장 두드러진 것이 커널 DMA 보호(Kernel DMA Protection)입니다. 이 포괄적인 기능은 특히 PCI 핫플러그를 통해 이루어지는 DMA(Direct Memory Access) 공격으로부터 개인용 PC를 보호하도록 설계되었습니다. 이후 빌드 1903에서는 M.2 슬롯과 같은 내부 PCIe 포트까지 보호 범위가 확대되었습니다.

Microsoft가 이 영역에 추가 보호를 제공한 주된 이유 중 하나는 PCI 장치가 기본적으로 DMA 기능을 지원하기 때문입니다. 이 기능 덕분에 PCI 장치는 시스템 프로세서의 허가 없이도 시스템 메모리를 읽고 쓸 수 있는데, 이러한 특성이 PCI 장치가 높은 성능을 발휘하는 주요 원인이기도 합니다.

DMA 보호 프로세스의 세부 사항

CPU 권한 링(Protection Ring)이란? 커널 보안의 핵심 원리

Windows는 IOMMU(Input/Output Memory Management Unit) 프로토콜을 활용하여 승인되지 않은 주변 장치의 DMA 작업을 차단합니다. 다만 드라이버가 DMA 리매핑(DMA Remapping)을 통해 실행되는 메모리 격리를 지원하는 경우에는 예외가 적용됩니다.

그럼에도 불구하고 추가 권한은 여전히 필요합니다. 일반적으로 OS 관리자에게 DMA 승인을 요청하는 프롬프트가 표시됩니다. 관련 프로세스를 더 세밀하게 조정하고 자동화하려면 IT 담당자가 DmaGuard MDM 정책을 변경하여 DMA 리매핑 비호환 드라이버의 처리 방식을 결정할 수 있습니다.

내 시스템에 커널 DMA 보호 기능이 활성화되어 있는지 확인하려면 보안 센터(Security Center)를 열고 '메모리 액세스 보호' 항목의 '코어 격리 세부 정보'에서 설정을 확인하면 됩니다. 단, 이 기능은 Windows 10 버전 1803 이후 출시된 운영체제에서만 제공된다는 점에 유의해야 합니다.

CPU가 링 1과 2를 거의 사용하지 않는 이유

CPU 권한 링(Protection Ring)이란? 커널 보안의 핵심 원리

링 1과 2는 주로 드라이버와 게스트 운영체제(guest OS)에서 사용됩니다. 이 권한 수준의 코드 대부분은 원래 목적에서 일부 변경되어 왔습니다. 그 결과 현대의 대부분 Windows 프로그램은 시스템에 커널과 사용자, 단 두 개의 수준만 존재하는 것처럼 작동합니다.

다만 VirtualBox나 가상 머신(Virtual Machine)과 같은 가상화 애플리케이션은 예외적으로 링 1을 활용하여 작동합니다.

권한 링에 대한 마무리 생각

다중 권한 링 설계는 x86 시스템 아키텍처에서 비롯된 개념입니다. 하지만 모든 링 권한 수준을 항상 사용하는 것은 비효율적이며, 오히려 지연 시간 증가와 호환성 문제를 초래할 수 있습니다. 그래서 현대 운영체제는 링 0과 링 3 위주의 단순화된 구조로 보안과 성능의 균형을 유지하고 있습니다.