Microsoft SharePoint (Office 365) 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 Microsoft SharePoint (Office 365) 로그를 Google Security Operations에 수집하는 방법을 설명합니다.

Microsoft SharePoint는 Microsoft 361과 통합되는 웹 기반 공동작업 플랫폼입니다. SharePoint 감사 로그는 파일 작업, 폴더 활동, 공유 작업, 목록 작업, 사이트 관리 작업을 비롯한 사용자 활동을 캡처합니다. 이러한 로그는 SharePoint Online 및 OneDrive for Business에서 감사 데이터를 가져와 syslog로 로컬 수신기에 스트리밍하는 Microsoft Defender for Cloud Apps SIEM 에이전트를 통해 액세스됩니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Windows Server 2016 이상 또는 systemd가 설치된 Linux 호스트
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인
  • SharePoint Online이 있는 Microsoft 365 테넌트
  • Microsoft Defender for Cloud Apps 라이선스 (Microsoft 365 E5에 포함되거나 부가기능으로 제공)
  • Microsoft Defender 포털의 전역 관리자 또는 보안 관리자 역할
  • SIEM 에이전트를 실행하는 Java 8 이상의 Windows 또는 Linux 서버 (Bindplane과 동일한 호스트일 수 있음)
  • Microsoft 365에서 통합 감사 로깅 사용 설정

통합 감사 로깅 사용 설정

Microsoft Defender for Cloud Apps가 SharePoint 감사 데이터를 캡처하려면 Microsoft 365 테넌트에 통합 감사 로깅이 사용 설정되어 있어야 합니다.

  1. Microsoft Purview 규정 준수 포털에 로그인합니다.
  2. 감사로 이동합니다.
  3. 메시지가 표시되면 사용자 및 관리자 활동 녹음 시작을 클릭합니다. 참고: 통합 감사 로깅을 사용 설정한 후 콘텐츠를 사용할 수 있게 되기까지 최대 12시간이 걸릴 수 있습니다.
  • 또는 PowerShell을 사용하여 통합 감사 로깅을 사용 설정할 수 있습니다.

    Connect-ExchangeOnline
    Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true
    

Google SecOps 수집 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 수집 인증 파일을 다운로드합니다. Bindplane이 설치될 시스템에 파일을 안전하게 저장합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

Bindplane 에이전트 설치

다음 안내에 따라 Windows 또는 Linux 운영체제에 Bindplane 에이전트를 설치합니다.

Windows 설치

  1. 명령 프롬프트 또는 PowerShell을 관리자로 엽니다.
  2. 다음 명령어를 실행합니다.

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 설치가 완료될 때까지 기다립니다.

  4. 다음을 실행하여 설치를 확인합니다.

    sc query observiq-otel-collector
    

    서비스가 실행 중으로 표시되어야 합니다.

Linux 설치

  1. 루트 또는 sudo 권한으로 터미널을 엽니다.
  2. 다음 명령어를 실행합니다.

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 설치가 완료될 때까지 기다립니다.

  4. 다음을 실행하여 설치를 확인합니다.

    sudo systemctl status observiq-otel-collector
    

    서비스가 active (running)으로 표시되어야 합니다.

추가 설치 리소스

추가 설치 옵션 및 문제 해결은 Bindplane 에이전트 설치 가이드를 참고하세요.

syslog를 수집하여 Google SecOps로 전송하도록 Bindplane 에이전트 구성

구성 파일 찾기

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

구성 파일 설정

  • config.yaml의 전체 내용을 다음 구성으로 바꿉니다.

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/sharepoint:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: '<CUSTOMER_ID>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: SHAREPOINT
        raw_log_field: body
    
    service:
      pipelines:
        logs/sharepoint_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/sharepoint
    

구성 매개변수

다음 자리표시자를 바꿉니다.

  • 내보내기 도구 구성:

    • <CUSTOMER_ID>: 이전 단계에서 복사한 Google SecOps 고객 ID
    • creds_file_path: 데이터 수집 인증 파일의 전체 경로입니다.
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • 엔드포인트: 리전 엔드포인트 URL:
      • 미국: malachiteingestion-pa.googleapis.com
      • 유럽: europe-malachiteingestion-pa.googleapis.com
      • 아시아: asia-southeast1-malachiteingestion-pa.googleapis.com
      • 전체 목록은 리전 엔드포인트를 참고하세요.

