You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/sentinel/normalization-develop-parsers.md
+47-6Lines changed: 47 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ To understand how parsers fit within the ASIM architecture, refer to the [ASIM a
29
29
> 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.
30
30
31
31
32
-
## Custom parser development process
32
+
## Custom ASIM parser development process
33
33
34
34
The following workflow describes the high level steps in developing a custom ASIM, source-specific parser:
35
35
@@ -461,11 +461,13 @@ You may want to contribute the parser to the primary ASIM distribution. If accep
461
461
462
462
To contribute your parsers:
463
463
464
-
| Step | Description |
465
-
| ---- | ----------- |
466
-
| Develop the parsers | - Develop both a filtering parser and a parameter-less parser.<br>- Create a YAML file for the parser as described in [Deploying Parsers](#deploy-parsers) above.|
467
-
| Test the parsers | - Make sure that your parsers pass all [testings](#test-parsers) with no errors.<br>- If any warnings are left, document them in the parser YAML file as described below. |
468
-
| Contribute | - Create a pull request against the [Microsoft Sentinel GitHub repository](https://github.com/Azure/Azure-Sentinel)<br>- Add to the PR your parsers YAML files to the ASIM parser folders (`/Parsers/ASim<schema>/Parsers`)<br>- Adds representative sample data to the sample data folder (`/Sample Data`) |
464
+
- Develop both a filtering parser and a parameter-less parser.
465
+
- Create a YAML file for the parser as described in [Deploying Parsers](#deploy-parsers) above.
466
+
- Make sure that your parsers pass all [testings](#test-parsers) with no errors. If any warnings are left, [document them](#documenting-accepted-warnings) in the parser YAML file.
467
+
- Create a pull request against the [Microsoft Sentinel GitHub repository](https://github.com/Azure/Azure-Sentinel), including:
468
+
- Your parsers YAML files in the ASIM parser folders (`/Parsers/ASim<schema>/Parsers`)
469
+
- Representative sample data according to the [samples submission guidelines](#samples-submission-guidelines).
470
+
- Test results according to the [test results submission guidelines](#test-results-submission-guidelines).
469
471
470
472
### Documenting accepted warnings
471
473
@@ -483,6 +485,45 @@ Exceptions:
483
485
484
486
The warning specified in the YAML file should be a short form of the warning message uniquely identifying. The value is used to match warning messages when performing automated testings and ignore them.
485
487
488
+
### Samples submission guidelines
489
+
490
+
Sample data is needed when troubleshooting parser issues and for ensuring future updates to the parser conform to older samples. The samples you submit should include any event variant that the parser supports. Make sure that the sample events include all possible event types, event formats and variations such as events representing successful and failed activity. Also make sure that variations in value formats are represented. For example, if a hostname can be represented as an FQDN or a simple hostname, the sample events should include both formats.
491
+
492
+
To submit the event samples, use the following steps:
493
+
494
+
- In the `Logs` screen, run a query that will extract from the source table only the events selected by the parser. For example, for the [Infoblox DNS parser](https://github.com/Azure/Azure-Sentinel/blob/master/Parsers/ASimDns/Parsers/ASimDnsInfobloxNIOS.yaml), use the following query:
495
+
496
+
``` KQL
497
+
Syslog
498
+
| where ProcessName == "named"
499
+
```
500
+
501
+
- Export the results using the **Export to CSV** option to a file named `<EventVendor>_<EventProduct>_<EventSchema>_IngestedLogs.csv`, Where `EventProduct`, `EventProduct`, and `EventSchema` are the values assigned by the parser to those fields.
502
+
503
+
- In the `Logs` screen, run a query that will output the schema or the parser input table. For example, for the same Infoblox DNS parser, the query is:
504
+
505
+
``` KQL
506
+
Syslog
507
+
| getschema
508
+
```
509
+
510
+
- Export the results using the **Export to CSV** option to a file named `<TableName>_schema.csv`, where `TableName` is the name of source table the parser uses.
511
+
512
+
- Include both files in your PR in the folder `/Sample Data/ASIM`. If the file already exists, add your GitHub handle to the name, for example: `<EventVendor>_<EventProduct>_<EventSchema>_SchemaTest_<GitHubHanlde>.csv`
513
+
514
+
### Test results submission guidelines
515
+
516
+
Test results are important to verify the correctness of the parser and understand any reported exception.
517
+
518
+
To submit your test results, use the following steps:
519
+
520
+
- Run the parser tests and described in the [testings](#test-parsers) section.
521
+
522
+
- and export the tests results using the **Export to CSV** option to files named `<EventVendor>_<EventProduct>_<EventSchema>_SchemaTest.csv` and `<EventVendor>_<EventProduct>_<EventSchema>_DataTest.csv` respectively.
523
+
524
+
- Include both files in your PR in the folder `/Parsers/ASim<schema>/Tests`.
Copy file name to clipboardExpand all lines: articles/sentinel/normalization-parsers-list.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,7 @@ To use ASIM authentication parsers, deploy the parsers from the [Microsoft Senti
36
36
- reported by Microsoft 365 Defender for Endpoint, collected using the Microsoft 365 Defender connector.
37
37
- **Linux sign-ins**
38
38
- reported by Microsoft 365 Defender for Endpoint, collected using the Microsoft 365 Defender connector.
39
+
- `su`, `sudu`, and `sshd` activity reported using Syslog.
39
40
- reported by Microsoft Defender to IoT Endpoint.
40
41
- **Azure Active Directory sign-ins**, collected using the Azure Active Directory connector. Separate parsers are provided for regular, Non-Interactive, Managed Identities and Service Principles Sign-ins.
41
42
- **AWS sign-ins**, collected using the AWS CloudTrail connector.
@@ -135,9 +136,10 @@ ASIM Web Session parsers are available in every workspace. Microsoft Sentinel pr
Copy file name to clipboardExpand all lines: articles/sentinel/normalization-schema-web.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -157,7 +157,7 @@ The following are additional fields that are specific to web sessions:
157
157
158
158
| Field | Class | Type | Description |
159
159
| --- | --- | --- | --- |
160
-
| <aname="url"></a>**Url**| Mandatory | String | The HTTP request URL, including parameters. For `HTTPSession` events, the URL should include the schema and server parts. For `WebServerSession` and for `ApiRequest` the URL would typically not include the schema and server, which can be found in the `NetworkApplicationProtocol` and `DstFQDN` fields respectively. <br><br>Example: `https://contoso.com/fo/?k=v&q=u#f`|
160
+
| <aname="url"></a>**Url**| Mandatory | String | The HTTP request URL, including parameters. For `HTTPSession` events, the URL may include the schema and should include the server name. For `WebServerSession` and for `ApiRequest` the URL would typically not include the schema and server, which can be found in the `NetworkApplicationProtocol` and `DstFQDN` fields respectively. <br><br>Example: `https://contoso.com/fo/?k=v&q=u#f`|
161
161
|**UrlCategory**| Optional | String | The defined grouping of a URL or the domain part of the URL. The category is commonly provided by web security gateways and is based on the content of the site the URL points to.<br><br>Example: search engines, adult, news, advertising, and parked domains. |
162
162
|**UrlOriginal**| Optional | String | The original value of the URL, when the URL was modified by the reporting device and both values are provided. |
163
163
|**HttpVersion**| Optional | String | The HTTP Request Version.<br><br>Example: `2.0`|
0 commit comments