커널 보안 테이블

커널 보안 테이블(KST)로 지정된 커널 영역으로 데이터를 로드하기 전에는 권한, 역할, 특권 명령 및 특권 장치 데이터베이스에 포함된 정보가 보안 고려사항에 사용되지 않습니다. 확장된 RBAC 모드에서 권한 및 특권 검사는 커널에서 수행되므로 해당 검사를 사용하려면 먼저 데이터베이스를 커널로 전송해야 합니다.

KST는 다음 하위 테이블로 구성됩니다.
  • 커널 권한 테이블(KAT)
  • 커널 역할 테이블(KRT)
  • 커널 명령 테이블(KCT)
  • 커널 장치 테이블(KDT)

모든 테이블 또는 선택 테이블은 setkst 명령을 사용하여 사용자 공간에서 커널로 전송할 수 있습니다. KRT과 KCT는 KAT에 종속되므로 KAT를 갱신하도록 선택한 경우 KRT와 KCT도 갱신되어 해당 테이블이 동기화됩니다. KST에 갱신사항을 추가하기 위해 선호되는 방법은 사용자 수준(mkauth, chauth, mkrolesetsecattr 등의 명령 사용)에서 필요한 모든 데이터베이스를 작성 또는 수정한 다음 setkst 명령을 사용하여 테이블을 커널에 전송하는 것입니다. 테이블이 커널에 로드되면 lskst 명령을 사용하여 각 테이블에 포함된 정보를 표시할 수 있습니다.

KST에서 제공되는 테이블은 항상 전체 테이블로 전송됩니다. 즉 KST는 개별 항목 수정을 허용하지 않으므로 전체 테이블을 대체해야 합니다. 테이블을 커널로 전송하기 전에 setkst 명령이 테이블 및 테이블 간의 관계를 검증합니다. setkst 명령도 inittab 파일에 포함되어 부트 프로세스 초기에 데이터베이스가 KST로 전송되도록 합니다.

어떤 이유로 테이블을 작성할 수 없거나 커널로 로드할 수 없고 이전에 테이블이 로드되지 않은 경우 시스템이 권한이나 역할이 없는 것처럼 작동합니다. 일치 항목이 없으므로 이 시나리오에서 권한 및 역할 검사를 위한 명령, API 및 시스템 호출이 실패합니다. 이 상태에서의 시스템 운영은 명령에서 사용자가 권한을 강제하는 코드 섹션에 액세스할 수 없다는 것을 제외하고 레거시 RBAC 모드와 매우 유사합니다.