시스템 무결성 보호
System Integrity Protection![]() macOS에 존재하는 보안 계층 | |
개발자 | 애플사 |
---|---|
초기 릴리즈 | 2015년 9월 | , 전(
운영 체제 | MacOS |
부속품 | OS X El Capitan (OS X 10.11) 이후 |
유형 | 컴퓨터 보안 소프트웨어 |
웹 사이트 | developer |
시스템 무결성 보호(SIP,[1] 루트리스라고도[2][3] 함)는 OS X El Capitan (2015) (OS X 10.11)에서 도입된 Apple MacOS 운영 체제의 보안 기능입니다.이것은 커널에 의해 강제되는 많은 메커니즘으로 구성됩니다.루트 사용자 또는 루트 권한(sudo)을 가진 사용자가 실행한 경우에도 시스템 소유의 파일 및 디렉토리를 특별한 "엔티먼트"가 없는 프로세스에 의한 변경으로부터 보호하는 것이 핵심입니다.
Apple은 root 사용자가 시스템 보안에 중대한 위험 요소가 될 수 있으며, 특히 사용자가 관리자이기도 한 단일 사용자 계정을 가진 시스템에서는 더욱 위험 요소가 될 수 있습니다.SIP는 디폴트로 이니블이지만 [4][5]디세블로 할 수 있습니다.
정당성
Apple은 시스템 무결성 보호는 높은 수준의 보안을 보장하기 위해 필요한 단계라고 말합니다.WWDC 개발자 세션 중 하나에서 애플의 엔지니어인 Pierre-Olivier Martel은 제한되지 않은 루트 액세스를 시스템의 나머지 약점 중 하나로 설명하면서 "[모든] 악성코드는 단말기를 완전히 제어하기 위한 하나의 패스워드 또는 취약점"이라고 말했다.그는 대부분의 macOS 설치는 관리 자격 증명을 수반하는 하나의 사용자 계정만 가지고 있으며, 이는 대부분의 사용자가 이를 요구하는 모든 프로그램에 루트 액세스 권한을 부여할 수 있음을 의미한다고 말했습니다.이러한 시스템상의 유저가 프롬프트를 받아 어카운트 패스워드를 입력할 때마다(Martel은 이 패스워드가 약하거나 존재하지 않는 경우가 많다), 시스템 전체의 시큐러티가 [4]손상될 가능성이 있습니다.루트의 파워를 제한하는 것은 MacOS에서 전례가 없는 일은 아닙니다.예를 들어 Mac OS X Leopard보다 이전 버전의 MacOS에서는 BSD 및 MacOS가 부분적으로 [6]기반을 두고 있는 파생 버전에서 제공되는 보안 기능인 보안 수준 1을 적용합니다.
기능들
시스템 무결성 보호는 다음 메커니즘으로 구성됩니다.
- 시스템 파일 및 디렉토리의 콘텐츠 및 파일 시스템 권한 보호
- 코드 주입, 런타임 첨부(디버깅 등) 및 DTrace에 대한 프로세스 보호
- 서명되지 않은 커널 확장("kext")에 대한 보호.
시스템 무결성 보호는 보호 플래그가 지정된 시스템 파일 및 디렉터리를 보호합니다.이 문제는 파일 또는 디렉토리에 확장 파일 속성을 추가하고 파일 또는 디렉토리를 에 추가함으로써 발생합니다./System/Library/Sandbox/rootless.conf
아니면 둘 다.보호된 디렉토리에는 다음이 포함됩니다./bin
,/sbin
,/usr
(단, 아닙니다)/usr/local
)[8]의 심볼릭링크/etc
,/tmp
그리고./var
로./private/etc
,/private/tmp
그리고./private/var
대상 디렉토리 자체는 보호되지 않지만 보호됩니다.에서 가장 많이 프리 인스톨된 Apple 어플리케이션/Applications
보호되고 있습니다.[1]커널인 XNU는 특정 권한이 없는 모든 프로세스가 플래그가 부착된 파일 및 디렉토리의 권한 및 내용을 수정하는 것을 방지하고 보호된 [9]실행 파일에 대한 코드 주입, 런타임 첨부 및 DTrace를 방지합니다.
OS X Yosemite 이후 드라이버 등의 커널 확장자는 특정 Apple 사용 권한으로 코드 서명해야 합니다.개발자는 이러한 권한을 가진 개발자 ID를 [10]애플에 요청해야 합니다.서명되지 않은 확장이 있으면 커널이 부팅을 거부하여 사용자에게 금지 기호를 표시합니다."kext 서명"이라고 불리는 이 메커니즘은 시스템 무결성 [4][11]보호에 통합되었습니다.
시스템 무결성 보호는 SIP가 활성화되어 있을 때 시스템프로그램을 호출할 때 특정 환경변수를 삭제합니다.예를 들어, SIP에 의해,/bin/bash 등의 시스템 프로그램을 호출하기 전에 LD_LIBRARY_PATH 및 DYLD_LIBRARY_PATH를 호출하여 Bash 프로세스에 [12]코드 주입을 방지합니다.
배열
디폴트로는 SIP에 의해 보호되는 디렉토리는 다음과 같습니다.[13]
/System
/sbin
/bin
/usr
/Applications
/usr
을 제외하고 보호되고 있다/usr/local
서브 디렉토리 /Applications
는 달력, 사진, Safari, 터미널, 콘솔, 앱스토어 및 [13]Notes와 같이 Mac OS에 미리 설치되어 있는 앱에 대해 보호됩니다.
시스템 무결성 보호는 시스템 파티션 외부에서만(전체 또는 부분적으로) 비활성화할 수 있습니다.이를 위해 애플은csrutil
명령줄 유틸리티는 복구 시스템 내의 터미널 창에서 실행할 수 있으며 부팅 가능한 MacOS 설치 디스크에서 디바이스의 NVRAM에 boot 인수를 추가할 수 있습니다.이 설정은 디바이스에 [4]설치된 모든 El Capitan 또는 macOS Sierra에 적용됩니다.MacOS 설치 시 설치 관리자는 플래그가 부착된 시스템 디렉토리 내의 알 수 없는 컴포넌트를 다음 주소로 이동합니다./Library/SystemMigration/History/Migration-[UUID]/QuarantineRoot/
. 시스템 디렉토리에 대한 쓰기 액세스를 금지함으로써 시스템 파일 및 디렉토리 권한은 Apple 소프트웨어 업데이트 중에 자동으로 유지됩니다.[1][4]따라서 Disk[14] Utility 및 해당 Disk Utility에서 권한 복구를 사용할 수 없습니다.diskutil
작동.
접수처
시스템 무결성 보호 수신이 혼재되었습니다.맥월드는 향후 출시에서 애플이 사용자와 개발자로부터 완전한 통제권을 빼앗고 맥OS의 보안 정책을 애플 모바일 운영체제 iOS의 보안정책으로 서서히 옮길 수 있다는 우려를 표명했다.[2][15]일부 응용 프로그램 및 드라이버는 기능이 일시적으로 또는 영구적으로 비활성화되지 않으면 완전히 작동하지 않거나 전혀 작동하지 않습니다.Ars Technica는 규모가 큰 개발자들이 애플과 직접 협력할 수 있기 때문에 이것이 소규모 개발자들에게 불균형적으로 영향을 미칠 수 있다고 제안했다.그러나 파워 유저를 포함한 대부분의 유저들은,[1] 「거의 단점이 없다」라고 말해, 이 기능을 끌 이유가 없다고도 말했다.
「 」를 참조해 주세요.
- 앱아머
- 컴퓨터 보안
- 보안 강화 Linux(SELinux)
- 사회공학(보안)
- 신뢰할 수 있는 컴퓨팅
- 신뢰할 수 있는 Solaris
- 사용자 계정 컨트롤
- 사용자 인터페이스 권한 분리
- Windows 파일 보호
레퍼런스
- ^ a b c d Cunningham, Andrew; Hutchinson, Lee (September 29, 2015). "OS X 10.11 El Capitan: The Ars Technica Review—System Integrity Protection". Ars Technica. Retrieved September 29, 2015.
- ^ a b Cunningham, Andrew (June 17, 2015). "First look: OS X El Capitan brings a little Snow Leopard to Yosemite". Ars Technica. Retrieved June 18, 2015.
- ^ Slivka, Eric (June 12, 2015). "OS X El Capitan Opens Door to TRIM Support on Third-Party SSDs for Improved Performance". MacRumors. Retrieved June 18, 2015.
- ^ a b c d e Martel, Pierre-Olivier (June 2015). "Security and Your Apps" (PDF). Apple Developer. pp. 8–54. Archived (PDF) from the original on April 23, 2016. Retrieved September 30, 2016.
- ^ "Configuring System Integrity Protection". Mac Developer Library. Apple. September 16, 2015. Archived from the original on August 17, 2016. Retrieved September 30, 2016.
- ^ Garfinkel, Simon; Spafford, Gene; Schwartz, Alan (2003). Practical UNIX and Internet Security. O'Reilly Media. pp. 118–9. ISBN 9780596003234.
- ^ "About the screens you see when your Mac starts up". Apple Support. August 13, 2015. Archived from the original on April 21, 2016. Retrieved September 30, 2016.
- ^ "About System Integrity Protection on your Mac". Apple Support. May 30, 2016. Archived from the original on March 20, 2016. Retrieved September 30, 2016.
- ^ "What's New In OS X - OS X El Capitan v10.11". Mac Developer Library. Apple. Archived from the original on March 4, 2016. Retrieved September 30, 2016.
Code injection and runtime attachments to system binaries are no longer permitted.
- ^ "Kernel Extensions". Mac Developer Library. Apple. September 16, 2015. Archived from the original on August 17, 2016. Retrieved September 29, 2016.
- ^ "Trim in Yosemite". Cindori. Retrieved June 18, 2015.
- ^ Walton, Jeffrey (March 28, 2020). "Nettle 3.5.1 and OS X 10.12 patch". nettle-bugs (Mailing list). Retrieved 13 July 2020.
- ^ a b "How to Check if System Integrity Protection (SIP) is Enabled on Mac". OS X Daily. August 1, 2018. Retrieved March 6, 2021.
- ^ "OS X El Capitan Developer Beta 2 Release Notes". Mac Developer Library. Apple. June 22, 2015. At section Notes and Known Issues. Archived from the original on June 26, 2015. Retrieved June 29, 2015.
- ^ Fleishman, Glenn (July 15, 2015). "Private I: El Capitan's System Integrity Protection will shift utilities' functions". Macworld. Retrieved July 22, 2015.