Microsoft System Center Endpoint Protection (SCEP) 로그 수집

다음에서 지원:

이 문서에서는 Microsoft Azure Blob Storage V2를 사용하여 Google Security Operations 피드를 설정하여 Microsoft System Center Endpoint Protection (SCEP) 로그를 수집하는 방법을 설명합니다.

Microsoft System Center Endpoint Protection (SCEP)은 System Center Configuration Manager (SCCM)와 통합된 엔터프라이즈 멀웨어 및 바이러스 백신 솔루션입니다. SCEP는 Windows 기반 엔드포인트에 대한 멀웨어, 바이러스, 스파이웨어 및 기타 악성 소프트웨어에 대한 실시간 보호를 제공합니다. SCEP는 Microsoft-Windows-Windows Defender/Operational Windows 이벤트 로그 채널에 보안 관련 활동을 기록하며, 이 채널은 Azure Monitor 에이전트를 사용하여 수집하고 Azure Blob Storage로 내보낼 수 있습니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스
  • 다음 권한이 있는 Microsoft Azure 포털에 대한 관리자 액세스 권한
    • 스토리지 계정 만들기
    • Log Analytics 작업공간 만들기 및 관리
    • 데이터 수집 규칙 만들기 및 관리
    • 데이터 내보내기 규칙 구성
    • 액세스 키 관리
  • SCEP가 설치된 Windows Server 2012 R2 이상 또는 Windows Defender 바이러스 백신이 설치된 Windows Server 2016 이상
  • Windows 서버에 설치된 Azure Monitor 에이전트 (온프레미스 서버의 경우 Azure Arc 필요, Azure VM의 경우 기본 지원)
  • SCEP가 배포된 Windows 서버에 대한 관리자 액세스

Azure 스토리지 계정 구성

스토리지 계정 만들기

  1. Azure 포털에서 스토리지 계정을 검색합니다.
  2. + 만들기를 클릭합니다.
  3. 다음 구성 세부정보를 제공합니다.

    설정
    구독 Azure 구독 선택
    리소스 그룹 기존 항목 선택 또는 새로 만들기
    스토리지 계정 이름 고유한 이름 (예: sceplogssa)을 입력합니다.
    리전 리전을 선택합니다 (예: East US).
    성능 표준 (권장)
    중복성 GRS (지리적 중복 스토리지) 또는 LRS (로컬 중복 스토리지)
  4. 검토 + 만들기를 클릭합니다.

  5. 계정 개요를 검토하고 만들기를 클릭합니다.

  6. 배포가 완료될 때까지 기다립니다.

스토리지 계정 사용자 인증 정보 가져오기

  1. 방금 만든 스토리지 계정으로 이동합니다.
  2. 왼쪽 탐색 메뉴의 보안 + 네트워킹에서 액세스 키를 선택합니다.
  3. 키 표시를 클릭합니다.
  4. 나중에 사용할 수 있도록 다음을 복사하여 저장합니다.
    • 스토리지 계정 이름: 생성한 이름 (예: sceplogssa)
    • 키 1 또는 키 2: 공유 액세스 키 (base-64 인코딩의 512비트 무작위 문자열)

Blob 서비스 엔드포인트 가져오기

  1. 동일한 스토리지 계정의 왼쪽 탐색에서 엔드포인트를 선택합니다.
  2. Blob 서비스 엔드포인트 URL을 복사하여 저장합니다.
    • 예: https://sceplogssa.blob.core.windows.net/

로그 애널리틱스 작업공간 만들기

  1. Azure 포털에서 Log Analytics 작업 영역을 검색합니다.
  2. + 만들기를 클릭합니다.
  3. 다음 구성 세부정보를 제공합니다.

    설정
    구독 Azure 구독 선택
    리소스 그룹 스토리지 계정과 동일한 리소스 그룹을 선택합니다.
    이름 고유한 이름 (예: scep-logs-workspace)을 입력합니다.
    리전 스토리지 계정과 동일한 리전을 선택합니다.
  4. Review + Create(검토 + 만들기)를 클릭합니다.

  5. 만들기를 클릭합니다.

  6. 배포가 완료될 때까지 기다립니다.

