다음을 통해 공유


액세스 제어(Windows 필터링 플랫폼)

WFP(Windows Filtering Platform)에서 BFE(기본 필터링 엔진) 서비스는 액세스 토큰 및 보안 설명자를 기반으로 표준 Windows 액세스 제어 모델을 구현합니다.

액세스 제어 모델

필터 및 하위 계층과 같은 새 WFP 개체를 추가할 때 보안 설명자를 지정할 수 있습니다. 보안 설명자는 WFP 개체의 이름을 의미하는 WFP 관리 함수 Fwpm*GetSecurityInfo0Fwpm*SetSecurityInfo0*을 사용하여 관리됩니다. 이러한 함수는 Windows GetSecurityInfo 및 SetSecurityInfo 함수와 의미상 동일합니다.

참고 항목

Fwpm*SetSecurityInfo0 함수는 명시적 트랜잭션 내에서 호출할 수 없습니다.

참고 항목

Fwpm*SetSecurityInfo0 함수는 동일한 세션 내에서 만든 동적 개체를 관리하는 데 사용되는 경우에만 동적 세션 내에서 호출할 수 있습니다.

필터 엔진의 기본 보안 설명자(아래 다이어그램의 루트 엔진 개체)는 다음과 같습니다.

  • 기본 제공 관리istrators 그룹에 GA(GENERIC_ALL) 액세스 권한을 부여합니다.
  • GW(GR) GENERIC_WRITE(GX) GENERIC_EXECUTE(GENERIC_READ) 액세스 권한을 네트워크 구성 연산자에게 부여합니다.
  • 다음 SSID(서비스 보안 식별자)에 GRGWGX 액세스 권한을 부여합니다. MpsSvc(Windows 방화벽), NapAgent(네트워크 액세스 보호 에이전트), PolicyAgent(IPsec 정책 에이전트), RpcSs(원격 프로시저 호출) 및 WdiServiceHost(진단 서비스 호스트).
  • FWPM_ACTRL_OPEN 부여하고 모든 사람에게 FWPM_ACTRL_CLASSIFY. (아래 표에 설명된 WFP 관련 액세스 권한입니다.)

다시 기본 기본 보안 설명자는 상속을 통해 파생됩니다.

Fwpm*Add0, Fwpm*CreateEnumHandle0, Fwpm*SubscribeChanges0 함수 호출과 같은 일부 액세스 검사 개별 개체 수준에서 수행할 수 없습니다. 이러한 함수의 경우 각 개체 형식에 대한 컨테이너 개체가 있습니다. 표준 개체 형식(예: 공급자, 설명선, 필터)의 경우 Null GUID 매개 변수가 연결된 컨테이너를 식별하도록 기존 Fwpm*GetSecurityInfo0Fwpm*SetSecurityInfo0 함수가 오버로드됩니다. 다른 개체 형식(예: 네트워크 이벤트 및 IPsec 보안 연결)의 경우 컨테이너의 보안 정보를 관리하기 위한 명시적 함수가 있습니다.

BFE는 DACL(임의 액세스 제어 목록) ACE(액세스 제어 항목)의 자동 상속을 지원합니다. BFE는 SACL(시스템 액세스 제어 목록) ACE를 지원하지 않습니다. 개체는 해당 컨테이너에서 ACE를 상속합니다. 컨테이너는 필터 엔진에서 ACE를 상속합니다. 전파 경로는 아래 다이어그램에 나와 있습니다.

Diagram that shows the ACE propagation paths, starting with 'Engine'.

표준 개체 형식의 경우 BFE는 모든 제네릭 및 표준 액세스 권한을 적용합니다. 또한 WFP는 다음과 같은 특정 액세스 권한을 정의합니다.

WFP 액세스 권한 설명
FWPM_ACTRL_ADD
컨테이너에 개체를 추가하는 데 필요합니다.
FWPM_ACTRL_ADD_LINK
개체에 대한 연결을 만드는 데 필요합니다. 예를 들어 설명선 참조 필터를 추가하려면 호출자에게 설명선에 대한 ADD_LINK 액세스 권한이 있어야 합니다.
FWPM_ACTRL_BEGIN_READ_TXN
명시적 읽기 트랜잭션을 시작하는 데 필요합니다.
FWPM_ACTRL_BEGIN_WRITE_TXN
명시적 쓰기 트랜잭션을 시작하는 데 필요합니다.
FWPM_ACTRL_CLASSIFY
사용자 모드 계층에 대해 분류하는 데 필요합니다.
FWPM_ACTRL_ENUM
컨테이너의 개체를 열거하는 데 필요합니다. 그러나 열거자는 호출자가 FWPM_ACTRL_READ 액세스 권한이 있는 개체만 반환합니다.
FWPM_ACTRL_OPEN
BFE를 사용하여 세션을 여는 데 필요합니다.
FWPM_ACTRL_READ
개체의 속성을 읽는 데 필요합니다.
FWPM_ACTRL_READ_STATS
통계를 읽는 데 필요합니다.
FWPM_ACTRL_SUBSCRIBE
알림을 구독하는 데 필요합니다. 구독자는 액세스 권한이 FWPM_ACTRL_READ 개체에 대한 알림만 받습니다.
FWPM_ACTRL_WRITE
엔진 옵션을 설정하는 데 필요합니다.

