Kaspersky AV 로그 수집

다음에서 지원:

이 문서에서는 Bindplane을 사용하여 Kaspersky Antivirus 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 파서 코드는 먼저 원시 로그 메시지를 JSON으로 파싱하려고 시도합니다. 이 방법이 실패하면 정규 표현식 (grok 패턴)을 사용하여 일반적인 Kaspersky AV 로그 형식을 기반으로 메시지에서 필드를 추출합니다.

시작하기 전에

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

  • Google SecOps 인스턴스
  • Windows 2016 이상 또는 systemd가 있는 Linux 호스트
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있음
  • Kaspersky Antivirus에 대한 액세스 권한 관리

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. 구성 파일에 액세스합니다.

    • config.yaml 파일을 찾습니다. 일반적으로 Linux에서는 /etc/bindplane-agent/ 디렉터리에 있고 Windows에서는 설치 디렉터리에 있습니다.
    • 텍스트 편집기 (예: 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: '/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
                ingestion_labels:
                    log_type: KASPERSKY_AV
                    raw_log_field: body
    
        service:
            pipelines:
                logs/source0__chronicle_w_labels-0:
                    receivers:
                        - udplog
                    exporters:
                        - chronicle/chronicle_w_labels
    
  3. 인프라에 필요한 대로 포트와 IP 주소를 바꿉니다.

  4. <customer_id>를 실제 고객 ID로 바꿉니다.

  5. Google SecOps 수집 인증 파일 가져오기 섹션에서 인증 파일이 저장된 경로로 /path/to/ingestion-authentication-file.json를 업데이트합니다.

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Kaspersky AV에서 이벤트 내보내기 구성

  1. Kaspersky Security Center 콘솔에 로그인합니다.
  2. 이벤트를 내보낼 관리 서버를 선택합니다.
  3. 관리 서버 작업공간에서 이벤트 탭을 클릭합니다.
  4. 알림 및 이벤트 내보내기 구성 링크를 클릭합니다.
  5. 목록에서 SIEM 시스템으로 내보내기 구성을 선택합니다.
  6. 다음 구성 세부정보를 제공합니다.
    • SIEM 시스템: Arcsight (CEF 형식)을 선택합니다.
    • SIEM 시스템 서버 주소: Bindplane 에이전트 IP 주소를 입력합니다.
    • SIEM 시스템 서버 포트: Bindplane 에이전트 포트 번호 (예: UDP의 경우 514)를 입력합니다.
    • 프로토콜: UDP를 선택합니다.
  7. 확인을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
애플리케이션 network.http.user_agent 원시 로그의 Application 필드에서 직접 매핑됩니다.
애플리케이션 경로 target.process.file.full_path Application path이 원시 로그에 있는 경우 Name 필드와 함께 사용하여 전체 경로를 구성합니다.
구성요소 target.resource.name 원시 로그의 Component 필드에서 직접 매핑됩니다.
콘텐츠 카테고리 security_result.category_details Content category이 원시 로그에 있는 경우 security_result.category_details 필드에 추가됩니다.
콘텐츠 카테고리 소스 target.resource.type 값에 databases이 포함된 경우 UDM 필드가 DATABASE로 설정됩니다.
Erreur security_result.summary summary 필드가 비어 있는 경우 원시 로그의 Erreur 필드에서 직접 매핑됩니다.
et metadata.product_event_type product_event_type 필드가 비어 있는 경우 원시 로그의 et 필드에서 직접 매핑됩니다.
et security_result.category_details security_result.category_details 필드에 추가되었습니다.
etdn extensions.vulns.vulnerabilities.description 원시 로그의 etdn 필드에서 직접 매핑됩니다.
파일 SHA256 해시 target.process.file.sha256 원시 로그의 File SHA256 hash 필드에서 직접 매핑됩니다.
gn security_result.about.labels keyGN로 설정되고 valuegn 필드의 값으로 설정됩니다.
hdn principal.hostname 원시 로그의 hdn 필드에서 직접 매핑됩니다.
엉덩이 principal.ip 원시 로그의 hip 필드에서 직접 매핑됩니다.
host_name principal.hostname 원시 로그의 host_name 필드에서 직접 매핑됩니다.
intermediary_host intermediary.hostname 원시 로그의 intermediary_host 필드에서 직접 매핑됩니다.
intermediary_hostname intermediary.hostname 원시 로그의 intermediary_hostname 필드에서 직접 매핑됩니다.
kv_data1 이 필드는 파싱되며 값이 다른 UDM 필드에 매핑됩니다.
kv_data2 이 필드는 파싱되며 값이 다른 UDM 필드에 매핑됩니다.
라벨 network.http.user_agent 값이 User-Agent이면 UDM 필드가 description 필드의 값으로 채워집니다.
라벨 principal.hostname 값이 Host인 경우 UDM 필드는 description 필드에서 추출된 호스트 이름으로 채워집니다.
라벨 security_result.description 다른 값의 경우 UDM 필드는 labeldescription 필드가 포함된 문자열로 채워집니다.
MD5 target.process.file.md5 소문자로 변환한 후 원시 로그의 MD5 필드에서 직접 매핑됩니다.
MD5 파일 해시 target.process.file.md5 원시 로그의 MD5 file hash 필드에서 직접 매핑됩니다.
메시지 이 필드는 파싱되며 값이 다른 UDM 필드에 매핑됩니다.
method network.http.method HTTP 메서드 목록과 일치하는 경우 원시 로그의 method 필드에서 직접 매핑됩니다.
name target.file.full_path 원시 로그의 name 필드에서 직접 매핑됩니다.
target.process.file.full_path application_path 필드와 함께 사용하여 전체 경로를 구성합니다.
p1 target.process.file.sha256 SHA256 필드가 비어 있고 값이 16진수 문자열인 경우 원시 로그의 p1 필드에서 직접 매핑되며, 이 필드는 소문자로 변환됩니다.
p2 target.process.file.full_path 원시 로그의 p2 필드에서 직접 매핑됩니다.
p5 security_result.rule_name 원시 로그의 p5 필드에서 직접 매핑됩니다.
p7 principal.user.user_display_name Useruser_name 필드가 비어 있는 경우 원시 로그의 p7 필드에서 직접 매핑됩니다.
프로세스 ID principal.process.pid 원시 로그의 Process ID 필드에서 직접 매핑됩니다.
process_id target.process.pid 원시 로그의 process_id 필드에서 직접 매핑됩니다.
프로토콜 network.application_protocol 값에 http이 포함되면 (대소문자 구분 안 함) UDM 필드가 HTTP로 설정됩니다.
이유 security_result.summary 원시 로그의 Reason 필드에서 직접 매핑됩니다.
요청된 웹페이지 target.url 원시 로그의 Requested web page 필드에서 직접 매핑됩니다.
결과 값이 Allowed이면 sr_action 필드가 ALLOW로 설정됩니다.
rtid security_result.about.labels keyrtid로 설정되고 valuertid 필드의 값으로 설정됩니다.
규칙 security_result.description 원시 로그의 Rule 필드에서 직접 매핑됩니다.
SHA256 target.process.file.sha256 소문자로 변환한 후 원시 로그의 SHA256 필드에서 직접 매핑됩니다.
sr_action security_result.action security_result.action 필드로 병합되었습니다.
요약 security_result.summary 원시 로그의 summary 필드에서 직접 매핑됩니다.
task_name security_result.about.labels keyTaskName로 설정되고 valuetask_name 필드의 값으로 설정됩니다.
threat_action_taken 값이 blocked이면 security_action 필드가 BLOCK로 설정됩니다. 값이 allowed이면 security_action 필드가 ALLOW로 설정됩니다.
타임스탬프 metadata.event_timestamp 이벤트 타임스탬프를 채우는 데 사용됩니다.
유형 security_result.threat_name 원시 로그의 Type 필드에서 직접 매핑됩니다.
URL network.http.referral_url 원시 로그의 url 필드에서 직접 매핑됩니다.
사용자 principal.user.user_display_name 사용자 이름은 이 필드에서 추출되어 UDM 필드에 매핑됩니다.
사용자 principal.administrative_domain 도메인이 이 필드에서 추출되어 UDM 필드에 매핑됩니다.
user_name principal.user.user_display_name User 필드가 비어 있는 경우 원시 로그의 user_name 필드에서 직접 매핑됩니다.
metadata.event_type Application pathName이 있으면 SCAN_VULN_NETWORK로 설정하고, hdn 또는 host_name이 있으면 STATUS_UNCATEGORIZED로 설정하고, 그렇지 않으면 GENERIC_EVENT로 설정합니다.
metadata.vendor_name 항상 KASPERSKY로 설정합니다.
metadata.product_name 항상 KASPERSKY_AV로 설정합니다.
metadata.log_type 항상 KASPERSKY_AV로 설정합니다.

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