맨위로가기

필수 무결성 제어

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

필수 무결성 제어(MIC)는 객체의 보안을 강화하기 위해 접근 제어 항목에 무결성 수준을 추가하여 구현된다. 이 기술은 객체에 접근하려는 프로세스의 무결성 수준과 객체의 무결성 수준을 비교하여 접근 권한을 제한한다. 윈도우 비스타 이상 버전에서 네 가지 무결성 수준을 정의하며, 낮은 무결성 수준의 프로세스는 더 높은 수준의 프로세스에 접근할 수 없다. MIC는 응용 프로그램 격리 및 샌드박싱에 활용되며, Internet Explorer, Adobe Reader, Google Chrome, Microsoft Office 등에서 보안 강화를 위해 사용된다. MIC는 프로세스 간 통신에 영향을 미치며, Shatter 공격과 같은 보안 위협을 방지하기 위해 UIPI와 함께 사용될 수 있다.

더 읽어볼만한 페이지

  • 마이크로소프트 윈도우 보안 기술 - 보안 지원 제공자 인터페이스
    보안 지원 제공자 인터페이스(SSPI)는 윈도우 운영체제에서 보안 기능을 제공하는 인터페이스로, 다양한 보안 지원 제공자(SSP)를 지원하여 애플리케이션이 사용자 인증, 데이터 암호화, 무결성 보장 등의 보안 기능을 구현하도록 돕고 GSSAPI의 윈도우 구현체로서 윈도우 환경에서 통합과 호환성을 제공합니다.
필수 무결성 제어
개요
이름필수 무결성 제어
원래 이름Mandatory Integrity Control
약칭MIC
종류윈도우 보안 기능
설명윈도우 비스타 및 이후 버전의 윈도우 NT 운영 체제에서 구현된 보안 기능이다. 무결성 수준을 사용하여 프로세스 및 개체에 접근 제어를 적용한다.
기능 및 동작 원리
무결성 수준낮음 (Low)
중간 (Medium)
높음 (High)
시스템 (System)
동작 원리MIC는 프로세스와 객체(파일, 레지스트리 키 등)에 무결성 수준을 할당하고, 높은 무결성 수준의 프로세스가 낮은 수준의 객체를 수정하는 것을 방지하여 시스템 무결성을 보호한다.
사용자 계정 컨트롤과의 관계UAC는 관리자 권한이 필요한 작업에 대한 사용자 동의를 요청하는 데 사용되지만, MIC는 권한 상승 없이도 프로세스 간의 접근을 제어한다.
활용
인터넷 브라우저 보안인터넷 브라우저를 낮은 무결성 수준으로 실행하여 악성 코드가 시스템에 미치는 영향을 제한한다.
기타 보안 강화응용 프로그램과 시스템 리소스 간의 접근을 제어하여 잠재적인 보안 취약점을 완화한다.

2. 구현

필수 무결성 제어(MIC)는 객체의 보안 설명자에 새로운 접근 제어 항목(ACE) 유형을 추가하여 구현된다. 윈도우 액세스 제어 목록(ACL)은 사용자나 그룹에게 읽기, 쓰기, 실행 권한을 부여하고, MIC는 여기에 무결성 수준을 추가하여 접근을 제어한다. 대상이 객체(예: 파일)에 접근하면 보안 참조 모니터는 대상의 액세스 토큰과 객체의 보안 설명자에 있는 무결성 수준을 비교한다. 윈도우는 대상의 무결성 수준(IL)이 객체보다 높거나 낮은지, 그리고 새로운 ACE의 무결성 정책 플래그에 따라 허용되는 접근 권한을 제한한다.[10][11][12]

2. 1. 무결성 수준 (Integrity Level)

윈도우 비스타는 낮음(SID: S-1-16-4096영어), 중간(SID: S-1-16-8192영어), 높음(SID: S-1-16-12288영어), 시스템(SID: S-1-16-16384영어)의 네 가지 무결성 수준(IL)을 정의한다.[10] 일반 사용자가 시작한 프로세스는 기본적으로 중간 IL을 가지며, 승격된 프로세스는 높은 IL을 갖는다.[11]

무결성 수준을 도입함으로써 MIC는 응용 프로그램 클래스를 격리하여 잠재적으로 취약한 응용 프로그램(예: 인터넷 관련 응용 프로그램)을 샌드박싱하는 시나리오를 가능하게 한다. 낮은 IL을 가진 프로세스는 낮은 무결성 프로세스라고 불리며, 더 높은 IL을 가진 프로세스보다 접근 권한이 적다.

파일, 레지스트리 키, 다른 프로세스 및 스레드와 같이 접근 제어 목록이 있는 객체는 시스템 접근 제어 목록에 항목이 있으며, 이는 객체를 사용할 수 있는 프로세스의 최소 무결성 수준을 정의한다. 윈도우는 프로세스의 무결성 수준이 객체에서 지정한 요청된 무결성 수준과 같거나 더 높을 때만 프로세스가 객체를 쓰거나 삭제할 수 있도록 한다.[11] 또한, 개인 정보 보호를 위해 더 높은 IL을 가진 프로세스 객체는 더 낮은 IL을 가진 프로세스에서 접근을 읽는 것조차 불가능하다.[12]

