CYFIRMA - Public Accounts Leaks Detection Rule
| Id | 57602938-e95a-4fc3-9352-8d473ed256e1 |
| Rulename | CYFIRMA - Public Accounts Leaks Detection Rule |
| Description | “Detects exposed public-facing account credentials as identified in CYFIRMA’s threat intelligence feeds. This rule monitors for credentials leaked through third-party breaches, dark web sources, or public repositories that could impact the organization’s users or systems. It captures key details such as email, username, IP address, and associated devices. These accounts may not be directly managed by the enterprise but still pose a risk of lateral access, shadow IT, or third-party exposure.” |
| Severity | High |
| Tactics | CredentialAccess InitialAccess Discovery |
| Techniques | T1078 T1087 T1552 |
| Required data connectors | CyfirmaCompromisedAccountsDataConnector |
| Kind | Scheduled |
| Query frequency | 5m |
| Query period | 5m |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Cyfirma Compromised Accounts/Analytic Rules/PublicAccountsLeaksRule.yaml |
| Version | 1.0.1 |
| Arm template | 57602938-e95a-4fc3-9352-8d473ed256e1.json |
// Public Accounts Leaks - Latest per UID
let timeFrame = 5m;
CyfirmaCompromisedAccounts_CL
| where TimeGenerated between (ago(timeFrame) .. now())
and Category has "Public Accounts Leaks"
| extend
ProviderName = 'CYFIRMA',
ProductName = 'DeCYFIR/DeTCT'
| summarize arg_max(TimeGenerated,
email,
user_name,
password,
url,
ip,
computer_name,
operating_system,
breach_date,
first_seen,
last_seen,
impact,
recommendations,
description,
source,
ProductName,
ProviderName
) by uid
| sort by TimeGenerated desc
alertDetailsOverride:
alertDisplayNameFormat: Public Leak - {{user_name}} - {{email}}
alertDynamicProperties:
- value: ProductName
alertProperty: ProductName
- value: ProviderName
alertProperty: ProviderName
alertDescriptionFormat: '{{description}}'
incidentConfiguration:
groupingConfiguration:
enabled: false
reopenClosedIncident: false
matchingMethod: AllEntities
lookbackDuration: PT5H
createIncident: true
customDetails:
Impact: impact
LastSeen: last_seen
FirstSeen: first_seen
Recommendations: recommendations
Description: description
UID: uid
BreachDate: breach_date
Source: source
TimeGenerated: TimeGenerated
relevantTechniques:
- T1078
- T1087
- T1552
queryFrequency: 5m
tactics:
- CredentialAccess
- InitialAccess
- Discovery
version: 1.0.1
triggerOperator: gt
name: CYFIRMA - Public Accounts Leaks Detection Rule
description: |
"Detects exposed public-facing account credentials as identified in CYFIRMA's threat intelligence feeds.
This rule monitors for credentials leaked through third-party breaches, dark web sources, or public repositories that could impact the organization's users or systems.
It captures key details such as email, username, IP address, and associated devices. These accounts may not be directly managed by the enterprise but still pose a risk of lateral access, shadow IT, or third-party exposure."
suppressionDuration: 6h
entityMappings:
- entityType: Account
fieldMappings:
- columnName: user_name
identifier: Name
- columnName: email
identifier: UPNSuffix
- entityType: Host
fieldMappings:
- columnName: computer_name
identifier: HostName
- columnName: operating_system
identifier: OSVersion
- entityType: IP
fieldMappings:
- columnName: ip
identifier: Address
- entityType: URL
fieldMappings:
- columnName: url
identifier: Url
eventGroupingSettings:
aggregationKind: AlertPerResult
status: Available
id: 57602938-e95a-4fc3-9352-8d473ed256e1
suppressionEnabled: true
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Cyfirma Compromised Accounts/Analytic Rules/PublicAccountsLeaksRule.yaml
kind: Scheduled
triggerThreshold: 0
queryPeriod: 5m
requiredDataConnectors:
- connectorId: CyfirmaCompromisedAccountsDataConnector
dataTypes:
- CyfirmaCompromisedAccounts_CL
severity: High
query: |
// Public Accounts Leaks - Latest per UID
let timeFrame = 5m;
CyfirmaCompromisedAccounts_CL
| where TimeGenerated between (ago(timeFrame) .. now())
and Category has "Public Accounts Leaks"
| extend
ProviderName = 'CYFIRMA',
ProductName = 'DeCYFIR/DeTCT'
| summarize arg_max(TimeGenerated,
email,
user_name,
password,
url,
ip,
computer_name,
operating_system,
breach_date,
first_seen,
last_seen,
impact,
recommendations,
description,
source,
ProductName,
ProviderName
) by uid
| sort by TimeGenerated desc