Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ZeroFox Solution #8661

Merged
merged 25 commits into from
Sep 18, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
422ac63
Add ZeroFox data connector
figarrido Jul 21, 2023
9da3e33
Add data connectors for ZeroFox CTI
DNRRomero Jul 24, 2023
fe4b5ae
Add configuration json file for CTI connector
DNRRomero Jul 25, 2023
238284b
Organize data connectors and include configuration file for azure fun…
DNRRomero Jul 27, 2023
d1889c7
Add solution Metadata
DNRRomero Jul 28, 2023
5ed4294
Add Azure-Sentinel CI fix (#20)
DNRRomero Jul 31, 2023
45902b1
Add unique ids to analytic rules
figarrido Aug 1, 2023
97ba40d
Fix code issues in CTI connectors
DNRRomero Aug 1, 2023
29bd2ae
Fix ZeroFox's logo formattin
DNRRomero Aug 1, 2023
ffe6939
Add connector id and alert table schema
figarrido Aug 1, 2023
5793b05
Fix typo in alerts schema
figarrido Aug 1, 2023
9792965
Fix custom table scheme duplicate
DNRRomero Aug 2, 2023
9764fa0
Merge branch 'master' into master
DNRRomero Aug 2, 2023
4ff3137
Fix typo related to email addresses connector
DNRRomero Aug 2, 2023
e16ebd0
Add release files
DNRRomero Aug 4, 2023
2059213
Add PR comments regarding Azure's KqlValidations
DNRRomero Aug 11, 2023
2f8b63e
Add comma tu validConnectorIds file
DNRRomero Aug 18, 2023
7747494
Attempt at fixing the mainTemplate file
DNRRomero Aug 18, 2023
4bb0c13
Fix formatting in mainTemplate file according to arm-ttk guidelines
DNRRomero Aug 21, 2023
20df511
Repackage solution by running solutionPackagerV3 and fix arm-template
DNRRomero Aug 25, 2023
8b02186
Fix description in uiDefinition.json file
DNRRomero Aug 25, 2023
219bec7
Fix CTI connector filename in Data packaging file (#41)
DNRRomero Aug 30, 2023
5c154a4
Add required tactics and techniques (#42)
figarrido Sep 5, 2023
42a18d3
Repackage solution to include analytic rules tactics (#43)
DNRRomero Sep 5, 2023
9103a2e
Merge branch 'master' into master
DNRRomero Sep 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Logos/foxy-mark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions Solutions/ZeroFox/Analytic Rules/ZF_Alerts_HighSeverityRule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: ZeroFox Alerts - High Severity Alerts
description: |
'Detects high severity alerts from ZeroFox'
severity: High
status: Available
requiredDataConnectors:
- connectorId: ZeroFox_Alert_Polling
dataTypes:
- ZeroFoxAlertPoller_CL
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
tactics:
query: |
ZeroFoxAlertPoller_CL
| where Severity in (5)
entityMappings:
- entityType: Account
fieldMappings:
- identifier: FullName
columnName: entity_name_s
eventGroupingSettings:
aggregationKind: AlertPerResult
kind: Scheduled
version: 1.0.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: ZeroFox Alerts - Informational Severity Alerts
description: |
'Detects informational severity alerts from ZeroFox'
severity: Informational
status: Available
requiredDataConnectors:
- connectorId: ZeroFox_Alert_Polling
dataTypes:
- ZeroFoxAlertPoller_CL
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
tactics:
query: |
ZeroFoxAlertPoller_CL
| where Severity in (1,2)
entityMappings:
- entityType: Account
fieldMappings:
- identifier: FullName
columnName: entity_name_s
eventGroupingSettings:
aggregationKind: AlertPerResult
kind: Scheduled
version: 1.0.0
26 changes: 26 additions & 0 deletions Solutions/ZeroFox/Analytic Rules/ZF_Alerts_LowSeverityRule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: ZeroFox Alerts - Low Severity Alerts
description: |
'Detects low severity alerts from ZeroFox'
severity: Low
status: Available
requiredDataConnectors:
- connectorId: ZeroFox_Alert_Polling
dataTypes:
- ZeroFoxAlertPoller_CL
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
tactics:
query: |
ZeroFoxAlertPoller_CL
| where Severity in (3)
entityMappings:
- entityType: Account
fieldMappings:
- identifier: FullName
columnName: entity_name_s
eventGroupingSettings:
aggregationKind: AlertPerResult
kind: Scheduled
version: 1.0.0
26 changes: 26 additions & 0 deletions Solutions/ZeroFox/Analytic Rules/ZF_Alerts_MediumSeverityRule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: ZeroFox Alerts - Medium Severity Alerts
description: |
'Detects medium severity alerts from ZeroFox'
severity: Medium
status: Available
requiredDataConnectors:
- connectorId: ZeroFox_Alert_Polling
dataTypes:
- ZeroFoxAlertPoller_CL
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
tactics:
query: |
ZeroFoxAlertPoller_CL
| where Severity in (4)
entityMappings:
- entityType: Account
fieldMappings:
- identifier: FullName
columnName: entity_name_s
eventGroupingSettings:
aggregationKind: AlertPerResult
kind: Scheduled
version: 1.0.0
128 changes: 128 additions & 0 deletions Solutions/ZeroFox/Data Connectors/Alerts/alerts_connector.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspace": {
"type": "string",
"defaultValue": ""
}
},
"resources": [
{
"id": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name,'/providers/Microsoft.OperationalInsights/workspaces/',parameters('workspace'),'/providers/Microsoft.SecurityInsights/dataConnectors/',guid(subscription().subscriptionId))]",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',guid(subscription().subscriptionId))]",
"apiVersion": "2021-03-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
"kind": "APIPolling",
"properties": {
"connectorUiConfig": {
"id":"ZeroFox_Alert_Polling",
"title": "ZeroFox Enterprise - Alerts (Polling CCP)",
"publisher": "ZeroFox Enterprise",
"descriptionMarkdown": "Collects alerts from ZeroFox API.",
"graphQueriesTableName": "ZeroFoxAlertPoller_CL",
"graphQueries": [
{
"metricName": "Total alerts received",
"legend": "ZeroFox Alerts",
"baseQuery": "{{graphQueriesTableName}}"
}
],
"sampleQueries": [
{
"description": "List all ZeroFox alerts",
"query": "{{graphQueriesTableName}}\n| sort by TimeGenerated asc"
},
{
"description": "Count alerts by network type",
"query": "{{graphQueriesTableName}}\n| summarize Count = count() by ThreatSource=network_s"
},
{
"description": "Count alerts by entity",
"query": "{{graphQueriesTableName}}\n| summarize Count = count() by Entity=entity_name_s"
}
],
"dataTypes": [
{
"name": "{{graphQueriesTableName}}",
"lastDataReceivedQuery": "{{graphQueriesTableName}}\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
}
],
"connectivityCriteria": [
{
"type": "SentinelKindsV2",
"value": [
"APIPolling"
]
}
],
"availability": {
"status": 1,
"isPreview": false
},
"permissions": {
"resourceProvider": [
{
"provider": "Microsoft.OperationalInsights/solutions",
"permissionsDisplayText": "read and write permissions are required.",
"providerDisplayName": "Workspace",
"scope": "Workspace",
"requiredPermissions": {
"action": true,
"write": true,
"read": true,
"delete": true
}
}
],
"customs": [
{
"name": "ZeroFox Personal Access Token (PAT)",
"description": "A ZeroFox PAT is required. You can get it in Data Connectors > [API Data Feeds](https://cloud.zerofox.com/data_connectors/api)."
}
]
},
"instructionSteps": [
{
"title": "Connect ZeroFox to Microsoft Sentinel",
"description": "Provide your ZeroFox PAT",
"instructions": [
{
"type": "APIKey"
}
]
}
]
},
"pollingConfig": {
"auth": {
"authType": "APIKey",
"APIKeyName": "Authorization",
"APIKeyIdentifier": "Token"
},
"request": {
"apiEndpoint": "https://api.zerofox.com/1.0/alerts/",
"httpMethod": "Get",
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
"startTimeAttributeName": "min_timestamp",
"endTimeAttributeName": "max_timestamp",
"queryParameters": {
"sort_direction": "asc"
}
},
"response": {
"eventsJsonPaths": [
"$.alerts[*]"
]
},
"paging": {
"pagingType": "Offset",
"offsetParaName": "offset",
"pageSizeParaName": "limit",
"pageSize": 100
}
}
}
}
]
}
Loading