Azure Sentinel v1.5
Azure Sentinel v1.5
Azure Sentinel v1.5
Contents
Overview .......................................................................................................................................................... 2
Solution............................................................................................................................................................. 2
Logstash ........................................................................................................................................................... 4
Configuration File.......................................................................................................................................... 4
Azure Log Analytics output plugin ......................................................................................................... 5
Azure Log Analytics workspace................................................................................................................ 5
Azure Sentinel Workspace ......................................................................................................................... 7
Logstash ........................................................................................................................................................... 8
GeoLocation .................................................................................................................................................. 11
Azure Sentinel .............................................................................................................................................. 11
Playbooks ....................................................................................................................................................... 19
Appendix ........................................................................................................................................................ 20
Azure Logic App Example .................................................................................................................... 20
Sample Log Processing ........................................................................................................................ 23
Page 1
AZURE SENTINEL IMPLEMENTATION GUIDE
Overview
A security event is generated whenever Radware Cloud Services detect an attack when
an ongoing attack is still active or when an ongoing attack status has changed. The
generated security event includes the information relevant to this specific attack or
security breach. Once an event has been created, it is reported to Radware Cloud
management (portal), and also optionally distributed to the customer’s on-
premise/cloud logging system (SIEM).
Each tenant owns a queue for attacks as detected by Cloud WAF. The queues are fully
isolated, with permissions only for the tenant that owns the queue. When a tenant is
registered for SIEM services, the events that are generated by Radware Cloud Services
are sent to their queues.
This document describes the deployment of a LogStash system to consume events from
Radware CloudWAF and forward them to Azure Sentinel for analytics.
Page 2
AZURE SENTINEL IMPLEMENTATION GUIDE
Solution
To connect Radware CloudWAF to Azure Sentinel, a LogStash instance needs to be
deployed to consume logs, process, and forward them to a Log Analytics workspace.
Alternatively, the logstash instance can be deployed on premise or in any other location
with access to Azure services and Radware Cloud WAF.
Page 3
AZURE SENTINEL IMPLEMENTATION GUIDE
Pre-Setup
Logstash
Java 8
Java 11
Java 14
Configuration File
From the Radware Cloud WAF portal, download the SIEM configuration file.
Page 4
AZURE SENTINEL IMPLEMENTATION GUIDE
The Azure Log Analytics plugin needs to be installed for logstash to forward events to
Azure.
You can install this plugin using the Logstash "plugin" or "logstash-plugin" (for newer
versions of Logstash) command:
Page 5
AZURE SENTINEL IMPLEMENTATION GUIDE
{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-
preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"tags": {
"type": "object"
}
},
"resources": [
{
"apiVersion": "2017-03-15-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"type": "Microsoft.OperationalInsights/workspaces",
"properties": {
"sku": {
"name": "[parameters('sku')]"
}
}
}
]
}
Template.json
Page 6
AZURE SENTINEL IMPLEMENTATION GUIDE
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-
01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"value": "cwaf-sentinel-workspace"
},
"location": {
"value": "eastus2"
},
"sku": {
"value": "pergb2018"
},
"tags": {
"value": {}
}
}
}
Parameters.json
Azure Sentinel uses a Log Analytics workspace for data. When creating an Azure
Sentinel Workspace, use the Log Analytics Workspace created previously.
Page 7
AZURE SENTINEL IMPLEMENTATION GUIDE
Setup
Logstash
Any WAF message sent from Radware Cloud WAF Services starts with the following
prefix: AppWallAttackSysLogMessage.
Each parameter is a key-value pair, where an equal sign (=) separates the key and the
value, and the key-value pairs are separated by tab separators or new lines.
The logstash configuration file downloaded from the portal will be in the following
format:
input{
sqs{
queue=> <AWS queue name, enclosed in “ “ >
access_key_id=>"KEY "
region=> <AWS region, enclosed between “ “ >
secret_access_key=> <secret access key, enclosed in “ “ >
}
}
output{
udp {
host=> <IP address of SIEM system, enclosed in “ “ >
port=> <destination port of SIEM system, enclosed in “ “ >
}
}
The ‘input’ block contains information needed by logstash to get events from the
radware CWAF queues.
The ‘output’ block contains the information logstash will use to send events to.
To send events to Azure log analytics, output will need to be modified and a filtering
mechanism will be added for events to be sent in the appropriate format.
In addition, we would need the workspace ID and key from Azure log analytics.
Page 8
AZURE SENTINEL IMPLEMENTATION GUIDE
Using the installed azure log analytics plugin, a sample ‘output’ block would be:
output {
azure_loganalytics {
customer_id => "<WORKSPACE ID>"
shared_key => "KEY"
log_type => "<Alphabetical Name>"
}
}
filter {
kv { }
}
Page 9
AZURE SENTINEL IMPLEMENTATION GUIDE
input {
sqs {
queue => "<QUEUE ID>"
region => "region"
secret_access_key => "<QUEUE ACCESS KEY>"
codec => "plain"
}
sqs {
queue => "<QUEUE ID>"
access_key_id => "<QUEUE ACCESS KEY>"
region => "region"
secret_access_key => "<QUEUE ACCESS KEY>"
codec => "plain"
}
}
filter {
kv { }
date {
timezone => "UTC"
match => ["receivedTimeStamp", "UNIX_MS"]
target => "@rwtimestamp"
}
}
output {
azure_loganalytics {
customer_id => "<WORKSPACE ID>"
shared_key => “<KEY>”
log_type => "RdwrCWAFLogs"
}
}
Page 10
AZURE SENTINEL IMPLEMENTATION GUIDE
GeoLocation
filter {
kv { }
geoip {
database => “<Path to local MaxMind DB file>"
source => "sourceIp"
}
}
Azure Sentinel
Once logstash starts processing and forwarding events, the Azure Sentinel overview
dashboard will show data received.
Page 11
AZURE SENTINEL IMPLEMENTATION GUIDE
In the custom workbook, in editing mode, queries and visualizations can be added.
Examples:
1. Application Attack Distribution
a. Visualization: Pie Chart
b. Query:
RdwrCWAFLogs_CL
| summarize count() by action_s
Page 12
AZURE SENTINEL IMPLEMENTATION GUIDE
RdwrCWAFLogs_CL
| summarize count() by uri_s
| top-hitters 5 of uri_s by count_
Page 13
AZURE SENTINEL IMPLEMENTATION GUIDE
union RdwrCWAFLogs_CL
| where enrichmentContainer_s contains "owasp" and enrichmentContainer_s
!contains "owaspCategory2017=null"
| extend enrichFields = split(enrichmentContainer_s, 'owaspCategory2017')
| extend owaspField = tostring(enrichFields[1])
| extend owaspField2 = split(owaspField, ',')
| project owaspCategory = owaspField2[0]
| summarize count() by tostring(owaspCategory)
Page 14
AZURE SENTINEL IMPLEMENTATION GUIDE
RdwrCWAFLogs_CL
| summarize count() by geoip_country_name_s
c. Map Settings:
- Location Info Using: Country or region
- Country/region field: geoip_country_name_s
- Size by: count_
Page 15
AZURE SENTINEL IMPLEMENTATION GUIDE
5. Top 10 Attackers:
a. Visualization: Bar Chart
b. Query:
union RdwrCWAFLogs_CL
| summarize count() by SourceIP
| top-hitters 10 of SourceIP by count_
| order by approximate_sum_count_ desc
Page 16
AZURE SENTINEL IMPLEMENTATION GUIDE
Incidents
After you connected your data sources to Azure Sentinel, you can create custom rules
that can search for specific criteria across your environment and generate incidents
when the criteria are matched so that you can investigate them.
Page 17
AZURE SENTINEL IMPLEMENTATION GUIDE
4. In the Set Rule logic tab, use the following query in the textbox:
RdwrCWAFLogs_CL
| where isnotempty(severity_s) and action_s == "Reported"
| extend HostCustomEntity = host_s
| extend IPCustomEntity = SourceIP
| extend URLCustomEntity = uri_s
Page 18
AZURE SENTINEL IMPLEMENTATION GUIDE
5. In the Incident Settings tab, you can choose whether and how Azure Sentinel
turns alerts into actionable incidents. If this tab is left alone, Azure Sentinel will
create a single, separate incident from each and every alert. You can choose to
have no incidents created, or to group several alerts into a single incident, by
changing the settings in this tab.
6. In the Automated responses tab, select any playbooks you want to run
automatically when an alert is generated by the custom rule. For more
information on creating and automating playbooks, see Respond to threats.
7. Select Review and create to review all the settings for your new alert rule and
then select Create to initialize your alert rule.
8. After the alert is created, a custom rule is added to the table under Active rules.
From this list you can enable, disable, or delete each rule.
9. To view the results of the alert rules you create, go to the Incidents page, where
you can triage, investigate incidents, and remediate the threats.
Playbooks
A security playbook is a collection of procedures that can be run from Azure Sentinel in
response to an alert. A security playbook can help automate and orchestrate your
response, and can be run manually or set to run automatically when specific alerts are
triggered. Security playbooks in Azure Sentinel are based on Azure Logic Apps, which
means that you get all the power, customizability, and built-in templates of Logic Apps.
Page 19
AZURE SENTINEL IMPLEMENTATION GUIDE
APPENDIX
1. Debugging event parsing:
Include stdout to debug to check for any parsing failures in the output block.
For example, set the output block in the logstash config file to:
output {
azure_loganalytics {
customer_id => "<WORKSPACE ID>"
shared_key => “<KEY>”
log_type => "RdwrCWAFLogs"
}
stdout { codec => rubydebug }
}
Page 20
AZURE SENTINEL IMPLEMENTATION GUIDE
Steps:
Page 21
AZURE SENTINEL IMPLEMENTATION GUIDE
7. Click on + New Step and search and select Azure Blob Storage
8. Set action to Create blob
9. Click on Save
10. This app is now available as a playbook in Azure Sentinel Analytics Rules
Page 22
AZURE SENTINEL IMPLEMENTATION GUIDE
Sample message:
{
"paramName" => "null",
"ruleId" => "null",
"uri" => "/favicon.ico",
"tunnel" => "\"ChicagoDemoSiteSecure\"]",
"sourcePort" => "64054",
"action" => "Blocked",
"paramValue" => "null",
"method" => "GET",
"webApp" => "DemoSite-Secure",
Page 23
AZURE SENTINEL IMPLEMENTATION GUIDE
Page 24
AZURE SENTINEL IMPLEMENTATION GUIDE
©2018 Radware Ltd. All rights reserved. The Radware products and solutions mentioned in this press release are protected by
trademarks, patents and pending patent applications of Radware in the U.S. and other countries. For more details please see:
https://www.radware.com/LegalNotice/. All other trademarks and names are property of their respective owners.
Page 25