Skip to content

Commit 8d83e1f

Browse files
authored
Merge pull request #169955 from ElazarK/event-aggrefation-anat
Update concept-event-aggregation.md
2 parents 6cc5825 + f21e49f commit 8d83e1f

File tree

1 file changed

+81
-51
lines changed

1 file changed

+81
-51
lines changed

articles/defender-for-iot/device-builders/concept-event-aggregation.md

Lines changed: 81 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,139 @@
11
---
22
title: Micro agent event collection (Preview)
33
description: Defender for IoT security agents collects data and system events from your local device, and sends the data to the Azure cloud for processing, and analytics.
4-
ms.date: 07/15/2021
4+
ms.date: 10/11/2021
55
ms.topic: conceptual
66
---
77

88
# Micro agent event collection (Preview)
99

10-
Defender for IoT security agents collects data and system events from your local device, and sends the data to the Azure cloud for processing, and analytics. The Defender for IoT micro agent collects many types of device events including new processes, and all new connection events. Both the new process, and new connection events may occur frequently on a device within a second. This ability is important for comprehensive security, however, the number of messages the security agents send may quickly meet, or exceed your IoT Hub quota, and cost limits. In any case, these events contain highly valuable security information that is crucial to protecting your device.
10+
Defender for IoT security agents collects data, and system events from your local device, and sends the data to the Azure cloud for processing, and analytics. The Defender for IoT micro agent collects many types of device events including new processes, and all new connection events. Both the new process, and new connection events may occur frequently on a device. This capability is important for comprehensive security, however, the number of messages the security agents send may quickly meet, or exceed your IoT Hub quota, and cost limits. These messages, and events contain highly valuable security information that is crucial to protecting your device.
1111

12-
To reduce the extra quota, and costs while keeping your devices protected, Defender for IoT agents aggregates these types of events:
12+
To reduce the number of messages, and costs while maintaining your device's security, Defender for IoT agents aggregates the following types of events:
1313

14-
- ProcessCreate (Linux only)
14+
- ProcessCreate (Linux only)
15+
16+
- Login activity (Linux only)
1517

1618
- Network ConnectionCreate
1719

1820
- System information
1921

2022
- Baseline
2123

22-
Event based collectors are collectors that are triggered based on corresponding activity from within the device. For example, a process was started in the device.
24+
Event-based collectors are collectors that are triggered based on corresponding activity from within the device. For example, ``a process was started in the device``.
2325

2426
Triggered based collectors are collectors that are triggered in a scheduled manner based on the customer's configurations.
2527

26-
## How does event aggregation work?
28+
## How does event aggregation work?
2729

28-
Defender for IoT agents aggregate events for the interval period, or time window. Once the interval period has passed, the agent sends the aggregated events to the Azure cloud for further analysis. The aggregated events are stored in memory until being sent to the Azure cloud.
30+
Defender for IoT agents aggregate events for the interval period, or time window. Once the interval period has passed, the agent sends the aggregated events to the Azure cloud for further analysis. The aggregated events are stored in memory until being sent to the Azure cloud.
2931

30-
The agent collects identical events to the ones that are already stored in memory. This collection causes the agent to increases the hit count of this specific event to reduce the memory footprint of the agent. When the aggregation time window passes, the agent sends the hit count of each type of event that occurred. Event aggregation is simply the aggregation of the hit counts of each collected type of event.
32+
The agent collects identical events to the ones that are already stored in memory. This collection causes the agent increases the hit count of this specific event to reduce the memory footprint of the agent. When the aggregation time window passes, the agent sends the hit count of each type of event that occurred. Event aggregation is simply the aggregation of the hit counts of each collected type of event.
3133

3234
## Process events (event based)
3335

34-
Process events are supported on Linux operating systems.
35-
36-
Process events are considered identical when the *command line*, and *userid* are identical.
37-
38-
The default buffer for process events is 256 processes. When this limit is hit, the buffer will cycle, and the oldest event is discarded in order to make room for the newest processed event. A warning to increase the cache size will be logged.
39-
40-
### Data collection
41-
42-
The data collected for each event:
43-
44-
- **Timestamp** - the first time the process was observed.
36+
Process events are supported on Linux operating systems.
4537

46-
- **Process_id** - The Linux PID.
38+
Process events are considered identical when the *command line*, and *userid* are identical.
4739

48-
- **Parent_process_id** - Linux parent PID, if it exists.
40+
The default buffer for process events is 256 processes. When this limit is met, the buffer will cycle, and the oldest process event is discarded in order to make room for the newest processed event. A warning to increase the cache size will be logged.
4941

50-
- **Commandline** - The command line.
42+
The data collected for each event is:
5143

52-
- **Type** - Can be either `fork`, or `exec`.
44+
| Parameter | Description|
45+
|--|--|
46+
| **Timestamp** | The first time the process was observed. |
47+
| **process_id** | The Linux PID. |
48+
| **parent_process_id** | The Linux parent PID, if it exists. |
49+
| **Commandline** | The command line. |
50+
| **Type** | Can be either `fork`, or `exec`. |
51+
| **hit_count** | The aggregate count. The number of executions of the same process, during the same time frame, until the events are sent to the cloud. |
5352

54-
- **hit_count** - The aggregate count. The number of executions of the same process, during the same time frame, until the events are sent to the cloud.
55-
56-
## Network Connection events (event based collector)
53+
## Network Connection events (event-based collector)
5754

5855
Network Connection events are considered identical when the local port, remote port, transport protocol, local address, and remote address are identical.
5956

