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 필드에서 직접 매핑됩니다.
Nom 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로 설정합니다.

변경사항

2025-02-13

개선사항:

  • 파싱되지 않은 CEF 로그를 파싱하는 지원을 추가했습니다.

2025-02-05

개선사항:

  • 파싱되지 않은 CEF 로그를 파싱하는 지원을 추가했습니다.

2023-10-13

개선사항:

  • Hachage SHA256, p1target.process.file.sha256에 매핑했습니다.
  • Hachage MD5, md5target.process.file.md5에 매핑했습니다.
  • intermediaryevent.idm.read_only_udm.intermediary에 매핑했습니다.

2022-10-14

개선사항:

  • 원치 않는 특수문자를 우회하는 gsub를 추가했습니다.

2022-05-17

개선사항:

  • 다음 필드에 대한 매핑이 추가되었습니다.
  • Nom (프로세스/애플리케이션 이름) (이름)이 target.file.full_path (확장자)에 매핑됩니다.
  • Chemin de l'application (애플리케이션 경로)이 target.file.full_path에 매핑되었습니다.
  • Type d'événement (이벤트 유형)이 metadata.product_event_type에 매핑되었습니다.
  • target.process.pid에 매핑된 ID du processus (프로세스 ID)입니다.
  • Description du résultat (결과 설명)이 metadata.description에 매핑되었습니다.
  • Erreur (오류)가 security_result.summary에 매핑됨

2022-03-29

개선사항:

  • 누락된 다음 필드에 대한 매핑이 추가되었습니다.
  • Result descriptionsecurity_result.description에 매핑했습니다.
  • Typesecurity_result.threat_name에 매핑했습니다.
  • MD5process.file.md5에 매핑했습니다.
  • SHA256process.file.sha256에 매핑했습니다.
  • p2target.process.file.full_path에 매핑했습니다.
  • p5security_result.rule_name에 매핑했습니다.
  • p7principal.user.user_display_name에 매핑했습니다.
  • Reasonsecurity_result.summary에 매핑했습니다.

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