Skip to content

Commit 6df8b4b

Browse files
authored
Merge pull request #3 from batamig/patch-127
Review 2
2 parents 0f64d64 + b50b642 commit 6df8b4b

9 files changed

+136
-59
lines changed

articles/sentinel/TOC.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
href: connect-data-sources.md
6666
- name: Classifying data with entities
6767
href: entities.md
68-
- name: Normalization and the Advanced SIEM Information Model (ASIM)
68+
- name: Normalization with ASIM
6969
items:
7070
- name: ASIM overview
7171
href: normalization.md
@@ -184,7 +184,7 @@
184184
href: monitor-data-connector-health.md
185185
- name: Integrate Azure Data Explorer
186186
href: store-logs-in-azure-data-explorer.md
187-
- name: Use the Advanced SIEM Information Model (ASIM)
187+
- name: Use ASIM to normalize data
188188
items:
189189
- name: Develop ASIM parsers
190190
href: normalization-develop-parsers.md

articles/sentinel/dns-normalization-schema.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,14 @@ The most important activity reported by DNS servers is a DNS query, for which th
3131
The most important fields in a DNS event are:
3232

3333
- [DnsQuery](#query), which reports the domain name for which the query was issued.
34+
3435
- The [SrcIpAddr](#srcipaddr) (aliased to [IpAddr](#ipaddr)), which represents the IP address from which the request was generated.
36+
3537
- [EventResultDetails](#eventresultdetails), which reports as to whether the request was successful and if not, why.
36-
- When available, [DnsResponseName](#responsename), which holds the answer provided by the server to the query. ASIM does not require parsing the response, and its format varies between sources. To use this field in source-agnostic content, search the content using the `has` or `contains` operators.
38+
39+
- When available, [DnsResponseName](#responsename), which holds the answer provided by the server to the query. ASIM does not require parsing the response, and its format varies between sources.
40+
41+
To use this field in source-agnostic content, search the content using the `has` or `contains` operators.
3742

3843
DNS events collected on client device may also include [User](#user) and [Process](#process) information.
3944

@@ -59,6 +64,8 @@ imDNS | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"
5964

6065
## Parsers
6166

67+
For more information about ASIM parsers, see the [ASIM parsers overview](normalization-parsers-overview.md) and [Use ASIM parsers](normalization-about-parsers.md).
68+
6269
### Unifying parsers
6370

6471
To use parsers that unify all ASIM out-of-the-box parsers, and ensure that your analysis runs across all the configured sources, use the `_Im_Dns` filtering parser or the `_ASim_Dns` parameter-less parser.
@@ -82,7 +89,7 @@ Microsoft Sentinel provides the following out-of-the-box, product-specific DNS p
8289
| **zScaler ZIA** |`_ASim_DnsZscalerZIA` (regular)<br> `_Im_DnsZdcalerZIA` (filtering) | `AsimDnsZscalerZIA` (regular)<br> `vimDnsSzcalerZIA` (filtering) |
8390
| | | |
8491

85-
The parsers can be deployed from the [Microsoft Sentinel GitHub repository](https://aka.ms/azsentinelDNS).
92+
These parsers can be deployed from the [Microsoft Sentinel GitHub repository](https://aka.ms/azsentinelDNS).
8693

8794
### Add your own normalized parsers
8895

@@ -124,7 +131,7 @@ imDns (domain_has_any = torProxies)
124131

125132
## Normalized content
126133

127-
For a full list of analytics rules that use normalized DNS events, see the [DNS query security content](normalization-content.md#dns-query-security-content) section.
134+
For a full list of analytics rules that use normalized DNS events, see [DNS query security content](normalization-content.md#dns-query-security-content).
128135

129136
## Schema details
130137

@@ -171,7 +178,7 @@ The fields below are specific to DNS events, although many are similar to fields
171178
| <a name="srcdvcid"></a>**SrcDvcId** | Optional | String | The ID of the source device as reported in the record.<br><br>For example: `ac7e9755-8eae-4ffc-8a02-50ed7a2216c3` |
172179
| **SrcDvcIdType** | Optional | Enumerated | The type of [SrcDvcId](#srcdvcid), if known. Possible values include:<br> - `AzureResourceId`<br>- `MDEid`<br><br>If multiple IDs are available, use the first one from the list above, and store the others in the **SrcDvcAzureResourceId** and **SrcDvcMDEid**, respectively.<br><br>**Note**: This field is required if [SrcDvcId](#srcdvcid) is used. |
173180
| **SrcDeviceType** | Optional | Enumerated | The type of the source device. Possible values include:<br>- `Computer`<br>- `Mobile Device`<br>- `IOT Device`<br>- `Other` |
174-
| <a name="srcuserid"></a>**SrcUserId** | Optional | String | A machine-readable, alphanumeric, unique representation of the source user. Format and supported types include:<br>- **SID** (Windows): `S-1-5-21-1377283216-344919071-3415362939-500`<br>- **UID** (Linux): `4578`<br>- **AADID** (Azure Active Directory): `9267d02c-5f76-40a9-a9eb-b686f3ca47aa`<br>- **OktaId**: `00urjk4znu3BcncfY0h7`<br>- **AWSId**: `72643944673`<br><br>Store the ID type in the [SrcUserIdType](#srcuseridtype) field. <br><br>If other IDs are available, we recommend that you normalize the field names to **SrcUserSid**, **SrcUserUid**, **SrcUserAadId**, **SrcUserOktaId** and **UserAwsId**, respectively. For more information, see [The User entity](normalization-about-schemas.md#the-user-entity).<br><br>Example: S-1-12 |
181+
| <a name="srcuserid"></a>**SrcUserId** | Optional | String | A machine-readable, alphanumeric, unique representation of the source user. Format and supported types include:<br>- **SID** (Windows): `S-1-5-21-1377283216-344919071-3415362939-500`<br>- **UID** (Linux): `4578`<br>- **AADID** (Azure Active Directory): `9267d02c-5f76-40a9-a9eb-b686f3ca47aa`<br>- **OktaId**: `00urjk4znu3BcncfY0h7`<br>- **AWSId**: `72643944673`<br><br>Store the ID type in the [SrcUserIdType](#srcuseridtype) field. <br><br>If other IDs are available, we recommend that you normalize the field names to **SrcUserSid**, **SrcUserUid**, **SrcUserAadId**, **SrcUserOktaId** and **UserAwsId**, respectively. For more information, see [The User entity](normalization-about-schemas.md#the-user-entity).<br><br>Example: `S-1-12` |
175182
| <a name="srcuseridtype"></a>**SrcUserIdType** | Optional | Enumerated | The type of the ID stored in the [SrcUserId](#srcuserid) field. Supported values include: `SID`, `UIS`, `AADID`, `OktaId`, and `AWSId`. |
176183
| <a name="srcusername"></a>**SrcUsername** | Optional | String | The Source username, including domain information when available. Use one of the following formats and in the following order of priority:<br>- **Upn/Email**: `[email protected]`<br>- **Windows**: `Contoso\johndow`<br>- **DN**: `CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=COM`<br>- **Simple**: `johndow`. Use the Simple form only if domain information is not available.<br><br>Store the Username type in the [SrcUsernameType](#srcusernametype) field. If other IDs are available, we recommend that you normalize the field names to **SrcUserUpn**, **SrcUserWindows** and **SrcUserDn**.<br><br>For more information, see [The User entity](normalization-about-schemas.md#the-user-entity).<br><br>Example: `AlbertE` |
177184
| <a name="user"></a>**User** | Alias | | Alias to [SrcUsername](#srcusername) |

articles/sentinel/network-normalization-schema.md

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,60 @@ The network normalization schema can represent any type of an IP network session
2828

2929
## Parsers
3030

31-
This section discusses parsers, how to add parsers, and how to filter parser parameters.
31+
This section discusses parsers, how to add parsers, and how to filter parser parameters. For more information, see [ASIM parsers](normalization-parsers-overview.md) and [Use ASIM parsers](normalization-about-parsers.md).
3232

3333
### Unifying parsers
3434

35-
To use the unifying parsers that unify all of the out-of-the-box parsers, and ensure that your analysis runs across all the configured sources, use the following KQL functions as the table name in your query:
36-
37-
| Name | Description | Usage instructions |
38-
| ---- | --- | --- |
39-
| <a name="imnetworksession"></a>**imNetworkSession** | Aggregative parser that uses *union* to include normalized events from all *network session* sources. |- Update this parser if you want to add or remove sources from source-agnostic analytics. <br><br>- Use this function in your source-agnostic queries.|
40-
| **ASimNetworkSession** | Similar to the [imNetworkSession](#imnetworksession) function, but without parameter support, so it doesn't force the **Logs** page time picker to use the `custom` value. |- Update these parsers if you want to add or remove sources from source-agnostic analytics.<br><br>- Use this function in your source-agnostic queries if you don't plan to use parameters.|
41-
| **vimNetworkSession\<vendor\>\<product\>** | Source-specific parsers implement normalization for a specific source. <br><br>Example: `vimNetworkSessionSysmonLinux` |- Add a source-specific parser for a source when there's no out-of-the-box normalizing parser. Update the `im` aggregative parser to include reference to your new parser. <br><br>- Update a source-specific parser to resolve parsing and normalization issues.<br><br>- Use a source-specific parser for source-specific analytics.|
42-
**ASimNetworkSession\<vendor\>\<product\>>** | Source-specific parsers implement normalization for a specific source. <br><br>Unlike the `vim*` functions, the `ASim*` functions don't support parameters. |- Add a source-specific parser for a source when there's no out-of-the-box normalizing parser. Update the aggregative `ASim` parser to include reference to your new parser.<br><br>- Update a source-specific parser to resolve parsing and normalization issues.<br><br>- Use an `ASim` source-specific parser for interactive queries when not using parameters.|
43-
| | | |
35+
To use the unifying parsers that unify all of the out-of-the-box parsers, and ensure that your analysis runs across all the configured sources, use the following KQL functions as the table name in your query.
4436

4537
Deploy ASIM parsers from the [Microsoft Sentinel GitHub repository](https://aka.ms/DeployASIM).
4638

39+
#### <a name="imnetworksession"></a>imNetworkSession
40+
41+
Aggregative parser that uses *union* to include normalized events from all *network session* sources.
42+
43+
- Update this parser if you want to add or remove sources from source-agnostic analytics.
44+
- Use this function in your source-agnostic queries.
45+
46+
#### ASimNetworkSession
47+
48+
Similar to the [imNetworkSession](#imnetworksession) function, but without parameter support, so it doesn't force the **Logs** page time picker to use the `custom` value.
49+
50+
- Update these parsers if you want to add or remove sources from source-agnostic analytics.
51+
- Use this function in your source-agnostic queries if you don't plan to use parameters.
52+
53+
#### vimNetworkSession\<vendor\>\<product\>
54+
55+
Source-specific parsers implement normalization for a specific source.
56+
57+
Example: `vimNetworkSessionSysmonLinux`
58+
59+
- Add a source-specific parser for a source when there's no out-of-the-box normalizing parser. Update the `im` aggregative parser to include reference to your new parser.
60+
- Update a source-specific parser to resolve parsing and normalization issues.
61+
- Use a source-specific parser for source-specific analytics.
62+
63+
#### ASimNetworkSession\<vendor\>\<product\>>
64+
65+
Source-specific parsers implement normalization for a specific source.
66+
67+
Unlike the `vim*` functions, the `ASim*` functions don't support parameters.
68+
69+
- Add a source-specific parser for a source when there's no out-of-the-box normalizing parser. Update the aggregative `ASim` parser to include reference to your new parser.
70+
- Update a source-specific parser to resolve parsing and normalization issues.
71+
- Use an `ASim` source-specific parser for interactive queries when not using parameters.
72+
73+
74+
4775
### Out-of-the-box, source-specific parsers
4876

4977
Microsoft Sentinel provides the following built-in, product-specific Network Session parsers:
5078

5179
| **Name** | **Description** |
5280
| --- | --- |
53-
| **Microsoft 365 Defender for Endpoint** | - Parametrized: vimNetworkSessionMicrosoft365Defender <br> - Regular: ASimNetworkSessionMicrosoft365Defender |
54-
| **Microsoft Defender for IoT - Endpoint (MD4IoT)** | - Parametrized: vimNetworkSessionMD4IoT <br> - Regular: ASimNetworkSessionMD4IoT |
55-
| **Microsoft Sysmon for Linux** | - Parametrized: vimNetworkSessionSysmonLinux<br> - Regular: ASimNetworkSessionSysmonLinux |
56-
| **Windows Events Firewall** | Windows firewall activity as represented by using Windows Events 515x, collected by using either the Log Analytics Agent or the Azure Monitor Agent into either the `Event` table or the `WindowsEvent` table.<br><br> - Parametrized: vimNetworkSessionMicrosoftWindowsEventFirewall <br> - Regular: ASimNetworkSessionMicrosoftWindowsEventFirewall
81+
| **Microsoft 365 Defender for Endpoint** | - Parametrized: `vimNetworkSessionMicrosoft365Defender` <br> - Regular: `ASimNetworkSessionMicrosoft365Defender` |
82+
| **Microsoft Defender for IoT - Endpoint (MD4IoT)** | - Parametrized: `vimNetworkSessionMD4IoT` <br> - Regular: `ASimNetworkSessionMD4IoT` |
83+
| **Microsoft Sysmon for Linux** | - Parametrized: `vimNetworkSessionSysmonLinux`<br> - Regular: `ASimNetworkSessionSysmonLinux` |
84+
| **Windows Events Firewall** | Windows firewall activity as represented by using Windows Events 515x, collected by using either the Log Analytics Agent or the Azure Monitor Agent into either the `Event` table or the `WindowsEvent` table.<br><br> - Parametrized: `vimNetworkSessionMicrosoftWindowsEventFirewall` <br> - Regular: `ASimNetworkSessionMicrosoftWindowsEventFirewall`
5785
| | |
5886

5987
### Add your own normalized parsers

articles/sentinel/normalization-develop-parsers.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ ms.author: ofshezaf
1313

1414
Advanced SIEM Information Model (ASIM) users use *unifying parsers* instead of table names in their queries, to view data in a normalized format and to include all data relevant to the schema in the query. Unifying parsers, in turn, use *source-specific parsers* to handle the specific details of each source.
1515

16-
To understand how parsers fit within the ASIM architecture, refer to the [ASIM architecture diagram](normalization.md#asim-components).
17-
1816
Microsoft Sentinel provides built-in, source-specific parsers for many data sources. You may want to modify, or *develop*, these source-specific parsers in the following situations:
1917

2018
- When your device provides events that fit an ASIM schema, but a source-specific parser for your device and the relevant schema is not available in Microsoft Sentinel.
@@ -27,7 +25,13 @@ Microsoft Sentinel provides built-in, source-specific parsers for many data sour
2725

2826
- The events might be collected, modified, and forwarded by an intermediary system.
2927

30-
## The ASIM custom parser development process
28+
To understand how parsers fit within the ASIM architecture, refer to the [ASIM architecture diagram](normalization.md#asim-components).
29+
30+
> [!IMPORTANT]
31+
> ASIM is currently in PREVIEW. The [Azure Preview Supplemental Terms](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) include additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
32+
33+
34+
## Custom parser development process
3135

3236
The following workflow describe the high level steps in developing a custom ASIM, source-specific parser:
3337

@@ -47,9 +51,6 @@ This article guides you through the process's development, testing, and deployme
4751
> Also watch the [Deep Dive Webinar on Microsoft Sentinel Normalizing Parsers and Normalized Content](https://www.youtube.com/watch?v=zaqblyjQW6k) or review the related [slide deck](https://1drv.ms/b/s!AnEPjr8tHcNmjGtoRPQ2XYe3wQDz?e=R3dWeM). For more information, see [Next steps](#next-steps).
4852
>
4953

50-
> [!IMPORTANT]
51-
> ASIM is currently in PREVIEW. The [Azure Preview Supplemental Terms](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) include additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
52-
>
5354

5455
## Developing parsers
5556

articles/sentinel/normalization-modify-content.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Modify content to us the Advanced SIEM Information Model (ASIM) | Microsoft Docs
2+
title: Modify content to use the Microsoft Sentinel Advanced SIEM Information Model (ASIM) | Microsoft Docs
33
description: This article explains how to convert Microsoft Sentinel content to use the the Advanced SIEM Information Model (ASIM).
44
author: oshezaf
55
ms.topic: conceptual
@@ -8,15 +8,15 @@ ms.author: ofshezaf
88
ms.custom: ignite-fall-2021
99
---
1010

11-
# Modify content to us the Advanced SIEM Information Model (ASIM) (Public preview)
11+
# Modify content to use the Advanced SIEM Information Model (ASIM) (Public preview)
1212

1313
[!INCLUDE [Banner for top of topics](./includes/banner.md)]
1414

1515
Normalized security content in Microsoft Sentinel includes analytics rules, hunting queries, and workbooks that work with unifying normalization parsers.
1616

17-
<a name="builtin"></a>You can find normalized, built-in content in Microsoft Sentinel galleries and [solutions](sentinel-solutions-catalog.md), create your own normalized content, or modify existing content to use normalized data.
17+
<a name="builtin"></a>You can find normalized, out-of-the-box content in Microsoft Sentinel galleries and [solutions](sentinel-solutions-catalog.md), create your own normalized content, or modify existing, custom content to use normalized data.
1818

19-
This article explains how to convert Microsoft Sentinel analytic rules to use the the Advanced SIEM Information Model (ASIM).
19+
This article explains how to convert existing Microsoft Sentinel analytics rules to use [normalizated data](normalization.md) with the Advanced SIEM Information Model (ASIM).
2020

2121
To understand how normalized content fits within the ASIM architecture, refer to the [ASIM architecture diagram](normalization.md#asim-components).
2222

@@ -28,12 +28,18 @@ To understand how normalized content fits within the ASIM architecture, refer to
2828
> ASIM is currently in PREVIEW. The [Azure Preview Supplemental Terms](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) include additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
2929
>
3030
31-
To enable your custom content to use normalization:
31+
## Modify custom content to use normalization
32+
33+
To enable your custom Microsoft Sentinel content to use normalization:
34+
35+
- Modify your queries to use any [unifying parsers](normalization-about-parsers.md) relevant to the query.
36+
37+
- Modify field names in your query to use the [normalized schema](normalization-about-schemas.md) field names.
3238

33-
- Modify your queries to use the unifying parsers relevant to the query.
34-
- Modify field names in your query to use the normalized schema field names.
3539
- When applicable, change conditions to use the normalized values of the fields in your query.
3640

41+
## Sample normalization for analytics rules
42+
3743
For example, consider the **Rare client observed with high reverse DNS lookup count** DNS analytic rule, which works on DNS events send by Infoblox DNS servers:
3844

3945
```kusto
@@ -62,15 +68,14 @@ _Im_Dns(responsecodename='NXDOMAIN')
6268
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr```
6369
```
6470

65-
To use workspace deployed ASIM parsers, replace the first line with the following code:
71+
To use workspace-deployed ASIM parsers, replace the first line with the following code:
6672

6773
```kusto
6874
imDns(responsecodename='NXDOMAIN')
6975
```
76+
### Differences between built-in and workspace-deployed parsers
7077

71-
The two options are functionally identical.
72-
73-
The normalized, source-agnostic version has the following differences:
78+
The two options in the example [above](#sample-normalization-for-analytics-rules) are functionally identical. The normalized, source-agnostic version has the following differences:
7479

7580
- The `_In_Dns` or `imDns`normalized parsers are used instead of the Infoblox Parser.
7681

@@ -81,9 +86,11 @@ The normalized, source-agnostic version has the following differences:
8186
- Parser parameter filtering is used for ResponseCodeName, eliminating the need for an explicit `where` clauses.
8287

8388

84-
Apart from supporting any normalized DNS source, the normalized version is shorter and easier to understand.
89+
>[!NOTE]
90+
> Apart from supporting any normalized DNS source, the normalized version is shorter and easier to understand.
91+
>
8592
86-
If the schema or parsers do not support filtering parameters, the changes are similar, excluding the last one. Instead the filtering conditions are kept from the original query as seen below:
93+
If the schema or parsers do not support filtering parameters, the changes are similar, except that the filtering conditions are kept from the original query. For example:
8794

8895
```kusto
8996
let threshold = 200;

0 commit comments

Comments
 (0)