추가 LSA 보호 구성

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

IT 전문가를 위한 이 항목에서는 LSA(로컬 보안 기관) 프로세스에 대한 추가 보호를 구성하여 자격 증명을 손상시킬 수 있는 코드 삽입을 방지하는 방법에 대해 설명합니다.

LSASS(로컬 보안 기관 서버 서비스) 프로세스를 포함하는 LSA는 사용자의 로컬 및 원격 로그인에 대한 유효성을 검사하고 로컬 보안 정책을 적용합니다. Windows 8.1 운영 체제는 보호되지 않는 프로세스에 의한 메모리 읽기 및 코드 삽입을 방지하기 위해 LSA에 대한 추가 보호를 제공합니다. 이로 인해 LSA에서 저장 및 관리하는 자격 증명에 대한 보안이 강화됩니다. LSA에 대한 보호된 프로세스 설정은 Windows 8.1 구성할 수 있지만 Windows RT 8.1에서는 구성할 수 없습니다. 이 설정을 보안 부팅과 함께 사용하면 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 레지스트리 키를 사용 안 함으로 설정해도 적용되지 않으므로 추가 보호가 실현됩니다.

플러그 인 또는 드라이버에 대한 보호된 프로세스 요구 사항

LSA 플러그 인 또는 드라이버에서 보호된 프로세스를 로드하려면 다음 조건을 충족해야 합니다.

  1. 서명 확인

    보호 모드에서는 LSA로 로드되는 모든 플러그 인이 Microsoft 서명으로 디지털 서명되어야 합니다. 따라서 서명되지 않거나 Microsoft 서명이 아닌 다른 방식으로 서명된 플러그 인은 LSA로 로드되지 않습니다. 이러한 플러그 인에는 스마트 카드 드라이버, 암호화 플러그인, 암호 필터 등이 있습니다.

    스마트 카드 드라이버와 같은 드라이버인 LSA 플러그 인은 WHQL 인증을 사용하여 서명해야 합니다. 자세한 내용은 WHQL 릴리스 서명 을 참조하세요.

    WHQL 인증 프로세스가 없는 LSA 플러그 인은 LSA에 대한 파일 서명 서비스를 사용하여 서명해야 합니다.

  2. Microsoft SDL(Security Development Lifecycle) 프로세스 지침 준수

    모든 플러그 인은 적용 가능한 SDL 프로세스 지침을 준수해야 합니다. 자세한 내용은 Microsoft SDL(Security Development Lifecycle) 부록을 참조하세요.

    플러그 인이 Microsoft 서명으로 올바르게 서명된 경우에도 SDL 프로세스를 준수하지 않으면 플러그 인이 로드되지 않을 수 있습니다.

기능을 광범위하게 배포하기 전에 다음 목록을 사용하여 LSA 보호가 사용되는지 철저하게 테스트합니다.

  • 조직 내에서 사용 중인 모든 LSA 플러그 인 및 드라이버를 확인합니다. 여기에는 스마트 카드 드라이버 및 암호화 플러그 인과 같은 타사 드라이버 또는 플러그 인, 암호 필터나 암호 변경 알림을 적용하는 데 사용되는 내부에서 개발한 모든 소프트웨어가 포함됩니다.

  • 플러그 인 로드 실패가 발생하지 않도록 모든 LSA 플러그 인이 Microsoft 인증서로 디지털 서명되어 있는지 확인합니다.

  • 올바르게 서명된 모든 플러그 인을 LSA로 로드할 수 있으며 이러한 플러그 인이 정상적으로 작동하는지 확인합니다.

  • 감사 로그를 사용하여 보호된 프로세스로 실행되지 않은 LSA 플러그 인 및 드라이버를 확인합니다.

LSA 보호를 사용하도록 설정하여 도입된 제한 사항

LSA 보호를 사용하는 경우 사용자 지정 LSA 플러그 인을 디버그할 수 없습니다. 보호된 프로세스인 경우 디버거를 LSASS에 연결할 수 없습니다. 일반적으로 실행 중인 보호된 프로세스를 디버그하는 지원되는 방법은 없습니다.

보호된 프로세스로 실행되지 않은 LSA 플러그 인 및 드라이버를 확인하는 방법

이 섹션에 설명된 이벤트는 애플리케이션 및 서비스 로그\Microsoft\Windows\CodeIntegrity 아래의 작업 로그에 있습니다. 이러한 이벤트를 통해 서명 때문에 로드되지 않은 LSA 플러그 인 및 드라이버를 확인할 수 있습니다. 이러한 이벤트를 관리하려면 wevtutil 명령줄 도구를 사용하면 됩니다. 이 도구에 대한 자세한 내용은 Wevtutil을 참조하십시오.

옵트인하기 전: lsass.exe를 통해 로드되는 플러그 인 및 드라이버를 확인하는 방법

감사 모드를 사용하여 LSA 보호 모드에서 로드되지 않는 LSA 플러그 인 및 드라이버를 확인할 수 있습니다. 감사 모드에서는 LSA 보호를 사용하는 경우 LSA로 로드되지 않는 모든 플러그 인 및 드라이버를 식별하는 이벤트 로그가 생성됩니다. 플러그 인 또는 드라이버를 차단하지 않고 메시지가 기록됩니다.

