Azure DevOps 감사 로그 수집
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 JSON 형식의 Azure DevOps 감사 로그를 처리합니다. 중첩된 JSON 구조와 최상위 JSON 구조에서 필드를 추출하여 UDM에 매핑합니다. 특정 필드 값을 기반으로 하는 조건부 로직은 이벤트를 분류하고 관련 보안 정보로 출력을 보강합니다. 또한 파서는 grok 패턴을 사용하여 JSON 페이로드를 추출하려고 시도하여 JSON 형식이 아닌 메시지를 처리합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- 활성 상태의 Azure DevOps 조직이 있어야 합니다.
- Azure DevOps 조직 및 Azure에 대한 권한이 있는지 확인합니다.
Azure Devops 로그를 수집하도록 Google SecOps에서 피드 구성
- SIEM 설정 > 피드로 이동합니다.
- 새로 추가를 클릭합니다.
- 피드 이름 필드에 피드 이름을 입력합니다 (예: Azure Devops Logs).
- 소스 유형으로 Webhook을 선택합니다.
- 로그 유형으로 Azure Devops를 선택합니다.
- 다음을 클릭합니다.
- 선택사항: 다음 입력 매개변수의 값을 지정합니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
\n
). - 애셋 네임스페이스: 애셋 네임스페이스입니다.
- 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
- 분할 구분 기호: 로그 줄을 구분하는 데 사용되는 구분 기호입니다(예:
- 다음을 클릭합니다.
- 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.
- 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
- 비밀 키를 복사하여 저장합니다. 이 보안 비밀 키는 다시 볼 수 없습니다. 필요한 경우 새 보안 비밀 키를 재생성할 수 있지만 이 작업을 하면 이전 보안 비밀 키는 더 이상 사용할 수 없게 됩니다.
- 세부정보 탭의 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다. 클라이언트 애플리케이션에서 이 엔드포인트 URL을 지정해야 합니다.
- 완료를 클릭합니다.
웹훅 피드에 대한 API 키 만들기
Google Cloud 콘솔 > 사용자 인증 정보로 이동합니다.
사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
Google Security Operations API에 대한 API 키 액세스를 제한합니다.
엔드포인트 URL 지정
- 클라이언트 애플리케이션에서 웹훅 피드에 제공된 HTTPS 엔드포인트 URL을 지정합니다.
다음 형식의 커스텀 헤더의 일부로 API 키와 보안 비밀 키를 지정하여 인증을 사용 설정합니다.
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
권장사항: API 키를 URL에 지정하는 대신 헤더로 지정하세요. 웹훅 클라이언트가 커스텀 헤더를 지원하지 않는 경우 다음 형식의 쿼리 매개변수를 사용하여 API 키와 보안 비밀 키를 지정할 수 있습니다.
ENDPOINT_URL?key=API_KEY&secret=SECRET
다음을 바꿉니다.
ENDPOINT_URL
: 피드 엔드포인트 URL입니다.API_KEY
: Google Security Operations에 인증하기 위한 API 키입니다.SECRET
: 피드를 인증하기 위해 생성한 보안 비밀 키입니다.
Azure DevOps에서 감사 기능 구성
- 조직 (
https://dev.azure.com/{yourorganization}
)에 로그인합니다. - 조직 설정의 톱니바퀴 아이콘을 선택합니다.
- 보안에서 정책을 선택합니다.
- 감사 로그 이벤트 버튼을 사용으로 전환합니다.
Azure에서 Event Grid 주제 구성
- Azure 포털에 로그인합니다.
- Event Grid를 검색하여 액세스합니다.
- 맞춤 이벤트에서 주제를 찾습니다.
- + 만들기를 클릭합니다.
- 구독 및 리소스 그룹을 선택합니다. 이름 (예: DevopsAuditLog)을 지정하고 리전을 선택합니다. 검토 및 만들기를 클릭합니다.
- 새 주제에 액세스하여 주제 엔드포인트 URL을 복사합니다.
- 설정 > 액세스 키로 이동하여 키 1을 복사합니다.
Azure DevOps 로그 스트림을 Event Grid로 구성
- 조직 (
https://dev.azure.com/{yourorganization}
)에 로그인합니다. - 조직 설정의 톱니바퀴 아이콘을 선택합니다.
- 감사를 선택합니다.
- 스트림 탭으로 이동하여 새 스트림 > 이벤트 그리드를 선택합니다.
- Azure에서 Event Grid 주제 구성에서 만든 주제 엔드포인트와 액세스 키를 입력합니다.
Google SecOps용 Azure DevOps에서 Webhook 구성
- Azure 포털에서 Event Grid를 검색하여 액세스합니다.
- 이전에 만든 주제를 선택합니다.
- 항목 > 이벤트 구독으로 이동합니다.
- + 이벤트 구독을 클릭합니다.
- 설명이 포함된 이름을 지정합니다 (예: Google SecOps 통합).
- 웹 후크를 선택하고 엔드포인트 구성을 클릭합니다.
- 엔드포인트를 구성합니다.
- 구독자 엔드포인트: Google SecOps API 엔드포인트 URL을 입력합니다.
- 페이로드 URL에
?key=<API_KEY>&secret=<SECRET_KEY>
를 추가합니다. - Content-Type 헤더를 application/json으로 설정합니다.
- 만들기를 클릭합니다.
UDM 매핑 표
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
ActivityId |
metadata.product_log_id |
records 필드가 없는 경우 원시 로그의 Id 필드에서 직접 매핑되며, records 가 있는 경우 data 객체 내의 ActivityId 필드에서 직접 매핑됩니다. |
ActionId |
metadata.product_event_type |
data 객체 내의 ActionId 필드에서 직접 매핑됩니다. |
ActorCUID |
additional.fields |
'Actor CUID' 키와 함께 추가 필드로 포함됩니다. |
ActorDisplayName |
principal.user.user_display_name |
'Azure DevOps 서비스'가 아닌 경우 ActorDisplayName 필드에서 직접 매핑됩니다. 'Azure DevOps 서비스'인 경우 principal.resource.attribute.labels 에 라벨로 추가됩니다. |
ActorUPN |
principal.user.email_addresses |
이메일 주소 패턴과 일치하는 경우 ActorUPN 필드에서 직접 매핑됩니다. |
ActorUserId |
principal.user.userid |
ActorUserId 필드에서 직접 매핑됩니다. |
Area |
target.application |
Area 값 앞에 'DevOps'를 추가하여 target.application 필드를 구성하는 데 사용됩니다. |
AuthenticationMechanism |
extensions.auth.auth_details , security_result.rule_id |
인증 세부정보와 규칙 ID를 추출하도록 파싱됩니다. 인증 세부정보가 extensions.auth.auth_details 에 매핑됩니다. 추출된 규칙 ID는 security_result.rule_id 에 매핑됩니다. |
CategoryDisplayName |
security_result.action_details |
security_result.action_details 에 직접 매핑됩니다. |
City |
principal.location.city |
City 필드에서 직접 매핑됩니다. |
Conditions |
additional.fields |
'조건' 키를 가진 추가 입력란으로 추가되었습니다. |
Country |
principal.location.country_or_region |
Country 필드에서 직접 매핑됩니다. |
Data.* |
다양함 | Data 객체 내 필드는 이름과 컨텍스트에 따라 서로 다른 UDM 필드에 매핑됩니다. 구체적인 예는 아래를 참고하세요. |
Data.AccessLevel |
target.resource.attribute.labels |
'AccessLevel' 키가 있는 라벨로 추가되었습니다. |
Data.AgentId |
target.resource.product_object_id |
PipelineId 및 AuthorizationId 가 없는 경우 target.resource.product_object_id 에 매핑됩니다. |
Data.AgentName |
target.resource.name |
PipelineName , NamespaceName , DisplayName 가 없는 경우 target.resource.name 에 매핑됩니다. |
Data.AuthorizationId |
target.resource.product_object_id |
PipelineId 가 없는 경우 target.resource.product_object_id 에 매핑됩니다. |
Data.CallerProcedure |
additional.fields |
'CallerProcedure' 키를 가진 추가 필드로 추가되었습니다. |
Data.CheckSuiteId |
additional.fields |
'CheckSuiteId' 키를 가진 추가 필드로 추가되었습니다. |
Data.CheckSuiteStatus |
additional.fields |
'CheckSuiteStatus' 키를 가진 추가 필드로 추가되었습니다. |
Data.ConnectionId |
additional.fields |
'ConnectionId' 키가 있는 추가 필드로 추가되었습니다. |
Data.ConnectionName |
additional.fields |
'ConnectionName' 키가 있는 추가 필드로 추가되었습니다. |
Data.ConnectionType |
additional.fields |
'ConnectionType' 키가 있는 추가 필드로 추가되었습니다. |
Data.DefinitionId |
additional.fields |
'DefinitionId' 키를 가진 추가 필드로 추가되었습니다. |
Data.DeploymentResult |
additional.fields |
'DeploymentResult' 키를 가진 추가 필드로 추가되었습니다. |
Data.DisplayName |
target.resource.name |
PipelineName 및 NamespaceName 가 없는 경우 target.resource.name 에 매핑됩니다. |
Data.EndpointIdList |
additional.fields |
'EndpointIdList' 키를 가진 추가 필드로 추가되었습니다. |
Data.EnvironmentName |
additional.fields |
'EnvironmentName' 키를 가진 추가 입력란으로 추가되었습니다. |
Data.Filter.continuationToken |
target.resource.attribute.labels |
'continuation_token' 키를 가진 라벨로 추가되었습니다. |
Data.Filter.endTime |
target.resource.attribute.labels |
'filter_end_time' 키를 가진 라벨로 추가되었습니다. |
Data.Filter.startTime |
target.resource.attribute.labels |
'filter_start_time' 키를 가진 라벨로 추가되었습니다. |
Data.FinishTime |
additional.fields |
'FinishTime' 키를 가진 추가 필드로 추가되었습니다. |
Data.GroupId |
target.group.product_object_id |
Data.Updates.0.GroupId 가 없는 경우 target.group.product_object_id 에 직접 매핑됩니다. |
Data.GroupName |
target.group.group_display_name |
target.group.group_display_name 에 직접 매핑됩니다. |
Data.JobName |
additional.fields |
'JobName' 키를 가진 추가 필드로 추가되었습니다. |
Data.MemberId |
target.user.userid |
Data.Updates.0.MemberId 가 없는 경우 target.user.userid 에 직접 매핑됩니다. |
Data.MemberDisplayName |
target.user.user_display_name |
target.user.user_display_name 에 직접 매핑됩니다. |
Data.NamespaceId |
target.resource.product_object_id |
PipelineId , AuthorizationId , AgentId 가 없는 경우 target.resource.product_object_id 에 매핑됩니다. |
Data.NamespaceName |
target.resource.name |
PipelineName 가 없는 경우 target.resource.name 에 매핑됩니다. |
Data.ownerDetails |
additional.fields |
'OwnerDetails' 키를 가진 추가 필드로 추가되었습니다. |
Data.OwnerId |
additional.fields |
'OwnerId' 키를 가진 추가 필드로 추가되었습니다. |
Data.PipelineId |
target.resource.product_object_id |
target.resource.product_object_id 에 직접 매핑됩니다. |
Data.PipelineName |
target.resource.name |
target.resource.name 에 직접 매핑됩니다. |
Data.PipelineRevision |
target.resource.attribute.labels |
'PipelineRevision' 키를 사용하여 라벨로 추가되었습니다. |
Data.PipelineScope |
target.resource.attribute.labels |
'PipelineScope' 키로 라벨로 추가되었습니다. |
Data.PlanType |
additional.fields |
'PlanType' 키를 가진 추가 필드로 추가되었습니다. |
Data.PreviousAccessLevel |
target.resource.attribute.labels |
'PreviousAccessLevel' 키가 있는 라벨로 추가되었습니다. |
Data.PublisherName |
target.resource.attribute.labels |
'PublisherName' 키가 있는 라벨로 추가되었습니다. |
Data.Reason |
additional.fields |
'Reason' 키를 가진 추가 입력란으로 추가되었습니다. |
Data.ReleaseId |
additional.fields |
'ReleaseId' 키를 가진 추가 필드로 추가되었습니다. |
Data.ReleaseName |
additional.fields |
'ReleaseName' 키를 가진 추가 필드로 추가되었습니다. |
Data.RequesterId |
additional.fields |
'RequesterId' 키를 가진 추가 필드로 추가되었습니다. |
Data.RetentionLeaseId |
additional.fields |
'RetentionLeaseId' 키를 가진 추가 필드로 추가되었습니다. |
Data.RetentionOwnerId |
additional.fields |
'RetentionOwnerId' 키를 가진 추가 필드로 추가되었습니다. |
Data.RunName |
additional.fields |
'RunName' 키를 가진 추가 필드로 추가되었습니다. |
Data.Scopes |
target.resource.attribute.labels |
'범위' 키가 있는 라벨로 추가되었습니다. |
Data.StageName |
additional.fields |
'StageName' 키를 가진 추가 필드로 추가되었습니다. |
Data.StartTime |
additional.fields |
'StartTime' 키를 가진 추가 필드로 추가되었습니다. |
Data.TargetUser |
target.user.userid |
target.user.userid 에 직접 매핑됩니다. |
Data.Timestamp |
metadata.event_timestamp |
파싱되고 metadata.event_timestamp 에 매핑됩니다. |
Data.TokenType |
target.resource.attribute.labels |
'TokenType' 키가 있는 라벨로 추가되었습니다. |
Data.Updates.0.GroupId |
target.group.product_object_id |
target.group.product_object_id 에 직접 매핑됩니다. |
Data.Updates.0.MemberId |
target.user.userid |
target.user.userid 에 직접 매핑됩니다. |
Data.ValidFrom |
target.resource.attribute.labels |
'ValidFrom' 키가 있는 라벨로 추가되었습니다. |
Data.ValidTo |
target.resource.attribute.labels |
'ValidTo' 키가 있는 라벨로 추가되었습니다. |
DewPoint |
additional.fields |
'DewPoint' 키를 가진 추가 필드로 추가되었습니다. |
Details |
metadata.description |
metadata.description 에 직접 매핑됩니다. |
Humidity |
additional.fields |
'Humidity' 키가 있는 추가 필드로 추가되었습니다. |
Icon |
additional.fields |
'아이콘' 키가 있는 추가 입력란으로 추가되었습니다. |
Id |
metadata.product_log_id |
metadata.product_log_id 에 직접 매핑됩니다. |
IpAddress |
principal.ip |
principal.ip 에 직접 매핑됩니다. |
MoonPhase |
additional.fields |
'MoonPhase' 키를 가진 추가 필드로 추가되었습니다. |
Moonrise |
additional.fields |
'Moonrise' 키가 있는 추가 필드로 추가되었습니다. |
Moonset |
additional.fields |
'Moonset' 키가 있는 추가 필드로 추가되었습니다. |
OperationName |
metadata.product_event_type |
metadata.product_event_type 에 직접 매핑됩니다. |
Precipitation |
additional.fields |
'강수량' 키가 있는 추가 입력란으로 추가되었습니다. |
Pressure |
additional.fields |
'Pressure' 키를 가진 추가 입력란으로 추가되었습니다. |
ProjectId |
target.resource_ancestors.product_object_id |
조상이 CLOUD_PROJECT 유형인 경우 target.resource_ancestors 내의 product_object_id 필드를 채우는 데 사용됩니다. |
ProjectName |
target.resource_ancestors.name , target.resource.attribute.labels |
조상이 CLOUD_PROJECT 유형인 경우 target.resource_ancestors 내의 name 필드를 채우는 데 사용됩니다. 또한 target.resource.attribute.labels 에 'ProjectName' 키로 라벨로 추가되었습니다. |
RoleLocation |
target.location.name |
target.location.name 에 직접 매핑됩니다. |
ScopeDisplayName |
target.resource_ancestors.name |
조상이 CLOUD_ORGANIZATION 유형인 경우 target.resource_ancestors 내의 name 필드를 채우는 데 사용됩니다. |
ScopeId |
target.resource_ancestors.product_object_id |
조상이 CLOUD_ORGANIZATION 유형인 경우 target.resource_ancestors 내의 product_object_id 필드를 채우는 데 사용됩니다. |
ScopeType |
additional.fields |
'ScopeType' 키를 가진 추가 필드로 추가되었습니다. |
Sunrise |
additional.fields |
'Sunrise' 키가 있는 추가 필드로 추가되었습니다. |
Sunset |
additional.fields |
'Sunset' 키가 있는 추가 입력란으로 추가되었습니다. |
Temperature |
additional.fields |
'Temperature' 키를 가진 추가 필드로 추가되었습니다. |
TenantId |
metadata.product_deployment_id , additional.fields |
metadata.product_deployment_id 에 직접 매핑됩니다. 또한 'TenantId' 키가 있는 추가 필드로 추가되었습니다. |
TimeGenerated |
metadata.event_timestamp |
파싱되고 metadata.event_timestamp 에 매핑됩니다. |
UserAgent |
network.http.user_agent , network.http.parsed_user_agent |
network.http.user_agent 에 직접 매핑됩니다. 또한 파싱되어 network.http.parsed_user_agent 에 매핑됩니다. |
UVIndex |
additional.fields |
'UVIndex' 키를 가진 추가 필드로 추가되었습니다. |
Visibility |
additional.fields |
'Visibility' 키가 있는 추가 입력란으로 추가되었습니다. |
WindDirection |
additional.fields |
'WindDirection' 키를 가진 추가 필드로 추가되었습니다. |
WindSpeed |
additional.fields |
'WindSpeed' 키를 가진 추가 필드로 추가되었습니다. |
_Internal_WorkspaceResourceId |
additional.fields |
'workspace_resource_id' 키를 가진 추가 필드로 추가되었습니다. |
해당 사항 없음 | metadata.event_type |
OperationName 및 기타 필드를 기반으로 하는 로직에 의해 결정됩니다. 특정 이벤트 유형이 일치하지 않으면 기본값은 'GENERIC_EVENT'입니다. 가능한 값은 'STATUS_SHUTDOWN', 'RESOURCE_CREATION', 'STATUS_UPDATE', 'USER_RESOURCE_DELETION', 'RESOURCE_READ', 'RESOURCE_WRITTEN', 'RESOURCE_DELETION', 'GROUP_MODIFICATION'입니다. |
해당 사항 없음 | metadata.vendor_name |
'Microsoft'로 설정합니다. |
해당 사항 없음 | metadata.product_name |
'Azure DevOps'로 설정합니다. |
해당 사항 없음 | metadata.log_type |
'AZURE_DEVOPS'로 설정합니다. |
해당 사항 없음 | principal.user.account_type |
AuthenticationMechanism 에 'ServicePrincipal'이 포함된 경우 'SERVICE_ACCOUNT_TYPE'으로 설정하고, 포함되지 않은 경우에는 'CLOUD_ACCOUNT_TYPE'으로 설정합니다. |
해당 사항 없음 | target.asset.attribute.cloud.environment |
MICROSOFT_AZURE 로 설정합니다. |
해당 사항 없음 | security_result.action |
성공한 작업 (성공, 생성, 수정, 실행, 업데이트, 삭제)의 경우 '허용'으로, 실패한 작업 (실패, 시간 초과)의 경우 '차단'으로 설정합니다. |
해당 사항 없음 | extensions.auth.mechanism |
summary 이 'UserAuthToken'인 경우 'USERNAME_PASSWORD'로 설정합니다. |
해당 사항 없음 | target.resource.resource_type |
pipeline_id 가 있으면 'SETTING'으로, authorization_id 가 있으면 'CREDENTIAL'으로, agent_id 가 있으면 'DEVICE'로, namespace_id 가 있으면 'DATABASE'로 설정합니다. 그렇지 않은 경우 operationName 를 기반으로 'STORAGE_BUCKET'으로 설정되는 경우도 있습니다. |
해당 사항 없음 | target.resource.resource_subtype |
pipeline_id 가 있는 경우 'Pipeline'로, authorization_id 가 있는 경우 'Token'으로, agent_id 가 있는 경우 'Agent'로, namespace_id 가 있는 경우 'Namespace'로 설정합니다. |
변경사항
2024-01-19
- 주 사용자 데이터와 대상 리소스 데이터가 있는 경우 'metadata.eventtype' 값을 'SERVICE*'에서 'USER_RESOURCE_UPDATE_CONTENT'로 변경했습니다.
- 'IpAddress'의 매핑이 'target.ip'에서 'principal.ip'로 변경되었습니다.
- 'ActorCUID' 매핑이 'principal.user.product_object_id'에서 'additional.fields'로 변경되었습니다.
- 'ScopeId'의 매핑이 'principal.asset_id'에서 'resource_ancestors.product_object_id'로 변경되었습니다.
- '_Internal_WorkspaceResourceId'의 매핑이 'target.resource.product_object_id'에서 'additional.fields'로 변경되었습니다.
- 'ProjectId'의 매핑이 'target.resource.attribute.labels'에서 'target.resource_ancestors.product_object_id'로 변경되었습니다.
- 'AuthenticationMechanism'의 매핑이 'security_result.summary'에서 'extensions.auth.auth_details'로 변경되었습니다.
- 'CorrelationId'의 매핑이 'network.session_id'에서 'additional.fields'로 변경되었습니다.
- 'ScopeDisplayName'의 매핑을 'additional.fields'에서 'target.resource_ancestors.name'으로 변경했습니다.
- 'PipelineId'의 매핑을 'additional.fields'에서 'target.resource.product_object_id'로 변경했습니다.
- 'PipelineName'의 매핑을 'additional.fields'에서 'target.resource.name'으로 변경했습니다.
- 'PipelineScope'의 매핑이 'additional.fields'에서 'target.resource.attribute.labels'로 변경되었습니다.
- 'PipelineRevision'의 매핑이 'additional.fields'에서 'target.resource.attribute.labels'로 변경되었습니다.
- 'ProjectId'의 매핑이 'target.resource.resource.attribute.labels'에서 'target.resource_ancestors.product_object_id'로 변경되었습니다.
- 'Area'의 매핑이 'additional.fields'에서 'target.application'으로 변경되었습니다.
- 'MICROSOFT_AZURE' 값이 'target.asset.attribute.cloud.environment'에 매핑되었습니다.
- 'AuthenticationMechanism'에 'ServicePrincipal' 값이 있는 경우 'SERVICE_ACCOUNT_TYPE'을 'principal.user.account_type'으로 설정하고, 그렇지 않은 경우에는 'CLOUD_ACCOUNT_TYPE'을 'principal.user.account_type'으로 설정합니다.
- 'Category'가 'security_result.action_details'에 매핑되었습니다.
- '세부정보' 필드를 기반으로 'ALLOW' 또는 'BLOCK'이 'security_result.action'에 매핑되었습니다.
- 'ActivityId'가 'additional.fields'에 매핑되었습니다.
2024-01-09
- 파싱되지 않은 JSON 로그를 파싱하는 Grok 및 gsub를 추가했습니다.
- 'rec.correlationId', 'properties.currentHealthStatus', 'properties.previousHealthStatus', 'properties.type', 'properties.cause', 'properties.title', 'properties.details', 'properties.recommendationType', 'properties.recommendationCategory', 'properties.recommendationImpact', 'properties.recommendationName', 'properties.recommendationResourceLink', 'properties.recommendationSchemaVersion', 'properties.eventCategory', 'properties.hierarchy', 'properties.message', 'properties.entity', 'identity.claims.xms.tcdt', 'identity.claims.aio', 'identity.claims.appid', 'identity.claims.appidacr', 'identity.claims.aud', 'identity.claims.exp', 'identity.claims.iat', 'identity.claims.idtyp', 'identity.claims.iss', 'identity.claims.uti', 'identity.claims.rh', 'identity.claims.ver', 'identity.claims.nbf', 'identity.authorization.evidence.roleAssignmentId', 'identity.authorization.evidence.principalType', 'identity.authorization.evidence.principalId', 'identity.authorization.evidence.roleAssignmentScope', 'identity.authorization.evidence.roleDefinitionId'가 'security_result.detection_fields'에 매핑되었습니다.
- 'resultSignature.label', 'rec.resultType', 'Visibility', 'Humidity', 'Precipitation',"MoonPhase", "Moonrise", "Moonset", "Pressure", "WindSpeed", "UVIndex", "DewPoint", WindDirection", "Sunrise", "Sunset", "Temperature", "Icon", "Conditions"가 'additional.fields'에 매핑되었습니다.
- 'level'이 'security_result.severity'에 매핑되었습니다.
- 'appname'이 'target.application'에 매핑되었습니다.
- 'category.details'가 'security.result.category.details'에 매핑되었습니다.
- 'rec.resourceId'가 'target.resource.id'에 매핑되었습니다.
- 'res.extensionResourceName'이 'principal.hostname'에 매핑되었습니다.
2023-11-23
- JSON 로그의 새로운 패턴에 대한 지원이 추가되었습니다.
- 'data.TimeGenerated'이 'metadata.event_timestamp'에 매핑되었습니다.
- '_Internal_WorkspaceResourceId'가 없으면 'topic'이 'target.resource.product_object_id'에 매핑되었습니다.
- 'data.Data.ConnectionId'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.ownerDetails'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.DeploymentResult'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.EnvironmentName'이 'additional.fields'에 매핑되었습니다.
- 'data.Data.JobName'이 'additional.fields'에 매핑되었습니다.
- 'data.Data.StageName'이 'additional.fields'에 매핑되었습니다.
- 'data.Data.RunName'이 'additional.fields'에 매핑되었습니다.
- 'data.Data.RetentionLeaseId'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.CheckSuiteId'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.CheckSuiteStatus'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.ApprovalRequest'가 'additional.fields'에 매핑되었습니다.
- 'data.Data.ApprovalType'이 'additional.fields'에 매핑되었습니다.
- 'subject'가 'additional.fields'에 매핑되었습니다.
- 'data.ActorUserId'가 'principal.user.userid'에 매핑되었습니다.
- 'data.ActorDisplayName'이 'principal.user.user_display_name'에 매핑되었습니다.
- 'data.ActorCUID'가 'principal.user.product_object_id'에 매핑되었습니다.
- 'data.ActorUPN'이 'principal.user.email_addresses'에 매핑되었습니다.
- 'data.ScopeId'가 'principal.asset_id'에 매핑되었습니다.
- 'data.CorrelationId'가 'network.session_id'에 매핑되었습니다.
- 'data.UserAgent'가 'network.http.user_agent'에 매핑되었습니다.
- 'data.ProjectId'가 'target.resource.attribute.labels'에 매핑되었습니다.
- 'data.ScopeType'이 'additional.fields'에 매핑되었습니다.
- 'data.ProjectName'이 'target.resource.attribute.labels'에 매핑되었습니다.
- 'data.Details'가 'metadata.description'에 매핑되었습니다.
- 'data.CategoryDisplayName'이 'security_result.rule_name'에 매핑되었습니다.
- 'data.Area'가 'additional.fields'에 매핑되었습니다.
- 'data.Id'가 'metadata.product_log_id'에 매핑되었습니다.
- 'data.ActionId'가 'metadata.product_event_type'에 매핑되었습니다.
- 'data.Timestamp'가 'metadata.event_timestamp'에 매핑되었습니다.
2022-06-28
- 새로 생성된 파서