보안 설명자(Security Descriptor)는 보안 오브젝트의 보안 관련 정보를 가지고 있다. 보안 설명자는 SECURITY_DESCRIPTOR 구조체로 구성
되어 있다. 해당 구조체는 보안 정보와 관련되어 있다. 하나의 보안 설명자는 아래의 보안 정보를 포함하고 있다.
1. 오브젝트의 소유자와 그룹의 Security identifiers (SIDs)를 포함
2. 특정 유저와 그룹의 접근/거부를 지정할 수 있는 DACL을 포함
DACL? [https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa446597(v=vs.85).aspx]
Discretionary Access Control List를 나타냄. 임의의 접근 제어 리스트이다. 리스트...
해당 리스트의 엔트리는 Access Control Entry로 구성되어 있다. 각 엔트리로 리스트가 구성되고 해당 리스트를 통해서 접근제어가 이루어짐
3. 오브젝트에 대한 감사 레코드를 생성하는 액세스 시도 유형을 지정하는 SACL을 포함
SACL? [https://msdn.microsoft.com/en-us/library/windows/desktop/aa374872(v=vs.85).aspx]
어플리케이션에서 직접적으로 보안 설명자의 내용을 수정할 수 없다. Windows API함수를 통해서 오브젝트의 보안 서술자의 내용을 설정하고 값을 읽어 올 수 있다.
추가적으로 새로운 오브젝트를 위해서 보안 서술자를 생성하고 초기화 하는 함수들도 존재 한다.
Active Directory obejct에 보안 서술자를 가지고 있는 어플리케이션의 동작에서는 윈도우 보안 함수또는 ADSI에서 제공하는 보안 인터페이스를 사용할 수 있다.
--------------------------------------------------------------------------------------------------------------------------------------------------
Applications working with security descriptors on Active Directory objects can use the Windows security functions or the security interfaces provided by the Active Directory Service Interfaces (ADSI). For more information about ADSI security interfaces, see How Access Control Works in Active Directory.
--------------------------------------------------------------------------------------------------------------------------------------------------
보안 서술자 생성 함수
유저모드
InitializeSecurityDescriptor(pSD,SECURITY_DESCRIPTOR_REVISION)
Parameters
pSecurityDescriptor [out]
A pointer to a SECURITY_DESCRIPTOR structure that the function initializes.
dwRevision [in]
The revision level to assign to the security descriptor. This parameter must be SECURITY_DESCRIPTOR_REVISION.
필터 드라이버 : 유저모드 통신할 때 사용위해서
FltBuildDefaultSecurityDescriptor(pSD, FLT_PORT_ALL_ACCESS);
Parameter
SecurityDescriptor [out]
Pointer to a caller-allocated variable that receives an opaque pointer to the newly created SECURITY_DESCRIPTOR.
DesiredAccess [in]
Bitmask of flags that specify the type of access that the caller requires to the port object. The set of system-defined DesiredAccess flags determines the following specific access rights for minifilter driver communication port objects.
DesiredAccess Flags
FLT_PORT_CONNECT
The caller can connect to the port.
FLT_PORT_ALL_ACCESS
FLT_PORT_CONNECT | STANDARD_RIGHTS_ALL
참고 : https://msdn.microsoft.com/en-us/library/windows/hardware/ff541778(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa446595(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/aa378863(v=vs.85).aspx
'reversing > Windows Driver' 카테고리의 다른 글
IRP, I/O Stack 관련 내용 정리 [3] (0) | 2017.08.04 |
---|---|
IRP, I/O Stack 관련 내용 정리 [2] (0) | 2017.08.04 |
Minifilter - User Mode Communication (0) | 2017.08.04 |
IRP, I/O Stack 관련 내용 정리 (0) | 2017.07.28 |
Driver Object , Deivce Object 연관성 및 함수 정리 (0) | 2017.07.25 |