시스템 관리 모드
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
시스템 관리 모드(SMM)는 전력 관리, 하드웨어 제어 등 시스템 전체 기능을 처리하기 위한 특수 목적 운영 모드이다. SMM은 펌웨어(BIOS 또는 UEFI)에 의해 사용되며, 시스템 관리 인터럽트(SMI)를 통해서만 진입할 수 있다. SMM은 시스템 이벤트 관리, 전원 관리, 보안 기능 제공 등 다양한 용도로 사용되지만, 운영체제가 SMI를 무시하거나 비활성화할 수 없어 루트킷의 대상이 될 수 있다는 문제점이 있다. SMM 코드는 하드웨어 설정과 호환되지 않거나, CPU 시간을 앗아가고, 실시간 컴퓨팅 응용 프로그램의 동작을 방해할 수 있으며, 분석을 위해서는 특수한 도구가 필요하다.
더 읽어볼만한 페이지
- 바이오스 - 아메리칸 메가트렌즈
아메리칸 메가트렌즈(AMI)는 1985년에 설립된 회사로, BIOS 펌웨어, 서버용 마더보드, 스토리지 컨트롤러 등을 공급하며, 현재는 AMIBIOS, Aptio, AMIDiag 등 다양한 제품을 제공한다. - 바이오스 - 부트 섹터
부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다. - X86 아키텍처 - 물리 주소 확장
물리 주소 확장(PAE)은 x86 아키텍처에서 32비트 주소를 36비트 이상으로 확장하여 CPU가 4GB 초과 물리 메모리에 접근하도록 하는 기술로, 페이지 테이블 확장 및 추가 페이지 테이블을 통해 최대 64GB 메모리를 지원하며 AMD64 아키텍처에서 가상 주소 공간 확장에 사용되고 운영 체제, 칩셋, 마더보드의 지원이 필요하며 CPUID 플래그로 지원 여부를 확인한다. - X86 아키텍처 - X86 가상화
X86 가상화는 x86 아키텍처 기반 시스템에서 가상 머신을 구현하는 기술로, 소프트웨어 기반 가상화와 하드웨어 지원 가상화로 나뉘며, CPU 제조사의 가상화 확장 기술을 활용하여 가상 머신의 성능을 향상시킨다.
시스템 관리 모드 | |
---|---|
시스템 관리 모드 (System Management Mode) | |
유형 | CPU 작동 모드 |
약칭 | SMM |
사용 목적 | 전원 관리, 시스템 보안, 독점 하드웨어 기능과 같은 고급 시스템 기능을 처리 |
기술적 세부 사항 | |
진입 방법 | 시스템 관리 인터럽트 (SMI) |
SMI 활성화 조건 | 소프트웨어 하드웨어 이벤트 |
SMI 처리 | 시스템 관리 핸들러 (SM Handler)에 의해 처리 |
SM Handler 위치 | 시스템 메모리의 보호된 영역 (일반적으로 0x80000000-0x8000FFFF) |
특징 | 운영 체제 및 일반 소프트웨어에 투명하게 작동 높은 권한 수준에서 실행 실질적인 무제한적인 하드웨어 접근 권한 |
취약점 | 링-3 루트킷에 악용될 가능성 존재 보안 취약점을 이용한 공격 가능 |
역사 | |
최초 도입 | 인텔 386SL |
사용 예시 | ACPI 표준 구현 |
보안 고려 사항 | |
중요성 | 운영체제 커널보다 더 높은 권한을 가짐 |
잠재적 위험 | 루트킷 설치 및 시스템 제어 탈취 |
보호 방법 | SMI 핸들러 보안 강화 펌웨어 업데이트를 통한 보안 패치 적용 하드웨어 기반 보안 기술 활용 |
2. 작동 방식
SMM은 시스템 관리 인터럽트(SMI)를 통해서만 진입할 수 있다. 프로세서는 펌웨어에 의해 CPU의 다른 운영 모드에서 접근할 수 없도록 만들어야 하는 별도의 주소 공간(SMRAM)에서 SMM 코드를 실행한다.[7]
시스템 관리 모드는 휴지 실 모드로 최대 4GB의 메모리를 처리할 수 있다. x86-64 프로세서에서 SMM은 실제 주소 모드로 4GB 이상의 메모리를 처리할 수 있다.[8]
SMM은 SMI(시스템 관리 인터럽트)를 통해 진입하며, 이는 다음과 같은 방식으로 호출된다.
- 마더보드 하드웨어 또는 칩셋이 프로세서 칩의 지정된 핀인 ''SMI#''을 통해 신호를 보낸다.[16] 이 신호는 독립적인 이벤트일 수 있다.
- 시스템 소프트웨어가 마더보드 로직에서 특수하다고 간주하는 위치에 대한 I/O 액세스를 통해 트리거되는 소프트웨어 SMI (일반적으로 포트 0B2h)이다.[17]
- 펌웨어가 프로세서 칩이 작동하도록 요청한 위치에 대한 I/O 쓰기.
SMM에 진입하면, 프로세서는 SMBASE (SMBASE 레지스터 내용) + 8000h (기본적으로 38000h) 주소의 첫 번째 명령어를 찾으며, CS = 3000h 및 EIP = 8000h 레지스터를 사용한다. CS 레지스터 값 (3000h)은 SMM 상태에서 프로세서가 실제 모드 메모리 주소를 사용하기 때문이다. 이 경우, CS는 내부적으로 오른쪽에 0h가 추가된다.
3. 용도
SMM은 다음과 같은 다양한 용도로 사용된다.
- 메모리나 칩셋 오류와 같은 시스템 이벤트를 관리한다.
- 높은 CPU 온도나 시스템 끄기와 같은 시스템 보안 기능을 제공한다.
- 팬 켜기와 같은 전원 관리 기능을 제공한다.
- 버그가 있거나 장착되지 않은 메인보드 하드웨어를 가상으로 구현한다.
- USB로부터 PS/2 마우스나 키보드를 가상으로 구현한다.
- 도시바와 IBM 노트북 컴퓨터와 같은 시스템 구성을 담당한다.[27]
- 신뢰 플랫폼 모듈(TPM)에 대한 호출을 가상으로 구현한다.[28]
- 고급 전원 관리(APM) 기능을 구현한다.
- 고급 구성 및 전원 인터페이스(ACPI) 기능을 구현한다.[9][10]
- 시스템 관리 BIOS(SMBIOS) 기능을 지원한다.
- 전압 조정 모듈 및 LPCIO(슈퍼 I/O 또는 내장 컨트롤러)와 같은 전원 관리 작업을 제어한다.
- USB 마우스/키보드를 PS/2 마우스/키보드로 에뮬레이션하는 ''USB 레거시 지원''을 제공한다.[11]
- 신뢰 플랫폼 모듈(TPM)을 관리한다.[12]
- USB 핫스왑 및 썬더볼트 핫스왑을 포함한 BIOS별 하드웨어 제어 프로그램을 지원한다. (운영 체제 런타임)[13]
- 블랙햇 2008[14] 및 2015[15]에서 시연된 것처럼 높은 권한의 루트킷을 실행하는데 악용될 수 있다.
4. 문제점
설계상 운영체제는 SMI를 무시하거나 비활성화할 수 없다. 이러한 특징 때문에 SMM은 악의적인 루트킷의 공격 대상이 될 수 있으며,[18][19] 여기에는 NSA의 "임플란트"가 포함된다.[20] 예를 들어, Juniper Networks 방화벽용 SOUFFLETROUGH,[21] J-시리즈 라우터용 SCHOOLMONTANA,[22] DELL용 DEITYBOUNCE,[23] HP Proliant 서버용 IRONCHEF 등이 있다.[24]
부적절하게 설계되고 충분히 테스트되지 않은 SMM BIOS 코드는 잘못된 가정을 할 수 있으며, PAE 또는 64비트 롱 모드와 같은 다른 x86 운영 모드를 중단할 때 제대로 작동하지 않을 수 있다.[25] 리눅스 커널 문헌에 따르면, 2004년경 이러한 버그가 있는 USB 레거시 지원 기능의 구현은 Intel E7505 칩셋 기반의 마더보드에서 충돌의 흔한 원인이었다.[11]
SMM 코드(SMI 핸들러)는 시스템 펌웨어(BIOS)에 의해 설치되므로, 운영체제와 SMM 코드는 APIC 설정과 같이 호환되지 않는 하드웨어 설정에 대한 기대를 가질 수 있다.
SMM에서의 작업은 애플리케이션, 운영체제 커널 및 하이퍼바이저에서 CPU 시간을 뺏어가며, 각 SMI가 모든 코어가 모드를 전환하게 하므로 멀티코어 프로세서의 경우 그 영향이 더 커진다.[26] SMM으로 진입하고 종료하는 데에는 CPU 상태를 메모리(SMRAM)에 저장하고 모든 쓰기 백 캐시를 플러시해야 하는 오버헤드가 발생한다. 이는 실시간 동작을 파괴하고 클럭 틱 손실을 유발할 수 있다. Windows 및 Linux 커널은 "SMI 타임아웃" 설정을 정의하여 SMM 핸들러가 운영체제에 제어 권한을 반환해야 하는 기간을 제한하며, 그렇지 않으면 "멈춤" 또는 "충돌"이 발생한다.
SMM은 제한된 타이밍 요구 사항이 있는 실시간 컴퓨팅 응용 프로그램의 동작을 방해할 수 있다.
CPU가 SMM에 진입했는지 확인하려면 로직 분석기가 필요할 수 있다 (CPU의 ''SMIACT#'' 핀 상태 확인).[16] 버그, 취약성 및 비밀을 분석하기 위해 SMI 핸들러 코드를 복구하려면 로직 분석기 또는 시스템 펌웨어의 디스어셈블리가 필요하다.
5. 한국의 SMM 관련 현황
한국에서는 시스템 관리 모드(SMM)의 보안 취약점에 대한 인식이 높아지고 있으며, 관련 연구 및 대응 노력이 이루어지고 있다. 특히, 국가정보원은 SMM을 악용한 해킹 시도에 대한 경계를 강화하고 있으며, 관련 기술 개발 및 제도 개선을 추진하고 있다.
참조
[1]
웹사이트
The Memory Sinkhole
https://www.blackhat[...]
Black Hat
2015-07-20
[2]
웹사이트
Introducing Ring -3 Rootkits
https://www.blackhat[...]
Invisible Things Lab, Black Hat USA
2009-07-29
[3]
웹사이트
SMIs Are EEEEVIL (Part 1)
http://blogs.msdn.co[...]
Microsoft
2020-07-17
[4]
간행물
"The 386 SL Microprocessor in Notebook PCs"
Intel Corporation, Microcomputer Solutions
1991-03
[5]
웹사이트
AMD Am386SX/SXL/SXLV Datasheet
http://pdf.datasheet[...]
AMD
[6]
웹사이트
ARM® Management Mode Interface Specification
https://documentatio[...]
[7]
웹사이트
Intel 64 and IA-32 Architectures Developer's Manual: Vol. 3B
http://www.intel.com[...]
Intel
[8]
문서
Intel 64 and IA-32 Software Development Manual, Vol. 3, System Management Mode.
[9]
웹사이트
SMIs Are EEEEVIL (Part 2)
http://blogs.msdn.co[...]
Microsoft
[10]
웹사이트
System Management Mode - OSDev Wiki
https://wiki.osdev.o[...]
2020-09-12
[11]
웹사이트
Linux kernel documentation: USB Legacy support
https://www.kernel.o[...]
kernel.org
2004-01
[12]
Youtube
Google Tech Talks – Coreboot – 00:34:30
https://www.youtube.[...]
[13]
문서
UEFI Platform Initialization Specification.
[14]
웹사이트
Hackers find a new place to hide rootkits
http://www.infoworld[...]
2008-05-10
[15]
웹사이트
Researchers Discover Rootkit Exploit In Intel Processors That Dates Back To 1997
http://hothardware.c[...]
2015-08-07
[16]
문서
Intel's System Management Mode
http://www.rcollins.[...]
[17]
특허
Computer system for reading/writing system configuration using I/O instruction
[18]
웹사이트
SMM Rootkits: A New Breed of OS Independent Malware
http://www.eecs.ucf.[...]
ACM
2008-09
[19]
뉴스
Hackers Find a New Place to Hide Rootkits
http://www.pcworld.c[...]
PC World
2008-05-09
[20]
웹사이트
"NSA's ANT Division Catalog of Exploits for Nearly Every Major Software/Hardware/Firmware | LeakSource"
https://web.archive.[...]
Leaksource.wordpress.com
2013-12-30
[21]
웹사이트
Schneier on Security: SOUFFLETROUGH: NSA Exploit of the Day
https://www.schneier[...]
Schneier.com
2013-12-30
[22]
웹사이트
Schneier on Security: SCHOOLMONTANA: NSA Exploit of the Day
https://www.schneier[...]
Schneier.com
2008-05-30
[23]
웹사이트
Schneier on Security
https://www.schneier[...]
2014-08-15
[24]
웹사이트
Schneier on Security: IRONCHEF: NSA Exploit of the Day
https://www.schneier[...]
Schneier.com
2014-01-03
[25]
웹사이트
Transitions Among the Processor's Operating Modes
http://images0.cnitb[...]
[26]
문서
"Performance Implications of System Management Mode"
IEEE International Symposium on Workload Characterization
2013-09-22
[27]
웹인용
해커들이 루트킷을 숨기기 위해 새로운 자리를 찾아나서다
http://www.linuxworl[...]
2009-05-17
[28]
Youtube
구글 테크 담화 - 코어부트 - 00:34:00
https://www.youtube.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com