Windows 서버에 Azure Monitor 에이전트 설치

SCEP를 실행하는 온프레미스 서버의 경우 먼저 서버를 Azure Arc에 온보딩한 다음 Azure Monitor 에이전트를 설치해야 합니다.

Azure Arc 온보딩 (온프레미스 서버만 해당)

  1. Azure 포털에서 Azure Arc를 검색합니다.
  2. 인프라에서 서버를 선택합니다.
  3. + 추가를 클릭합니다.
  4. 단일 서버 추가를 선택하고 스크립트 생성을 클릭합니다.
  5. 다음 구성 세부정보를 제공합니다.
    • 구독: Azure 구독을 선택합니다.
    • 리소스 그룹: 리소스 그룹을 선택합니다.
    • 리전: 스토리지 계정과 동일한 리전을 선택합니다.
    • 운영체제: Windows를 선택합니다.
  6. 스크립트 다운로드 및 실행을 클릭합니다.
  7. SCEP를 실행하는 Windows 서버에서 관리자 권한으로 PowerShell을 엽니다.
  8. 다운로드한 스크립트를 실행하여 Azure Arc 온보딩을 완료합니다.

Azure Monitor 에이전트 설치

  1. Azure 포털에서 Azure Arc > 서버 (또는 Azure VM의 경우 가상 머신)으로 이동합니다.
  2. SCEP를 실행하는 서버를 선택합니다.
  3. 왼쪽 탐색에서 설정 아래의 확장 프로그램을 선택합니다.
  4. + 추가를 클릭합니다.
  5. Azure Monitor 에이전트를 검색하여 선택합니다.
  6. 다음을 클릭한 다음 검토 + 만들기를 클릭합니다.
  7. 만들기를 클릭합니다.
  8. 확장 프로그램 설치가 완료될 때까지 기다립니다.

SCEP 이벤트의 데이터 수집 규칙 만들기

  1. Azure 포털에서 모니터링을 검색합니다.
  2. 설정에서 데이터 수집 규칙을 선택합니다.
  3. + 만들기를 클릭합니다.
  4. 기본 탭에서 다음 구성 세부정보를 제공합니다.
    • 규칙 이름: 설명이 포함된 이름을 입력합니다 (예: dcr-scep-events).
    • 구독: Azure 구독을 선택합니다.
    • 리소스 그룹: 리소스 그룹을 선택합니다.
    • 리전: Log Analytics 작업 공간과 동일한 리전을 선택합니다.
    • 플랫폼 유형: Windows를 선택합니다.
  5. 다음: 리소스를 클릭합니다.
  6. 리소스 탭에서 다음 안내를 따르세요.
    1. + 리소스 추가를 클릭합니다.
    2. 리소스 그룹을 펼치고 SCEP를 실행하는 서버 (Azure Arc 서버 또는 Azure VM)를 선택합니다.
    3. 적용을 클릭합니다.
  7. 다음: 수거 및 배송을 클릭합니다.
  8. 수거 및 배송 탭에서 다음을 수행합니다.

    1. + 데이터 소스 추가를 클릭합니다.
    2. 데이터 소스 유형 드롭다운에서 Windows 이벤트 로그를 선택합니다.
    3. 맞춤을 선택하여 XPath 쿼리를 입력합니다.
    4. + XPath 쿼리 추가를 클릭하고 다음 XPath 쿼리를 입력하여 모든 SCEP 및 Windows Defender 이벤트를 수집합니다.

      Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]
      

      이 XPath 쿼리는 Windows Defender Operational 채널에서 모든 이벤트 (Critical, Error, Warning, Information, Verbose)를 수집합니다. 특정 이벤트 ID (예: 멀웨어 감지)만 수집하려면 다음과 같이 더 타겟팅된 쿼리를 사용하세요.

      Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]]
      
    5. 대상 탭에서 + 대상 추가를 클릭합니다.

    6. 대상 유형으로 Azure Monitor 로그를 선택합니다.

    7. 이전에 만든 로그 애널리틱스 작업공간 (예: scep-logs-workspace)을 선택합니다.

  9. 데이터 소스 추가를 클릭합니다.

  10. 검토 + 만들기를 클릭합니다.

  11. 만들기를 클릭합니다.

