CodeCommitsIssuesPull requestsActionsInsightsSecurity
hrushikeshdeshpande-updating-semgrep-yml

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Detections/AuditLogs/AccountCreatedDeletedByNonApprovedUser.yaml

42lines · modecode

1id: 6d63efa6-7c25-4bd4-a486-aa6bf50fde8a
2name: Account created or deleted by non-approved user
3description: |
4 'Identifies accounts that were created or deleted by a defined list of non-approved user principal names. Add to this list before running the query for accurate results.
5 Ref : https://docs.microsoft.com/azure/active-directory/fundamentals/security-operations-user-accounts'
6severity: Medium
7requiredDataConnectors:
8 - connectorId: AzureActiveDirectory
9 dataTypes:
10 - AuditLogs
11queryFrequency: 1d
12queryPeriod: 1d
13triggerOperator: gt
14triggerThreshold: 0
15tactics:
16 - InitialAccess
17relevantTechniques:
18 - T1078.004
19tags:
20 - AADSecOpsGuide
21query: |
22 // Add non-approved user principal names to the list below to search for their account creation/deletion activity
23 // ex: dynamic(["UPN1", "upn123"])
24 let nonapproved_users = dynamic([]);
25 AuditLogs
26 | where OperationName == "Add user" or OperationName == "Delete user"
27 | where Result == "success"
28 | extend InitiatingUser = tostring(parse_json(tostring(InitiatedBy.user)).userPrincipalName)
29 | where InitiatingUser has_any (nonapproved_users)
30 | project-reorder TimeGenerated, ResourceId, OperationName, InitiatingUser, TargetResources
31 | extend AccountCustomEntity = InitiatingUser, IPCustomEntity = tostring(parse_json(tostring(InitiatedBy.user)).ipAddress)
32entityMappings:
33 - entityType: Account
34 fieldMappings:
35 - identifier: FullName
36 columnName: AccountCustomEntity
37 - entityType: IP
38 fieldMappings:
39 - identifier: Address
40 columnName: IPCustomEntity
41version: 1.0.1
42kind: Scheduled