Sophos Capsule8 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 Sophos Linux Sensor (이전 Capsule8) 로그를 수집하는 방법을 설명합니다. Sophos Capsule8은 eBPF 기술을 사용하여 커널 수준에서 위협을 감지하고 대응하여 Linux 워크로드, 컨테이너, Kubernetes 환경에 런타임 보호를 제공합니다. 파서는 먼저 JSON 형식의 로그 데이터를 추출하고 구조화합니다. 그런 다음 추출된 필드를 Chronicle 통합 데이터 모델 (UDM) 내의 해당 속성에 매핑하여 메타데이터, 보안 결과, 주체 정보에 중점을 둡니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Windows 2016 이상 또는 systemd가 설치된 Linux 호스트
  • Python을 지속적으로 실행할 수 있는 추가 Windows 또는 Linux 컴퓨터
  • 프록시 뒤에서 실행하는 경우 Bindplane 에이전트 요구사항에 따라 방화벽 포트가 열려 있는지 확인합니다.
  • Sophos Central 관리 콘솔에 대한 권한이 있는 액세스
  • Linux 시스템에 배포된 Sophos Linux Sensor (이전 명칭: Capsule8)

Sophos Linux Sensor가 Sophos Central로 알림을 내보내도록 구성

통합을 구성하기 전에 먼저 Sophos Linux Sensor가 Sophos Central로 알림 데이터를 전송하도록 구성해야 합니다.

Sophos Central 통합을 위한 기본 요건

  1. Sophos Linux Sensor 버전 5.5.2.22 이상
  2. 다음 라이선스 중 하나:
    • XDR이 포함된 Intercept X Advanced for Server
    • 중앙 관리형 탐지 및 대응 필수 서버
    • 중앙 관리형 탐지 및 대응 완전 서버
  3. Sophos Central MCS URL 및 테넌트 ID
  4. 유효한 SLS 패키지 저장소 API 토큰입니다.

MCS URL 찾기

  1. Sophos Central에 로그인합니다.
  2. 계정 이름> 지원 설정을 클릭합니다.
  3. This account is located로 시작하는 행을 찾아 Sophos Central 계정이 있는 지리적 지역을 확인합니다.
  4. 다음 표를 사용하여 지역에 따라 MCS URL을 찾으세요.

    리전 MCS URL
    미국(오리건) mcs2-cloudstation-us-west-2.prod.hydra.sophos.com
    미국 (오하이오) mcs2-cloudstation-us-east-2.prod.hydra.sophos.com
    아일랜드 mcs2-cloudstation-eu-west-1.prod.hydra.sophos.com
    독일 mcs2-cloudstation-eu-central-1.prod.hydra.sophos.com
    캐나다 mcs2.stn100yul.ctr.sophos.com
    오스트레일리아 mcs2.stn100syd.ctr.sophos.com
    아시아 태평양(도쿄) mcs2.stn100hnd.ctr.sophos.com
    남미 (상파울루) mcs2.stn100gru.ctr.sophos.com

표에 거주 지역이 표시되지 않으면 mcs2.stn100bom.ctr.sophos.com을 MCS URL로 사용하세요.

Sophos Linux Sensor 알림 출력 구성

  1. 텍스트 편집기에서 /etc/sophos/runtimedetections.yaml를 엽니다.
  2. 다음 줄을 추가하고 자리표시자 값을 실제 Sophos Central 세부정보로 바꿉니다.

    send_labs_telemetry: true
    endpoint_telemetry_enabled: true
    cloud_meta: auto
    
    # Set your customer id:
    customer_id: "{tenant-id}"
    
    mcs:
      token: "{LINUX_REPO_API_KEY}"
      url: "{MCS_URL}"
      enabled: true
    
  3. 변경사항을 저장하고 종료합니다.

  4. 센서를 다시 시작합니다.

    systemctl restart sophoslinuxsensor
    

선택사항: 메타 이벤트를 데이터 레이크로 전송하도록 Sophos Linux Sensor 구성

버전 5.11.0부터 SLS는 Sophos Data Lake로 이벤트 데이터를 전송하는 것을 지원합니다.

  1. 텍스트 편집기에서 /etc/sophos/runtimedetections.yaml를 엽니다.
  2. 다음 구성을 추가합니다.

    investigations:
      reporting_interval: 5s
      zeromq:
        topics:
        - process_events: running_processes_linux_events
          audit_user_msg: user_events_linux
      sinks:
      - backend: mcs
        name: "mcs"
        type: mcs
      flight_recorder:
        enabled: true
        tables:
        - name: "process_events"
          enabled: true
          rows: 1000
          filter:
          - match eventType == "PROCESS_EVENT_TYPE_EXEC"
          - match eventType == "BASELINE_TASK"
          - default ignore
        - name: "audit_user_msg"
          enabled: true
          rows: 1000
          filter:
          - ignore programName == "cron"
          - ignore processPid == 1
          - default match
    
  3. 변경사항을 저장하고 종료합니다.

  4. 센서를 다시 시작합니다.

    systemctl restart sophoslinuxsensor
    

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

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