BFE는 커널 모드 호출자에 대한 모든 액세스 검사 건너뜁니다.

관리자가 BFE에서 자신을 잠그지 못하도록 하기 위해 기본 제공 관리자 그룹의 구성원은 항상 엔진 개체에 FWPM_ACTRL_OPEN 부여됩니다. 따라서 관리자는 다음 단계를 통해 액세스 권한을 다시 얻을 수 있습니다.

  • SE_TAKE_OWNERSHIP_NAME 권한을 사용하도록 설정합니다.
  • FwpmEngineOpen0을 호출 합니다. 호출자가 기본 제공 관리istrators의 멤버이기 때문에 호출이 성공합니다.
  • 엔진 개체의 소유권을 가져옵니다. 호출자에게 SE_TAKE_OWNERSHIP_NAME 권한이 있기 때문에 성공합니다.
  • DACL을 업데이트합니다. 소유자에게 항상 WRITE_DAC 액세스 권한이 있기 때문에 이 작업이 성공합니다.

BFE는 자체 사용자 지정 감사를 지원하므로 일반 개체 액세스 감사를 생성하지 않습니다. 따라서 SACL은 무시됩니다.

WFP 필수 액세스 권한

아래 표에서는 다양한 필터링 플랫폼 개체에 액세스하기 위해 WFP 함수에 필요한 액세스 권한을 보여 줍니다. FwpmFilter* 함수는 표준 개체에 액세스하기 위한 예제로 나열됩니다. 표준 개체에 액세스하는 다른 모든 함수는 FwpmFilter* 함수 액세스 모델을 따릅니다.

함수 개체 검사ed 액세스 필요
FwpmEngineOpen0 엔진 FWPM_ACTRL_OPEN
FwpmEngineGetOption0 엔진 FWPM_ACTRL_READ
FwpmEngineSetOption0 엔진 FWPM_ACTRL_WRITE
FwpmSessionCreateEnumHandle0 엔진 FWPM_ACTRL_ENUM
FwpmTransactionBegin0 엔진 FWPM_ACTRL_BEGIN_READ_TXN &FWPM_ACTRL_BEGIN_WRITE_TXN
FwpmFilterAdd0 컨테이너 공급자
계층
하위 계층
설명선 제목
공급자 컨텍스트
FWPM_ACTRL_ADDFWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FWPM_ACTRL_ADD_LINK
FwpmFilterDeleteById0
FwpmFilterDeleteByKey0
Filter DELETE
FwpmFilterGetById0
FwpmFilterGetByKey0
Filter FWPM_ACTRL_READ
FwpmFilterCreateEnumHandle0 컨테이너 필터
FWPM_ACTRL_ENUMFWPM_ACTRL_READ
FwpmFilterSubscribeChanges0 Container FWPM_ACTRL_SUBSCRIBE
FwpmFilterSubscriptionsGet0 Container FWPM_ACTRL_READ
IPsecGetStatistics0 IPsec SA DB FWPM_ACTRL_READ_STATS
IPsecSaContextCreate0
IPsecSaContextGetSpi0
IPsecSaContextAddInbound0
IPsecSaContextAddOutbound0
IPsec SA DB FWPM_ACTRL_ADD
IPsecSaContextDeleteById0
IPsecSaContextExpire0
IPsec SA DB DELETE
IPsecSaContextGetById0 IPsec SA DB FWPM_ACTRL_READ
IPsecSaContextCreateEnumHandle0
IPsecSaCreateEnumHandle0
IPsec SA DB FWPM_ACTRL_ENUM 및 FWPM_ACTRL_READ
IkeextGetStatistics0 IKE SA DB FWPM_ACTRL_READ_STATS
IkeextSaDeleteById0 IKE SA DB DELETE
IkeextSaGetById0 IKE SA DB FWPM_ACTRL_READ
IkeextSaCreateEnumHandle0 IKE SA DB FWPM_ACTRL_ENUM 및 FWPM_ACTRL_READ
FwpmNetEventCreateEnumHandle0 Container FWPM_ACTRL_ENUM
FwpmIPsecTunnelAdd0
FwpmIPsecTunnelDeleteByKey0
개별 필터 및 공급자 컨텍스트에 대한 추가 액세스 검사 없습니다.