Access Control 항목

ACE(액세스 제어 항목)는 특정 SID와 연결된 액세스 권한을 설명합니다. 액세스 제어 항목은 자격 증명을 기반으로 특정 프로그램에 부여된 유효 액세스를 계산하기 위해 운영 체제에서 평가됩니다. 예를 들어 사용자가 컴퓨터에 로그온한 다음 프로그램을 실행할 때 프로그램은 해당 특정 사용자의 계정과 연결된 자격 증명을 사용합니다.

따라서 프로그램이 개체를 열려고 하면 Windows는 프로그램과 연결된 자격 증명을 개체와 연결된 보안 컨트롤과 비교합니다. 그런 다음 보안 참조 모니터는 ACE 정보를 사용하여 프로그램이 지정된 개체에 대한 액세스를 허용하거나 거부해야 하는지 여부를 결정합니다. 따라서 ACE는 보안 하위 시스템의 동작을 결정합니다.

다음 그림에서는 액세스 제어 항목을 보여 줍니다.

액세스 제어 항목을 보여 주는 다이어그램

보안 하위 시스템에 사용되는 5가지 유형의 ACE가 있습니다. ACE 구조체의 Type 멤버는 ACE의 해석을 제어합니다. 정의된 형식은 다음과 같습니다.

  • ACCESS_ALLOWED_ACE_TYPE - 이 형식은 ACE가 특정 SID에 부여될 액세스 권한을 지정한다는 것을 나타냅니다.

  • ACCESS_DENIED_ACE_TYPE - 이 형식은 ACE가 특정 SID에 대해 거부될 액세스 권한을 지정했음을 나타냅니다.

  • SYSTEM_AUDIT_ACE_TYPE - 이 형식은 ACE가 감사 동작을 지정했음을 나타냅니다.

  • SYSTEM_ALARM_ACE_TYPE - 이 형식은 ACE가 경보 동작을 지정했음을 나타냅니다.

  • ACCESS_ALLOWED_COMPOUND_ACE_TYPE - 이 형식은 ACE가 특정 서버와 가장하는 엔터티에 연결되어 있음을 나타냅니다.

따라서 세 가지 형식은 개체에 대한 프로그래밍 방식 액세스를 제어하는 데 사용되고 다른 두 형식은 개체에 액세스할 때 보안 하위 시스템의 감사 및 경보 동작을 제어하는 데 사용됩니다. 보안 하위 시스템의 실제 동작은 개체와 연결된 일부 또는 모든 ACE에 대한 정보를 결합하여 계산됩니다.

드라이버는 루틴 RtlAddAccessAllowedAce를 사용하여 ACCESS_ALLOWED_ACE_TYPE 액세스 제어 항목을 생성할 수 있습니다. 다른 유형의 ACE 항목을 추가하려면 WDK가 다른 지원 루틴을 제공하지 않으므로 드라이버 작성기는 자체 함수를 생성해야 합니다.