Access Control 항목
ACE(액세스 제어 항목)는 특정 SID(보안 식별자)와 연결된 액세스 권한을 설명합니다. OS는 해당 자격 증명을 기반으로 특정 프로그램에 부여된 유효 액세스를 계산하기 위해 ACE를 평가합니다. 예를 들어 사용자가 컴퓨터에 로그인한 다음 프로그램을 실행할 때 프로그램은 해당 특정 사용자의 계정과 연결된 자격 증명을 사용합니다.
프로그램이 개체를 열려고 하면 Windows는 프로그램과 연결된 자격 증명을 개체와 연결된 보안 컨트롤과 비교합니다. 그런 다음 보안 참조 모니터는 ACE 정보를 사용하여 프로그램이 지정된 개체에 대한 액세스를 허용하거나 거부해야 하는지 확인합니다. 보안 하위 시스템의 동작을 결정하는 것은 ACE입니다.
다음 그림에서는 액세스 제어 항목을 보여 줍니다.
보안 하위 시스템은 다음 형식을 포함하여 여러 유형의 ACES를 사용합니다. 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가 특정 서버와 가장하는 엔터티에 연결되어 있음을 나타냅니다.
ACCESS_XXX 형식은 개체에 대한 프로그래밍 방식 액세스를 제어하는 데 사용됩니다. SYSTEM_XXX 형식은 개체에 액세스할 때 보안 하위 시스템의 감사 및 경보 동작을 제어하는 데 사용됩니다. 보안 하위 시스템의 실제 동작은 개체와 연결된 일부 또는 모든 ACE에 대한 정보를 결합하여 계산됩니다.
드라이버는 RtlAddAccessAllowedAce 루틴을 사용하여 ACCESS_ALLOWED_ACE_TYPE ACE를 생성할 수 있습니다. 다른 유형의 ACE 항목을 추가하려면 WDK가 다른 지원 루틴을 제공하지 않으므로 드라이버 작성기는 자체 함수를 생성해야 합니다.