공격 지표 설치 스크립트
공격 지표(IoA) 설치 파일을 다운로드하여 실행하면 IoA 스크립트가 Active Directory(AD) 데이터베이스에서 기본적으로 Tenable.ad라는 이름이 지정된 새 그룹 정책 개체(GPO)를 만듭니다. 시스템은 Tenable Identity Exposure GPO를 모든 도메인 컨트롤러(DC)를 포함한 도메인 컨트롤러 조직 단위(OU)에만 연결합니다. 새 정책은 GPO 메커니즘을 사용해 모든 DC 사이에 자동으로 복제됩니다.
GPO에는 다음과 같이 모든 DC가 로컬에서 실행하여 관심 데이터를 수집하는 PowerShell 스크립트가 포함되어 있습니다.
-
이 스크립트는 Windows EvtSubscribe API를 사용하여 각 도메인 컨트롤러에서 이벤트 로그 수신기를 구성합니다. 스크립트는 TenableADEventsListenerConfiguration.json 구성 파일에 지정된 대로 일치하는 각 이벤트 로그에 대해 EvtSubscribe에 의해 트리거되는 콜백 및 요청을 제출하여 필요한 각 이벤트 로그 채널을 구독합니다.
-
이벤트 수신기는 이벤트 로그를 수신하고 Sysvol이라는 네트워크 공유에 저장된 파일로 주기적으로 플러시하기 전에 이벤트 로그를 버퍼링합니다. 각 DC는 수집된 이벤트를 저장하는 Sysvol 파일 하나에 플러시하고 다른 도메인 컨트롤러에 복제합니다.
-
또한 이 스크립트는 DC가 다시 시작될 때 이벤트 구독자를 다시 등록하여 이 메커니즘이 지속되도록 WMI 소비자를 만듭니다. WMI는 소비자가 이벤트 수신기를 다시 등록할 수 있도록 DC가 다시 시작될 때마다 소비자에게 알립니다.
-
이 시점에 분산 파일 시스템(DFS) 복제가 발생하여 여러 도메인 컨트롤러 간에 파일을 자동으로 동기화합니다. Tenable Identity Exposure의 플랫폼은 유입되는 DFS 복제 트래픽을 수신 대기하고 이 데이터를 사용하여 이벤트를 수집하고 보안 분석을 실행한 다음 IoA 알림을 생성합니다.
로컬 데이터 가져오기
Windows 이벤트 로그는 운영 체제와 애플리케이션에서 발생하는 모든 이벤트를 기록합니다. 이벤트 로그는 Windows에 통합된 구성 요소의 프레임워크에 의존합니다.
Tenable Identity Exposure IoA 이벤트 로그 수신기는 EvtSubscribe API를 사용하여 이벤트 로그에서 추출하는 삽입 문자열 형식으로 유용한 이벤트 로그 데이터 세그먼트만 수집합니다. Tenable Identity Exposure에서는 이러한 삽입 문자열을 Sysvol 폴더에 저장된 파일에 쓰고 DFS 엔진을 통해 복제합니다. 그러면 Tenable Identity Exposure에서 이벤트 로그로부터 보안 분석을 실행하고 공격을 탐지하기에 적절한 양의 데이터만 수집할 수 있습니다.
IoA 스크립트 요약
다음 표는 Tenable Identity Exposure 스크립트 배포에 관한 개요입니다.
단계 | 설명 | 관련된 구성 요소 | 기술적 조치 |
---|---|---|---|
1 | Tenable Identity Exposure의 IoA 배포 등록 | GPO 관리 | Tenable.ad(기본 이름) GPO를 만들고 도메인 컨트롤러 OU에 연결합니다. |
2 | DC에서 Tenable Identity Exposure의 IoA 배포 시작 | DC 로컬 시스템 | AD 복제 및 그룹 정책 새로 고침 간격에 따라 각 DC가 적용할 새 GPO를 탐지합니다. |
3 | 고급 로깅 정책 상태 제어 | DC 로컬 시스템 | 시스템이 레지스트리 키 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\SCENoApplyLegacyAuditPolicy를 설정하여 고급 로깅 정책을 활성화합니다. |
4 | 로컬 로깅 정책 업데이트 | DC 로컬 시스템 | 탐지하려는 IoA에 따라 Tenable Identity Exposure에서는 특정 감사 정책을 동적으로 생성하고 활성화합니다. 이 정책은 기존 로깅 정책을 비활성화하지 않으며 필요한 경우 보강하기만 합니다. 충돌이 탐지되면 GPO 설치 스크립트가 중단되고 "Tenable Identity Exposure에 감사 정책이 필요 '...' 하지만 현재 AD 구성이 그 사용을 방지합니다."와 같은 메시지가 표시됩니다. |
5 | 이벤트 수신기 및 WMI 생산자 등록 | DC 로컬 시스템 | 시스템은 GPO에 포함된 스크립트를 등록하고 실행합니다. 이 스크립트는 PowerShell 프로세스를 실행하여 EvtSubscribe API를 사용하는 이벤트 로그를 구독하고 지속성을 위해 ActiveScriptEventConsumer 인스턴스를 만듭니다. Tenable Identity Exposure에서 이러한 개체를 사용해 이벤트 로그 콘텐츠를 수신하고 저장합니다. |
6 | 이벤트 로그 메시지 수집 | DC 로컬 시스템 |
Tenable Identity Exposure에서 관련 이벤트 로그 메시지를 캡처하고 주기적으로 버퍼링한 다음 Tenable Identity ExposureGPO(...{GPO_GUID}\Machine\IOA<DC_name>)에 연결된 Sysvol 폴더에 저장된 파일(DC당 한 개)에 저장합니다. |
7 | 선언된 DC SYSVOL 폴더에 파일 복제 | Active Directory | AD는 DFS를 사용해 도메인 전체(특히 선언된 DC)에 파일을 복제합니다. Tenable Identity Exposure 플랫폼은 각 파일에 대한 알림을 받고 해당 내용을 읽습니다. |
8 | 이러한 파일 덮어쓰기 | Active Directory | 각각의 DC가 같은 파일에서 주기적으로 버퍼링된 이벤트를 자동으로 지속적으로 씁니다. |
GPO에는 다음과 같이 모든 DC가 로컬에서 실행하여 관심 데이터를 수집하는 PowerShell 스크립트가 포함되어 있습니다.
-
이 스크립트는 시스템 메모리에 이벤트 감시자와 WMI(Windows Management Instrumentation) 생산자/소비자를 구성합니다. WMI는 로컬 또는 원격 컴퓨터 시스템의 상태에 관한 정보를 제공하는 Windows 구성 요소입니다.
-
이벤트 감시자는 이벤트 로그를 수신하고 Sysvol이라는 네트워크 공유에 저장된 파일로 플러시하기 전에 이벤트 로그를 주기적으로 버퍼링합니다. 각 DC는 수집된 이벤트를 저장하는 Sysvol 파일 하나에 플러시하고 다른 도메인 컨트롤러에 복제합니다.
-
WMI 소비자는 DC가 다시 시작되면 이벤트 감시자를 다시 등록하여 이 메커니즘을 지속합니다. DC가 다시 시작될 때마다 생산자가 다시 작동하여 소비자에게 이를 알립니다. 결과적으로 소비자가 이벤트 감시자를 다시 등록합니다.
-
이 시점에 분산 파일 시스템 또는 DFS 복제가 발생하며 여러 도메인 컨트롤러 간에 파일을 자동으로 동기화합니다. Tenable Identity Exposure의 플랫폼은 유입되는 DFS 복제 트래픽을 수신 대기하고 이 데이터를 사용하여 이벤트를 수집하고 보안 분석을 실행한 다음 IoA 알림을 생성합니다.
로컬 데이터 가져오기
Windows 이벤트 로그는 운영 체제와 애플리케이션에서 발생하는 모든 이벤트를 기록합니다. ETW(Event Tracing for Windows)라는 이벤트 로그는 Windows에 통합된 구성 요소 프레임워크에 의존합니다. ETW는 커널에 있으며 DC에 로컬로 저장되고 AD 프로토콜이 복제하지 않은 데이터를 생산합니다.
Tenable Identity Exposure에서는 WMI 엔진을 사용하여 유용한 ETW 데이터 세그먼트만, 이벤트 로그에서 추출하는 삽입 문자열 형식으로 수집합니다. Tenable Identity Exposure에서는 이러한 삽입 문자열을 Sysvol 폴더에 저장된 파일에 쓰고 DFS 엔진을 통해 복제합니다. 이렇게 하면 Tenable Identity Exposure에서 ETW로부터 보안 분석을 실행하고 공격을 감지하는 데 적절한 양의 데이터만 수집할 수 있습니다.
IoA 스크립트 요약
다음 표는 Tenable Identity Exposure 스크립트 배포에 관한 개요입니다.
단계 | 설명 | 관련된 구성 요소 | 기술적 조치 |
---|---|---|---|
1 | Tenable Identity Exposure의 IoA 배포 등록 | GPO 관리 | Tenable.ad(기본 이름) GPO를 만들고 도메인 컨트롤러 OU에 연결합니다. |
2 | DC에서 Tenable Identity Exposure의 IoA 배포 시작 | DC 로컬 시스템 | AD 복제 및 그룹 정책 새로 고침 간격에 따라 각 DC가 적용할 새 GPO를 탐지합니다. |
3 | 이벤트 감시자 및 WMI 생산자/소비자 등록 | DC 로컬 시스템 | 시스템이 즉시 실행 작업을 등록하여 실행합니다. 이 작업이 PowerShell 프로세스를 실행하여 ManagementEventWatcher 및 ActiveScriptEventConsumer 클래스의 인스턴스를 만듭니다. Tenable Identity Exposure에서 이러한 개체를 사용해 ETW 메지시를 수신하고 저장합니다. |
4 | 고급 로깅 정책 상태 제어 | DC 로컬 시스템 | 시스템이 레지스트리 키 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\SCENoApplyLegacyAuditPolicy를 설정하여 고급 로깅 정책을 활성화합니다. |
5 | 로컬 로깅 정책 업데이트 | DC 로컬 시스템 | 탐지하려는 IoA에 따라 Tenable Identity Exposure에서는 고급 로깅 정책을 동적으로 생성하고 활성화합니다. 이 정책은 기존 로깅 정책을 비활성화하지 않으며 필요한 경우 보강하기만 합니다. 충돌이 탐지되면 GPO 설치 스크립트가 중단되고 "Tenable Identity Exposure에 감사 정책이 필요 '...' 하지만 현재 AD 구성이 그 사용을 방지합니다."와 같은 메시지가 표시됩니다. |
6 | ETW 메시지 수집 | DC 로컬 시스템 |
Tenable Identity Exposure에서 관련 ETW 메시지를 캡처하고 주기적으로 버퍼링한 다음 Tenable Identity ExposureGPO(...{GPO_GUID}\Machine\IOA<DC_name>)에 연결된 Sysvol 폴더에 저장된 파일(DC당 한 개)에 저장합니다. |
7 | Tenable Identity Exposure 플랫폼에 파일 복제 | Active Directory | AD는 DFS를 사용해 도메인 전체에 파일을 복제합니다. Tenable Identity Exposure 플랫폼은 파일도 수신합니다. |
8 | 이러한 파일 덮어쓰기 | Active Directory | 각각의 DC가 같은 파일에서 주기적으로 버퍼링된 이벤트를 자동으로 지속적으로 씁니다. |
참고 항목