이 문서에서는 Azure Local 버전 23H2에 대한 syslog 프로토콜을 사용하여 SIEM(고객 관리 보안 정보 및 이벤트 관리) 시스템으로 전달되도록 보안 이벤트를 구성하는 방법을 설명합니다.
syslog 전달을 사용하여 보안 모니터링 솔루션과 통합하고 관련 보안 이벤트 로그를 검색하여 사용자 고유의 SIEM 플랫폼에 보존하기 위해 저장합니다. 이 릴리스의 보안 기능에 대한 자세한 내용은 Azure Local 버전 23H2의 보안 기능을 참조하세요.
syslog 전달 구성
Syslog 전달 에이전트는 기본적으로 모든 Azure 로컬 호스트에 배포되며 구성할 준비가 됩니다. 각 에이전트는 호스트에서 고객이 구성한 syslog 서버로 syslog 형식의 보안 이벤트를 전달합니다.
Syslog 전달 에이전트는 서로 독립적으로 작동하지만 호스트 중 하나에서 모두 함께 관리할 수 있습니다. 모든 호스트에 대한 관리 권한이 있는 PowerShell cmdlet을 사용하여 모든 전달자 에이전트의 동작을 제어합니다.
Azure Local의 syslog 전달자는 다음 구성을 지원합니다.
TCP, 상호 인증(클라이언트 및 서버) 및 TLS 암호화를 사용한 Syslog 전달: 이 구성에서 syslog 서버와 syslog 클라이언트는 인증서를 통해 서로의 ID를 확인합니다. 메시지는 TLS 암호화 채널을 통해 전송됩니다. 자세한 내용은 TCP, 상호 인증(클라이언트 및 서버) 및 TLS 암호화를 사용한 Syslog 전달을 참조하세요.
TCP, 서버 인증 및 TLS 암호화를 사용한 Syslog 전달: 이 구성에서 syslog 클라이언트는 인증서를 통해 syslog 서버의 ID를 확인합니다. 메시지는 TLS 암호화 채널을 통해 전송됩니다. 자세한 내용은 TCP, 서버 인증 및 TLS 암호화를 사용한 Syslog 전달을 참조하세요.
TCP를 사용한 Syslog 전달 및 암호화 없음: 이 구성에서는 syslog 클라이언트 및 syslog 서버 ID가 확인되지 않습니다. 메시지는 TCP를 통해 명확한 텍스트로 전송됩니다. 자세한 내용은 TCP를 사용한 Syslog 전달 및 암호화 없음을 참조하세요.
UDP 및 암호화가 없는 Syslog: 이 구성에서는 syslog 클라이언트 및 syslog 서버 ID가 확인되지 않습니다. 메시지는 UDP를 통해 명확한 텍스트로 전송됩니다. 자세한 내용은 UDP를 사용한 Syslog 전달 및 암호화 없음을 참조하세요.
Important
메시지의 중간 공격 및 도청으로부터 보호하기 위해 프로덕션 환경에서 인증 및 암호화와 함께 TCP를 사용하는 것이 좋습니다.
TLS 암호화 버전은 엔드포인트 간의 핸드셰이크에 따라 달라집니다. TLS 1.2 및 TLS 1.3 모두 기본적으로 지원됩니다.
Syslog 전달을 구성하는 cmdlet
syslog 전달자를 구성하려면 도메인 관리자 계정을 사용하여 물리적 호스트에 액세스해야 합니다. Syslog 전달자의 동작을 제어하기 위해 모든 Azure 로컬 호스트에 PowerShell cmdlet 집합이 추가되었습니다.
cmdlet Set-AzSSyslogForwarder 은 모든 호스트에 대한 syslog 전달자 구성을 설정하는 데 사용됩니다. 성공하면 작업 계획 인스턴스가 모든 호스트에서 syslog 전달자 에이전트를 구성하기 시작합니다. 작업 계획 인스턴스 ID가 반환됩니다.
다음 cmdlet을 사용하여 전달자에게 syslog 서버 정보를 전달하고 전송 프로토콜, 암호화, 인증 및 클라이언트와 서버 간에 사용되는 선택적 인증서를 구성합니다.
다음 표에서는 cmdlet에 대한 매개 변수를 Set-AzSSyslogForwarder 제공합니다.
매개 변수
설명
Type
Required
ServerName
Syslog 서버의 FQDN 또는 IP 주소입니다.
String
예
ServerPort
Syslog 서버에서 수신 대기하는 포트 번호입니다.
UInt16
예
NoEncryption
클라이언트가 syslog 메시지를 일반 텍스트로 보내도록 강제합니다.
플래그
아니요
SkipServerCertificateCheck
초기 TLS 핸드셰이크 중에 syslog 서버에서 제공하는 인증서의 유효성 검사를 건너뜁니다.
플래그
아니요
SkipServerCNCheck
초기 TLS 핸드셰이크 중에 syslog 서버에서 제공하는 인증서의 Common Name 값에 대한 유효성 검사를 건너뜁니다.
플래그
아니요
UseUDP
UDP를 지원하는 syslog를 전송 프로토콜로 사용합니다.
플래그
아니요
ClientCertificateThumbprint
syslog 서버와 통신하는 데 사용되는 클라이언트 인증서의 지문입니다.
문자열
아니요
OutputSeverity
출력 로깅 수준입니다. 값은 Default 또는 Verbose입니다. Default에는 심각도 수준(경고, 위험 또는 오류)이 포함됩니다. Verbose에는 모든 심각도 수준(자세한 정보, 정보, 경고, 위험 또는 오류)이 포함됩니다.
문자열
아니요
Remove
현재 syslog 전달자 구성을 제거하고 syslog 전달자를 중지합니다.
플래그
아니요
TCP, 상호 인증(클라이언트 및 서버) 및 TLS 암호화를 사용한 Syslog 전달
이 구성에서 Azure Local의 syslog 클라이언트는 TLS 암호화를 사용하여 TCP를 통해 syslog 서버에 메시지를 전달합니다. 초기 핸드셰이크 중에 클라이언트는 서버가 신뢰할 수 있는 유효한 인증서를 제공하는지 확인합니다. 또한 클라이언트는 자신의 ID를 증명하기 위해 서버에 인증서를 제공합니다.
이 구성은 클라이언트와 서버의 ID에 대한 전체 유효성 검사를 제공하고 암호화된 채널을 통해 메시지를 전송하므로 가장 안전합니다.
Important
프로덕션 환경에 이 구성을 사용하는 것이 좋습니다.
TCP, 상호 인증 및 TLS 암호화를 사용하여 syslog 전달자를 구성하려면 서버를 구성하고 서버에 대해 인증할 인증서를 클라이언트에 제공합니다.
물리적 호스트에 대해 다음 cmdlet을 실행합니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -ClientCertificateThumbprint <Thumbprint of the client certificate>
Important
클라이언트 인증서에는 프라이빗 키가 포함되어야 합니다. 자체 서명된 루트 인증서를 사용하여 클라이언트 인증서에 서명된 경우 루트 인증서도 가져와야 합니다.
TCP, 서버 인증 및 TLS 암호화를 사용한 Syslog 전달
이 구성에서 Azure Local의 syslog 전달자는 TLS 암호화를 사용하여 TCP를 통해 메시지를 syslog 서버로 전달합니다. 초기 핸드셰이크 중에 클라이언트는 서버가 신뢰할 수 있는 유효한 인증서를 제공하는지도 확인합니다.
이 구성은 클라이언트가 신뢰할 수 없는 대상으로 메시지를 보낼 수 없도록 합니다. 인증 및 암호화를 사용하는 TCP는 기본 구성이며 Microsoft에서 프로덕션 환경에 권장하는 최소 보안 수준을 나타냅니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
자체 서명되거나 신뢰할 수 없는 인증서를 사용하여 Syslog 서버와 Azure Local syslog 전달자의 통합을 테스트하려면 이러한 플래그를 사용하여 초기 핸드셰이크 중에 클라이언트가 수행한 서버 유효성 검사를 건너뜁니다.
서버 인증서에서 일반 이름 값의 유효성 검사를 건너뜁니다. syslog 서버에 대한 IP 주소를 제공하는 경우 이 플래그를 사용합니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
-SkipServerCNCheck
서버 인증서 유효성 검사를 건너뜁니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening>
-SkipServerCertificateCheck
Important
프로덕션 환경에서는 플래그를 -SkipServerCertificateCheck 사용하지 않는 것이 좋습니다.
TCP를 사용한 Syslog 전달 및 암호화 없음
이 구성에서 Azure Local의 syslog 클라이언트는 암호화 없이 TCP를 통해 syslog 서버에 메시지를 전달합니다. 클라이언트는 서버의 ID를 확인하지 않으며 확인을 위해 서버에 자체 ID를 제공하지도 않습니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening on> -NoEncryption
Important
프로덕션 환경에서는 이 구성을 사용하지 않는 것이 좋습니다.
UDP를 사용한 Syslog 전달 및 암호화 없음
이 구성에서 Azure Local의 syslog 클라이언트는 암호화 없이 UDP를 통해 syslog 서버에 메시지를 전달합니다. 클라이언트는 서버의 ID를 확인하지 않으며 확인을 위해 서버에 자체 ID를 제공하지도 않습니다.
Set-AzSSyslogForwarder -ServerName <FQDN or IP address of syslog server> -ServerPort <Port number on which the syslog server is listening> -UseUDP
암호화가 없는 UDP는 가장 쉽게 구성할 수 있지만 메시지의 중간 공격이나 도청에 대한 보호는 제공하지 않습니다.
Important
프로덕션 환경에서는 이 구성을 사용하지 않는 것이 좋습니다.
syslog 전달 사용
다음 cmdlet을 실행하여 syslog 전달을 사용하도록 설정합니다.
Enable-AzSSyslogForwarder [-Force]
Syslog 전달자는 마지막으로 성공한 Set-AzSSyslogForwarder 호출에서 제공하는 저장된 구성으로 사용하도록 설정됩니다. 를 사용하여 Set-AzSSyslogForwarder구성이 제공되지 않은 경우 cmdlet이 실패합니다.
syslog 전달 사용 안 함
다음 cmdlet을 실행하여 syslog 전달을 사용하지 않도록 설정합니다.
Disable-AzSSyslogForwarder [-Force]
및 cmdlet에 대한 Enable-AzSSyslogForwarderDisable-AzSSyslogForwarder 매개 변수:
매개 변수
설명
Type
Required
Force
지정한 경우 대상 상태가 현재 상태와 동일한 경우에도 작업 계획이 항상 트리거됩니다. 대역 외 변경 내용을 다시 설정하는 데 도움이 될 수 있습니다.
플래그
아니요
syslog 설치 확인
syslog 클라이언트를 syslog 서버에 성공적으로 연결하면 이벤트 알림을 받기 시작합니다. 알림이 표시되지 않으면 다음 cmdlet을 실행하여 클러스터 syslog 전달자 구성을 확인합니다.
query="Security!*[System[(EventID=4778 또는 EventID=4779)]]"
IPC$ 및 Netlogon 공유가 없는 네트워크 공유 개체 액세스
query="Security![System[(EventID=5140)] and EventData[Data[@Name='ShareName']!='\\IPC$'] and EventData[Data[@Name='ShareName']!='\*\NetLogon']]"
시스템 시간 변경(4616)
query="Security!*[System[(EventID=4616)]]"
네트워크 또는 서비스 이벤트가 없는 로컬 로그온
query="Security!*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']!='3'] and EventData[Data[@Name='LogonType']!='5']]"
보안 로그 지워진 이벤트(1102), EventLog 서비스 종료(1100)
query="Security!*[System[(EventID=1102 또는 EventID=1100)]]"
사용자가 시작한 로그오프
query="Security!*[System[(EventID=4647)]]"
모든 비네트워크 로그온 세션에 대한 사용자 로그오프
query="Security!*[System[(EventID=4634)] and EventData[Data[@Name='LogonType'] != '3']]"
사용자 계정이 LocalSystem, NetworkService, LocalService가 아닌 경우 서비스 로그온 이벤트
query="Security!*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='5'] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-18 '] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-19'] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-20']]"
네트워크 공유 만들기(5142), 네트워크 공유 삭제(5144)
query="Security!*[System[(EventID=5142 or EventID=5144)]]"
query="Application!*[System[Provider[@Name='Windows 오류 보고']] and EventData[Data[3]='APPCRASH']]"
임시 프로필을 사용한 사용자 로그온(1511)은 임시 프로필을 사용하여 프로필을 만들 수 없습니다(1518).
query="Application!*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]] "
WER/1001과 유사한 애플리케이션 크래시/중단 이벤트입니다. 여기에는 오류 EXE/모듈에 대한 전체 경로가 포함됩니다.
query="Application!*[System[Provider[@Name='Application Error'] and (EventID=1000)] or System[Provider[@Name='Application Hang'] and (EventID=1002)]] "
작업 스케줄러 작업 등록(106), 작업 등록 삭제됨(141), 작업 삭제됨(142)
query="Microsoft-Windows-TaskScheduler/Operational!*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 또는 EventID=141 또는 EventID=142 )]]"
query="Microsoft-Windows-SMBClient/Operational!*[System[(EventID=30622 또는 EventID=30624)]]"
최신 SysMon 이벤트 공급자
query="Microsoft-Windows-Sysmon/Operational!*"
최신 Windows Defender 이벤트 공급자 검색 이벤트(1006-1009) 및 (1116-1119); 고객별 더하기(5001,5010,5012) req'd
query="Microsoft-Windows-Windows Defender/Operational!*[System[( (EventID >= 1006 및 EventID <= 1009) 또는 (EventID >= 1116 및 EventID <= 1119) 또는 (EventID = 5001 또는 EventID = 5010 또는 EventID = 5012) )]]"
코드 무결성 이벤트
query="Microsoft-Windows-CodeIntegrity/Operational!*[System[Provider[@Name='Microsoft-Windows-CodeIntegrity'] and (EventID=3076 또는 EventID=3077)]]"
CA 중지/시작 이벤트 CA 서비스 중지됨(4880), CA 서비스 시작됨(4881), CA DB 행 삭제됨(4896), 로드된 CA 템플릿(4898)
query="Security!*[System[(EventID=4880 또는 EventID = 4881 또는 EventID = 4896 또는 EventID = 4898)]]"
RRAS 이벤트 – Microsoft IAS 서버에서만 생성됨
query="Security!*[System[( (EventID >= 6272 and EventID <= 6280) )]]] "
프로세스 종료(4689)
query="Security!*[System[(EventID = 4689)]]"
작업에 대한 레지스트리 수정 이벤트: 새로 만든 레지스트리 값(%%1904), 수정된 기존 레지스트리 값(%%1905), 레지스트리 값 삭제됨(%%1906)
query="Security!*[System[(EventID=4657)] and (EventData[Data[@Name='OperationType'] = '%%1904'] or EventData[Data[@Name='OperationType'] = '%%1905'] or EventData[Data[@Name='OperationType'] = '%1906']]"
무선 네트워크에 대한 인증 요청(피어 MAC(5632 포함)
query="Security!*[System[(EventID=5632)]]"
System(6416)에서 새 외부 디바이스를 인식했습니다.
query="Security!*[System[(EventID=6416)]]"
RADIUS 인증 이벤트 사용자 할당 IP 주소(20274), 사용자가 성공적으로 인증(20250), 사용자 연결 끊김(20275)
query="System!*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 or EventID=20250 or EventID=20275)]]"
CAPI 이벤트 빌드 체인(11), 액세스된 프라이빗 키(70), X509 개체(90)
query="Microsoft-Windows-CAPI2/Operational!*[System[(EventID=11 또는 EventID=70 또는 EventID=90)]]"
새 로그인에 할당된 그룹(잘 알려진 기본 제공 계정 제외)
query="Microsoft-Windows-LSA/Operational!*[System[(EventID=300)] and EventData[Data[@Name='TargetUserSid'] != 'S-1-5-20'] and EventData[Data [@Name='TargetUserSid'] != 'S-1-5-18'] 및 EventData[Data[@Name='TargetUserSid'] != 'S-1-5-19']]"
DNS 클라이언트 이벤트
query="Microsoft-Windows-DNS-Client/Operational!*[System[(EventID=3008)] and EventData[Data[@Name='QueryOptions'] != '140737488355328'] and EventData[Data[@Name='QueryResults']='']"
query="System!*[System[(EventID=7036)] and EventData[Data[@Name='param1']]='Microsoft Defender 바이러스 백신 Network Inspection Service'] 및 EventData[Data[@Name='param2']='stopped']]"