From b705cce9e4e42784a27ce7ad80262e43a61291d2 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Tue, 26 Sep 2023 11:24:24 +0530 Subject: [PATCH 1/5] Repackaging - Cisco Firepower EStreamer (MMA to AMA Migration) --- .../CiscoFirepowerEStreamerCollector.json | 2 +- .../template_CiscoFirepowerEStreamerAMA.json | 141 ++++++++++++++++++ .../Solution_Cisco Firepower EStreamer.json | 7 +- 3 files changed, 146 insertions(+), 4 deletions(-) create mode 100644 Solutions/Cisco Firepower EStreamer/Data Connectors/template_CiscoFirepowerEStreamerAMA.json diff --git a/Solutions/Cisco Firepower EStreamer/Data Connectors/CiscoFirepowerEStreamerCollector.json b/Solutions/Cisco Firepower EStreamer/Data Connectors/CiscoFirepowerEStreamerCollector.json index e7d4dbd8817..c2c1b1f71d2 100644 --- a/Solutions/Cisco Firepower EStreamer/Data Connectors/CiscoFirepowerEStreamerCollector.json +++ b/Solutions/Cisco Firepower EStreamer/Data Connectors/CiscoFirepowerEStreamerCollector.json @@ -1,6 +1,6 @@ { "id": "CiscoFirepowerEStreamer", - "title": "Cisco Firepower eStreamer", + "title": "[Deprecated] Cisco Firepower eStreamer via Legacy Agent", "publisher": "Cisco", "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", "graphQueries": [ diff --git a/Solutions/Cisco Firepower EStreamer/Data Connectors/template_CiscoFirepowerEStreamerAMA.json b/Solutions/Cisco Firepower EStreamer/Data Connectors/template_CiscoFirepowerEStreamerAMA.json new file mode 100644 index 00000000000..70a0db17016 --- /dev/null +++ b/Solutions/Cisco Firepower EStreamer/Data Connectors/template_CiscoFirepowerEStreamerAMA.json @@ -0,0 +1,141 @@ +{ + "id": "CiscoFirepowerEStreamerAma", + "title": "[Recommended] Cisco Firepower eStreamer via Legacy Agent via AMA", + "publisher": "Cisco", + "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "CiscoFirepowerEstreamerCEF", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "sampleQueries": [ + { + "description" : "Firewall Blocked Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DeviceAction != \"Allow\"" + }, + { + "description" : "File Malware Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where Activity == \"File Malware Event\"" + }, + { + "description" : "Outbound Web Traffic Port 80", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DestinationPort == \"80\"" + } + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (CiscoFirepowerEstreamerCEF)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |where DeviceProduct =~ '\"Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "title": "", + "description": "", + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine", + "instructions": [ + ] + }, + { + "title": "Step B. Install the Firepower eNcore client", + "description": "Install and configure the Firepower eNcore eStreamer client, for more details see full install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html)", + "innerSteps": [ + { + "title": "1. Download the Firepower Connector from github", + "description": "Download the latest version of the Firepower eNcore connector for Microsoft Sentinel [here](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector). If you plan on using python3 use the [python3 eStreamer connector](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector/tree/python3)" + }, + { + "title": "2. Create a pkcs12 file using the Azure/VM Ip Address", + "description": "Create a pkcs12 certificate using the public IP of the VM instance in Firepower under System->Integration->eStreamer, for more information please see install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049443)" + }, + { + "title": "3. Test Connectivity between the Azure/VM Client and the FMC", + "description": "Copy the pkcs12 file from the FMC to the Azure/VM instance and run the test utility (./encore.sh test) to ensure a connection can be established, for more details please see the setup [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049430)" + }, + { + "title": "4. Configure encore to stream data to the agent", + "description": "Configure encore to stream data via TCP to the Microsoft Agent, this should be enabled by default, however, additional ports and streaming protocols can configured depending on your network security posture, it is also possible to save the data to the file system, for more information please see [Configure Encore](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049433)" + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + + ] + }, + + + { + "title": "2. Secure your machine ", + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)" + } + ] +} diff --git a/Solutions/Cisco Firepower EStreamer/Data/Solution_Cisco Firepower EStreamer.json b/Solutions/Cisco Firepower EStreamer/Data/Solution_Cisco Firepower EStreamer.json index eecebcdc3e3..fc37200c337 100644 --- a/Solutions/Cisco Firepower EStreamer/Data/Solution_Cisco Firepower EStreamer.json +++ b/Solutions/Cisco Firepower EStreamer/Data/Solution_Cisco Firepower EStreamer.json @@ -2,9 +2,10 @@ "Name": "Cisco Firepower EStreamer", "Author": "Cisco", "Logo": "", - "Description": "The [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF). \r\n **Underlying Microsoft Technologies used:**\n\nThis solution takes a dependency on the following technologies, and some of these dependencies either may be in [Preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) state or might result in additional ingestion or operational costs:\r\n a. [Agent-based log collection (CEF over Syslog) ](https://docs.microsoft.com/azure/sentinel/connect-common-event-format)", + "Description": "The [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", "Data Connectors": [ - "Data Connectors/CiscoFirepowerEStreamerCollector.json" + "Data Connectors/CiscoFirepowerEStreamerCollector.json", + "Data Connectors/template_CiscoFirepowerEStreamerAMA.json" ], "Playbooks": [ "Playbooks/CiscoFirepowerConnector/azuredeploy.json", @@ -13,7 +14,7 @@ "Playbooks/CiscoFirepower-BlockIP-Teams/azuredeploy.json" ], "BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Cisco Firepower EStreamer", - "Version": "2.0.3", + "Version": "3.0.0", "Metadata": "SolutionMetadata.json", "TemplateSpec": true, "Is1Pconnector": false From 9aaa677bc52c4bdc2d8a7c17700493ebf37137d9 Mon Sep 17 00:00:00 2001 From: Github Bot Date: Tue, 26 Sep 2023 06:16:33 +0000 Subject: [PATCH 2/5] [skip ci] Github Bot Added package to Pull Request! --- .../Data/system_generated_metadata.json | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json diff --git a/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json b/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json new file mode 100644 index 00000000000..253da9f55a7 --- /dev/null +++ b/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json @@ -0,0 +1,35 @@ +{ + "Name": "Cisco Firepower EStreamer", + "Author": "Cisco", + "Logo": "", + "Description": "The [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", + "BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Cisco Firepower EStreamer", + "Version": "3.0.0", + "Metadata": "SolutionMetadata.json", + "TemplateSpec": true, + "Is1Pconnector": false, + "publisherId": "cisco", + "offerId": "cisco-firepower-estreamer", + "providers": [ + "Cisco" + ], + "categories": { + "domains": [ + "Security - Network" + ] + }, + "firstPublishDate": "2022-05-25", + "support": { + "name": "Cisco", + "tier": "Partner", + "link": "https://www.cisco.com/c/en_in/support/index.html" + }, + "Data Connectors": "[\n \"Data Connectors/CiscoFirepowerEStreamerCollector.json\",\n \"Data Connectors/template_CiscoFirepowerEStreamerAMA.json\"\n]", + "Playbooks": [ + "Playbooks/CiscoFirepowerConnector/azuredeploy-gateway.json", + "Playbooks/CiscoFirepowerConnector/azuredeploy.json", + "Playbooks/CiscoFirepower-BlockFQDN-NetworkGroup/azuredeploy.json", + "Playbooks/CiscoFirepower-BlockIP-NetworkGroup/azuredeploy.json", + "Playbooks/CiscoFirepower-BlockIP-Teams/azuredeploy.json" + ] +} From 2a43a9c6d7f7979b1a572075f17a8a657f41f40c Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Tue, 26 Sep 2023 12:10:49 +0530 Subject: [PATCH 3/5] Delete system_generated_metadata.json --- .../Data/system_generated_metadata.json | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json diff --git a/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json b/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json deleted file mode 100644 index 253da9f55a7..00000000000 --- a/Solutions/Cisco Firepower EStreamer/Data/system_generated_metadata.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Name": "Cisco Firepower EStreamer", - "Author": "Cisco", - "Logo": "", - "Description": "The [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).", - "BasePath": "C:\\Github\\Azure-Sentinel\\Solutions\\Cisco Firepower EStreamer", - "Version": "3.0.0", - "Metadata": "SolutionMetadata.json", - "TemplateSpec": true, - "Is1Pconnector": false, - "publisherId": "cisco", - "offerId": "cisco-firepower-estreamer", - "providers": [ - "Cisco" - ], - "categories": { - "domains": [ - "Security - Network" - ] - }, - "firstPublishDate": "2022-05-25", - "support": { - "name": "Cisco", - "tier": "Partner", - "link": "https://www.cisco.com/c/en_in/support/index.html" - }, - "Data Connectors": "[\n \"Data Connectors/CiscoFirepowerEStreamerCollector.json\",\n \"Data Connectors/template_CiscoFirepowerEStreamerAMA.json\"\n]", - "Playbooks": [ - "Playbooks/CiscoFirepowerConnector/azuredeploy-gateway.json", - "Playbooks/CiscoFirepowerConnector/azuredeploy.json", - "Playbooks/CiscoFirepower-BlockFQDN-NetworkGroup/azuredeploy.json", - "Playbooks/CiscoFirepower-BlockIP-NetworkGroup/azuredeploy.json", - "Playbooks/CiscoFirepower-BlockIP-Teams/azuredeploy.json" - ] -} From e431fbd55f5af65810df1c3e964ac4831cec8ce0 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Tue, 26 Sep 2023 13:42:39 +0530 Subject: [PATCH 4/5] updated createUi and Added Release Notes --- .../Package/3.0.0.zip | Bin 0 -> 42909 bytes .../Package/createUiDefinition.json | 4 +- .../Package/mainTemplate.json | 629 ++++++++++++++---- .../Cisco Firepower EStreamer/ReleaseNotes.md | 5 + 4 files changed, 504 insertions(+), 134 deletions(-) create mode 100644 Solutions/Cisco Firepower EStreamer/Package/3.0.0.zip create mode 100644 Solutions/Cisco Firepower EStreamer/ReleaseNotes.md diff --git a/Solutions/Cisco Firepower EStreamer/Package/3.0.0.zip b/Solutions/Cisco Firepower EStreamer/Package/3.0.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..f2336b4d604425b5b2f663602c16ccb0d0f793b3 GIT binary patch literal 42909 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 JE&I>g{|7l$Ukm^M literal 0 HcmV?d00001 diff --git a/Solutions/Cisco Firepower EStreamer/Package/createUiDefinition.json b/Solutions/Cisco Firepower EStreamer/Package/createUiDefinition.json index 67b6c70bd69..e13c47a3e06 100644 --- a/Solutions/Cisco Firepower EStreamer/Package/createUiDefinition.json +++ b/Solutions/Cisco Firepower EStreamer/Package/createUiDefinition.json @@ -6,7 +6,7 @@ "config": { "isWizard": false, "basics": { - "description": "\n\n**Note:** _There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing._\n\nThe [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF). \r\n **Underlying Microsoft Technologies used:**\n\nThis solution takes a dependency on the following technologies, and some of these dependencies either may be in [Preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) state or might result in additional ingestion or operational costs:\r\n a. [Agent-based log collection (CEF over Syslog) ](https://docs.microsoft.com/azure/sentinel/connect-common-event-format)\n\n**Data Connectors:** 1, **Custom Azure Logic Apps Connectors:** 1, **Playbooks:** 3\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", + "description": "\n\n**Note:** Please refer to the following before installing the solution: \r \n • Review the solution [Release Notes](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/Cisco%20Firepower%20EStreamer/ReleaseNotes.md)\r \n • There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing.\n\nThe [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Custom Azure Logic Apps Connectors:** 1, **Playbooks:** 3\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", "subscription": { "resourceProviders": [ "Microsoft.OperationsManagement/solutions", @@ -63,7 +63,7 @@ "text": "This Solution installs the data connector for Cisco Firepower EStreamer. You can get Cisco Firepower EStreamer CommonSecurityLog data in your Microsoft Sentinel workspace. Configure and enable this data connector in the Data Connector gallery after this Solution deploys. The logs will be received in the CommonSecurityLog table in your Microsoft Sentinel / Azure Log Analytics workspace." } }, - { + { "name": "dataconnectors-link2", "type": "Microsoft.Common.TextBlock", "options": { diff --git a/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json b/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json index c07cd1869e7..d9c72192ecb 100644 --- a/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json +++ b/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json @@ -30,75 +30,74 @@ } }, "variables": { + "_solutionName": "Cisco Firepower EStreamer", + "_solutionVersion": "3.0.0", "solutionId": "cisco.cisco-firepower-estreamer", "_solutionId": "[variables('solutionId')]", - "workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]", "uiConfigId1": "CiscoFirepowerEStreamer", "_uiConfigId1": "[variables('uiConfigId1')]", "dataConnectorContentId1": "CiscoFirepowerEStreamer", "_dataConnectorContentId1": "[variables('dataConnectorContentId1')]", "dataConnectorId1": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]", "_dataConnectorId1": "[variables('dataConnectorId1')]", - "dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1')))]", + "dataConnectorTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId1'))))]", "dataConnectorVersion1": "1.0.0", + "_dataConnectorcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId1'),'-', variables('dataConnectorVersion1'))))]", + "uiConfigId2": "CiscoFirepowerEStreamerAma", + "_uiConfigId2": "[variables('uiConfigId2')]", + "dataConnectorContentId2": "CiscoFirepowerEStreamerAma", + "_dataConnectorContentId2": "[variables('dataConnectorContentId2')]", + "dataConnectorId2": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "_dataConnectorId2": "[variables('dataConnectorId2')]", + "dataConnectorTemplateSpecName2": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-dc-',uniquestring(variables('_dataConnectorContentId2'))))]", + "dataConnectorVersion2": "1.0.0", + "_dataConnectorcontentProductId2": "[concat(take(variables('_solutionId'),50),'-','dc','-', uniqueString(concat(variables('_solutionId'),'-','DataConnector','-',variables('_dataConnectorContentId2'),'-', variables('dataConnectorVersion2'))))]", "CiscoFirepowerConnector": "CiscoFirepowerConnector", "_CiscoFirepowerConnector": "[variables('CiscoFirepowerConnector')]", "TemplateEmptyArray": "[json('[]')]", "playbookVersion1": "1.0", "playbookContentId1": "CiscoFirepowerConnector", "_playbookContentId1": "[variables('playbookContentId1')]", - "playbookTemplateSpecName1": "[concat(parameters('workspace'),'-lc-',uniquestring(variables('_playbookContentId1')))]", + "playbookTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-lc-',uniquestring(variables('_playbookContentId1'))))]", + "workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]", + "_playbookcontentProductId1": "[concat(take(variables('_solutionId'),50),'-','lc','-', uniqueString(concat(variables('_solutionId'),'-','LogicAppsCustomConnector','-',variables('_playbookContentId1'),'-', variables('playbookVersion1'))))]", "CiscoFirepower-BlockFQDN-NetworkGroup": "CiscoFirepower-BlockFQDN-NetworkGroup", "_CiscoFirepower-BlockFQDN-NetworkGroup": "[variables('CiscoFirepower-BlockFQDN-NetworkGroup')]", "playbookVersion2": "1.0", "playbookContentId2": "CiscoFirepower-BlockFQDN-NetworkGroup", "_playbookContentId2": "[variables('playbookContentId2')]", "playbookId2": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId2'))]", - "playbookTemplateSpecName2": "[concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId2')))]", + "playbookTemplateSpecName2": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId2'))))]", + "_playbookcontentProductId2": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId2'),'-', variables('playbookVersion2'))))]", "CiscoFirepower-BlockIP-NetworkGroup": "CiscoFirepower-BlockIP-NetworkGroup", "_CiscoFirepower-BlockIP-NetworkGroup": "[variables('CiscoFirepower-BlockIP-NetworkGroup')]", "playbookVersion3": "1.0", "playbookContentId3": "CiscoFirepower-BlockIP-NetworkGroup", "_playbookContentId3": "[variables('playbookContentId3')]", "playbookId3": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId3'))]", - "playbookTemplateSpecName3": "[concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId3')))]", + "playbookTemplateSpecName3": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId3'))))]", + "_playbookcontentProductId3": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId3'),'-', variables('playbookVersion3'))))]", "CiscoFirepower-BlockIP-Teams": "CiscoFirepower-BlockIP-Teams", "_CiscoFirepower-BlockIP-Teams": "[variables('CiscoFirepower-BlockIP-Teams')]", "playbookVersion4": "1.0", "playbookContentId4": "CiscoFirepower-BlockIP-Teams", "_playbookContentId4": "[variables('playbookContentId4')]", "playbookId4": "[resourceId('Microsoft.Logic/workflows', variables('playbookContentId4'))]", - "playbookTemplateSpecName4": "[concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId4')))]" + "playbookTemplateSpecName4": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-pl-',uniquestring(variables('_playbookContentId4'))))]", + "_playbookcontentProductId4": "[concat(take(variables('_solutionId'),50),'-','pl','-', uniqueString(concat(variables('_solutionId'),'-','Playbook','-',variables('_playbookContentId4'),'-', variables('playbookVersion4'))))]", + "_solutioncontentProductId": "[concat(take(variables('_solutionId'),50),'-','sl','-', uniqueString(concat(variables('_solutionId'),'-','Solution','-',variables('_solutionId'),'-', variables('_solutionVersion'))))]" }, "resources": [ { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2022-02-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('dataConnectorTemplateSpecName1')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "DataConnector" - }, - "properties": { - "description": "Cisco Firepower EStreamer data connector with template", - "displayName": "Cisco Firepower EStreamer template" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2022-02-01", - "name": "[concat(variables('dataConnectorTemplateSpecName1'),'/',variables('dataConnectorVersion1'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "DataConnector" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('dataConnectorTemplateSpecName1'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "Cisco Firepower EStreamer data connector with template version 2.0.3", + "description": "Cisco Firepower EStreamer data connector with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('dataConnectorVersion1')]", @@ -114,7 +113,7 @@ "properties": { "connectorUiConfig": { "id": "[variables('_uiConfigId1')]", - "title": "Cisco Firepower eStreamer", + "title": "[Deprecated] Cisco Firepower eStreamer via Legacy Agent", "publisher": "Cisco", "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", "graphQueries": [ @@ -256,7 +255,7 @@ }, { "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "apiVersion": "2023-04-01-preview", "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]", "properties": { "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]", @@ -279,12 +278,23 @@ } } ] - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_dataConnectorContentId1')]", + "contentKind": "DataConnector", + "displayName": "[Deprecated] Cisco Firepower eStreamer via Legacy Agent", + "contentProductId": "[variables('_dataConnectorcontentProductId1')]", + "id": "[variables('_dataConnectorcontentProductId1')]", + "version": "[variables('dataConnectorVersion1')]" } }, { "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "apiVersion": "2023-04-01-preview", "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]", "dependsOn": [ "[variables('_dataConnectorId1')]" @@ -318,7 +328,7 @@ "kind": "GenericUI", "properties": { "connectorUiConfig": { - "title": "Cisco Firepower eStreamer", + "title": "[Deprecated] Cisco Firepower eStreamer via Legacy Agent", "publisher": "Cisco", "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", "graphQueries": [ @@ -460,33 +470,386 @@ } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2022-02-01", - "name": "[variables('playbookTemplateSpecName1')]", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", + "name": "[variables('dataConnectorTemplateSpecName2')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "LogicAppsCustomConnector" - }, + "dependsOn": [ + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" + ], "properties": { - "description": "CiscoFirepowerConnector", - "displayName": "CiscoFirepowerConnector" + "description": "Cisco Firepower EStreamer data connector with template version 3.0.0", + "mainTemplate": { + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "[variables('dataConnectorVersion2')]", + "parameters": {}, + "variables": {}, + "resources": [ + { + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId2'))]", + "apiVersion": "2021-03-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors", + "location": "[parameters('workspace-location')]", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "id": "[variables('_uiConfigId2')]", + "title": "[Recommended] Cisco Firepower eStreamer via Legacy Agent via AMA", + "publisher": "Cisco", + "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "CiscoFirepowerEstreamerCEF", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "sampleQueries": [ + { + "description": "Firewall Blocked Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DeviceAction != \"Allow\"" + }, + { + "description": "File Malware Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where Activity == \"File Malware Event\"" + }, + { + "description": "Outbound Web Traffic Port 80", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DestinationPort == \"80\"" + } + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (CiscoFirepowerEstreamerCEF)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |where DeviceProduct =~ '\"Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine" + + }, + { + "title": "Step B. Install the Firepower eNcore client", + "description": "Install and configure the Firepower eNcore eStreamer client, for more details see full install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html)", + "innerSteps": [ + { + "title": "1. Download the Firepower Connector from github", + "description": "Download the latest version of the Firepower eNcore connector for Microsoft Sentinel [here](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector). If you plan on using python3 use the [python3 eStreamer connector](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector/tree/python3)" + }, + { + "title": "2. Create a pkcs12 file using the Azure/VM Ip Address", + "description": "Create a pkcs12 certificate using the public IP of the VM instance in Firepower under System->Integration->eStreamer, for more information please see install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049443)" + }, + { + "title": "3. Test Connectivity between the Azure/VM Client and the FMC", + "description": "Copy the pkcs12 file from the FMC to the Azure/VM instance and run the test utility (./encore.sh test) to ensure a connection can be established, for more details please see the setup [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049430)" + }, + { + "title": "4. Configure encore to stream data to the agent", + "description": "Configure encore to stream data via TCP to the Microsoft Agent, this should be enabled by default, however, additional ports and streaming protocols can configured depending on your network security posture, it is also possible to save the data to the file system, for more information please see [Configure Encore](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049433)" + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + ] + }, + { + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)", + "title": "2. Secure your machine " + } + ] + } + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", + "apiVersion": "2023-04-01-preview", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId2'),'/'))))]", + "properties": { + "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "contentId": "[variables('_dataConnectorContentId2')]", + "kind": "DataConnector", + "version": "[variables('dataConnectorVersion2')]", + "source": { + "kind": "Solution", + "name": "Cisco Firepower EStreamer", + "sourceId": "[variables('_solutionId')]" + }, + "author": { + "name": "Cisco" + }, + "support": { + "name": "Cisco", + "tier": "Partner", + "link": "https://www.cisco.com/c/en_in/support/index.html" + } + } + } + ] + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_dataConnectorContentId2')]", + "contentKind": "DataConnector", + "displayName": "[Recommended] Cisco Firepower eStreamer via Legacy Agent via AMA", + "contentProductId": "[variables('_dataConnectorcontentProductId2')]", + "id": "[variables('_dataConnectorcontentProductId2')]", + "version": "[variables('dataConnectorVersion2')]" } }, { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2022-02-01", - "name": "[concat(variables('playbookTemplateSpecName1'),'/',variables('playbookVersion1'))]", + "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", + "apiVersion": "2023-04-01-preview", + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId2'),'/'))))]", + "dependsOn": [ + "[variables('_dataConnectorId2')]" + ], + "location": "[parameters('workspace-location')]", + "properties": { + "parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId2'))]", + "contentId": "[variables('_dataConnectorContentId2')]", + "kind": "DataConnector", + "version": "[variables('dataConnectorVersion2')]", + "source": { + "kind": "Solution", + "name": "Cisco Firepower EStreamer", + "sourceId": "[variables('_solutionId')]" + }, + "author": { + "name": "Cisco" + }, + "support": { + "name": "Cisco", + "tier": "Partner", + "link": "https://www.cisco.com/c/en_in/support/index.html" + } + } + }, + { + "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId2'))]", + "apiVersion": "2021-03-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors", + "location": "[parameters('workspace-location')]", + "kind": "GenericUI", + "properties": { + "connectorUiConfig": { + "title": "[Recommended] Cisco Firepower eStreamer via Legacy Agent via AMA", + "publisher": "Cisco", + "descriptionMarkdown": "eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).", + "graphQueries": [ + { + "metricName": "Total data received", + "legend": "CiscoFirepowerEstreamerCEF", + "baseQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)" + } + ], + "dataTypes": [ + { + "name": "CommonSecurityLog (CiscoFirepowerEstreamerCEF)", + "lastDataReceivedQuery": "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |where DeviceProduct =~ '\"Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize Time = max(TimeGenerated)\n | where isnotempty(Time)" + } + ], + "connectivityCriterias": [ + { + "type": "IsConnectedQuery", + "value": [ + "CommonSecurityLog\n |where DeviceVendor =~ 'Cisco'\n |where DeviceProduct =~ 'Firepower'\n |extend sent_by_ama = column_ifexists('CollectorHostName','')\n |where isnotempty(sent_by_ama)\n | summarize LastLogReceived = max(TimeGenerated)\n | project IsConnected = LastLogReceived > ago(30d)" + ] + } + ], + "sampleQueries": [ + { + "description": "Firewall Blocked Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DeviceAction != \"Allow\"" + }, + { + "description": "File Malware Events", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where Activity == \"File Malware Event\"" + }, + { + "description": "Outbound Web Traffic Port 80", + "query": "CommonSecurityLog\n| where DeviceVendor == \"Cisco\"\n| where DeviceProduct == \"Firepower\" | where DestinationPort == \"80\"" + } + ], + "availability": { + "status": 1, + "isPreview": false + }, + "permissions": { + "resourceProvider": [ + { + "provider": "Microsoft.OperationalInsights/workspaces", + "permissionsDisplayText": "read and write permissions are required.", + "providerDisplayName": "Workspace", + "scope": "Workspace", + "requiredPermissions": { + "read": true, + "write": true, + "delete": true + } + }, + { + "provider": "Microsoft.OperationalInsights/workspaces/sharedKeys", + "permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).", + "providerDisplayName": "Keys", + "scope": "Workspace", + "requiredPermissions": { + "action": true + } + } + ], + "customs": [ + { + "description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://docs.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install?tabs=ARMAgentPowerShell,PowerShellWindows,PowerShellWindowsArc,CLIWindows,CLIWindowsArc)" + }, + { + "description": "Common Event Format (CEF) via AMA and Syslog via AMA data connectors must be installed [Learn more](https://learn.microsoft.com/azure/sentinel/connect-cef-ama#open-the-connector-page-and-create-the-dcr)" + } + ] + }, + "instructionSteps": [ + { + "instructions": [ + { + "parameters": { + "title": "1. Kindly follow the steps to configure the data connector", + "instructionSteps": [ + { + "title": "Step A. Configure the Common Event Format (CEF) via AMA data connector", + "description": "_Note:- CEF logs are collected only from Linux Agents_\n\n1. Navigate to Microsoft Sentinel workspace ---> configuration ---> Data connector blade .\n\n2. Search for 'Common Event Format (CEF) via AMA' data connector and open it.\n\n3. Check If there is no existing DCR configured to collect required facility of logs, Create a new DCR (Data Collection Rule)\n\n\t_Note:- It is recommended to install minimum 1.27 version of AMA agent [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-portal ) and ensure there is no duplicate DCR as it can cause log duplicacy_\n\n4. Run the command provided in the CEF via AMA data connector page to configure the CEF collector on the machine" + + }, + { + "title": "Step B. Install the Firepower eNcore client", + "description": "Install and configure the Firepower eNcore eStreamer client, for more details see full install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html)", + "innerSteps": [ + { + "title": "1. Download the Firepower Connector from github", + "description": "Download the latest version of the Firepower eNcore connector for Microsoft Sentinel [here](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector). If you plan on using python3 use the [python3 eStreamer connector](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector/tree/python3)" + }, + { + "title": "2. Create a pkcs12 file using the Azure/VM Ip Address", + "description": "Create a pkcs12 certificate using the public IP of the VM instance in Firepower under System->Integration->eStreamer, for more information please see install [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049443)" + }, + { + "title": "3. Test Connectivity between the Azure/VM Client and the FMC", + "description": "Copy the pkcs12 file from the FMC to the Azure/VM instance and run the test utility (./encore.sh test) to ensure a connection can be established, for more details please see the setup [guide](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049430)" + }, + { + "title": "4. Configure encore to stream data to the agent", + "description": "Configure encore to stream data via TCP to the Microsoft Agent, this should be enabled by default, however, additional ports and streaming protocols can configured depending on your network security posture, it is also possible to save the data to the file system, for more information please see [Configure Encore](https://www.cisco.com/c/en/us/td/docs/security/firepower/670/api/eStreamer_enCore/eStreamereNcoreSentinelOperationsGuide_409.html#_Toc527049433)" + } + ] + }, + { + "title": "Step C. Validate connection", + "description": "Follow the instructions to validate your connectivity:\n\nOpen Log Analytics to check if the logs are received using the CommonSecurityLog schema.\n\nIt may take about 20 minutes until the connection streams data to your workspace.\n\nIf the logs are not received, run the following connectivity validation script:\n\n 1. Make sure that you have Python on your machine using the following command: python -version\n\n2. You must have elevated permissions (sudo) on your machine", + "instructions": [ + { + "parameters": { + "label": "Run the following command to validate your connectivity:", + "value": "sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef" + }, + "type": "CopyableLabel" + } + ] + } + ] + }, + "type": "InstructionStepsGroup" + } + ] + }, + { + "description": "Make sure to configure the machine's security according to your organization's security policy\n\n\n[Learn more >](https://aka.ms/SecureCEF)", + "title": "2. Secure your machine " + } + ], + "id": "[variables('_uiConfigId2')]" + } + } + }, + { + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", + "name": "[variables('playbookTemplateSpecName1')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "LogicAppsCustomConnector" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('playbookTemplateSpecName1'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "CiscoFirepowerConnector Playbook with template version 2.0.3", + "description": "CiscoFirepowerConnector Playbook with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('playbookVersion1')]", @@ -3156,37 +3519,30 @@ } } ] - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_playbookContentId1')]", + "contentKind": "LogicAppsCustomConnector", + "displayName": "CiscoFirepowerConnector", + "contentProductId": "[variables('_playbookcontentProductId1')]", + "id": "[variables('_playbookcontentProductId1')]", + "version": "[variables('playbookVersion1')]" } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2022-02-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('playbookTemplateSpecName2')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, - "properties": { - "description": "BlockURL-CiscoFirepower-NetworkGroup playbook", - "displayName": "BlockURL-CiscoFirepower-NetworkGroup playbook" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2022-02-01", - "name": "[concat(variables('playbookTemplateSpecName2'),'/',variables('playbookVersion2'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('playbookTemplateSpecName2'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "BlockURL-CiscoFirepower-NetworkGroup Playbook with template version 2.0.3", + "description": "BlockURL-CiscoFirepower-NetworkGroup Playbook with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('playbookVersion2')]", @@ -4384,7 +4740,7 @@ "4. Sign in", "5. Click Save", "6. Repeat steps for other connections such as Cisco Firepower (For authorizing the Cisco Firepower API connection, the username and password needs to be provided).", - "**b. Configurations in Microsoft Sentinel**", + "**b. Configurations in Sentinel**", "1. In Microsoft sentinel analytical rules should be configured to trigger an incident with URL Entity.", "2. Configure the automation rules to trigger this playbook." ], @@ -4398,37 +4754,30 @@ } ] } - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_playbookContentId2')]", + "contentKind": "Playbook", + "displayName": "BlockURL-CiscoFirepower-NetworkGroup", + "contentProductId": "[variables('_playbookcontentProductId2')]", + "id": "[variables('_playbookcontentProductId2')]", + "version": "[variables('playbookVersion2')]" } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2022-02-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('playbookTemplateSpecName3')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, - "properties": { - "description": "BlockIP-CiscoFirepower playbook", - "displayName": "BlockIP-CiscoFirepower playbook" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2022-02-01", - "name": "[concat(variables('playbookTemplateSpecName3'),'/',variables('playbookVersion3'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('playbookTemplateSpecName3'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "BlockIP-CiscoFirepower Playbook with template version 2.0.3", + "description": "BlockIP-CiscoFirepower Playbook with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('playbookVersion3')]", @@ -5141,7 +5490,7 @@ "title": "Block IP - Cisco Firepower", "description": "This playbook allows blocking of IPs in Cisco Firepower, using a **Network Group object**. This allows making changes to a Network Group selected members, instead of making Access List Entries. The Network Group object itself should be part of an Access List Entry.", "mainSteps": [ - "When a new Microsoft Sentinel incident is created, this playbook gets triggered and performs below actions.", + "When a new Sentinel incident is created, this playbook gets triggered and performs below actions.", "1. For the IPs we check if they are already selected for the Network Group object", "2. For the IPs not already selected for the Network Group object, add it so it gets blocked", "3. Comment is added to Microsoft Sentinel incident", @@ -5162,8 +5511,8 @@ "4. Sign in", "5. Click Save", "6. Repeat steps for other connections such as Cisco Firepower (For authorizing the Cisco Firepower API connection, the username and password needs to be provided)", - "**b. Configurations in Microsoft Sentinel**", - "1. In Microsoft Sentinel analytical rules should be configured to trigger an incident with IP Entity.", + "**b. Configurations in Sentinel**", + "1. In Microsoft sentinel analytical rules should be configured to trigger an incident with IP Entity.", "2. Configure the automation rules to trigger this playbook" ], "lastUpdateTime": "2022-07-20T00:00:00Z", @@ -5183,37 +5532,30 @@ } ] } - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_playbookContentId3')]", + "contentKind": "Playbook", + "displayName": "BlockIP-CiscoFirepower", + "contentProductId": "[variables('_playbookcontentProductId3')]", + "id": "[variables('_playbookcontentProductId3')]", + "version": "[variables('playbookVersion3')]" } }, { - "type": "Microsoft.Resources/templateSpecs", - "apiVersion": "2022-02-01", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates", + "apiVersion": "2023-04-01-preview", "name": "[variables('playbookTemplateSpecName4')]", "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, - "properties": { - "description": "CiscoFirepower-BlockIP-Teams playbook", - "displayName": "CiscoFirepower-BlockIP-Teams playbook" - } - }, - { - "type": "Microsoft.Resources/templateSpecs/versions", - "apiVersion": "2022-02-01", - "name": "[concat(variables('playbookTemplateSpecName4'),'/',variables('playbookVersion4'))]", - "location": "[parameters('workspace-location')]", - "tags": { - "hidden-sentinelWorkspaceId": "[variables('workspaceResourceId')]", - "hidden-sentinelContentType": "Playbook" - }, "dependsOn": [ - "[resourceId('Microsoft.Resources/templateSpecs', variables('playbookTemplateSpecName4'))]" + "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" ], "properties": { - "description": "CiscoFirepower-BlockIP-Teams Playbook with template version 2.0.3", + "description": "CiscoFirepower-BlockIP-Teams Playbook with template version 3.0.0", "mainTemplate": { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "[variables('playbookVersion4')]", @@ -6309,7 +6651,7 @@ "title": "Block IP - Take Action from Teams - Cisco Firepower", "description": "This playbook allows blocking of IPs in Cisco Firepower, using a **Network Group object**. This allows making changes to a Network Group selected members, instead of making Access List Entries. The Network Group object itself should be part of an Access List Entry.", "mainSteps": [ - "When a new Microsoft Sentinel incident is created, this playbook gets triggered and performs below actions.", + "When a new Sentinel incident is created, this playbook gets triggered and performs below actions.", "1. For the IPs we check if they are already selected for the Network Group object", "2. An adaptive card is sent to a Teams channel with information about the incident and giving the option to ignore an IP, or depending on it's current status block it by adding it to the Network Group object or unblock it by removing it from the Network Group object", "![Teams Adaptive Card preview](https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/Cisco%20Firepower%20EStreamer/Playbooks/CiscoFirepower-BlockIP-Teams/Images/BlockIP-Teams-AdaptiveCard.png)", @@ -6348,8 +6690,8 @@ "3. Find the 'PostToTeams' action", "4. Select a Team and Channel", "5. Save the Logic App", - "**c. Configurations in Microsoft Sentinel**", - "1. In Microsoft Sentinel analytical rules should be configured to trigger an incident with IP Entity.", + "**c. Configurations in Sentinel**", + "1. In Microsoft sentinel analytical rules should be configured to trigger an incident with IP Entity.", "2. Configure the automation rules to trigger this playbook" ], "releaseNotes": [ @@ -6362,17 +6704,35 @@ } ] } - } + }, + "packageKind": "Solution", + "packageVersion": "[variables('_solutionVersion')]", + "packageName": "[variables('_solutionName')]", + "packageId": "[variables('_solutionId')]", + "contentSchemaVersion": "3.0.0", + "contentId": "[variables('_playbookContentId4')]", + "contentKind": "Playbook", + "displayName": "CiscoFirepower-BlockIP-Teams", + "contentProductId": "[variables('_playbookcontentProductId4')]", + "id": "[variables('_playbookcontentProductId4')]", + "version": "[variables('playbookVersion4')]" } }, { - "type": "Microsoft.OperationalInsights/workspaces/providers/metadata", - "apiVersion": "2022-01-01-preview", + "type": "Microsoft.OperationalInsights/workspaces/providers/contentPackages", + "apiVersion": "2023-04-01-preview", "location": "[parameters('workspace-location')]", "properties": { - "version": "2.0.3", + "version": "3.0.0", "kind": "Solution", - "contentSchemaVersion": "2.0.0", + "contentSchemaVersion": "3.0.0", + "displayName": "Cisco Firepower EStreamer", + "publisherDisplayName": "Cisco", + "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The Cisco Firepower eStreamer Solution for Microsoft Sentinel works with Cisco Event Streamer (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel\neStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).

\n
    \n
  1. Cisco Firepower EStreamer via AMA - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. Cisco Firepower EStreamer via Legacy Agent - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Custom Azure Logic Apps Connectors: 1, Playbooks: 3

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "contentKind": "Solution", + "contentProductId": "[variables('_solutioncontentProductId')]", + "id": "[variables('_solutioncontentProductId')]", + "icon": "", "contentId": "[variables('_solutionId')]", "parentId": "[variables('_solutionId')]", "source": { @@ -6396,6 +6756,11 @@ "contentId": "[variables('_dataConnectorContentId1')]", "version": "[variables('dataConnectorVersion1')]" }, + { + "kind": "DataConnector", + "contentId": "[variables('_dataConnectorContentId2')]", + "version": "[variables('dataConnectorVersion2')]" + }, { "kind": "LogicAppsCustomConnector", "contentId": "[variables('_CiscoFirepowerConnector')]", diff --git a/Solutions/Cisco Firepower EStreamer/ReleaseNotes.md b/Solutions/Cisco Firepower EStreamer/ReleaseNotes.md new file mode 100644 index 00000000000..78a8f7a86f0 --- /dev/null +++ b/Solutions/Cisco Firepower EStreamer/ReleaseNotes.md @@ -0,0 +1,5 @@ +| **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** | +|-------------|--------------------------------|---------------------------------------------------------------------| +| 3.0.0 | 26-09-2023 | Addition of new Cisco Firepower EStreamer AMA **Data Connector** | | + + From 09f104a834501edc94483a80c4a952b96013a330 Mon Sep 17 00:00:00 2001 From: v-rusraut Date: Tue, 26 Sep 2023 14:04:34 +0530 Subject: [PATCH 5/5] update keyword from Sentinel to Microsoft Sentinel --- .../Package/3.0.0.zip | Bin 42909 -> 42910 bytes .../Package/createUiDefinition.json | 2 +- .../Package/mainTemplate.json | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Solutions/Cisco Firepower EStreamer/Package/3.0.0.zip b/Solutions/Cisco Firepower EStreamer/Package/3.0.0.zip index f2336b4d604425b5b2f663602c16ccb0d0f793b3..031036df27ce33afd45aed1eb4be2e2011e2474e 100644 GIT binary patch delta 3879 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 om(oj\n\n**Note:** Please refer to the following before installing the solution: \r \n • Review the solution [Release Notes](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/Cisco%20Firepower%20EStreamer/ReleaseNotes.md)\r \n • There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing.\n\nThe [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Custom Azure Logic Apps Connectors:** 1, **Playbooks:** 3\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", + "description": "\n\n**Note:** Please refer to the following before installing the solution: \r \n • Review the solution [Release Notes](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/Cisco%20Firepower%20EStreamer/ReleaseNotes.md)\r \n • There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing.\n\nThe [Cisco Firepower](https://www.cisco.com/site/in/en/products/security/firewalls/index.html) eStreamer Solution for Microsoft Sentinel works with [Cisco Event Streamer](https://github.com/CiscoSecurity/fp-05-microsoft-sentinel-connector) (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Microsoft Sentinel \r\n eStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).\n\r\n1. **Cisco Firepower EStreamer via AMA** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent [here](https://learn.microsoft.com/azure/sentinel/connect-cef-ama). **Microsoft recommends using this Data Connector**.\n\r\n2. **Cisco Firepower EStreamer via Legacy Agent** - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.\n\n**NOTE:** Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by **Aug 31, 2024,** and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost [more details](https://learn.microsoft.com/en-us/azure/sentinel/ama-migrate).\n\n**Data Connectors:** 2, **Custom Azure Logic Apps Connectors:** 1, **Playbooks:** 3\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", "subscription": { "resourceProviders": [ "Microsoft.OperationsManagement/solutions", diff --git a/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json b/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json index d9c72192ecb..69b9773a177 100644 --- a/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json +++ b/Solutions/Cisco Firepower EStreamer/Package/mainTemplate.json @@ -6728,7 +6728,7 @@ "contentSchemaVersion": "3.0.0", "displayName": "Cisco Firepower EStreamer", "publisherDisplayName": "Cisco", - "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The Cisco Firepower eStreamer Solution for Microsoft Sentinel works with Cisco Event Streamer (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Sentinel\neStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).

\n
    \n
  1. Cisco Firepower EStreamer via AMA - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. Cisco Firepower EStreamer via Legacy Agent - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Custom Azure Logic Apps Connectors: 1, Playbooks: 3

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", + "descriptionHtml": "

Note: There may be known issues pertaining to this Solution, please refer to them before installing.

\n

The Cisco Firepower eStreamer Solution for Microsoft Sentinel works with Cisco Event Streamer (also known as eStreamer) and allows you to stream System intrusion, discovery and connection data from Firepower Management Center (FMC) or managed device to Microsoft Sentinel\neStreamer is a Client Server API designed for the Cisco Firepower NGFW Solution. The eStreamer client requests detailed event data on behalf of the SIEM or logging solution in the Common Event Format (CEF).

\n
    \n
  1. Cisco Firepower EStreamer via AMA - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the new Azure Monitor Agent. Learn more about ingesting using the new Azure Monitor Agent here. Microsoft recommends using this Data Connector.

    \n
  2. \n
  3. Cisco Firepower EStreamer via Legacy Agent - This data connector helps in ingesting Cisco Firepower EStreamer logs into your Log Analytics Workspace using the legacy Log Analytics agent.

    \n
  4. \n
\n

NOTE: Microsoft recommends installation of Cisco Firepower EStreamer via AMA Connector. Legacy connector uses the Log Analytics agent which is about to be deprecated by Aug 31, 2024, and thus should only be installed where AMA is not supported. Using MMA and AMA on same machine can cause log duplication and extra ingestion cost more details.

\n

Data Connectors: 2, Custom Azure Logic Apps Connectors: 1, Playbooks: 3

\n

Learn more about Microsoft Sentinel | Learn more about Solutions

\n", "contentKind": "Solution", "contentProductId": "[variables('_solutioncontentProductId')]", "id": "[variables('_solutioncontentProductId')]",