수집된 주요 이벤트 ID

데이터 수집 규칙은 다음 주요 SCEP 이벤트 ID를 포함하는 Microsoft-Windows-Windows Defender/Operational 채널에서 이벤트를 수집합니다.

이벤트 ID 설명
1006 안티멀웨어 엔진에서 멀웨어를 감지함
1007 감지된 멀웨어에 대해 취해진 멀웨어 방지 조치
1116 실시간 보호에서 멀웨어 또는 잠재적으로 원치 않는 소프트웨어를 감지함
1117 실시간 보호 기능이 멀웨어에 대해 조치를 취함
2000 멀웨어 방지 서명 업데이트가 시작됨
2001 멀웨어 방지 서명 업데이트 완료
5007 맬웨어 방지 플랫폼 구성이 변경됨

Log Analytics 작업공간에서 Azure Blob Storage로 데이터 내보내기 구성

Microsoft.Insights 리소스 제공업체 등록

  1. Azure 포털에서 Subscriptions로 이동합니다.
  2. 구독을 선택합니다.
  3. 왼쪽 탐색에서 설정 아래의 리소스 제공업체를 선택합니다.
  4. Microsoft.Insights를 검색합니다.
  5. 상태가 등록됨이 아닌 경우 이를 선택하고 등록을 클릭합니다.

데이터 내보내기 규칙 만들기

  1. Azure 포털에서 Log Analytics 작업 영역 (예: scep-logs-workspace)으로 이동합니다.
  2. 왼쪽 탐색 메뉴의 설정에서 데이터 내보내기를 선택합니다.
  3. + 새 내보내기 규칙을 클릭합니다.
  4. 기본사항 탭에서 다음을 수행합니다.
    • 데이터 내보내기 규칙 이름: 설명이 포함된 이름 (예: export-scep-to-blob)을 입력합니다.
  5. 다음: 소스를 클릭합니다.
  6. 소스 탭에서 Event 테이블을 선택합니다.

  7. 다음: 도착 페이지를 클릭합니다.

  8. 대상 탭에서 다음을 수행합니다.

    • 대상 유형: 스토리지 계정을 선택합니다.
    • 구독: 스토리지 계정이 포함된 구독을 선택합니다.
    • 스토리지 계정: 이전에 만든 스토리지 계정을 선택합니다 (예: sceplogssa).
  9. 다음: 검토 + 만들기를 클릭합니다.

  10. 만들기를 클릭합니다.

  • 구성 후 이벤트가 스토리지 계정으로 자동 내보내기됩니다. 스토리지 계정에 am-Event라는 컨테이너가 생성됩니다. 블롭은 다음 경로 구조를 사용하여 5분 폴더에 저장됩니다.

    am-Event/
      └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/
          └── y={year}/m={month}/d={day}/h={hour}/m={minute}/
              └── PT05M.json
    

데이터 내보내기 확인

  1. Azure 포털에서 스토리지 계정 (예: sceplogssa)으로 이동합니다.
  2. 왼쪽 탐색 메뉴의 데이터 스토리지에서 컨테이너를 선택합니다.
  3. 컨테이너 am-Event가 있는지 확인합니다.
  4. 컨테이너로 이동하여 이벤트 데이터가 포함된 JSON 파일이 폴더 구조에 생성되고 있는지 확인합니다.

Microsoft System Center Endpoint Protection (SCEP) 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 다음 페이지에서 단일 피드 구성을 클릭합니다.
  4. 피드 이름 필드에 피드 이름을 입력합니다(예: Microsoft SCEP Logs).
  5. 소스 유형으로 Microsoft Azure Blob Storage V2를 선택합니다.
  6. 로그 유형으로 Microsoft System Center Endpoint Protection (SCEP)을 선택합니다.
  7. 다음을 클릭합니다.
  8. 다음 입력 매개변수의 값을 지정합니다.

    • Azure URI: 컨테이너 경로와 함께 Blob 서비스 엔드포인트 URL을 입력합니다.
    https://sceplogssa.blob.core.windows.net/am-Event/
    

    다음을 바꿉니다.

    • sceplogssa: Azure 스토리지 계정 이름입니다.
    • am-Event: 내보낸 이벤트가 저장되는 blob 컨테이너 이름입니다.
    • 소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
      • 삭제 안함: 전송 후 파일을 삭제하지 않습니다.
      • 전송된 파일 삭제: 전송이 완료되면 파일을 삭제합니다.
      • 전송된 파일 및 빈 디렉터리 삭제: 전송이 완료되면 파일과 빈 디렉터리를 삭제합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다 (기본값은 180일).
    • 공유 키: 스토리지 계정에서 캡처한 공유 키 값 (액세스 키)을 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  9. 다음을 클릭합니다.

  10. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