레지스트리를 편집하여 단일 컴퓨터에서 Lsass.exe에 대한 감사 모드를 사용하도록 설정하려면
  1. 레지스트리 편집기(RegEdit.exe)를 열고 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe에 있는 레지스트리 키로 이동합니다.

  2. 레지스트리 키 값을 AuditLevel=dword:00000008로 설정합니다.

  3. 컴퓨터를 다시 시작합니다.

이벤트 3065 및 이벤트 3066의 결과를 분석합니다.

그러면 애플리케이션 및 서비스 로그/Microsoft/Windows/CodeIntegrity의 이벤트 뷰어 이러한 이벤트가 표시되었을 수 있습니다.

  • 이벤트 3065: 이 이벤트는 코드 무결성 확인에서 공유 섹션에 대한 보안 요구 사항을 충족하지 않는 특정 드라이버로 프로세스(일반적으로 lsass.exe)를 로드하려는 시도가 발견되었음을 기록합니다. 그러나 설정된 시스템 정책으로 인해 이미지는 로드가 허용됩니다.

  • 이벤트 3066: 이 이벤트는 코드 무결성 확인에서 Microsoft 서명 수준 요구 사항을 충족하지 않는 특정 드라이버로 프로세스(일반적으로 lsass.exe)를 로드하려는 시도가 발견되었음을 기록합니다. 그러나 설정된 시스템 정책으로 인해 이미지는 로드가 허용됩니다.

중요

이러한 작업 이벤트는 커널 디버거가 연결되고 시스템에서 사용되는 경우에는 생성되지 않습니다.

플러그 인 또는 드라이버에 공유 섹션이 포함된 경우 이벤트 3066은 이벤트 3065와 함께 기록됩니다. 공유 섹션을 제거하면 플러그 인이 Microsoft 서명 수준 요구 사항을 충족하지 않는 경우를 제외하고는 두 이벤트 모두 발생하지 않습니다.

도메인의 여러 컴퓨터에 감사 모드를 사용하도록 설정하려면 그룹 정책 클라이언트 쪽 확장 레지스트리를 사용하여 Lsass.exe 감사 수준 레지스트리 값을 배포하면 됩니다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe 레지스트리 키를 수정해야 합니다.

GPO에서 AuditLevel 값 설정을 만들려면
  1. GPMC(그룹 정책 관리 콘솔)를 엽니다.

  2. 도메인 수준에서 연결되거나 컴퓨터 계정을 포함하는 조직 구성 단위에 연결된 새 GPO(그룹 정책 개체)를 만듭니다. 또는 이미 배포된 GPO를 선택할 수 있습니다.

  3. GPO를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭하여 그룹 정책 관리 편집기를 엽니다.

  4. 컴퓨터 구성, 기본 설정, Windows 설정을 차례로 확장합니다.

  5. 레지스트리를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 레지스트리 항목을 클릭합니다. 새 레지스트리 속성 대화 상자가 나타납니다.

  6. Hive 목록에서 HKEY_LOCAL_MACHINE 클릭합니다.

  7. 키 경로 목록에서 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\LSASS.exe를 찾습니다.

  8. 값 이름 상자에 AuditLevel을 입력합니다.

  9. 값 종류 상자에서 REG_DWORD를 클릭하여 선택합니다.

  10. 값 데이터 상자에 00000008을 입력합니다.

  11. 확인을 클릭합니다.

참고

GPO를 적용하려면 도메인의 모든 도메인 컨트롤러에 GPO 변경 내용을 복제해야 합니다.

여러 컴퓨터에서 추가 LSA 보호를 옵트인하려면 그룹 정책 클라이언트 쪽 확장 레지스트리를 사용하여 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa를 수정합니다. 이 작업을 수행하는 방법에 대한 자세한 단계는 이 항목의 자격 증명에 대한 추가 LSA 보호를 구성하는 방법을 참조하십시오.

옵트인한 후: lsass.exe를 통해 로드되는 플러그 인 및 드라이버를 확인하는 방법

이벤트 로그를 사용하여 LSA 보호 모드에서 로드하지 못한 LSA 플러그 인 및 드라이버를 확인할 수 있습니다. LSA 보호 프로세스를 사용하는 경우 LSA로 로드하지 못한 모든 플러그 인 및 드라이버를 식별하는 이벤트 로그가 생성됩니다.

이벤트 3033 및 이벤트 3063의 결과를 분석합니다.

그러면 microsoft-Windows-Codeintegrity/Operational과 같은 이벤트가 이벤트 뷰어 표시할 수 있습니다.

  • 이벤트 3033: 이 이벤트는 코드 무결성 확인에서 Microsoft 서명 수준 요구 사항을 충족하지 않는 드라이버로 프로세스(일반적으로 lsass.exe)를 로드하려는 시도가 발견되었음을 기록합니다.

  • 이벤트 3063: 이 이벤트는 코드 무결성 확인에서 공유 섹션에 대한 보안 요구 사항을 충족하지 않는 드라이버로 프로세스(일반적으로 lsass.exe)를 로드하려는 시도가 발견되었음을 기록합니다.

