{
    "id": "AzureCloudNGFWByPaloAltoNetworks",
    "title": "Azure CloudNGFW By Palo Alto Networks",
    "publisher": "Palo Alto Networks",
    "descriptionMarkdown": "Cloud Next-Generation Firewall by Palo Alto Networks - an Azure Native ISV Service - is Palo Alto Networks Next-Generation Firewall (NGFW) delivered as a cloud-native service on Azure. You can discover Cloud NGFW in the Azure Marketplace and consume it in your Azure Virtual Networks (VNet). With Cloud NGFW, you can access the core NGFW capabilities such as App-ID, URL filtering based technologies. It provides threat prevention and detection through cloud-delivered security services and threat prevention signatures. The connector allows you to easily connect your Cloud NGFW logs with Microsoft Sentinel, to view dashboards, create custom alerts, and improve investigation. This gives you more insight into your organization's network and improves your security operation capabilities. For more information, see the [Cloud NGFW for Azure documentation](https://docs.paloaltonetworks.com/cloud-ngfw/azure).",
    "graphQueries": [
        {
            "metricName": "Total data received",
            "legend": "Azure CloudNGFW By Palo Alto Networks",
            "baseQuery": "fluentbit_CL\n| where isnotempty(FirewallName_s)\n"
        }
    ],
    "sampleQueries": [
        {
            "description": "List of connected Cloud NGFW resources",
            "query": "fluentbit_CL\n| distinct FirewallName_s"
        },
        {
            "description": "Connectivity status of Cloud NGFW resources",
            "query": "fluentbit_CL\n| extend TimeGenerated = todatetime(TimeGenerated)\n| summarize LastLogReceived = max(TimeGenerated) by FirewallName_s\n| extend Status = iff(now() - LastLogReceived > 24h, \"Disconnected\", \"Connected\")\n| project FirewallName_s, LastLogReceived, Status\n| order by Status desc, LastLogReceived desc"
        },
        {
            "description": "Total data received (MB)",
            "query": "fluentbit_CL\n| extend bytes_received = toint(parse_json(Message).bytes_recv)\n| summarize TotalBytesReceived = sum(bytes_received)\n| extend TotalMBReceived = round(TotalBytesReceived / 1048576.0, 2)\n| project TotalMBReceived"
        },
        {
            "description": "Top 5 apps",
            "query": "fluentbit_CL\n| extend app = tostring(parse_json(Message).app)\n| summarize Count = count() by app\n| top 5 by Count desc\n| project app, Count"
        },
        {
            "description": "Top 5 categories",
            "query": "fluentbit_CL\n| extend category = tostring(parse_json(Message).category)\n| summarize Count = count() by category\n| top 5 by Count desc\n| project category, Count"
        },
        {
            "description": "Top 5 rules",
            "query": "fluentbit_CL\n| summarize Rule=count() by tostring(parse_json(Message).rule)\n| top 5 by Rule desc"
        },
        {
            "description": "Top 5 source IPs",
            "query": "fluentbit_CL\n| summarize SourceIP=count() by tostring(parse_json(Message).src_ip)\n| top 5 by SourceIP desc"
        },
        {
            "description": "Top 5 destination IPs",
            "query": "fluentbit_CL\n| summarize DestinationIP=count() by tostring(parse_json(Message).dst_ip)\n| top 5 by DestinationIP desc"
        }
    ],
    "connectivityCriterias": [
        {
            "type": "IsConnectedQuery",
            "value": [
                "fluentbit_CL\n| extend TimeGenerated = todatetime(TimeGenerated)\n| summarize LastLogReceived = max(TimeGenerated) by FirewallName_s\n| project IsConnected = LastLogReceived > ago(30d)"
            ]
        }
    ],
    "dataTypes": [
        {
            "name": "fluentbit_CL",
            "lastDataReceivedQuery": "fluentbit_CL\n| extend TimeGenerated = todatetime(TimeGenerated)\n| summarize Time = max(TimeGenerated)\n| where isnotempty(Time)"
        }
    ],
    "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
                }
            }
        ]
    },
    "instructionSteps": [
    {
        "title": "Connect Cloud NGFW by Palo Alto Networks to Microsoft Sentinel",
        "description": "Enable Log Settings on All Cloud NGFWs by Palo Alto Networks.",
        "instructions": [
            {
                "parameters": {
                    "linkType": "OpenCloudNGFW"
                },
                "type": "ConfigureLogSettings"
            }
        ]
    },
    {
        "title": "",
        "description": "Inside your Cloud NGFW resource:\n\n1.  Navigate to the **Log Settings** from the homepage.\n2.  Ensure the **Enable Log Settings** checkbox is checked.\n3.  From the **Log Settings** drop-down, choose the desired Log Analytics Workspace.\n4.  Confirm your selections and configurations.\n5.  Click **Save** to apply the settings."
    }
    ],
    "metadata": {
        "id": "ef80260c-3aec-43bc-a1e5-c2f2372c9adc",
        "version": "1.0.0",
        "kind": "dataConnector",
        "source": {
            "kind": "community"
        },
        "author": {
            "name": "Palo Alto Networks"
        },
        "support": {
            "name": "Palo Alto Networks",
            "link": "https://www.paloaltonetworks.com/company/contact-support",
            "tier": "developer"
        }
    }
}