결과적으로, 프로세스는 더 높은 IL을 가진 다른 프로세스와 상호 작용할 수 없다. 따라서 CreateRemoteThread() 함수를 사용하여 DLL을 더 높은 IL 프로세스에 주입하거나, WriteProcessMemory() 함수를 사용하여 다른 프로세스에 데이터를 전송하는 등의 기능을 수행할 수 없다.[13][14]

2. 2. 접근 제어

보안 참조 모니터는 프로세스가 객체에 접근할 때, 프로세스와 객체의 무결성 수준(IL)을 비교한다. 프로세스의 IL이 객체의 IL과 같거나 더 높아야만 윈도우에서 쓰기/삭제를 허용한다.[11] 낮은 IL의 프로세스는 높은 IL의 프로세스에 DLL 인젝션을 하거나 데이터를 전송하는 등의 상호작용을 할 수 없다.[13][14]

윈도우는 시스템 접근 제어 목록을 통해 객체를 사용할 수 있는 프로세스의 최소 IL을 정의한다. 프로세스의 IL이 객체에서 지정한 최소 IL 이상이어야 해당 객체에 대한 쓰기나 삭제 권한을 가진다. 또한, 더 높은 IL을 가진 프로세스 객체는 낮은 IL을 가진 프로세스로부터의 읽기 접근조차 불가능하다.[12]

3. 활용

필수 무결성 제어는 프로세스를 생성할 때 무결성 수준을 지정할 수 있도록 해준다. 이를 통해 사용자 인터페이스 권한 격리(UIPI) 기술에서 창 메시지 경계를 정의하는 것 외에도, Adobe Reader, 구글 크롬, Internet Explorer, Windows 탐색기와 같은 애플리케이션에서 시스템의 취약한 객체로부터 문서를 격리하는 데 사용된다.[5]

경우에 따라 높은 IL 프로세스가 낮은 IL 프로세스에 대해 특정 기능을 실행해야 하거나, 낮은 IL 프로세스가 더 높은 IL 프로세스만 접근 가능한 리소스에 접근해야 할 수 있다. 이때 높은 IL과 낮은 IL 프로세스는 파일, 명명된 파이프, LPC 또는 기타 공유 객체를 사용하여 서로 통신할 수 있다. 공유 객체는 낮은 IL 프로세스만큼 낮은 무결성 수준을 가져야 하며, 낮은 IL 및 높은 IL 프로세스 모두에서 공유되어야 한다.[2]

3. 1. 사용자 인터페이스 권한 격리 (UIPI)

사용자 인터페이스 권한 격리(UIPI)는 윈도우 메시지 경계를 정의하여, 낮은 권한 프로세스가 높은 권한 프로세스의 윈도우 메시지를 가로채거나 조작하는 것을 방지한다. 필수 무결성 제어는 Adobe Reader, 구글 크롬, Internet Explorer, Windows 탐색기와 같은 애플리케이션에서 시스템의 취약한 객체로부터 문서를 격리하는 데 사용된다.[5]

Internet Explorer 7은 보안 영역 설정을 기반으로 웹 페이지가 낮은 무결성 프로세스로 열리는지 여부를 제어하기 위해 MIC 기반 "보호 모드" 설정을 도입하여(운영 체제가 MIC를 지원하는 경우) 일부 종류의 보안 취약점을 방지한다. 이 경우 Internet Explorer는 낮은 IL 프로세스로 실행되므로 시스템 수준의 객체를 수정할 수 없으며, 대신 파일 및 레지스트리 작업이 가상화된다. Adobe Reader 10과 구글 크롬은 멀웨어에 대한 취약성을 줄이기 위해 이 기술을 도입한 두 개의 주목할 만한 애플리케이션이다.[6]

Microsoft Office 2010은 잠재적으로 안전하지 않은 문서가 시스템의 구성 요소, 파일 및 기타 리소스를 수정하는 것을 금지하는 Excel, PowerPoint 및 Word용 "보호된 보기" 격리된 샌드박스 환경을 도입했다.[7] 보호된 보기는 낮은 무결성 프로세스로 작동하며, Windows Vista 및 이후 버전의 Windows에서는 MIC 및 UIPI를 사용하여 샌드박스를 추가적으로 제한한다.[8]

그러나 경우에 따라 더 높은 IL 프로세스가 낮은 IL 프로세스에 대해 특정 기능을 실행해야 하거나, 낮은 IL 프로세스가 더 높은 IL 프로세스만 액세스할 수 있는 리소스에 액세스해야 할 수 있다(예: 보호 모드에서 웹 페이지를 볼 때 인터넷에서 다운로드한 파일을 사용자가 지정한 폴더에 저장하는 경우).[5] 높은 IL과 낮은 IL 프로세스는 파일, 명명된 파이프, LPC 또는 기타 공유 객체를 사용하여 서로 통신할 수 있다. 공유 객체는 낮은 IL 프로세스만큼 낮은 무결성 수준을 가져야 하며, 낮은 IL 및 높은 IL 프로세스 모두에서 공유해야 한다.[2] MIC는 낮은 IL 프로세스가 더 높은 IL 프로세스와 객체를 공유하는 것을 방지하지 않으므로, 높은 IL 프로세스에서 결함을 유발하고 낮은 IL 프로세스를 대신하여 작동하게 하여 스쿼팅 공격을 일으킬 수 있다.[2] 그러나 Shatter 공격은 MIC를 활용하는 사용자 인터페이스 권한 격리를 사용하여 방지할 수 있다.

