SIP (System Integrity Protection)는 시스템 파일 및 프로세스가 타사에 의해 수정되는 것을 방지하기위한 전반적인 보안 정책입니다. 이를 달성하기 위해 다음 개념이 있습니다.
- 파일 시스템 보호
- 커널 확장 보호
- 런타임 보호
파일 시스템 보호
SIP는 Apple 이외의 당사자가 특정 디렉토리에 저장된 디렉토리 및 파일을 추가, 삭제 또는 수정하지 못하게합니다.
/bin
/sbin
/usr
/System
Apple은 개발자가 액세스 할 수있는 다음 디렉토리를 표시했습니다.
/usr/local
/Applications
/Library
~/Library
를 /usr
제외한 모든 디렉토리는 /usr/local
SIP로 보호됩니다.
Apple의 자체 인증 기관에서 서명 한 설치 프로그램 패키지를 통해 SIP로 보호 된 파일 및 디렉토리를 추가, 제거 또는 변경할 수 있습니다. 이를 통해 Apple은 기존 SIP 보호를 변경하지 않고도 OS의 SIP 보호 부분을 변경할 수 있습니다.
해당 인증 기관은 Apple이 자체적으로 사용하도록 보유합니다. 개발자 ID 서명 설치 프로그램 패키지는 SIP로 보호 된 파일 또는 디렉토리를 변경할 수 없습니다.
보호되는 디렉토리를 정의하기 위해 Apple은 현재 파일 시스템에 두 개의 구성 파일을 정의했습니다. 기본 위치는 아래 위치에 있습니다.
/System/Library/Sandbox/rootless.conf
여기서 rootless.conf
SIP가 보호하고있는 모든 응용 프로그램 및 최상위 디렉토리 가 나열됩니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/75oc2.png)
응용
SIP는 OS X이 응용 프로그램 및 응용 프로그램 유틸리티에 설치하는 핵심 응용 프로그램을 보호합니다. 이는 루트 권한을 사용하는 경우 명령 행에서도 OS X가 설치하는 애플리케이션을 더 이상 삭제할 수 없음을 의미합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/2gOMOm.png)
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/9GYgqm.png)
디렉토리
SIP는 또한 외부의 많은 디렉토리와 심볼릭 링크를 보호하고 /Applications
있으며 해당 디렉토리의 최상위 레벨도에 나열되어 rootless.conf
있습니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/Fh7AE.png)
Apple은 보호 외에도 rootless.conf 파일에서 SIP 보호에 대한 일부 예외를 정의했으며 이러한 예외에는 별표가 표시되어 있습니다. SIP의 보호에서 이러한 면제는 해당 위치 내에서 파일 및 디렉토리를 추가, 제거 또는 변경할 수 있음을 의미합니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/1v4Xs.png)
이러한 예외는 다음과 같습니다.
/System/Library/User Template
-OS X은 새 계정의 홈 폴더를 만들 때 사용하는 템플릿 디렉토리를 저장합니다.
/usr/libexec/cups
-OS X이 프린터 구성 정보를 저장하는 위치
Apple은이 파일을 파일로 간주하고 Apple이 해당 파일에 대한 제 3 자의 변경 사항을 덮어 씁니다.
SIP로 보호 된 파일을 보려면 터미널에서 dash capital O와 함께 ls
명령 을 사용하십시오 .
ls -O
SIP로 보호 된 파일은 제한된 것으로 표시됩니다 .
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/gKopM.png)
알아야 할 한 가지 중요한 생각은 심볼릭 링크가 SIP로 보호 되더라도 반드시 링크하는 디렉토리가 SIP에 의해 보호되고 있음을 의미하지는 않습니다. OS X El Capitan 부트 드라이브의 루트 레벨에는 루트 레벨 디렉토리 안에 저장된 디렉토리를 가리키는 여러 SIP 보호 심볼릭 링크가 private
있습니다.
그러나 private
디렉토리 의 내용을 검사 할 때 해당 심볼릭 링크가 가리키는 디렉토리는 SIP에 의해 보호되지 않으며 루트 권한을 사용하는 프로세스에 의해 해당 내용과 내용을 이동, 편집 또는 변경할 수 있습니다.
![여기에 이미지 설명을 입력하십시오](https://i.stack.imgur.com/mjksi.png)
Apple에서 설정 한 SIP 예외 목록 외에도 SIP 예외 rootless.conf
의 두 번째 목록이 있습니다. 이 목록에는 타사 제품의 여러 디렉토리 및 응용 프로그램 이름이 포함됩니다. 와 rootless.conf
마찬가지로이 제외 목록은 Apple의 것이며 제 3 자의 변경 사항은 Apple에서 덮어 씁니다.
/System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
런타임 보호
SIP의 보호는 파일 시스템 변경으로부터 시스템을 보호하는 것으로 제한되지 않습니다. 기능이 제한되는 시스템 호출도 있습니다.
- EPERM과 함께 task_for_pid () / processor_set_tasks () 실패
- exec (2)에서 Mach 특수 포트가 재설정 됨
- dyld 환경 변수는 무시됩니다
- DTrace 프로브 사용 불가
그러나 SIP는 개발중인 자체 응용 프로그램 개발자가 검사를 차단하지 않습니다. Xcode의 도구는 개발 프로세스 중에 앱을 계속 검사하고 디버깅 할 수 있도록합니다.
이에 대한 자세한 내용 은 SIP에 대한 Apple 개발자 문서를 참조하십시오 .
커널 확장 보호
SIP는 서명되지 않은 커널 확장의 설치를 차단합니다. SIP가 활성화 된 OS X El Capitan에 커널 확장을 설치하려면 커널 확장이 다음과 같아야합니다.
- Kexts 인증서 서명을위한 개발자 ID로 서명
- / Library / Extensions에 설치
서명되지 않은 커널 확장을 설치하는 경우 SIP를 먼저 비활성화해야합니다.
SIP 관리에 대한 자세한 내용은 아래 링크를 참조하십시오.
시스템 무결성 보호 – Apple 보안 모델에 다른 계층 추가
sudo
암호 프롬프트는 정상 / 이전 / 예상대로 작동했습니다. 아마 대답은 "대부분 눈치 채지 못할 것입니다.