Skip to content

Commit f0525b5

Browse files
authored
Merge pull request #12621 from Azure/v-sabiraj-proofpointTAPrules
Update analytic rules to use ProofpointTAPEvent parser
2 parents b689aa0 + 6ec0154 commit f0525b5

File tree

5 files changed

+109
-15
lines changed

5 files changed

+109
-15
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"Name": "ProofPointTAPClicksPermittedV2_CL",
3+
"Properties": [
4+
{
5+
"Name": "TimeGenerated",
6+
"Type": "DateTime"
7+
},
8+
{
9+
"Name": "threatsInfoMap",
10+
"Type": "String"
11+
},
12+
{
13+
"Name": "messageParts",
14+
"Type": "String"
15+
},
16+
{
17+
"Name": "sender",
18+
"Type": "String"
19+
},
20+
{
21+
"Name": "senderIP",
22+
"Type": "String"
23+
},
24+
{
25+
"Name": "recipient",
26+
"Type": "String"
27+
},
28+
{
29+
"Name": "subject",
30+
"Type": "String"
31+
},
32+
{
33+
"Name": "clickTime",
34+
"Type": "DateTime"
35+
},
36+
{
37+
"Name": "url",
38+
"Type": "String"
39+
},
40+
{
41+
"Name": "classification",
42+
"Type": "String"
43+
},
44+
{
45+
"Name": "threatStatus",
46+
"Type": "String"
47+
}
48+
]
49+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"Name": "ProofPointTAPMessagesDeliveredV2_CL",
3+
"Properties": [
4+
{
5+
"Name": "TimeGenerated",
6+
"Type": "DateTime"
7+
},
8+
{
9+
"Name": "threatsInfoMap",
10+
"Type": "Dynamic"
11+
},
12+
{
13+
"Name": "messageParts",
14+
"Type": "Dynamic"
15+
},
16+
{
17+
"Name": "sender",
18+
"Type": "String"
19+
},
20+
{
21+
"Name": "senderIP",
22+
"Type": "String"
23+
},
24+
{
25+
"Name": "recipient",
26+
"Type": "String"
27+
},
28+
{
29+
"Name": "subject",
30+
"Type": "String"
31+
},
32+
{
33+
"Name": "threatType",
34+
"Type": "String"
35+
},
36+
{
37+
"Name": "classification",
38+
"Type": "String"
39+
},
40+
{
41+
"Name": "filename",
42+
"Type": "String"
43+
}
44+
]
45+
}

Solutions/ProofPointTap/Analytic Rules/MalwareAttachmentDelivered.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ status: Available
77
requiredDataConnectors:
88
- connectorId: ProofpointTAP
99
dataTypes:
10-
- ProofPointTAPMessagesDelivered_CL
10+
- ProofPointTAPMessagesDeliveredV2_CL
1111
queryFrequency: 1h
1212
queryPeriod: 1h
1313
triggerOperator: gt
@@ -17,13 +17,13 @@ tactics:
1717
relevantTechniques:
1818
- T1566.001
1919
query: |
20-
ProofPointTAPMessagesDelivered_CL
21-
| mv-expand todynamic(threatsInfoMap_s)
22-
| mv-expand todynamic(messageParts_s)
23-
| extend threatType = tostring(threatsInfoMap_s.threatType), classification = tostring(threatsInfoMap_s.classification)
24-
| extend filename = tostring(messageParts_s.filename)
20+
ProofPointTAPMessagesDeliveredV2_CL
21+
| mv-expand todynamic(threatsInfoMap)
22+
| mv-expand todynamic(messageParts)
23+
| extend threatType = tostring(threatsInfoMap.threatType), classification = tostring(threatsInfoMap.classification)
24+
| extend filename = tostring(messageParts.filename)
2525
| where threatType =~ "attachment" and classification =~ "malware"
26-
| summarize filenames = make_set(filename), StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by TimeGenerated, Sender = sender_s, SenderIPAddress = senderIP_s, Recipient = recipient_s, threatType, classification, Subject = subject_s
26+
| summarize filenames = make_set(filename), StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by TimeGenerated, Sender = sender, SenderIPAddress = senderIP, Recipient = tostring(recipient), threatType, classification, Subject = subject
2727
| mv-expand todynamic(Recipient)
2828
| extend RecipientName = tostring(split(Recipient, "@")[0]), RecipientUPNSuffix = tostring(split(Recipient, "@")[1])
2929
| extend SenderName = tostring(split(Sender, "@")[0]), SenderUPNSuffix = tostring(split(Sender, "@")[1])
@@ -48,5 +48,5 @@ entityMappings:
4848
fieldMappings:
4949
- identifier: Address
5050
columnName: SenderIPAddress
51-
version: 1.0.4
51+
version: 1.0.5
5252
kind: Scheduled

Solutions/ProofPointTap/Analytic Rules/MalwareLinkClicked.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ status: Available
77
requiredDataConnectors:
88
- connectorId: ProofpointTAP
99
dataTypes:
10-
- ProofPointTAPClicksPermitted_CL
10+
- ProofPointTAPClicksPermittedV2_CL
1111
queryFrequency: 1h
1212
queryPeriod: 1h
1313
triggerOperator: gt
@@ -17,10 +17,10 @@ tactics:
1717
relevantTechniques:
1818
- T1566.002
1919
query: |
20-
ProofPointTAPClicksPermitted_CL
21-
| where classification_s =~ "malware"
22-
| where threatStatus_s != "cleared"
23-
| summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by TimeGenerated, Sender = sender_s, SenderIPAddress = senderIP_s, Recipient = recipient_s, TimeClicked = clickTime_t, URLClicked = url_s
20+
ProofPointTAPClicksPermittedV2_CL
21+
| where classification =~ "malware"
22+
| where threatStatus != "cleared"
23+
| summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by TimeGenerated, Sender = sender, SenderIPAddress = senderIP, Recipient = recipient, TimeClicked = clickTime, URLClicked = url
2424
| extend RecipientName = tostring(split(Recipient, "@")[0]), RecipientUPNSuffix = tostring(split(Recipient, "@")[1])
2525
| extend SenderName = tostring(split(Sender, "@")[0]), SenderUPNSuffix = tostring(split(Sender, "@")[1])
2626
entityMappings:
@@ -48,5 +48,5 @@ entityMappings:
4848
fieldMappings:
4949
- identifier: Url
5050
columnName: URLClicked
51-
version: 1.0.5
51+
version: 1.0.6
5252
kind: Scheduled

Solutions/ProofPointTap/Parsers/ProofpointTAPEvent.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ FunctionQuery: |
4141
SrcIpAddr=coalesce(column_ifexists('senderIP_s',''),senderIP),
4242
SpamScore=coalesce(toint(column_ifexists('spamScore_d',int(null))),spamScore),
4343
Subject=coalesce(column_ifexists('subject_s',''),subject),
44-
ThreatID=coalesce(column_ifexists('threatID',''),threatID),
44+
ThreatID=coalesce(column_ifexists('threatID',''),threatID),
4545
ThreatsInfoMap=coalesce(column_ifexists('threatsInfoMap_s',''),threatsInfoMap),
4646
ThreatStatus=coalesce(column_ifexists('threatStatus_s',''),threatStatus),
4747
ThreatTime=coalesce(column_ifexists('threatTime_t',datetime(null)),threatTime),

0 commit comments

Comments
 (0)