Entra ID Windows Hello for Business Credential Registered
Identifies the first-seen registration of a Windows Hello for Business (WHfB) credential for a Microsoft Entra ID user from a given source ASN in a tenant, based on a prefixed historic window. Enrollment is commonly part of legitimate onboarding or passwordless rollout and is not inherently malicious. Adversaries who have obtained a token that satisfies fresh (NGC) multi-factor authentication, for example by borrowing an existing WHfB key or passkey, can also enroll their own WHfB credential to establish durable, phishing-resistant persistence that survives password resets and standard session revocation. Correlate first-seen enrollments with the sign-in and device state that preceded them.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/08/07"
3integration = ["azure"]
4maturity = "production"
5updated_date = "2026/08/07"
6
7[rule]
8author = ["Elastic"]
9description = """
10Identifies the first-seen registration of a Windows Hello for Business (WHfB) credential for a Microsoft Entra ID user
11from a given source ASN in a tenant, based on a prefixed historic window. Enrollment is commonly part of legitimate
12onboarding or passwordless rollout and is not inherently malicious. Adversaries who have obtained a token that satisfies
13fresh (NGC) multi-factor authentication, for example by borrowing an existing WHfB key or passkey, can also enroll their
14own WHfB credential to establish durable, phishing-resistant persistence that survives password resets and standard
15session revocation. Correlate first-seen enrollments with the sign-in and device state that preceded them.
16"""
17false_positives = [
18 """
19 Legitimate WHfB and passwordless onboarding commonly generate this event, especially for new users or users
20 enrolling from a new network ASN. This rule fires only on first-seen combinations of tenant, user, and source ASN
21 over 14 days. Investigate unexpected ASNs, users outside the enrollment population, or enrollments preceded by
22 anomalous sign-ins.
23 """,
24]
25from = "now-9m"
26index = ["logs-azure.auditlogs-*"]
27language = "kuery"
28license = "Elastic License v2"
29name = "Entra ID Windows Hello for Business Credential Registered"
30note = """## Triage and analysis
31
32### Investigating Entra ID Windows Hello for Business Credential Registered
33
34This is a first-seen (new_terms) signal: a WHfB credential was registered for a tenant/user/source-ASN combination not observed in the prior 14 days. Enrollment is often legitimate onboarding, but adversaries abuse the same action as persistence - after borrowing an existing WHfB key or passkey to satisfy fresh MFA, they enroll their own credential, which survives password resets and ordinary session revocation.
35
36### Possible investigation steps
37- Identify the target (`target_resources.0.user_principal_name`) and initiator (`initiated_by.user.userPrincipalName`), confirm whether WHfB enrollment was expected, and check whether the source ASN is new for that user.
38- Correlate with `azure.signinlogs` shortly before for a deviceless WHfB/passkey sign-in, device-code flow, or attacker device registration/PRT issuance; an additional credential from a new ASN on an established account is more suspicious. Examine the preceding sign-in's source IP/geo and user agent for automation or hosting/VPS origins.
39
40### False positive analysis
41- First-time WHfB enrollment during onboarding/passwordless rollout is expected; repeat enrollments from the same tenant/user/ASN within 14 days don't fire.
42- Users traveling or switching ISP/VPN may appear as a new ASN - validate against known networks before treating as suspicious.
43
44### Response and remediation
45- If unauthorized, delete the WHfB credential and any attacker-registered device via Graph or the Entra portal, revoke sessions and refresh tokens (delete devices first, to break device-bound PRT persistence), reset credentials, and re-enroll from a trusted device.
46- Review the sign-in that authorized the enrollment to determine the initial access vector.
47"""
48references = ["https://dirkjanm.io/borrowing-windows-hello-keys/"]
49risk_score = 21
50rule_id = "8c6f8cca-f730-4cdd-93a7-d65f087a4116"
51setup = """#### Required Microsoft Entra ID Audit Logs
52This rule requires the Azure integration with Microsoft Entra ID Audit logs enabled and collected via Azure Event Hub.
53"""
54severity = "low"
55tags = [
56 "Domain: Cloud",
57 "Domain: Identity",
58 "Platform: Entra ID",
59 "Use Case: Identity and Access Audit",
60 "Use Case: Threat Detection",
61 "Tactic: Persistence",
62 "Rule Type: New Terms",
63 "Data Source: Azure",
64 "Data Source: Microsoft Entra ID",
65 "Data Source: Microsoft Entra ID Audit Logs",
66 "Resources: Investigation Guide",
67]
68timestamp_override = "event.ingested"
69type = "new_terms"
70
71query = '''
72data_stream.dataset: "azure.auditlogs" and
73 azure.auditlogs.operation_name: "Add Windows Hello for Business credential" and
74 event.outcome: ("Success" or "success") and
75 azure.tenant_id: * and
76 azure.auditlogs.properties.initiated_by.user.userPrincipalName: * and
77 source.as.number: *
78'''
79
80
81[[rule.threat]]
82framework = "MITRE ATT&CK"
83[[rule.threat.technique]]
84id = "T1098"
85name = "Account Manipulation"
86reference = "https://attack.mitre.org/techniques/T1098/"
87[[rule.threat.technique.subtechnique]]
88id = "T1098.001"
89name = "Additional Cloud Credentials"
90reference = "https://attack.mitre.org/techniques/T1098/001/"
91
92
93
94[rule.threat.tactic]
95id = "TA0003"
96name = "Persistence"
97reference = "https://attack.mitre.org/tactics/TA0003/"
98
99[rule.new_terms]
100field = "new_terms_fields"
101value = [
102 "azure.tenant_id",
103 "azure.auditlogs.properties.initiated_by.user.userPrincipalName",
104 "source.as.number",
105]
106[[rule.new_terms.history_window_start]]
107field = "history_window_start"
108value = "now-14d"
Triage and analysis
Investigating Entra ID Windows Hello for Business Credential Registered
This is a first-seen (new_terms) signal: a WHfB credential was registered for a tenant/user/source-ASN combination not observed in the prior 14 days. Enrollment is often legitimate onboarding, but adversaries abuse the same action as persistence - after borrowing an existing WHfB key or passkey to satisfy fresh MFA, they enroll their own credential, which survives password resets and ordinary session revocation.
Possible investigation steps
- Identify the target (
target_resources.0.user_principal_name) and initiator (initiated_by.user.userPrincipalName), confirm whether WHfB enrollment was expected, and check whether the source ASN is new for that user. - Correlate with
azure.signinlogsshortly before for a deviceless WHfB/passkey sign-in, device-code flow, or attacker device registration/PRT issuance; an additional credential from a new ASN on an established account is more suspicious. Examine the preceding sign-in's source IP/geo and user agent for automation or hosting/VPS origins.
False positive analysis
- First-time WHfB enrollment during onboarding/passwordless rollout is expected; repeat enrollments from the same tenant/user/ASN within 14 days don't fire.
- Users traveling or switching ISP/VPN may appear as a new ASN - validate against known networks before treating as suspicious.
Response and remediation
- If unauthorized, delete the WHfB credential and any attacker-registered device via Graph or the Entra portal, revoke sessions and refresh tokens (delete devices first, to break device-bound PRT persistence), reset credentials, and re-enroll from a trusted device.
- Review the sign-in that authorized the enrollment to determine the initial access vector.
References
Related rules
- Entra ID Deviceless Windows Hello Sign-in Followed by Device Registration
- Entra ID Device-Bound PRT from Unusual Device IP
- Entra ID Device Registration with ROADtools Default OS Build
- Entra ID Device Registration with Phishing Kit Default OS Build
- Entra ID AiTM Phishing-Kit Chain Detected