Google SecOps 고객 ID 가져오기

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

Bindplane 에이전트 설치

Windows 설치

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 설치

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

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

추가 설치 리소스

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

  1. 구성 파일에 액세스합니다.

    1. config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    2. 텍스트 편집기 (예: nano, vi, 메모장)를 사용하여 파일을 엽니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'SOPHOS_CAPSULE8'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.
    • <customer_id>를 실제 고객 ID로 바꿉니다.
    • Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 /path/to/ingestion-authentication-file.json를 업데이트합니다.

Bindplane 에이전트를 다시 시작하여 변경사항 적용

  • Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.

    sudo systemctl restart bindplane-agent
    
  • Windows에서 Bindplane 에이전트를 다시 시작하려면 서비스 콘솔을 사용하거나 다음 명령어를 입력하면 됩니다.

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Sophos Central API 액세스 구성

  1. Sophos Central Admin에 로그인합니다.
  2. 전체 설정 > API 토큰 관리를 선택합니다.
  3. 토큰 추가를 클릭하여 새 토큰을 만듭니다.
  4. 토큰 이름을 입력하고 저장을 클릭합니다. 제공된 토큰의 API 토큰 요약이 표시됩니다.
  5. API 토큰 요약 섹션에서 복사를 클릭하여 API 액세스 URL과 헤더를 복사합니다.

추가 머신에 Python 설치

  1. 웹브라우저를 열고 Python 웹사이트로 이동합니다.
  2. 운영체제에 맞는 Python 다운로드를 클릭합니다.
  3. Python을 설치합니다.

    • Windows:
      1. 설치 프로그램을 실행합니다.
      2. 경로에 Python 추가라고 표시된 체크박스를 선택합니다.
      3. 지금 설치를 클릭합니다.
    • Mac의 경우:

      1. Python이 이미 설치되어 있을 수 있습니다. 설치되어 있지 않다면 터미널을 사용하여 최신 버전을 설치할 수 있습니다.
      2. 터미널을 열고 다음 명령어를 입력합니다.

        python --version
        

Sophos 통합 스크립트 다운로드

  1. Sophos Central SIEM Integration GitHub Repository의 GitHub 페이지로 이동합니다.
  2. 녹색 코드 버튼 > ZIP 다운로드를 클릭합니다.
  3. ZIP 파일의 압축을 풉니다.

스크립트 구성 설정

  1. ZIP 보관 파일을 추출한 디렉터리에서 config.ini 파일을 엽니다.
  2. 구성 파일을 수정합니다.
    • API 토큰: 이전에 Sophos Central에서 복사한 API 키를 입력합니다.
    • 시스템로그 서버 세부정보: 시스템로그 서버의 세부정보를 입력합니다.
    • 호스트: BindPlane 에이전트 IP 주소를 입력합니다.
    • 포트: BindPlane 에이전트 포트 번호를 입력합니다.
    • 프로토콜: UDP를 입력합니다 (설정에 따라 TCP 또는 TLS를 사용할 수도 있음).
  3. 파일을 저장합니다.

스크립트 실행

  1. 스크립트 폴더로 이동합니다.

    • Windows의 경우:

      1. Windows 키를 누르고 cmd를 입력합니다.
      2. 명령 프롬프트를 클릭합니다.
      3. 스크립트 폴더로 이동합니다.
      cd C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
    • macOS의 경우:

      1. 애플리케이션 > 유틸리티로 이동합니다.
      2. Terminal(터미널)을 엽니다.
      3. 스크립트 폴더로 이동합니다.
      cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
  2. 스크립트를 실행합니다.

    • 다음 명령어를 입력하여 스크립트를 시작합니다.

      python siem.py
      

Windows에서 스크립트가 지속적으로 실행되도록 자동화합니다 (작업 스케줄러 사용).

  1. 시작 메뉴에 작업 스케줄러를 입력하여 작업 스케줄러를 엽니다.
  2. 태스크 만들기를 클릭합니다.
  3. 일반 탭에서 다음을 수행합니다.
    • 작업 이름을 지정합니다(예: Sophos AV Log Export).
  4. 트리거 탭에서 다음을 수행합니다.
    • 새로 만들기를 클릭하고 필요에 따라 태스크를 매일 또는 시작 시 실행되도록 설정합니다.
  5. 작업 탭에서 다음을 수행합니다.
    • 새로 만들기를 클릭하고 프로그램 시작을 선택합니다.
    • python.exe 실행 파일 (일반적으로 C:/Python/XX/python.exe에 있음)을 찾아봅니다.
    • 인수 추가 필드에 스크립트 경로를 입력합니다(예: C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.py).
  6. 확인을 클릭하여 작업을 저장합니다.

