WMI 서비스
1. Windows Management Instrumentation(WMI)
구분 | 설명 |
WMI란? | - Windows Management Instrumentation의 약자. - Windows 운영 체제에서 관리 및 모니터링 데이터를 제공하는 프레임워크. - 시스템 구성, 상태, 성능 및 보안 관련 정보를 쿼리하고 관리할 수 있도록 지원. - PowerShell, VBScript, Python 등에서 사용 가능. |
주요 기능 | - 시스템 정보 조회: CPU, 메모리, 디스크, 네트워크 상태 등. - 이벤트 모니터링: 특정 조건에서 발생하는 이벤트 탐지. - 프로세스 제어: 프로세스 시작, 종료, 상태 확인. - 보안 관리: 사용자 계정 정보, 시스템 권한 설정 확인. - 네트워크 설정: IP 주소, 네트워크 인터페이스 상태 조회. |
WMI 구동이 필수적인 경우 | - 시스템 모니터링 도구를 사용하는 환경(예: Nagios, Zabbix, Security Onion 등). - Active Directory 기반 관리 환경(예: 도메인 그룹 정책). - 자동화된 스크립트 및 관리 도구(예: PowerShell, Python). - 원격 관리 및 상태 확인이 필요한 대규모 네트워크 환경. |
구분 | 문제점 | 설명 |
WMI 미구동 |
시스템 관리 및 모니터링 장애 |
- 원격 시스템 관리 도구(예: SCCM, PowerShell Remoting, Group Policy 등)가 정상 동작하지 않음. - 시스템 상태, 성능 데이터를 수집할 수 없으므로 모니터링 불가. |
소프트웨어 관리 장애 |
- 설치된 소프트웨어 목록 확인 및 원격 업데이트 관리 불가. - 보안 패치 상태 확인 실패. |
|
보안 이슈 | - 보안 점검 도구에서 WMI를 사용하지 못하면 권한 상태, 계정 정보 등을 조회할 수 없게 됨. - 비정상적인 활동(예: 악성코드 실행)을 탐지할 수 있는 기능 제한. |
|
이벤트 로깅 문제 | - 시스템 로그 수집이 제한되어 침해사고 분석이나 로그 기반 경고를 받을 수 없음. | |
네트워크 및 디바이스 관리 문제 |
- IP 설정, 네트워크 인터페이스 상태를 쿼리하지 못해 네트워크 관리 불가. |
WMI 서비스 시작 유형 확인
● WMI 서비스의 시작유형이 “사용 안함”으로 설정되어 있을 경우 에러 발생
● 시작 유형이 “사용 안함” 외 다른 값으로 설정되어 있을 경우, 스크립트 구동 시 WMI 서비스가 실행 되는 것을 확인
WMI 활성화
- Windows WMI 서비스 속성창에서 실행 상태 확인
- 제어판 > 관리도구 > 서비스 > Windows Management Instrumentation > 속성
- 실행 > services.msc > Windows Management Instrumentation 확인
- 실행 > wbemtest.exe > 쿼리 입력으로 WMI 서비스 동작 확인
- 명령어 : SELECT State FROM Win32_Service WHERE Name='Winmgmt' AND State='Running'
DCOM 보안 설정
● 실행(Windows+r) > dcomcnfg > 구성 요소 서비스 > 컴퓨터 > 속성
● 이 컴퓨터에서 DCOM 사용(E) 체크 시 기본 DCOM 통신 속성 활성화
● 레지스트리 경로 HKLM:\SOFTWARE\Microsoft\Ole의 EnableDCOM으로 확인 가능
● DCOM 사용 시 Y 사용하지 않을 시 N
● 기본 속성 탭에서 기본 인증 수준이 는 "패킷 개인정보(Packet Privacy)" 속성으로 설정 되어 있는지 확인
● 기본 속성 탭에서 기본 가장 수준이 "식별(Identify)"등 클라이언트의 권한을 사용할 수 없는 속성으로 설정 되어 있는지 확인
● HKLM:\SOFTWARE\Microsoft\Ole의 LegacyAuthenticationLevel 및 LegacyImpresonationLevel에서 확인 가능
위 그림처럼 LegacyAuthenticationLevel을 설정하지 않을 경우 레지스트리를 확인할 수 없다. (기본값 : Connect)
● 기본 인증 수준
- 기본값은 0X00000002 (2) Connect
- 출처 : https://learn.microsoft.com/en-us/windows/win32/com/legacyauthenticationlevel5.
레지스트리 값(16진수) | 기능(권한) | 레지스트리 값(16진수) | 권고 여부 |
0x00000001 (1) | None | 0x00000004 (4) | Packet |
0x00000002 (2) | Connect (기본값) | 0x00000005 (5) | Packet Integrity |
0x00000003 (3) | Call | 0x00000006 (6) | Packet Privacy |
● 기본 가장 수준
- 기본값은 0X00000002 (2)Identify
- 출처 : https://learn.microsoft.com/ko-kr/windows/win32/com/legacyimpersonationlevel
레지스트리 값(16진수) | 기능(권한) | 레지스트리 값(16진수) | 권고 여부 |
0x00000001 (1) | Anonymous | 0x00000003 (3) | Impersonate |
0x00000002 (2) | Identify (기본값) | 0x00000004 (4) | Delegate |