Skip to content

Commit cb03332

Browse files
authored
Merge pull request #312621 from yummyblabla/derricklee/introduce-asset-schema
[Sentinel] [ASIM] Add asset schema doc
2 parents d46b221 + 68b1171 commit cb03332

6 files changed

Lines changed: 252 additions & 25 deletions

articles/sentinel/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,6 +982,8 @@
982982
items:
983983
- name: ASIM alert event schema
984984
href: normalization-schema-alert.md
985+
- name: ASIM asset entity schema
986+
href: normalization-schema-asset.md
985987
- name: ASIM audit event schema
986988
href: normalization-schema-audit.md
987989
- name: ASIM authentication schema

articles/sentinel/normalization-about-parsers.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ The following table lists the available unifying parsers:
4040
| Schema | Unifying parser |
4141
| ------ | ------------------------- |
4242
| Alert Event | _Im_AlertEvent |
43+
| Asset Entity | _Im_AssetEntity |
4344
| Audit Event | _Im_AuditEvent |
4445
| Authentication | _Im_Authentication |
4546
| DHCP Event | _Im_DhcpEvent |

articles/sentinel/normalization-about-schemas.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ ms.author: ofshezaf
1313

1414
# Advanced Security Information Model (ASIM) schemas
1515

16-
An Advanced Security Information Model ([ASIM](normalization.md)) schema is a set of fields that represent an activity. Using the fields from a normalized schema in a query ensures that the query will work with every normalized source.
16+
An Advanced Security Information Model ([ASIM](normalization.md)) schema is a set of fields that represent an activity or entity. Using the fields from a normalized schema in a query ensures that the query will work with every normalized source.
1717

