Skip to content

Commit 4edff9a

Browse files
committed
asim/update-parser-contrib-and-more
1 parent 00344b4 commit 4edff9a

File tree

3 files changed

+51
-8
lines changed

3 files changed

+51
-8
lines changed

articles/sentinel/normalization-develop-parsers.md

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ To understand how parsers fit within the ASIM architecture, refer to the [ASIM a
2929
> 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.
3030

3131

32-
## Custom parser development process
32+
## Custom ASIM parser development process
3333

3434
The following workflow describes the high level steps in developing a custom ASIM, source-specific parser:
3535

@@ -461,11 +461,13 @@ You may want to contribute the parser to the primary ASIM distribution. If accep
461461

462462
To contribute your parsers:
463463

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).
469471

470472
### Documenting accepted warnings
471473

@@ -483,6 +485,45 @@ Exceptions:
483485

484486
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.
485487

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`.
525+
526+
486527
## Next steps
487528

488529
This article discusses developing ASIM parsers.

articles/sentinel/normalization-parsers-list.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ To use ASIM authentication parsers, deploy the parsers from the [Microsoft Senti
3636
- reported by Microsoft 365 Defender for Endpoint, collected using the Microsoft 365 Defender connector.
3737
- **Linux sign-ins**
3838
- reported by Microsoft 365 Defender for Endpoint, collected using the Microsoft 365 Defender connector.
39+
- `su`, `sudu`, and `sshd` activity reported using Syslog.
3940
- reported by Microsoft Defender to IoT Endpoint.
4041
- **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.
4142
- **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
135136

136137
| **Source** | **Notes** | **Parser** |
137138
| --- | --------------------------- | ------------------------------ |
139+
| **Palo Alto PanOS threat logs** | Collected using CEF. | `_Im_WebSession_PaloAltoCEF` |
138140
| **Squid Proxy** | | `_Im_WebSession_SquidProxyVxx` |
139141
| **Vectra AI Streams** | Supports the [pack](normalization-about-parsers.md#the-pack-parameter) parameter. | `_Im_WebSession_VectraAIVxx` |
140-
| **Zscaler ZIA** | Collected using CEF | `_Im_WebSessionZscalerZIAVxx` |
142+
| **Zscaler ZIA** | Collected using CEF. | `_Im_WebSessionZscalerZIAVxx` |
141143

142144
Deploy the workspace deployed parsers version from the [Microsoft Sentinel GitHub repository](https://aka.ms/DeployASIM).
143145

articles/sentinel/normalization-schema-web.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ The following are additional fields that are specific to web sessions:
157157

158158
| Field | Class | Type | Description |
159159
| --- | --- | --- | --- |
160-
| <a name="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&amp;q=u#f` |
160+
| <a name="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&amp;q=u#f` |
161161
| **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. |
162162
| **UrlOriginal** | Optional | String | The original value of the URL, when the URL was modified by the reporting device and both values are provided. |
163163
| **HttpVersion** | Optional | String | The HTTP Request Version.<br><br>Example: `2.0` |

0 commit comments

Comments
 (0)