60-
The default buffer for network connection events is 256. In situations where the cache is full:
57+
The default buffer for a network connection event is 256. For situations where the cache is full:
6158

62-
- **Azure RTOS devices**: No new network events will be cached until the next collection cycle.
59+
- **Azure RTOS devices**: No new network events will be cached until the next collection cycle starts.
6360

6461
- **Linux devices**: The oldest event will be replaced by every new event. A warning to increase the cache size will be logged.
6562

66-
For Linux device only IPv4 is supported.
67-
68-
### Data collection
69-
70-
The data collected for each event:
63+
For Linux devices, only IPv4 is supported.
7164

72-
- **Local address**The source address of the connection.
65+
The data collected for each event is:
7366

74-
- **Remote address** – The destination address of the connection.
67+
| Parameter | Description|
68+
|--|--|
69+
| **Local address** | The source address of the connection. |
70+
| **Remote address** | The destination address of the connection. |
71+
| **Local port** | The source port of the connection. |
72+
| **Remote port** | The destination port of the connection. |
73+
| **Bytes_in** | The total aggregated RX bytes of the connection. |
74+
| **Bytes_out** | The total aggregated TX bytes of the connection. |
75+
| **Transport_protocol** | Can be TCP, UDP, or ICMP. |
76+
| **Application protocol** | The application protocol associated with the connection. |
77+
| **Extended properties** | The Additional details of the connection. For example, `host name`. |
7578

76-
- **Local port** - The source port of the connection.
79+
## Login collector (event-based collector)
7780

78-
- **Remote port** - The destination port of the connection.
81+
The Login collector, collects user logins, logouts, and failed login attempts.
7982

80-
- **Bytes_in** – The total aggregated RX bytes of the connection.
83+
Currently SSH, and Telnet are fully supported.
8184

82-
- **Bytes_out**The total aggregated TX bytes of the connection.
85+
The following data is collected:
8386

84-
- **Transport_protocol** – Can be TCP, UDP, or ICMP.
87+
| Parameter | Description|
88+
|--|--|
89+
| **operation** | The Login, Logout, or LoginFailed. |
90+
| **process_id** | The Linux PID. |
91+
| **user_name** | The Linux user. |
92+
| **executable** | The terminal device. For example, tty1..6, or pts/n. |
93+
| **remote_address** | The source of connection, either remote IP in IPv6 or IPv4 format, or 127.0.0.1/0.0.0.0 to indicate local connection. |
8594

86-
- **Application protocol** – The application protocol associated with the connection.
95+
> [!Note]
96+
> A login event is captured when a terminal is opened on a device, before the user actually logs in. This event has a TTY process, login event type, and a username. For example, `LOGIN`.
8797
88-
- **Extended properties** – Additional details of the connection. For example, `host name`.
98+
## System information (trigger based collector))
8999

90-
## Baseline (trigger based)
100+
The data collected for each event is:
91101

92-
The baseline collector performs CIS checks periodically. Only the failed results are sent to the cloud. The cloud aggregates the results, and provides recommendations.
102+
| Parameter | Description|
103+
|--|--|
104+
| **hardware_vendor** | The name of the vendor of the device. |
105+
| **hardware_model** | The model number of the device. |
106+
| **os_dist** | The distribution of the operating system. For example, `Linux`. |
107+
| **os_version** | The version of the operating system. For example, `Windows 10`, or `Ubuntu 20.04.1`. |
108+
| **os_platform** | The OS of the device. |
109+
| **os_arch** | The architecture of the OS. For example, `x86_64`. |
110+
| **nics** | The network interface controller. The full list of properties are listed below. |
93111

94-
### Data collection
112+
The **nics** properties are composed of the following;
95113

96-
The data collected for each event:
114+
| Parameter | Description|
115+
|--|--|
116+
|**type** | one of the following values: `UNKNOWN`, `ETH`, `WIFI`, `MOBILE`, or `SATELLITE`. |
117+
| **vlans** | The virtual lan associated with the network interface. |
118+
| **vendor** | The vendor of the network controller. |
119+
| **info** | IPS, and MACs associated with the network controller. This Includes the following fields; <br> - **ipv4_address**: The IPv4 address. <br> - **ipv6_address**: The IPv6 address. <br> - **mac**: The MAC address.|
97120

98-
- **Check ID** – In CIS format, CIS-debian-9-Filesystem-1.1.2.
121+
## Baseline (trigger based)
99122

100-
- **Check result** - Can be `Error`, or `Fail`. For example, `Error` in a situation where the check can’t run.
123+
The baseline collector performs CIS checks periodically. Only the failed results are sent to the cloud. The cloud aggregates the results, and provides recommendations.
101124

102-
- **Error** - The error's information, and description.
125+
### Data collection
103126

104-
- **Description**The description of the check from CIS.
127+
The data collected for each event is:
105128

106-
- **Remediation** – The recommendation for remediation from CIS.
129+
| Parameter | Description|
130+
|--|--|
131+
| **Check ID** | In CIS format. For example, `CIS-debian-9-Filesystem-1.1.2`. |
132+
| **Check result** | Can be `Error`, or `Fail`. For example, `Error` in a situation where the check can’t run. |
133+
| **Error** | The error's information, and description. |
134+
| **Description** | The description of the check from CIS. |
135+
| **Remediation** | The recommendation for remediation from CIS. |
136+
| **Severity** | The severity level. |
107137

108138
## Next steps
109139

0 commit comments

Comments
 (0)