구성 파일 저장

  • 수정 후 파일을 저장합니다.
    • Linux: Ctrl+O, Enter, Ctrl+X 순서로 누릅니다.
    • Windows: 파일 > 저장을 클릭합니다.

변경사항을 적용하려면 Bindplane 에이전트를 다시 시작하세요.

Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 단계를 따르세요.

  1. 다음 명령어를 실행합니다.

    sudo systemctl restart observiq-otel-collector
    
  2. 서비스가 실행 중인지 확인합니다.

    sudo systemctl status observiq-otel-collector
    
  3. 로그에서 오류를 확인합니다.

    sudo journalctl -u observiq-otel-collector -f
    

Windows에서 Bindplane 에이전트를 다시 시작하려면 다음 단계를 따르세요.

  1. 다음 옵션 중 하나를 선택합니다.

    • 명령 프롬프트 또는 PowerShell(관리자 권한)
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 서비스 콘솔:
      1. Win+R 키를 누르고 services.msc를 입력한 다음 Enter 키를 누릅니다.
      2. observIQ OpenTelemetry Collector를 찾습니다.
      3. 마우스 오른쪽 버튼을 클릭하고 다시 시작을 선택합니다.
  2. 서비스가 실행 중인지 확인합니다.

    sc query observiq-otel-collector
    
  3. 로그에서 오류를 확인합니다.

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

SharePoint 로그를 전달하도록 Microsoft Defender for Cloud Apps SIEM 에이전트 구성

Microsoft SharePoint Online은 클라우드 서비스이며 내장된 syslog 전달 기능이 없습니다. syslog를 통해 SharePoint 감사 로그를 전달하려면 Microsoft Defender for Cloud Apps SIEM 에이전트를 사용하세요. 이 에이전트는 Defender for Cloud Apps에서 알림과 활동을 가져와 이를 syslog 메시지 (CEF 형식)로 Bindplane 에이전트에 스트리밍합니다.

SIEM 에이전트 기본 요건

  • 다음이 설치된 Windows 또는 Linux 서버 (가상 머신일 수 있음)

    • Java 8 이상 설치
    • 전송 계층 보안 (TLS) 1.2 이상
    • CPU: 2코어
    • 디스크 공간: 20GB
    • RAM: 2 GB

1단계: Microsoft Defender 포털에서 SIEM 에이전트 구성

  1. Microsoft Defender 포털에 로그인합니다.
  2. 설정을 선택합니다.
  3. 클라우드 앱을 선택합니다.
  4. 시스템에서 SIEM 에이전트를 선택합니다.
  5. SIEM 에이전트 추가를 클릭한 다음 일반 SIEM을 선택합니다.
  6. 마법사 시작을 클릭합니다.
  7. 다음 구성 세부정보를 제공합니다.
    • 이름: 설명이 포함된 이름을 입력합니다 (예: Chronicle-Bindplane-SharePoint).
    • SIEM 형식 선택: CEF를 선택합니다.
  8. 다음을 클릭합니다.
  9. 다음 syslog 연결 세부정보를 제공합니다.
    • 원격 syslog 호스트: Bindplane 에이전트 호스트의 IP 주소 또는 호스트 이름을 입력합니다 (예: 192.168.1.100).
    • Syslog 포트 번호: 514 (또는 Bindplane 에이전트 config.yaml에 구성된 포트)을 입력합니다.
    • 원격 Syslog 프로토콜: UDP를 선택합니다 (Bindplane 에이전트 구성의 수신기 유형과 일치해야 함).
  10. 다음을 클릭합니다.
  11. 내보낼 데이터 유형을 구성합니다.
    1. 활동 슬라이더를 사용 설정합니다.
    2. 활동적용 대상 드롭다운에서 SharePoint 활동을 포함하도록 필터를 설정합니다.
      1. 앱이 다음 값과 같음을 선택하고 Microsoft SharePoint OnlineMicrosoft OneDrive for Business를 선택합니다.
    3. SharePoint와 관련된 정책 알림도 수신하려면 알림 슬라이더를 사용 설정합니다.
  12. 결과 수정 및 미리보기를 클릭하여 필터가 예상 활동과 일치하는지 확인합니다.
  13. 다음을 클릭합니다.
  14. 요약 페이지에 표시된 토큰을 복사하여 안전하게 저장합니다.
  15. 마침을 클릭합니다.

