탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 보안 서비스 Oracle Solaris 11 Information Library (한국어) |
권한 제약 프로세스는 커널에서 구현되며 명령, 사용자, 역할, 시스템 레벨에서 프로세스를 제약할 수 있습니다.
다음 표는 권한 처리에 사용 가능한 명령을 나열합니다.
표 10-3 권한 처리용 명령
|
표 10-4 권한 정보를 포함하는 파일
|
권한 사용을 감사할 수 있습니다. 프로세스가 권한을 사용할 때 언제든지 upriv 감사 토큰의 감사 증적에 권한 사용이 기록됩니다. 권한 이름이 레코드의 일부일 때 텍스트 표현이 사용됩니다. 다음 감사 이벤트는 권한 사용을 기록합니다.
AUE_SETPPRIV 감사 이벤트 – 권한 세트를 변경할 때 감사 레코드를 생성합니다. AUE_SETPPRIV 감사 이벤트는 pm 클래스에 속합니다.
AUE_MODALLOCPRIV 감사 이벤트 – 커널 밖에서 권한을 추가할 때 감사 레코드를 생성합니다. AUE_MODALLOCPRIV 감사 이벤트는 ad 클래스에 속합니다.
AUE_MODDEVPLCY 감사 이벤트 – 장치 정책을 변경할 때 감사 레코드를 생성합니다. AUE_MODDEVPLCY 감사 이벤트는 ad 클래스에 속합니다.
AUE_PFEXEC 감사 이벤트 – pfexec()가 사용으로 설정된 채 execve()를 호출할 때 감사 레코드를 생성합니다. AUE_PFEXEC 감사 이벤트는 as, ex, ps, ua 감사 클래스에 속합니다. 권한의 이름이 감사 레코드에 포함됩니다.
기본 세트에 속하는 권한의 성공적 사용은 감사되지 않습니다. 사용자의 기본 세트에서 제거된 기본 권한을 사용하려는 시도는 감사됩니다.
커널은 권한 에스컬레이션을 금지합니다. 프로세스가 의도했던 것보다 더 많은 권한을 얻을 때 권한 에스컬레이션이라고 합니다. 프로세스가 의도한 것보다 많은 권한을 얻지 못하도록 하려면 취약한 시스템 개조를 위해 전체 권한 세트가 필요합니다. 예를 들어, root(UID=0)가 소유한 파일/프로세스는 전체 권한 세트를 가진 프로세스만 변경할 수 있습니다. root 계정이 root 소유의 파일을 변경하는 데에는 권한이 필요하지 않습니다. 그러나 비루트 사용자가 root 소유의 파일을 변경하려면 모든 권한이 있어야 합니다.
마찬가지로, 장치 액세스를 제공하는 작업은 유효 세트의 모든 권한이 필요합니다.
file_chown_self 및 proc_owner 권한은 권한 에스컬레이션이 적용됩니다. file_chown_self 권한을 통해 프로세스가 해당 파일을 제공할 수 있습니다. proc_owner 권한을 통해 프로세스가 소유하지 않은 프로세스를 검사할 수 있습니다.
file_chown_self 권한은 rstchown 시스템 변수로 제한됩니다. rstchown 변수를 0으로 설정할 때 file_chown_self 권한이 시스템 및 모든 사용자의 초기 상속 가능한 세트에서 제거됩니다. rstchown 시스템 변수에 대한 자세한 내용은 chown(1) 매뉴얼 페이지를 참조하십시오.
file_chown_self 권한은 가장 안전하게 특정 명령에 지정되고, 프로파일에 배치되고, 프로파일 셸에 사용하기 위해 역할에 지정됩니다.
proc_owner 권한은 프로세스 UID를 0으로 전환하기에 충분하지 않습니다. 임의 UID에서 UID=0으로 프로세스를 전환하려면 모든 권한이 필요합니다. proc_owner 권한은 시스템의 모든 파일에 무제한 읽기 액세스를 제공하므로 가장 안전하게 특정 명령에 지정되고, 프로파일에 배치되고, 프로파일 셸에 사용하기 위해 역할에 지정됩니다.
주의 - 사용자의 초기 상속 가능한 세트에 file_chown_self 권한이나 proc_owner 권한을 포함하도록 사용자 계정을 수정할 수 있습니다. 이러한 강력한 권한을 사용자, 역할, 시스템의 상속 가능한 권한 세트에 배치하려면 우선적인 보안 이유가 있어야 합니다. |
장치에 대한 권한 에스컬레이션을 금지하는 방법은 권한 및 장치를 참조하십시오.
레거시 응용 프로그램을 수용하기 위해 수퍼유저 및 권한 모델과 함께 권한 구현이 작동합니다. 커널은 PRIV_AWARE 플래그를 자동으로 추적하여 프로그램이 권한과 연동하도록 설계되었는지 나타냅니다. 권한을 인식하지 못하는 자식 프로세스를 고려하십시오. 부모 프로세스에서 상속한 권한은 자식의 허가된 세트와 유효 세트에서 사용할 수 있습니다. 자식 프로세스가 UID를 0으로 설정하면 전체 수퍼유저 능력을 얻지 못할 수 있습니다. 프로세스의 유효 세트와 허가된 세트는 자식의 제한 세트의 권한으로 제약됩니다. 따라서 권한 인식 프로세스의 제한 세트는 권한을 인식하지 못하는 자식 프로세스의 루트 권한을 제약합니다.