AppLocker에 대한 보안 고려 사항

IT 전문가를 위한 이 문서에서는 AppLocker를 구현할 때 해결해야 하는 보안 고려 사항에 대해 설명합니다.

AppLocker는 특정 사용자 또는 사용자 그룹에 대한 소프트웨어 액세스를 제한하는 데 도움이 됩니다. 다음은 AppLocker에 대한 보안 고려 사항입니다.

AppLocker는 엔터프라이즈 내에 배포되고 신뢰할 수 있는 자격 증명을 사용하여 IT의 해당 리소스에 의해 중앙에서 관리됩니다. 이 시스템은 정책 생성 및 배포가 유사한 정책 배포 프로세스 및 보안 제한을 준수하도록 합니다.

AppLocker 정책은 알려진 프로세스와 그룹 정책 통해 도메인 내에서 알려진 수단을 통해 배포됩니다. 그러나 관리자 권한이 있는 경우 개별 컴퓨터에서 AppLocker 정책을 설정할 수도 있으며 이러한 정책은 organization 작성된 보안 정책과 반대될 수 있습니다. 그룹 정책 개체(GPO)를 통해 배포되는 AppLocker 정책의 적용 모드 설정이 로컬 정책보다 우선합니다. 그러나 AppLocker 규칙은 가산적이므로 로컬 정책의 규칙이 컴퓨터에 적용된 모든 GPO의 규칙과 병합됩니다.

Microsoft는 AppLocker에 대한 확장을 개발하는 방법을 제공하지 않습니다. 인터페이스는 공용이 아닙니다. 관리자 자격 증명이 있는 사용자는 Windows PowerShell cmdlet을 사용하여 일부 AppLocker 프로세스를 자동화할 수 있습니다. AppLocker의 Windows PowerShell cmdlet에 대한 자세한 내용은 Windows PowerShell AppLocker Cmdlet을 참조하세요.

AppLocker는 가장 높은 권한 집합인 Administrator 또는 LocalSystem의 컨텍스트에서 실행됩니다. 이 보안 컨텍스트에는 오용 가능성이 있습니다. AppLocker 규칙은 가산적이므로 모든 로컬 정책 규칙이 GPO와 함께 해당 컴퓨터에 적용됩니다. 로컬 컴퓨터가 도메인에 가입되지 않았거나 그룹 정책 제어되는 경우 관리 자격 증명을 가진 사용자는 AppLocker 정책을 완전히 제어할 수 있습니다.

AppLocker 경로 규칙은 ACL(액세스 제어 목록)을 대체하지 않습니다. ACL을 계속 사용하여 보안 정책에 따라 파일에 대한 액세스를 제한해야 합니다.

AppLocker를 사용하여 코드가 Win32 하위 시스템 외부에서 실행되지 않도록 방지할 수 없습니다. 예를 들어 Linux용 Windows 하위 시스템 실행되는 코드를 제어할 수 없습니다. 애플리케이션이 Linux 하위 시스템에 실행되지 않도록 하기 위한 요구 사항인 경우 하위 시스템을 사용하지 않도록 설정해야 합니다. 또는 LxssManager.dll 차단하여 Linux용 Windows 하위 시스템 차단할 수 있습니다.

AppLocker는 VBScript, JScript, .bat 파일, .cmd 파일 및 Windows PowerShell 스크립트만 제어할 수 있습니다. 호스트 프로세스 내에서 실행되는 해석된 모든 코드(예: Perl 스크립트 및 매크로)를 제어하지는 않습니다. 해석된 코드는 호스트 프로세스 내에서 실행되는 실행 코드의 한 형태입니다. 예를 들어 Windows 일괄 처리 파일(*.bat)은 Windows 명령 호스트(cmd.exe)의 컨텍스트 내에서 실행됩니다. AppLocker를 사용하여 해석된 코드를 제어하려면 호스트 프로세스가 해석된 코드를 실행하기 전에 AppLocker를 호출한 다음 AppLocker에서 반환된 결정을 적용해야 합니다. 모든 호스트 프로세스가 AppLocker를 호출하는 것은 아니므로 AppLocker는 Microsoft Office 매크로와 같은 해석된 모든 종류의 코드를 제어할 수 없습니다.

중요

호스트 프로세스의 실행을 허용해야 하는 경우 이러한 호스트 프로세스의 적절한 보안 설정을 구성해야 합니다. 예를 들어 서명되고 신뢰할 수 있는 매크로만 로드되도록 Microsoft Office에서 보안 설정을 구성합니다.

AppLocker 규칙은 애플리케이션 파일 실행을 허용하거나 차단합니다. AppLocker는 애플리케이션이 시작된 후의 동작을 제어하지 않습니다. 애플리케이션에는 AppLocker가 규칙을 우회하고 다른 .exe 또는 .dll 로드하도록 허용하는 함수에 전달된 플래그가 포함될 수 있습니다. 실제로 허용되는 애플리케이션은 이러한 플래그를 사용하여 AppLocker 규칙을 우회하고 자식 프로세스를 시작할 수 있습니다. AppLocker 규칙을 사용하여 실행할 수 있도록 허용하기 전에 각 애플리케이션을 철저히 검사해야 합니다.

참고

이 조건을 보여 주는 두 개의 플래그는 에 전달할 CreateRestrictedToken수 있는 , 및 LOAD_IGNORE_CODE_AUTHZ_LEVEL에 전달할 LoadLibraryEx수 있는 입니다SANDBOX_INERT. 이러한 플래그는 모두 AppLocker가 규칙을 우회하고 자식 .exe 또는 .dll 로드할 수 있도록 허용하도록 신호를 보냅니다.