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

V prasadboke nasunitest #8522

Closed
wants to merge 27 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a98c6ec
initial commit
mdriscoll-nasuni May 8, 2023
3f6f6d8
updated support URL
mdriscoll-nasuni May 8, 2023
9a71055
added connectorId to Analytic Rules
mdriscoll-nasuni May 8, 2023
a87c048
Merge branch 'Azure:master' into master
mdriscoll-nasuni May 22, 2023
1972bac
created 1.0.0 package
mdriscoll-nasuni Jun 12, 2023
7896b32
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jun 12, 2023
43d453b
added status tags to analytics Rules
mdriscoll-nasuni Jun 19, 2023
87d0f13
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jun 19, 2023
c2938d8
added validation components
mdriscoll-nasuni Jun 20, 2023
9aa291b
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jun 20, 2023
d0f500e
Revert "added validation components"
mdriscoll-nasuni Jun 29, 2023
7efc532
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jun 29, 2023
3b13384
added KqlvalidationsTests back
mdriscoll-nasuni Jun 29, 2023
8eb3cd5
removed mainTemplate.json per MS request
mdriscoll-nasuni Jun 30, 2023
f265770
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jun 30, 2023
6b03fdf
fixing template
mdriscoll-nasuni Jul 5, 2023
cf019b9
fixing template
mdriscoll-nasuni Jul 5, 2023
36773c0
Merge branch 'mdriscoll-dev' of https://github.com/nasuni-labs/Azure-…
mdriscoll-nasuni Jul 5, 2023
e072928
added validation components
mdriscoll-nasuni Jul 5, 2023
c90c96d
Merge branch 'mdriscoll-dev' of https://github.com/nasuni-labs/Azure-…
mdriscoll-nasuni Jul 5, 2023
1683f92
fixing template mistake
mdriscoll-nasuni Jul 5, 2023
27e62a6
Merge branch 'mdriscoll-dev'
mdriscoll-nasuni Jul 5, 2023
8b947db
Merge remote-tracking branch 'upstream/master'
mdriscoll-nasuni Jul 5, 2023
fa127e2
Revert "Revert "added validation components""
mdriscoll-nasuni Jul 5, 2023
5b51f4c
moved to v3 of the solution packager
mdriscoll-nasuni Jul 7, 2023
45ac50d
7991 test nasuni
v-prasadboke Jul 13, 2023
a6ee2e9
Update mainTemplate.json
v-prasadboke Jul 13, 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
85 changes: 85 additions & 0 deletions .script/tests/KqlvalidationsTests/CustomTables/Nasuni.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"name": "Nasuni",
"Properties": [
{
"Name": "access_point",
"Type": "String"
},
{
"Name": "Computer",
"Type": "String"
},
{
"Name": "domainName",
"Type": "String"
},
{
"Name": "directorypath",
"Type": "String"
},
{
"Name": "event_details",
"Type": "Dynamic"
},
{
"Name": "event_type",
"Type": "String"
},
{
"Name": "filename",
"Type": "String"
},
{
"Name": "HostName",
"Type": "String"
},
{
"Name": "ipaddr",
"Type": "String"
},
{
"Name": "new_path",
"Type": "String"
},
{
"Name": "path_parts",
"Type": "Dynamic"
},
{
"Name": "pattern",
"Type": "String"
},
{
"Name": "primary_group_name",
"Type": "String"
},
{
"Name": "sAMAccountName",
"Type": "String"
},
{
"Name": "sid",
"Type": "String"
},
{
"Name": "SyslogMessage",
"Type": "String"
},
{
"Name": "SyslogMessageJson",
"Type": "String"
},
{
"Name": "TimeGenerated",
"Type": "DateTime"
},
{
"Name": "volume_guid",
"Type": "String"
},
{
"Name": "volume_name",
"Type":"String"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
"MicrosoftSysmonForLinux",
"MicrosoftThreatProtection",
"MorphisecUTPP",
"NasuniEdgeAppliance",
"NXLogDnsLogs",
"NXLogLinuxAudit",
"Netskope",
Expand Down
50 changes: 50 additions & 0 deletions Solutions/Nasuni/Analytic Rules/RansomwareAttackDetected.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
id: 6c8770fb-c854-403e-a64d-0293ba344d5f
name: Ransomware Attack Detected
description: 'Identifies ransomware attacks detected by the Ransomware Protection service running on a Nasuni Edge Appliance.'
kind: Scheduled
severity: High
requiredDataConnectors:
- connectorID: NasuniEdgeAppliance
datatypes:
- Syslog
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
status: Available
tactics:
- Impact
relevantTechniques:
- T1486
query: |-
Syslog
| project TimeGenerated, Computer, SyslogMessage
| where SyslogMessage has "The Filer has detected a new ransomware attack"
| extend pattern = substring(SyslogMessage, indexof(SyslogMessage, "(")+1, indexof(SyslogMessage, ")") - indexof(SyslogMessage,"(")-1)
| extend volume_name = substring(SyslogMessage, indexof(SyslogMessage, "volume")+7, indexof(SyslogMessage,". Visit") - (indexof(SyslogMessage, "volume")+7))
| sort by TimeGenerated desc
incidentConfiguration:
createIncident: true
groupingConfiguration:
enabled: false
reopenClosedIncident: false
lookbackDuration: 5h
matchingMethod: AllEntities
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertnameFormat: 'Nasuni: Ransomware Attack Detected'
alertDescriptionFormat: Ransomware attack detected by Nasuni at {{TimeGenerated}}.
alertDynamicProperties:
- alertProperty: RemediationSteps
value: SyslogMessage
customDetails:
VolumeName: volume_name
entityMappings:
- entityType: Malware
fieldMappings:
- identifier: Name
columnName: pattern
suppressionDuration: 5h
suppressionEnabled: false
version: 1.0.0
48 changes: 48 additions & 0 deletions Solutions/Nasuni/Analytic Rules/RansomwareClientBlocked.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
id: 0c96a5a2-d60d-427d-8399-8df7fe8e6536
name: Ransomware Client Blocked
description: 'Identifies malicious clients blocked by the Ransomware Protection service running on a Nasuni Edge Appliance.'
kind: Scheduled
severity: High
requiredDataConnectors:
- connectorID: NasuniEdgeAppliance
datatypes:
- Syslog
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
status: Available
tactics:
- Impact
relevantTechniques:
- T1486
query: |-
Syslog
| project TimeGenerated, Computer, SyslogMessage
| where SyslogMessage has "The Filer has enforced the mitigation policy on volume"
| extend ipaddr = substring(SyslogMessage, indexof(SyslogMessage, "(")+1, indexof(SyslogMessage, ")") - indexof(SyslogMessage,"(")-1)
| extend volume_name = substring(SyslogMessage, indexof(SyslogMessage, "volume")+7, indexof(SyslogMessage,"and") - (indexof(SyslogMessage, "volume")+7))
| sort by TimeGenerated desc
incidentConfiguration:
createIncident: true
groupingConfiguration:
enabled: false
reopenClosedIncident: false
lookbackDuration: 5h
matchingMethod: AllEntities
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertnameFormat: 'Nasuni: Ransomware Client Blocked'
alertDescriptionFormat: Nasuni has blocked a client involved in a ransomware attack from accessing a Nasuni Edge Appliance at {{TimeGenerated}}
alertDynamicProperties: []
customDetails:
VolumeName: volume_name
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: ipaddr
suppressionDuration: 5h
suppressionEnabled: false
version: 1.0.0
35 changes: 35 additions & 0 deletions Solutions/Nasuni/Data Connectors/Logo/Nasuni.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
118 changes: 118 additions & 0 deletions Solutions/Nasuni/Data Connectors/Nasuni Data Connector.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
"id": "NasuniEdgeAppliance",
"title": "Nasuni Edge Appliance",
"publisher": "Nasuni",
"descriptionMarkdown": "The [Nasuni](https://www.nasuni.com/) connector allows you to easily connect your Nasuni Edge Appliance Notifications and file system audit logs with Microsoft Sentinel. This gives you more insight into activity within your Nasuni infrastructure and improves your security operation capabilities.",
"additionalRequirementBanner": "None",
"graphQueries": [
{
"metricName": "Total events received",
"legend": "Nasuni",
"baseQuery": "Nasuni"
}
],
"sampleQueries": [
{
"description": "Last 1000 generated events",
"query": "Syslog\n | top 1000 by TimeGenerated"
},
{
"description": "All events by facility except for cron",
"query": "Syslog\n | summarize count() by Facility | where Facility != \"cron\""
}
],
"connectivityCriterias": [
{
"type": "IsConnectedQuery",
"value": [
"Syslog\n | where TimeGenerated > ago(3d)\n |take 1\n | project IsConnected = true"
]
}
],
"dataTypes": [
{
"name": "Syslog",
"lastDataReceivedQuery": "Syslog\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)"
}
],
"availability": {
"status": 1,
"isPreview": false
},
"permissions": {
"resourceProvider": [
{
"provider": "Microsoft.OperationalInsights/workspaces",
"permissionsDisplayText": "write permission is required.",
"providerDisplayName": "Workspace",
"scope": "Workspace",
"requiredPermissions": {
"write": true,
"delete": true
}
}
]
},
"customers": [
{
"name": "Nasuni Edge Appliances",
"description": "must be configured to export events via Syslog"
}
],
"instructionSteps": [
{
"title": "1. Install and onboard the agent for Linux",
"description": "Typically, you should install the agent on a different computer from the one on which the logs are generated.\n\n> Syslog logs are collected only from **Linux** agents.",
"instructions": [
{
"parameters": {
"title": "Choose where to install the agent:",
"instructionSteps": [
{
"title": "Install agent on Azure Linux Virtual Machine",
"description": "Select the machine to install the agent on and then click **Connect**.",
"instructions": [
{
"parameters": {
"linkType": "InstallAgentOnLinuxVirtualMachine"
},
"type": "InstallAgent"
}
]
},
{
"title": "Install agent on a non-Azure Linux Machine",
"description": "Download the agent on the relevant machine and follow the instructions.",
"instructions": [
{
"parameters": {
"linkType": "InstallAgentOnLinuxNonAzure"
},
"type": "InstallAgent"
}
]
}
]
},
"type": "InstructionStepsGroup"
}
]
},
{
"title": "2. Configure the logs to be collected",
"description": "Follow the configuration steps below to configure your Linux machine to send Nasuni event information to Microsoft Sentinel. Refer to the [Azure Monitor Agent documenation](https://learn.microsoft.com/en-us/azure/azure-monitor/agents/agents-overview) for additional details on these steps.\nConfigure the facilities you want to collect and their severities.\n1. Select the link below to open your workspace agents configuration, and select the Syslog tab.\n2. Select Add facility and choose from the drop-down list of facilities. Repeat for all the facilities you want to add.\n3. Mark the check boxes for the desired severities for each facility.\n4. Click Apply.\n",
"instructions": [
{
"parameters": {
"linkType": "OpenSyslogSettings"
},
"type": "InstallAgent"
}
]
},
{
"title": "3. Configure Nasuni Edge Appliance settings",
"description": "Follow the instructions in the [Nasuni Management Console Guide](https://view.highspot.com/viewer/629a633ae5b4caaf17018daa?iid=5e6fbfcbc7143309f69fcfcf) to configure Nasuni Edge Appliances to forward syslog events. Use the IP address or hostname of the Linux device running the Azure Monitor Agent in the Servers configuration field for the syslog settings."
}
]
}
33 changes: 33 additions & 0 deletions Solutions/Nasuni/Data/Solution_Nasuni.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"Name": "Nasuni",
"Author": "Nasuni - [email protected]",
"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/Nasuni/Data%20Connectors/Logo/Nasuni.svg\" width=\"75px\" height=\"75px\">",
"Description": "The [Nasuni](https://www.nasuni.com) solution for Microsoft Sentinel allows you to analyze Nasuni audit events and Notifications collected via Syslog. It includes analytics rules to automatically generate Incidents when a ransomware attack is detected and perform appropriate entity mapping.",
"WorkbookDescription": [],
"Workbooks": [],
"WorkbookBladeDescription": [],
"AnalyticalRuleBladeDescription": "This solution installs the following analytic rule templates. After installing the solution, create and enable analytic rules in Manage solution view.",
"HuntingQueryBladeDescription": "This solution installs the following hunting queries. After installing the solution, run these hunting queries to hunt for threats in Manage solution view.",
"PlaybooksBladeDescription": [],
"Analytic Rules": [
"/Nasuni/Analytic Rules/RansomwareClientBlocked.yaml",
"/Nasuni/Analytic Rules/RansomwareAttackDetected.yaml"
],
"Playbooks": [],
"PlaybookDescription": [],
"Parsers": [],
"SavedSearches": [],
"Hunting Queries": [
"/Nasuni/Hunting Queries/FileDeleteEvents.yaml"
],
"Data Connectors": [
"/Nasuni/Data Connectors/Nasuni Data Connector.json"
],
"Watchlists": [],
"WatchlistDescription": [],
"BasePath": "C:/NasuniLabs/Azure-Sentinel/Solutions",
"Version": "3.0.0",
"Metadata": "SolutionMetadata.json",
"TemplateSpec": true,
"Is1PConnector": false
}
Loading
Loading