본문 바로가기

reversing/Windows Driver

Security Descriptors

SMALL

보안 설명자(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]

admin이 보안 오브젝트에 접근에 관해서 로그를 생생할 수 있게 해주는 리스트


4. 보안 설명자 또는 개별 구성원의 의미를 한정하는 제어 비트 집합을 포함


어플리케이션에서 직접적으로 보안 설명자의 내용을 수정할 수 없다. 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


LIST