1Password - Secret extraction post vault access change by administrator
| Id | 6711b747-16d7-4df4-9f61-8633617f45d7 |
| Rulename | 1Password - Secret extraction post vault access change by administrator |
| Description | This will alert when a secret extraction has occurred after an administrator has changed their own vault access permissions within that same vault. Ref: https://1password.com/ Ref: https://github.com/securehats/ |
| Severity | High |
| Tactics | CredentialAccess |
| Techniques | T1555 |
| Required data connectors | 1Password |
| Kind | Scheduled |
| Query frequency | 5m |
| Query period | 1h |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/1Password/Analytics Rules/1Password - Secret Extraction Post Vault Access Change By Administrator.yaml |
| Version | 1.0.0 |
| Arm template | 6711b747-16d7-4df4-9f61-8633617f45d7.json |
let lookback = 1h;
let secretExtractionActivity =
OnePasswordEventLogs_CL
| where TimeGenerated between (ago(lookback) .. now())
| where log_source == "itemusages"
| where action has_any("server-fetch", "reveal", "secure-copy")
;
OnePasswordEventLogs_CL
| where log_source == "auditevents"
| where (action == "grant" and object_type == "uva") or (action == "update" and object_type == "uva")
| where tostring(actor_details.uuid) == tostring(aux_details.uuid)
| extend
userUuid = tostring(actor_details.uuid)
, vaultUuid = tostring(object_uuid)
| join (
secretExtractionActivity
| extend
userUuid = tostring(user.uuid)
, vaultUuid = tostring(vault_uuid)
)
on $left.userUuid == $right.userUuid and $left.vaultUuid == $right.vaultUuid
| extend
auditevents = bag_pack("action", action, "object_type", object_type)
, itemusages = bag_pack("action", action1, "object_type", object_type1)
, vault_details = bag_pack("vault_uuid", vault_uuid1, "item_uuid", item_uuid1)
| project
TimeGenerated
, actor_details
, target_details = aux_details
, location_details = location
, client_details = client1
, auditevents
, itemusages
, vault_details
, TargetUsername = tostring(user1.email)
, SrcIpAddr = tostring(client1.ip_address)
suppressionEnabled: false
description: |-
This will alert when a secret extraction has occurred after an administrator has changed their own vault access permissions within that same vault.
Ref: https://1password.com/
Ref: https://github.com/securehats/
kind: Scheduled
tactics:
- CredentialAccess
requiredDataConnectors:
- connectorId: 1Password
dataTypes:
- OnePasswordEventLogs_CL
incidentConfiguration:
groupingConfiguration:
reopenClosedIncident: false
lookbackDuration: 1h
enabled: true
matchingMethod: AllEntities
createIncident: true
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/1Password/Analytics Rules/1Password - Secret Extraction Post Vault Access Change By Administrator.yaml
severity: High
name: 1Password - Secret extraction post vault access change by administrator
suppressionDuration: 1h
eventGroupingSettings:
aggregationKind: SingleAlert
triggerThreshold: 0
queryPeriod: 1h
query: |-
let lookback = 1h;
let secretExtractionActivity =
OnePasswordEventLogs_CL
| where TimeGenerated between (ago(lookback) .. now())
| where log_source == "itemusages"
| where action has_any("server-fetch", "reveal", "secure-copy")
;
OnePasswordEventLogs_CL
| where log_source == "auditevents"
| where (action == "grant" and object_type == "uva") or (action == "update" and object_type == "uva")
| where tostring(actor_details.uuid) == tostring(aux_details.uuid)
| extend
userUuid = tostring(actor_details.uuid)
, vaultUuid = tostring(object_uuid)
| join (
secretExtractionActivity
| extend
userUuid = tostring(user.uuid)
, vaultUuid = tostring(vault_uuid)
)
on $left.userUuid == $right.userUuid and $left.vaultUuid == $right.vaultUuid
| extend
auditevents = bag_pack("action", action, "object_type", object_type)
, itemusages = bag_pack("action", action1, "object_type", object_type1)
, vault_details = bag_pack("vault_uuid", vault_uuid1, "item_uuid", item_uuid1)
| project
TimeGenerated
, actor_details
, target_details = aux_details
, location_details = location
, client_details = client1
, auditevents
, itemusages
, vault_details
, TargetUsername = tostring(user1.email)
, SrcIpAddr = tostring(client1.ip_address)
relevantTechniques:
- T1555
id: 6711b747-16d7-4df4-9f61-8633617f45d7
queryFrequency: 5m
entityMappings:
- entityType: Account
fieldMappings:
- columnName: TargetUsername
identifier: FullName
- entityType: IP
fieldMappings:
- columnName: SrcIpAddr
identifier: Address
triggerOperator: gt
version: 1.0.0