2단계: SIEM 에이전트 JAR 파일 다운로드 및 실행

  1. Microsoft 다운로드 센터에서 SIEM 에이전트를 다운로드합니다.
  2. SIEM 에이전트가 실행될 서버에서 다운로드한 ZIP 파일의 압축을 풉니다.
  3. 다음 명령어를 사용하여 SIEM 에이전트를 실행합니다.

    java -jar mcas-siemagent-0.87.20-signed.jar --token <TOKEN>
    

<TOKEN>을 Microsoft Defender 포털에서 복사한 토큰으로 바꿉니다.

3단계: 서비스로 실행되도록 SIEM 에이전트 구성

지속적인 로그 전달을 보장하려면 SIEM 에이전트가 자동으로 시작되도록 구성하세요.

Linux:

  • /etc/rc.local에 실행 명령어를 추가하거나 systemd 서비스를 만듭니다.

    java -jar /opt/mcas-siemagent/mcas-siemagent-0.87.20-signed.jar --token <TOKEN> &
    

Windows:

  • 예약된 태스크를 구성합니다.
    1. Task Scheduler(작업 스케줄러)를 엽니다.
    2. 사용자가 로그인했는지 여부와 관계없이 실행으로 새 작업을 만듭니다.
    3. 토큰 매개변수를 사용하여 JAR 파일을 실행하도록 작업을 설정합니다.
    4. 작업이 다음 시간보다 오래 실행되면 중지를 선택 해제합니다.

4단계: SIEM 에이전트 연결 확인

  1. Microsoft Defender 포털에서 설정 > 클라우드 앱 > SIEM 에이전트로 이동합니다.
  2. SIEM 에이전트 상태가 연결됨 (녹색)으로 표시되는지 확인합니다.
  3. Bindplane 에이전트 호스트에서 syslog 메시지가 수신되는지 확인합니다.

    sudo journalctl -u observiq-otel-collector -f
    
  4. Google SecOps에서 metadata.log_type = "SHAREPOINT"로 로그를 검색하여 로그 수집을 확인합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
발생함 metadata.event_timestamp 'MM/dd/yyyy HH:mm:ss A','MM/dd/yyyy HH:mm:ss a','M/d/yyyy HH:mm:ss A' 형식의 날짜 필터를 사용하여 파싱됨
has_principal metadata.event_type has_principal 및 (has_target_resource 또는 has_target)인 경우 'USER_RESOURCE_ACCESS', has_principal인 경우 'STATUS_UPDATE', 그 밖의 경우 'GENERIC_EVENT'로 설정
has_target_resource metadata.event_type
has_target metadata.event_type
metadata.product_name metadata.product_name 'SHAREPOINT'로 설정
EventData metadata.product_version 값이 직접 복사됨
metadata.vendor_name metadata.vendor_name 'SHAREPOINT'로 설정
생성됨 principal.asset.attribute.labels Created의 'Created' 키와 LastModified의 'Last Modified' 키가 있는 라벨이 병합됨
LastModified principal.asset.attribute.labels
SamAccountName principal.asset.hostname 값이 직접 복사됨
SamAccountName principal.hostname 값이 직접 복사됨
데이터베이스 principal.process.file.names 데이터베이스에서 병합됨
UserEmail principal.user.email_addresses 이메일 정규식과 일치하는 경우 UserEmail에서 병합됨
사용자 이름 principal.user.user_display_name 값이 직접 복사됨
EventType security_result.description 값이 직접 복사됨
디렉터리 target.file.full_path 값이 직접 복사됨
target.file.names 리프에서 병합됨
ItemType target.resource.type 값이 직접 복사됨
SecUserURL target.url 값이 직접 복사됨
SecUserRole target.user.attribute.roles SecUserRole의 이름과 역할이 병합됨
SecUserEmail target.user.email_addresses 이메일 정규식과 일치하는 경우 SecUserEmail에서 병합됨
SecGroupName target.user.group_identifiers SecGroupName에서 병합됨
SecUserName target.user.user_display_name 값이 직접 복사됨
SecSamAccountName target.user.userid 값이 직접 복사됨

변경 로그

이 파서의 변경 로그 보기

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