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 필드에서 직접 매핑됩니다. |
냠 | 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 로 설정합니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.