MAC인가요, DAC인가요?

MAC인가요, DAC인가요?

LSM 속성/상한 구현의 유틸리티나 사용법을 보는 데 문제가 있습니다.

나는 내 우려 사항과 질문을 표현하기 위해 몇 가지 유사 코드 조각을 함께 모았습니다. (p 3)의 다이어그램에 따라 모델링됩니다. https://www.kernel.org/doc/ols/2002/ols2002-pages-604-617.pdf

커널 액세스 확인(대략) 및 LSM 호출:

DAC
op:__?   // ? what operation would pass a DAC check yet not the LSM hook ?
file:___
perms:  u.. g.. o.. 
euid:100
egid:500


OK  ----> LSM hook ( args ) 

        1) I don't know the args here, 

        2) Regardless of the args I can't make out what operation would pass a DAC check
           and be restricted here and why? 

           ? read file ?      allready handled by DAC

           ? network device ? allready handled by DAC, it's a file.

           ? execution ?      x bit , allready handled

           ? executing a specific function ? no function call references here

           ? executing a specific syscall ? would be handled on exec on the target (read, write etc..)

           ?  
           **What exactly can the LSM hook accomplish here that DAC hasn't allready addressed ??**


            Answers are welcome.
            sp

나는 코더가 setuid 루트를 사용하지 않고 일부 CAP 속성을 사용하여 보다 안전한 권한 상승을 위해 이 작업을 수행하도록 하는 것에 대한 토론을 읽었지만 개인적으로 동작 변경에 의존하거나 권한 확인을 후킹하는 전문가는 아닙니다. 기계 보안 내가 실행 중인 코드의 무결성을 고려하면 나 혼자인 것 같습니다.

또한 이는 LSM의 의도가 아니라는 내용도 읽었습니다.여기

설계 문제는 해결되지만 현재 DAC 권한 확인의 정확한 목적은 여전히 ​​불분명합니다. 후크가 있는 이유는 설명하지만 DAC보다 더 중요한 작업을 수행하기 위해 후크를 효과적으로 사용하는 방법은 설명하지 않습니다.

답변1

이 기능은 setuid와 유사한 권한 에스컬레이션 계층이지만 더 세분화되어 있습니다. 예를 들어 프로그램은 CAP_NET_RAW 권한을 얻기 위해 전체 루트 수준 액세스가 필요하지 않습니다. 이는 "필요한 최소한의 권한"과 서버 제어 측면에서 큰 진전이므로좋아요, 그러나 필수 액세스 제어는 아닙니다. 권한 상승입니다.

SELinux는 태그 개념과 태그 간 권한을 연구합니다. 따라서 httpd프로세스에 "웹 서버" 레이블을 지정하고 웹 트리의 모든 파일에 "웹 파일" 레이블을 지정한 다음 "웹 서버 레이블이 있는 프로세스는 웹 파일만 읽을 수 있습니다."를 부여 할 수 있습니다.

이 레이블 구성은 기존 파일 시스템 권한 및 ACL 권한 위에 구성됩니다. 파일이 누구나 읽을 수 있는 경우에도 SELinux는부정적인그것에 액세스하십시오. 프로세스에 대한 액세스 권한을 부여하려면 DAC(파일 시스템 권한) 및 MAC(SELinux) 권한을 전달해야 합니다.

비즈니스 관점에서 볼 때 eTrust Access Control(또는 Control Minder 또는 지금은 무엇이라고 부르든, 원래는검색 엔진 최적화 시스템)은 또 다른 MAC 계층입니다. 이는 콘텐츠를 제어하기 위해 태그를 사용하지 않지만 경로로 정의된 규칙을 허용하고 해당 규칙이 규칙에 사용되는 경우 프로그램을 체크섬합니다. 이는 SELinux 태그보다 더 유연합니다(그리고 크로스 플랫폼입니다(예: Solaris, AIX, HPUX)). 다시 말하지만, 이는 파일 시스템 DAC 계층 위에 위치하며 양 당사자가 요청을 승인해야 합니다.

관련 정보