Azure Storage 방화벽 구성 (사용 설정된 경우)

Azure 스토리지 계정에서 방화벽을 사용하는 경우 Google SecOps IP 범위를 추가해야 합니다.

  1. Azure 포털에서 스토리지 계정으로 이동합니다.
  2. 보안 + 네트워킹에서 네트워킹을 선택합니다.
  3. 방화벽 및 가상 네트워크에서 선택한 가상 네트워크 및 IP 주소에서 사용 설정됨을 선택합니다.
  4. 방화벽 섹션의 주소 범위에서 + IP 범위 추가를 클릭합니다.
  5. 각 Google SecOps IP 범위를 CIDR 표기법으로 추가합니다.

    현재 IP 범위를 가져오려면 다음을 실행하세요.

  6. 또한 신뢰할 수 있는 서비스 목록의 Azure 서비스가 이 스토리지 계정에 액세스하도록 허용 체크박스를 선택하여 Log Analytics 작업공간 데이터 내보내기가 스토리지 계정에 쓸 수 있도록 허용합니다.

  7. 저장을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
about.hostname about.hostname '%{_DB_HOST}'로 설정
_DB_PORT about.port 값이 직접 복사되어 정수로 변환됨
_DB_DRIVER about.resource.name '%{_DB_DRIVER}'로 설정
_DB_URL about.url '%{_DB_URL}'로 설정합니다.
signature_labels event.idm.read_only_udm.additional.fields 서명이 비어 있지 않으면 signature_labels에서, PendingAction이 비어 있지 않으면 pending_action에서, ExecutionStatus가 비어 있지 않으면 execution_status에서, RecordID가 비어 있지 않으면 record_id에서, ErrorCode가 비어 있지 않으면 error_code에서, ActionSuccess가 비어 있지 않으면 action_success에서 병합됨
pending_action event.idm.read_only_udm.additional.fields
execution_status event.idm.read_only_udm.additional.fields
record_id event.idm.read_only_udm.additional.fields
error_code event.idm.read_only_udm.additional.fields
action_success event.idm.read_only_udm.additional.fields
source_url event.idm.read_only_udm.src.url source_url의 값(비어 있지 않은 경우), 그렇지 않으면 my_string1의 값(비어 있지 않은 경우)
my_string1 event.idm.read_only_udm.src.url
has_principal metadata.event_type has_principal 및 has_target이 true인 경우 'NETWORK_CONNECTION', has_principal이 true인 경우 'STATUS_UPDATE', no_target_host가 아니고 path_available이 true인 경우 'SCAN_FILE', no_target_host가 아닌 경우 'STATUS_UNCATEGORIZED', has_user가 true인 경우 'USER_UNCATEGORIZED', 그 외의 경우 'GENERIC_EVENT'로 설정됩니다.
has_user metadata.event_type
has_target metadata.event_type
no_target_host metadata.event_type
path_available metadata.event_type
이름 metadata.product_event_type 값이 직접 복사됨
DetectionID metadata.product_log_id 값이 직접 복사됨
metadata.product_name metadata.product_name 'MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION'으로 설정
metadata.vendor_name metadata.vendor_name 'MICROSOFT'로 설정
NTdomain principal.administrative_domain 값이 직접 복사됨
호스트 이름 principal.asset.hostname 비어 있지 않으면 호스트 이름의 값, 비어 있으면 TargetHost의 값
TargetHost principal.asset.hostname
action_type principal.group.attribute.labels action_type이 비어 있지 않은 경우 action_type_label에서 병합됨
호스트 이름 principal.hostname 비어 있지 않으면 호스트 이름의 값, 비어 있으면 TargetHost의 값
TargetHost principal.hostname
처리 principal.process.file.full_path 프로세스가 비어 있지 않은 경우 값이 직접 복사됨
USERNAME principal.user.user_display_name 값이 직접 복사됨
사용자 이름 principal.user.userid 비어 있지 않은 경우 UserName의 값, 비어 있지 않은 경우 사용자의 값
사용자 principal.user.userid
action security_result.action 작업 값 (성공/생성됨/시작됨/전송됨/허용됨의 경우 ALLOW, 실패/차단됨/해체됨/지연됨/삭제됨/거부됨/삭제됨/오류/잠김의 경우 BLOCK, acl_modified/modified의 경우 ALLOW_WITH_MODIFICATION, 격리됨의 경우 QUARANTINE) 또는 CleanAction (Failed의 경우 FAIL, Quarantined의 경우 QUARANTINE, Allowed의 경우 ALLOW, Blocked의 경우 BLOCK)에 따라 설정됩니다.
CleanAction security_result.action
CleanAction security_result.action_details CleanAction이 비어 있지 않으면 값이 직접 복사됨
카테고리 security_result.category_details 비어 있지 않은 경우 카테고리에서 병합되고, 비어 있는 경우 카테고리에서 병합됩니다.
카테고리 security_result.category_details
DetectionID security_result.detection_fields DetectionID가 비어 있지 않으면 DetectionID_field에서 병합되고, detectionid가 비어 있지 않으면 detectionid_field에서 병합되고, detection_source가 비어 있지 않으면 detection_source_labels에서 병합되고, pending_action이 비어 있지 않으면 pending_action_labels에서 병합되고, source_url과 file_path, Path가 비어 있지 않으면 detection_Path에서 병합됩니다.
detectionid security_result.detection_fields
detection_source security_result.detection_fields
pending_action security_result.detection_fields
경로 security_result.detection_fields
줄이는 것을 security_result.severity 심각도 (0/1/2/3/LOW의 경우 LOW, 4/5/6/MEDIUM/SUBSTANTIAL/INFO의 경우 MEDIUM, 7/8/HIGH/SEVERE의 경우 HIGH, 9/10/VERY-HIGH/CRITICAL의 경우 CRITICAL) 또는 SeverityID (1의 경우 LOW, 2의 경우 MEDIUM, 4의 경우 HIGH, 5의 경우 CRITICAL, 그 외의 경우 UNKNOWN_SEVERITY)에 따라 설정됩니다.
SeverityID security_result.severity
SeverityID security_result.severity_details 값이 직접 복사됨
ThreatID security_result.threat_id 값이 직접 복사됨
ThreatName security_result.threat_name 값이 직접 복사됨
MaliciousFileCt security_result.verdict_info 값이 직접 복사되고 정수로 변환되어 malicious_file_ct로 병합됨
dest_nt_domain target.administrative_domain 값이 직접 복사됨
dest_name target.asset.hostname dest_name이 비어 있지 않으면 값이 직접 복사됨
file_path target.file.full_path file_path가 비어 있지 않으면 file_path의 값, file_path가 비어 있으면 Path의 값, 비어 있지 않으면 my_string의 값
경로 target.file.full_path
my_string target.file.full_path
dest_name target.hostname dest_name이 비어 있지 않으면 값이 직접 복사됨
ResourceID target.resource.name 비어 있지 않으면 ResourceID의 값, 비어 있지 않으면 resourceid의 값
resourceid target.resource.name
사용자 target.user.userid 사용자가 비어 있지 않은 경우 직접 복사된 값
시간 metadata.event_timestamp 시간이 비어 있지 않으면 'MMM dd HH:mm:ss' 형식을 사용하여 시간에서 변환하고, 비어 있으면 UNIX_MS를 사용하여 DetectionTime 또는 detectiontime에서 변환합니다.
DetectionTime metadata.event_timestamp
detectiontime metadata.event_timestamp

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.