3. 2. 애플리케이션 샌드박싱

사용자 인터페이스 권한 격리(UIPI) 외에도, 필수 무결성 제어(MIC)는 Adobe Reader, 구글 크롬, Internet Explorer, Windows 탐색기와 같은 애플리케이션에서 시스템의 취약한 객체로부터 문서를 격리하는 데 사용된다.[5]

Internet Explorer 7은 보안 영역 설정을 기반으로 웹 페이지가 낮은 무결성 프로세스로 열리는지 여부를 제어하기 위해 MIC 기반 "보호 모드" 설정을 도입했다(운영 체제가 MIC를 지원하는 경우). 이를 통해 일부 종류의 보안 취약점을 방지한다. 이 경우 Internet Explorer는 낮은 IL 프로세스로 실행되므로 시스템 수준의 객체를 수정할 수 없으며, 대신 파일 및 레지스트리 작업이 가상화된다. Adobe Reader 10과 구글 크롬은 멀웨어에 대한 취약성을 줄이기 위해 이 기술을 도입한 주목할 만한 애플리케이션이다.[6]

Microsoft Office 2010은 잠재적으로 안전하지 않은 문서가 시스템의 구성 요소, 파일 및 기타 리소스를 수정하는 것을 금지하는 Excel, PowerPoint 및 Word용 "보호된 보기" 격리된 샌드박스 환경을 도입했다.[7] 보호된 보기는 낮은 무결성 프로세스로 작동하며, Windows Vista 및 이후 버전의 Windows에서는 MIC 및 UIPI를 사용하여 샌드박스를 추가적으로 제한한다.[8]

3. 3. 프로세스 간 통신 (IPC)

낮은 IL 프로세스와 높은 IL 프로세스는 파일, 명명된 파이프, LPC 같은 공유 객체를 통해 서로 통신할 수 있다. 공유 객체는 낮은 IL 프로세스 수준으로 낮은 무결성 수준을 가져야 하며, 낮은 IL 및 높은 IL 프로세스 모두에서 공유되어야 한다.[2] MIC는 낮은 IL 프로세스가 더 높은 IL 프로세스와 객체를 공유하는 것을 막지 않으므로, 높은 IL 프로세스에서 결함을 유발하고 낮은 IL 프로세스를 대신하여 작동하게 해 스쿼팅 공격을 일으킬 수 있다.[2] 그러나 Shatter 공격은 MIC를 활용하는 사용자 인터페이스 권한 격리를 통해 막을 수 있다.

3. 4. Shatter 공격 방지

사용자 인터페이스 권한 격리(UIPI)를 활용하면 필수 무결성 제어(MIC) 환경에서 Shatter 공격을 방지할 수 있다.[2]

참조

[1] 웹사이트 Mandatory Integrity Control in Windows Vista https://docs.microso[...] Microsoft 2006-07-22
[2] 웹사이트 PsExec, User Account Control and Security Boundaries https://techcommunit[...] Microsoft 2007-02-12
[3] 웹사이트 CreateRemoteThread function https://docs.microso[...] Microsoft 2018-12-05
[4] 웹사이트 WriteProcessMemory function https://docs.microso[...] Microsoft 2018-12-05
[5] 웹사이트 Analysis of the Windows Vista Security Model http://www.symantec.[...] Symantec Corporation 2007-10-08
[6] 웹사이트 Introducing Adobe Reader Protected Mode http://blogs.adobe.c[...] Adobe Systems 2010-07-10
[7] 웹사이트 Plan Protected View settings for Office 2010 https://technet.micr[...] Microsoft 2011-08-05
[8] 웹사이트 Microsoft struts Office 2010 'sandbox' security http://www.computerw[...] International Data Group 2009-08-19
[9] 웹사이트 Windows Vista 開発者ストーリー用語集 - MSDNライブラリ https://msdn.microso[...] MSDN 2016-07-03
[10] 웹사이트 Analysis of the Windows Vista Security Model http://www.symantec.[...] 시만テック 2007-10-08
[11] 웹사이트 Mandatory Integrity Control in Windows Vista http://blogs.technet[...] 2007-10-08
[12] 웹사이트 PsExec, User Account Control and Security Boundaries http://blogs.technet[...] 2007-10-08
[13] 웹사이트 CreateRemoteThread Function (Windows) http://msdn2.microso[...] MSDN 2007-10-08
[14] 웹사이트 WriteProcessMemory Function http://msdn2.microso[...] MSDN 2007-10-08



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com