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가 보호하고있는 모든 응용 프로그램 및 최상위 디렉토리 가 나열됩니다.
응용
SIP는 OS X이 응용 프로그램 및 응용 프로그램 유틸리티에 설치하는 핵심 응용 프로그램을 보호합니다. 이는 루트 권한을 사용하는 경우 명령 행에서도 OS X가 설치하는 애플리케이션을 더 이상 삭제할 수 없음을 의미합니다.
디렉토리
SIP는 또한 외부의 많은 디렉토리와 심볼릭 링크를 보호하고 /Applications
있으며 해당 디렉토리의 최상위 레벨도에 나열되어 rootless.conf
있습니다.
Apple은 보호 외에도 rootless.conf 파일에서 SIP 보호에 대한 일부 예외를 정의했으며 이러한 예외에는 별표가 표시되어 있습니다. SIP의 보호에서 이러한 면제는 해당 위치 내에서 파일 및 디렉토리를 추가, 제거 또는 변경할 수 있음을 의미합니다.
이러한 예외는 다음과 같습니다.
/System/Library/User Template
-OS X은 새 계정의 홈 폴더를 만들 때 사용하는 템플릿 디렉토리를 저장합니다.
/usr/libexec/cups
-OS X이 프린터 구성 정보를 저장하는 위치
Apple은이 파일을 파일로 간주하고 Apple이 해당 파일에 대한 제 3 자의 변경 사항을 덮어 씁니다.
SIP로 보호 된 파일을 보려면 터미널에서 dash capital O와 함께 ls
명령 을 사용하십시오 .
ls -O
SIP로 보호 된 파일은 제한된 것으로 표시됩니다 .
알아야 할 한 가지 중요한 생각은 심볼릭 링크가 SIP로 보호 되더라도 반드시 링크하는 디렉토리가 SIP에 의해 보호되고 있음을 의미하지는 않습니다. OS X El Capitan 부트 드라이브의 루트 레벨에는 루트 레벨 디렉토리 안에 저장된 디렉토리를 가리키는 여러 SIP 보호 심볼릭 링크가 private
있습니다.
그러나 private
디렉토리 의 내용을 검사 할 때 해당 심볼릭 링크가 가리키는 디렉토리는 SIP에 의해 보호되지 않으며 루트 권한을 사용하는 프로세스에 의해 해당 내용과 내용을 이동, 편집 또는 변경할 수 있습니다.
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
암호 프롬프트는 정상 / 이전 / 예상대로 작동했습니다. 아마 대답은 "대부분 눈치 채지 못할 것입니다.