Azure Sentinel-A Real-World Example - 4sysops
Azure Sentinel-A Real-World Example - 4sysops
Azure Sentinel-A Real-World Example - 4sysops
Contents CL OSE
02 Data sources
03 Next step
05 Does it work?
Author Recent Posts
https://4sysops.com/archives/azure-sentinela-real-world-example/ 1/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Given this challenge, I do what I can: make sure they have up-to-date malware on
each endpoint, keep up with OS and application patching, use business class
firewalls, simulate phishing campaigns, and deliver cybersecurity awareness
training.
The lack of visibility is the scariest part. If an attack bypasses email hygiene filtering
and the local AV solution, the likeliest way I'll find out is a phone call about "a strange
message on our screens saying all our documents are encrypted and we need to
pay to get them back."
As mentioned in our earlier look at Sentinel, there are some free data sources for
Sentinel: Azure activity, Office 365 audit logs, and alerts from the Microsoft 365
Defender suite (max 90-day retention). Back then, Sentinel had fewer than 20
connectors for other data sources; today, that list is 116 and growing rapidly.
https://4sysops.com/archives/azure-sentinela-real-world-example/ 2/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
So I thought maybe I could build an SMB SIEM on a shoestring budget, which would
provide the visibility we were lacking.
The first client is a small school with about 90 students (years 1–12) and 20 staff, all
using Microsoft 365 A3, which is like E3 in the commercial world. We have two
Windows Server 2019 Dell Hyper-V hosts with seven VMs, all running on the newer
server, with the older server as a Hyper-V replica target in a separate building.
The VMs (Windows Server 2016/2019) are two DCs, a file and print server, Windows
Server Update Services (WSUS), a school management application, Microsoft's
Advanced Threat Analytics (ATA), and a Linux syslog server.
Data sources
Since they had Microsoft 365 but no Azure subscriptions, I created one for them
through CSP (Microsoft's partner program). I made sure to base it on the same
Azure Active Directory as in their M365 tenant, as this is important for the AAD data
to flow into Sentinel properly.
I deployed a Log Analytics workspace and then enabled Azure Sentinel for the
workspace in the Australia East region (use https://www.azurespeed.com/
(https://www.azurespeed.com/) whenever possible to ensure the lowest latency to
the client). The retention period for the workspace was 90 days, which was a
calculated risk. It definitely restricted our ability to investigate breaches going back
into the past, but that's the free retention period and budget was king in this project.
The cloud-based data connectors were the easiest to connect; it's a couple of clicks
for each. For this client, I used Azure AD (sign-in logs for users, interactive, non-
interactive, and service principals, plus audit logs), DNS, Office 365 (SharePoint,
Exchange, and Teams activity), Windows Security Events, Threat intelligence—
TAXII, and Windows Firewall.
https://4sysops.com/archives/azure-sentinela-real-world-example/ 3/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
(https://4sysops.com/wp-content/uploads/2021/10/Office-365-Connector.png)
Nearly all connectors come with workbooks to visualize the data, which you can then
customize to suit your needs. Again, it's as simple as importing them into your
Sentinel workspace and configuring what data you want to see.
(https://4sysops.com/wp-content/uploads/2021/10/Azure-AD-Sign-in-Logs-workbook.png)
The non-cloud data source connectors (security events, Windows Firewall, and
DNS) are based on data from the on-premises VMs and hosts. On each physical
server and VM, I deployed the Microsoft Monitoring Agent (MMA), a simple MSI
https://4sysops.com/archives/azure-sentinela-real-world-example/ 4/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
installer that you run, supplying the workspace ID and primary key from the Log
Analytics workspace in Azure. There's now a newer option, the Azure Monitoring
Agent (AMA) (https://docs.microsoft.com/en-us/azure/azure-monitor/agents/azure-
monitor-agent-overview?tabs=PowerShellWindows) which spans both Windows and
Linux hosts. It's in public preview at the time of writing, which I would have used had
it been available back when I deployed the agents. The main benefit for Sentinel in
AMA is data collection rules that let you fine-tune exactly which events from the
Windows Security Event log are collected. MMA simply has three options: Minimal,
Common, or All—I picked Common. It would have been nice to be able to collect
security events not only from servers but also from Windows 10 clients, but I needed
to watch the ingestion cost carefully before expanding the agent deployment.
(https://4sysops.com/wp-content/uploads/2021/10/Threat-intelligence-data-in-Sentinel.png)
Next step
Getting the log data into Sentinel is the first step. Next, you use analytics rules to run
queries over the data to alert you to suspicious activity. There are hundreds of built-
in rule templates. I started by filtering the view on severity (high and medium), plus
https://4sysops.com/archives/azure-sentinela-real-world-example/ 5/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
the data sources we have, and enabled all matching built-in rules.
When you configure a rule, you have to decide how often the rule will run. The
shortest time is every five minutes, but you can set it to hours or days. Sentinel
doesn't charge you for running rules, so setting them fairly frequently helps to let you
know about suspicious activity quickly. Another setting is the look-back time—how
far back in the log the rule is going to look. Keep these two values fairly close. I had
configured a rule for detecting rare RDP connections to run every hour but look back
for 24 hours; this means I was getting the same alert every hour for 24 hours, which
is not very useful .
Here, you can see a rule for distributed password cracking attempts against Azure
AD, its description, and the Kusto Query Language (KQL; see below) query that runs
every time the rule runs.
(https://4sysops.com/wp-content/uploads/2021/10/Analytics-rule—distributed-password-cracking-attempts.png)
I had initially set up most rules to run once a day, but I've since shortened the time to
run hourly; I'm now looking to shorten the time even further.
I mentioned KQL, which is used in Azure Log Analytics, Azure Data Explorer, and all
other Microsoft security solutions to analyze data. It borrows from SQL and
PowerShell, but is optimized for digging through large amounts of log data. If you're
interested, there are some frees (no subscription required) courses on Pluralsight
here (https://www.pluralsight.com/partners/microsoft/azure-data-explorer). Microsoft
also provides a free "playground" Log Analytics workspace with security log data to
https://4sysops.com/archives/azure-sentinela-real-world-example/ 6/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Here, I'm using an ad hoc KQL query to look at DNS event log data.
(https://4sysops.com/wp-content/uploads/2021/10/KQL-query-against-DNS-event-log-data.png)
(https://4sysops.com/wp-content/uploads/2021/10/Workbook-for-sign-in-event-log-IDs.png)
https://4sysops.com/archives/azure-sentinela-real-world-example/ 7/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Another way you can manage this is through automation, as there's just me in the
SOC. I needed a way for Sentinel to let me know when suspicious activities
happened. The Analytics rules can have an email (or any other action in a Logic
App), but I didn't want to go through each rule to add the automation. I found an
alternative that would send me an email every time any of the alert rules were
triggered here (https://azurecloudai.blog/2020/09/23/sentinel-email-notification-logic-
app/). Automation in Sentinel takes the form of playbooks or newer automation rules,
but a playbook is really just an Azure Logic App where you add actions and connect
them graphically, optionally with branching logic. The sky's the limit here, but you
can certainly have playbooks that run automatically for certain incidents. For
instance, if you have an impossible travel alert, email the user's manager to double-
check whether that user really is traveling to country X. If the answer is yes, close
the alert automatically; if it is no, raise the severity of the incident.
(https://4sysops.com/wp-content/uploads/2021/10/Email-alert-from-Sentinel.png)
Email alert from Sentinel
https://4sysops.com/archives/azure-sentinela-real-world-example/ 8/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Clicking the link in the email takes me directly to the incident with more information
about the entities (user accounts, devices, IP addresses, etc.) involved, with the
option to investigate further, using a graph that links each item, provides a timeline of
activities, etc.
(https://4sysops.com/wp-content/uploads/2021/10/Investigating-an-incident-in-Sentinel.png)
Does it work?
This client has now had Sentinel in production for over four months. We've had 373
reported incidents, mostly false positives and expected alerts (some rule tuning
required), with some serious brute force password attacks (none succeeded). The
monthly cost is under $70.
The next step is to connect a few more data sources. Their firewall is a Check Point
Quantum Spark 1550 that sends its logs to a syslog server (the Linux VM mentioned
above). They're also using ESET on each device for antimalware. Its central server
is called "Protect," and, again, it can upload its data via a syslog server. The third
data source is Microsoft's ATA, the on-premises version of Microsoft Defender for
Identity, which monitors Active Directory for suspicious activity. It can also emit its
logs via syslog.
I've deployed an Ubuntu 18.04 server, but the logs aren't synchronizing to Sentinel—
troubleshooting to follow. Once these data sources show up in Sentinel, I feel
confident that we'll have good visibility if (when) an intrusion does occur.
https://4sysops.com/archives/azure-sentinela-real-world-example/ 9/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Email address
Subscribe
I'm sure security architect readers can identify plenty of areas for improvement in
this solution, but it works for the client, doesn't cost them a fortune, and they're
definitely more secure than they were before. If you're interested in Azure Sentinel,
there's an excellent free collection of training videos and material here
(https://techcommunity.microsoft.com/t5/azure-sentinel/azure-sentinel-ninja-training-
the-sept-2021-update/ba-p/2677688).
+4
(https://4sysops.com/members/vrgserver/)
R E L AT E D A R T I C L E S
https://4sysops.com/archives/azure-sentinela-real-world-example/ 10/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
0 COMMENTS
Leave a reply
Your email address will not be published. Required fields are marked *
Comment
Name *
Email*
Website
https://4sysops.com/archives/azure-sentinela-real-world-example/ 11/12
3/20/23, 1:10 PM Azure Sentinel—A real-world example – 4sysops
Notify me of followup comments via e-mail. You can also subscribe (https://4sysops.com/comment-
subscriptions/?srp=1563110&srk=&sra=s&srsrc=f) without commenting.
POST COMMENT
Subscribe to Newsletter
Email Address
Subscribe
Follow 4sysops
(http://twitter.com/4sysops/) (http://www.facebook.com/4sysops)
(https://www.linkedin.com/company/4sysops/) (https://4sysops.com/feed/)
https://4sysops.com/archives/azure-sentinela-real-world-example/ 12/12