스크립트가 Mac에서 지속적으로 실행되도록 자동화합니다 (Cron 작업 사용).

  1. 터미널을 엽니다.
  2. crontab -e를 입력하고 Enter 키를 누릅니다.
  3. 파일 끝에 새 줄을 추가합니다.

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. 저장을 클릭하고 편집기를 종료합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
카테고리 read_only_udm.security_result.category_details categories 배열의 각 요소는 별도의 category_details로 추가됩니다.
댓글 read_only_udm.security_result.description 댓글 필드에서 직접 매핑됩니다.
신뢰도 read_only_udm.security_result.severity_details 신뢰도 필드에서 직접 매핑됩니다.
설명 read_only_udm.security_result.summary 설명 필드에서 직접 매핑됩니다.
incident_id read_only_udm.security_result.rule_id incident_id 필드에서 직접 매핑됩니다.
계보 principal.process.parent_process... 계보 배열은 최대 15단계 깊이의 상위 프로세스 체인을 채우는 데 사용됩니다. 계보 배열의 각 요소는 체인의 프로세스를 나타내며, 색인 0은 직계 상위 항목이고 색인이 높을수록 더 먼 상위 항목을 나타냅니다. 각 계보 요소의 pid 및 name 필드는 UDM의 해당 필드에 매핑됩니다.
location.container_id principal.labels.value location.container_id 필드에서 직접 매핑됩니다. 해당 키는 'container_id'로 설정됩니다.
location.container_labels.maintainer principal.labels.value location.container_labels.maintainer 필드에서 직접 매핑됩니다. 해당 키는 'maintainer'로 설정됩니다.
location.container_name principal.labels.value location.container_name 필드에서 직접 매핑됩니다. 해당 키는 'container_name'으로 설정됩니다.
location.image_id principal.labels.value location.image_id 필드에서 직접 매핑됩니다. 해당 키는 'image_id'로 설정됩니다.
location.image_name principal.labels.value location.image_name 필드에서 직접 매핑됩니다. 해당 키는 'image_name'으로 설정됩니다.
location.kubernetes_namespace principal.labels.value location.kubernetes_namespace 필드에서 직접 매핑됩니다. 해당 키는 'kubernetes_namespace'로 설정됩니다.
location.kubernetes_pod principal.labels.value location.kubernetes_pod 필드에서 직접 매핑됩니다. 해당 키는 'kubernetes_pod'로 설정됩니다.
matched_rule read_only_udm.security_result.rule_name matched_rule 필드에서 직접 매핑됩니다.
metadata.gcp_instance_hostname principal.hostname metadata.gcp_instance_hostname 필드에서 직접 매핑됩니다.
metadata.gcp_instance_zone principal.cloud.availability_zone 가용성 영역은 정규 표현식을 사용하여 metadata.gcp_instance_zone 필드에서 추출됩니다.
metadata.gcp_project_id principal.cloud.project.name metadata.gcp_project_id 필드에서 직접 매핑됩니다.
metadata.gcp_project_numeric_id principal.cloud.project.id metadata.gcp_project_numeric_id 필드에서 직접 매핑됩니다.
metadata.network_interface_eth0_addr_0 principal.ip IP 주소는 정규 표현식을 사용하여 metadata.network_interface_eth0_addr_0 필드에서 추출됩니다.
metadata.network_interface_eth0_hardware_addr principal.mac metadata.network_interface_eth0_hardware_addr 필드에서 직접 매핑됩니다.
policy_type read_only_udm.metadata.product_event_type policy_type 필드에서 직접 매핑됩니다.
process_info.args principal.labels.value process_info.args 배열의 각 요소가 별도의 라벨로 추가됩니다. 키는 'process_info.arg[index]'로 설정됩니다. 여기서 index는 배열에서 인수의 위치입니다.
process_info.name principal.process.file.full_path process_info.name 필드에서 직접 매핑됩니다.
process_info.pid principal.process.pid process_info.pid 필드에서 직접 매핑됩니다.
process_info.ppid principal.process.parent_process.pid process_info.ppid 필드에서 직접 매핑됩니다.
우선순위 read_only_udm.security_result.severity 우선순위 필드에서 직접 매핑되며 대문자로 변환됩니다.
타임스탬프 read_only_udm.metadata.event_timestamp 타임스탬프 필드에서 직접 매핑됩니다.
uuid read_only_udm.metadata.product_log_id uuid 필드에서 직접 매핑됩니다.
해당 사항 없음 read_only_udm.metadata.log_type 'SOPHOS_CAPSULE8'의 상수 값으로 설정됩니다.
해당 사항 없음 read_only_udm.metadata.event_type 'SCAN_HOST'의 상수 값으로 설정됩니다.
해당 사항 없음 read_only_udm.metadata.vendor_name 'Sophos'의 상수 값으로 설정됩니다.
해당 사항 없음 read_only_udm.metadata.product_name 'Capsule8'의 상수 값으로 설정됩니다.

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