Akamai DNS 로그 수집
이 파서는 Akamai DNS 로그를 처리합니다. 타임스탬프, 소스 IP 및 포트, 쿼리, DNS 레코드 유형, 응답 세부정보와 같은 필드를 추출합니다. 그런 다음 이러한 필드를 UDM에 매핑하여 다양한 DNS 레코드 유형과 잠재적인 SPF 레코드를 처리합니다. 파서는 주 구성원 정보의 존재 여부에 따라 이벤트를 NETWORK_DNS
또는 GENERIC_EVENT
로 분류합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- AWS IAM 및 S3에 대한 액세스 권한이 있는지 확인합니다.
- Akamai 계정에 로그 전송 서비스에 대한 액세스 권한이 있는지 확인합니다.
Amazon S3 버킷 구성
- 버킷 만들기 사용자 가이드에 따라 Amazon S3 버킷을 만듭니다.
- 나중에 참고할 수 있도록 버킷 이름 및 리전을 저장합니다.
- IAM 사용자 만들기 사용자 가이드에 따라 사용자를 만듭니다.
- 만든 사용자를 선택합니다.
- 보안 사용자 인증 정보 탭을 선택합니다.
- 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
- 사용 사례로 서드 파티 서비스를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 설명 태그를 추가합니다.
- 액세스 키 만들기를 클릭합니다.
- .csv 파일 다운로드를 클릭하고 나중에 참고할 수 있도록 액세스 키와 보안 액세스 키를 저장합니다.
- 완료를 클릭합니다.
- 권한 탭을 선택합니다.
- 권한 정책 섹션에서 권한 추가를 클릭합니다.
- 권한 추가를 선택합니다.
- Attach policies directly(정책 직접 연결)를 선택합니다.
- AmazonS3FullAccess 정책을 검색하여 선택합니다.
- 다음을 클릭합니다.
- 권한 추가를 클릭합니다.
Akamai에서 로그 전송 서비스 구성
- Akamai Control Center에 로그인합니다.
- 데이터 서비스의 로그 전송 서비스로 이동합니다.
- Add New Configuration(새 구성 추가)을 클릭합니다.
- 구성 이름 필드에 구성의 이름을 입력합니다 (예: Edge DNS Logs to S3).
- 로그 소스로 Edge DNS를 선택합니다.
- 전송 대상으로 AWS S3를 선택합니다.
- 다음 세부정보를 제공합니다.
- 버킷 이름: S3 버킷의 이름입니다.
- 리전: 버킷이 호스팅되는 AWS 리전입니다.
- 액세스 키 ID: IAM 사용자 액세스 키 ID입니다.
- 보안 비밀 액세스 키: IAM 사용자 보안 비밀 액세스 키입니다.
- 선택사항: 디렉터리 구조를 지정합니다. (예:
logs/akamai-dns/YYYY/MM/DD/HH/
) - 선택사항: 파일 이름 지정 규칙을 설정합니다. (예:
edge-dns-logs-{timestamp}.log
)
- 포함할 로그 형식을 선택합니다.
- DNS 쿼리
- DNS 응답
- 전송 빈도를 선택합니다.
- 옵션에는 시간별, 일일, 특정 파일 크기 (예: 100MB)에 도달 시 등이 있습니다.
- 선택사항: 필터 추가를 클릭하여 특정 기준 (예: 호스트 이름 또는 레코드 유형)에 따라 특정 로그를 포함하거나 제외합니다.
- 구성 세부정보를 검토하고 저장 및 활성화를 클릭합니다.
Akamai DNS 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: Akamai DNS 로그).
- 소스 유형으로 Amazon S3를 선택합니다.
- 로그 유형으로 Akamai DNS를 선택합니다.
- 다음을 클릭합니다.
다음 입력 매개변수의 값을 지정합니다.
- 리전: Amazon S3 버킷이 있는 리전입니다.
S3 URI: 버킷 URI입니다.
s3://BUCKET_NAME
다음을 바꿉니다.
- BUCKET_NAME: 버킷의 이름입니다.
URI: 로그 스트림 구성 (단일 파일 | 디렉터리 | 하위 디렉터리가 포함된 디렉터리)에 따라
URI_TYPE
를 선택합니다.소스 삭제 옵션: 환경설정에 따라 삭제 옵션을 선택합니다.
액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
애셋 네임스페이스: 애셋 네임스페이스입니다.
수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
다음을 클릭합니다.
확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
클래스 | read_only_udm.network.dns.questions.class |
class가 'IN'인 경우 1로 설정합니다. 그렇지 않으면 부호 없는 정수로 변환을 시도합니다. |
column11 | read_only_udm.target.hostname |
호스트 이름이 포함되어 있고 'ip4', '=", '.net', '10 mx0'과 같은 특정 패턴이 포함되지 않은 경우 매핑됩니다. 다양한 패턴을 기반으로 IP 주소, 이메일 주소, DNS 권한 데이터를 추출하는 데도 사용됩니다. |
column11 | read_only_udm.target.ip |
SPF 레코드 내 IP 주소의 패턴과 일치하는 경우 column11에서 추출됩니다. |
column11 | read_only_udm.target.user.email_addresses |
DMARC 레코드 내 이메일 주소의 패턴과 일치하는 경우 column11에서 추출됩니다. |
column11 | read_only_udm.network.dns.authority.data |
다양한 레코드 유형 내의 도메인 이름 패턴과 일치하는 경우 column11에서 추출됩니다. |
column11 | read_only_udm.network.dns.response_code |
column11에 'NXDOMAIN'이 포함된 경우 3으로 설정합니다. |
column2 | read_only_udm.principal.ip |
유효한 IP 주소인 경우 매핑됩니다. |
column3 | read_only_udm.principal.port |
유효한 정수인 경우 매핑됩니다. |
column4 | read_only_udm.network.dns.questions.name |
직접 매핑됩니다. |
column6 | read_only_udm.network.dns.questions.type |
조건부 로직을 사용하여 type 값을 기반으로 매핑하고 해당 숫자 값을 할당합니다. |
column8 | read_only_udm.network.sent_bytes |
부호 없는 정수로 변환되고 매핑됩니다. |
read_only_udm.metadata.event_timestamp |
column1에서 추출된 date 및 time 필드로 구성됩니다. | |
read_only_udm.event_type |
principal.ip 가 있는 경우 NETWORK_DNS로 설정하고, 그렇지 않으면 GENERIC_EVENT로 설정합니다. |
|
read_only_udm.product_name |
AKAMAI_DNS로 하드코딩됩니다. | |
read_only_udm.vendor_name |
AKAMAI_DNS로 하드코딩됩니다. | |
read_only_udm.dataset |
AKAMAI_DNS로 하드코딩됩니다. | |
read_only_udm.event_subtype |
DNS로 하드코딩됩니다. |
변경사항
2024-05-28
- 버그 수정: 로그 메시지에서 따옴표를 삭제하는
gsub
함수가 추가되었습니다. - 매핑하기 전에 IP 주소 및 포트 값을 확인하는 Grok 패턴을 추가했습니다.