1818
To understand how schemas fit within the ASIM architecture, refer to the [ASIM architecture diagram](normalization.md#asim-components).
1919

20-
Schema references outline the fields that comprise each schema. ASIM currently defines the following schemas:
20+
## Activity/Event Schemas
21+
22+
Schema references outline the fields that comprise each schema. ASIM currently defines the following schemas for events:
2123

2224
| Schema | Version | Status |
2325
| ------ | ------- | ------ |
@@ -33,13 +35,21 @@ Schema references outline the fields that comprise each schema. ASIM currently d
3335
| [User Management](normalization-schema-user-management.md) | 0.1.2 | GA |
3436
| [Web Session](normalization-schema-web.md) | 0.2.7 | GA |
3537

38+
## Entity Schemas
39+
40+
ASIM currently defines the following schemas for entities:
41+
42+
| Schema | Version | Status |
43+
| ------ | ------- | ------ |
44+
| [Asset Entity](normalization-schema-asset.md) | 0.1.0 | GA |
45+
3646
## Field naming
3747

3848
At the core of each schema are its field names. Field names belong to the following groups:
3949

4050
- Fields common to all schemas.
4151
- Fields specific to a schema.
42-
- Fields that represent entities, such as users, which take part in the schema. Fields that represent entities [are similar across schemas](#entities).
52+
- Fields that represent entities, such as users, which take part in the schema. Fields that represent entities [are similar across schemas](#event-entities).
4353

4454
When sources have fields that aren't presented in the documented schema, they're normalized to maintain consistency. If the extra fields represent an entity, they'll be normalized based on the entity field guidelines. Otherwise, the schemas strive to keep consistency across all schemas.<br><br> For example, while DNS server activity logs don't provide user information, DNS activity logs from an endpoint might include user information, which can be normalized according to the user entity guidelines.
4555

@@ -57,11 +67,11 @@ Fields might have several classes, which define when the fields should be implem
5767
- **Conditional** fields are mandatory if the field they follow is populated. Conditional fields are typically used to describe the value in another field. For example, the common field [DvcIdType](normalization-common-fields.md#dvcidtype) describes the value int the common field [DvcId](normalization-common-fields.md#dvcid) and is therefore mandatory if the latter is populated.
5868
- **Alias** is a special type of a conditional field, and is mandatory if the aliased field is populated.
5969

60-
## Entities
70+
## Event Entities
6171

6272
Events evolve around entities, such as users, hosts, processes, or files. Each entity might require several fields to describe it. For example, a host might have a name and an IP address.
6373

64-
A single record might include multiple entities of the same type, such as both a source and destination host. <br><br>ASIM defines how to describe entities consistently, and entities allow for extending the schemas. <br><br>For example, while the Network Session schema doesn't include process information, some event sources do provide process information that can be added. For more information, see [Entities](#entities).
74+
A single record might include multiple entities of the same type, such as both a source and destination host. <br><br>ASIM defines how to describe entities consistently, and entities allow for extending the schemas. <br><br>For example, while the Network Session schema doesn't include process information, some event sources do provide process information that can be added. For more information, see [Entities](#event-entities).
6575

6676
To enable entity functionality, entity representation has the following guidelines:
6777

articles/sentinel/normalization-develop-parsers.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ Microsoft Sentinel provides handy functions for common lookup values. For exampl
262262
| invoke _ASIM_ResolveDnsResponseCode('DnsResponseCode')
263263
```
264264

265-
The first option accepts as a parameter the value to lookup and let you choose the output field and therefore useful as a general lookup function. The second option is more geared towards parsers, takes as input the name of the source field, and updates the needed ASIM field, in this case `DnsResponseCodeName`.
265+
The first option accepts as a parameter the value to look up and let you choose the output field and therefore useful as a general lookup function. The second option is more geared towards parsers, takes as input the name of the source field, and updates the needed ASIM field, in this case `DnsResponseCodeName`.
266266

267267
For a full list of ASIM help functions, refer to [ASIM functions](normalization-functions.md)
268268

@@ -280,7 +280,7 @@ In addition to the fields available from the source, a resulting ASIM event incl
280280
EventSchema = 'ProcessEvent'
281281
```
282282

283-
Another type of enrichment fields that your parsers should set are type fields, which designate the type of the value stored in a related field. For example, the `SrcUsernameType` field designates the type of value stored in the `SrcUsername` field. You can find more information about type fields in the [entities description](normalization-about-schemas.md#entities).
283+
Another type of enrichment fields that your parsers should set are type fields, which designate the type of the value stored in a related field. For example, the `SrcUsernameType` field designates the type of value stored in the `SrcUsername` field. You can find more information about type fields in the [entities description](normalization-about-schemas.md#event-entities).
284284

285285
In most cases, types are also assigned a constant value. However, in some cases the type has to be determined based on the actual value, for example:
286286

@@ -327,7 +327,7 @@ For example, when parsing a custom log table, use the following to remove the re
327327
>[!IMPORTANT]
328328
> The different variants represent *different* event types, commonly mapped to different schemas, develop separate parsers
329329

330-
In many cases, events in an event stream include variants that require different parsing logic. To parse different variants in a single parser either use conditional statements such as `iff` and `case`, or use a union structure.
330+
In many cases, events in an eventstream include variants that require different parsing logic. To parse different variants in a single parser either use conditional statements such as `iff` and `case`, or use a union structure.
331331

332332
To use `union` to handle multiple variants, create a separate function for each variant and use the union statement to combine the results:
333333

@@ -430,7 +430,7 @@ To make sure that your parser produces valid values, use the ASIM data tester by
430430
<parser name> | limit <X> | invoke ASimDataTester ('<schema>')
431431
```
432432

433-
Specifying a schema is optional. If a schema is not specified, the `EventSchema` field is used to identify the schema the event should adhere to. Ig an event does not include an `EventSchema` field, only common fields will be verified. If a schema is specified as a parameter, this schema will be used to test all records. This is useful for older parsers that do not set the `EventSchema` field.
433+
Specifying a schema is optional. If a schema is not specified, the `EventSchema` field is used to identify the schema the event should adhere to. If an event does not include an `EventSchema` field, only common fields will be verified. If a schema is specified as a parameter, this schema will be used to test all records. This is useful for older parsers that do not set the `EventSchema` field.
434434

435435
> [!NOTE]
436436
> Even when a schema is not specified, empty parentheses are needed after the function name.

0 commit comments

Comments
 (0)