Kaspersky AV 로그 수집
이 문서에서는 Bindplane을 사용하여 Kaspersky Antivirus 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 파서 코드는 먼저 원시 로그 메시지를 JSON으로 파싱하려고 시도합니다. 이 방법이 실패하면 정규 표현식 (grok
패턴)을 사용하여 일반적인 Kaspersky AV 로그 형식을 기반으로 메시지에서 필드를 추출합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Windows 2016 이상 또는 systemd가 있는 Linux 호스트
- 프록시 뒤에서 실행되는 경우 방화벽 포트가 열려 있습니다.
- Kaspersky Antivirus에 대한 액세스 권한
Google SecOps 처리 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 처리 인증 파일을 다운로드합니다. Bindplane가 설치될 시스템에 파일을 안전하게 저장합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
- 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
Windows 설치
- 관리자 권한으로 명령 프롬프트 또는 PowerShell을 엽니다.
다음 명령어를 실행합니다.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 설치
- 루트 또는 sudo 권한으로 터미널을 엽니다.
다음 명령어를 실행합니다.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
추가 설치 리소스
추가 설치 옵션은 설치 가이드를 참고하세요.
Syslog를 수집하고 Google SecOps로 전송하도록 Bindplane 에이전트 구성
구성 파일에 액세스합니다.
config.yaml
파일을 찾습니다. 일반적으로 Linux의/etc/bindplane-agent/
디렉터리 또는 Windows의 설치 디렉터리에 있습니다.- 텍스트 편집기 (예:
nano
,vi
, 메모장)를 사용하여 파일을 엽니다.
다음과 같이
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
인프라에서 필요에 따라 포트와 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
Kaspersky AV에서 이벤트 내보내기 구성
- Kaspersky Security Center 콘솔에 로그인합니다.
- 이벤트를 내보낼 관리 서버를 선택합니다.
- 관리 서버 워크스페이스에서 이벤트 탭을 클릭합니다.
- '알림 및 이벤트 내보내기 구성' 링크를 클릭합니다.
- 목록에서 SIEM 시스템으로 내보내기 구성을 선택합니다.
- 다음 구성 세부정보를 제공합니다.
- SIEM 시스템: Arcsight (CEF 형식)를 선택합니다.
- SIEM 시스템 서버 주소: Bindplane 에이전트 IP 주소를 입력합니다.
- SIEM 시스템 서버 포트: Bindplane 에이전트 포트 번호를 입력합니다 (예: UDP의 경우
514
). - 프로토콜: UDP를 선택합니다.
- 확인을 클릭합니다.
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 | key 는 GN 로 설정되고 value 는 gn 필드의 값으로 설정됩니다. |
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 필드에 label 및 description 필드가 포함된 문자열이 채워집니다. |
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 | User 및 user_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 | key 는 rtid 로 설정되고 value 는 rtid 필드의 값으로 설정됩니다. |
규칙 | 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 | key 는 TaskName 로 설정되고 value 는 task_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 path 및 Name 가 있는 경우 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
,p1
를target.process.file.sha256
에 매핑했습니다.Hachage MD5
,md5
를target.process.file.md5
에 매핑했습니다.intermediary
를event.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 description
를security_result.description
에 매핑했습니다.Type
를security_result.threat_name
에 매핑했습니다.MD5
를process.file.md5
에 매핑했습니다.SHA256
를process.file.sha256
에 매핑했습니다.p2
를target.process.file.full_path
에 매핑했습니다.p5
를security_result.rule_name
에 매핑했습니다.p7
를principal.user.user_display_name
에 매핑했습니다.Reason
를security_result.summary
에 매핑했습니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받아 보세요.