공유 섹션은 일반적으로 인스턴스 데이터가 같은 보안 컨텍스트를 사용하는 다른 프로세스와 상호 작용하도록 허용하는 프로그래밍 방법으로 인해 생성됩니다. 이로 인해 보안 취약점이 발생할 수 있습니다.

자격 증명에 대한 추가 LSA 보호를 구성하는 방법

Windows 8.1 실행 중인 디바이스(보안 부팅 또는 UEFI를 사용하는지 여부)에서는 이 섹션에 설명된 절차를 수행하여 구성할 수 있습니다. Windows RT 8.1을 실행하는 디바이스의 경우 lsass.exe 보호가 항상 사용되며 해제할 수 없습니다.

보안 부팅 및 UEFI를 사용하거나 사용하지 않는 x86 기반 또는 x64 기반 디바이스

보안 부팅 또는 UEFI를 사용하는 x86 기반 또는 x64 기반 디바이스에서는 레지스트리 키를 사용하여 LSA 보호를 사용하도록 설정하면 UEFI 펌웨어에 UEFI 변수가 설정됩니다. 이 설정이 펌웨어에 저장되면 레지스트리 키에서 UEFI 변수를 삭제하거나 변경할 수 없습니다. UEFI 변수를 다시 설정해야 합니다.

UEFI를 지원하지 않거나 보안 부팅을 사용하지 않는 x86 기반 또는 x64 기반 디바이스는 LSA 보호 구성을 펌웨어에 저장할 수 없으며 레지스트리 키의 존재 여부만을 기반으로 합니다. 이 시나리오에서는 디바이스에 대한 원격 액세스를 사용하여 LSA 보호를 사용하지 않도록 설정할 수 있습니다.

다음 절차를 사용하여 LSA 보호를 사용하거나 사용하지 않도록 설정할 수 있습니다.

단일 컴퓨터에서 LSA 보호를 사용하도록 설정하려면
  1. 레지스트리 편집기(RegEdit.exe)를 열고 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa에 있는 레지스트리 키를 찾습니다.

  2. 레지스트리 키 값을 "RunAsPPL"=dword:00000001 값을 삭제합니다.

  3. 컴퓨터를 다시 시작합니다.

그룹 정책을 사용하여 LSA 보호를 사용하도록 설정하려면
  1. GPMC(그룹 정책 관리 콘솔)를 엽니다.

  2. 도메인 수준에서 연결되거나 컴퓨터 계정을 포함하는 조직 구성 단위에 연결된 새 GPO를 만듭니다. 또는 이미 배포된 GPO를 선택할 수 있습니다.

  3. GPO를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭하여 그룹 정책 관리 편집기를 엽니다.

  4. 컴퓨터 구성, 기본 설정, Windows 설정을 차례로 확장합니다.

  5. 레지스트리를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 레지스트리 항목을 클릭합니다. 새 레지스트리 속성 대화 상자가 나타납니다.

  6. 하이브 목록에서 HKEY_LOCAL_MACHINE을 클릭합니다.

  7. 키 경로 목록에서 SYSTEM\CurrentControlSet\Control\Lsa를 찾습니다.

  8. 값 이름 상자에 RunAsPPL을 입력합니다.

  9. 값 종류 상자에서 REG_DWORD를 클릭합니다.

  10. 값 데이터 상자에 00000001을 입력합니다.

  11. 확인을 클릭합니다.

LSA 보호를 사용하지 않도록 설정하려면
  1. 레지스트리 편집기(RegEdit.exe)를 열고 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa에 있는 레지스트리 키를 찾습니다.

  2. 레지스트리 키에서 "RunAsPPL"=dword:00000001 값을 삭제합니다.

  3. 디바이스에서 보안 부팅을 사용하는 경우 LSA(로컬 보안 기관) 보호된 프로세스 옵트아웃 도구를 사용하여 UEFI 변수를 삭제합니다.

    옵트아웃 도구에 대한 자세한 내용은 공식 Microsoft 다운로드 센터에서 LSA(로컬 보안 기관) 보호된 프로세스 옵트아웃 다운로드를 참조하세요.

    보안 부팅을 관리하는 방법에 대한 자세한 내용은 UEFI 펌웨어를 참조하세요.

    경고

    보안 부팅을 해제하면 모든 보안 부팅 및 UEFI 관련 구성이 다시 설정됩니다. 따라서 LSA 보호를 사용하지 않도록 설정하는 다른 모든 방법이 실패한 경우에만 보안 부팅을 해제해야 합니다.

LSA 보호 확인

Windows를 시작할 때 LSA가 보호 모드로 시작되었는지 확인하려면 Windows 로그 아래의 시스템 로그에서 다음 WinInit 이벤트를 검색합니다.

  • 12: LSASS.exe가 다음 수준의 보호된 프로세스로 시작되었습니다. 4

추가 리소스

자격 증명 보호 및 관리

LSA에 대한 파일 서명 서비스