Skip to content

Commit 1841bcb

Browse files
authored
Merge pull request #224635 from yoninalmsft/programming-updates
analyze programming updates
2 parents 3c1fa8b + 97ca370 commit 1841bcb

11 files changed

+60
-87
lines changed
Lines changed: 60 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,115 @@
11
---
2-
title: Analyze programming details and changes
3-
description: Enhance forensics by displaying programming events carried out on your network devices and analyzing code changes. This information helps you discover suspicious programming activity.
4-
ms.date: 01/30/2022
2+
title: Analyze programming details and changes on an OT sensor - Microsoft Defender for IoT
3+
description: Discover suspicious programming activity by investigating programming events occurring on your network devices.
4+
ms.date: 02/28/2023
55
ms.topic: how-to
66
---
77

8-
98
# Analyze programming details and changes
109

11-
Enhance forensics by displaying programming events carried out on your network devices and analyzing code changes. This information helps you discover suspicious programming activity, for example:
12-
13-
- Human error: An engineer is programming the wrong device.
14-
15-
- Corrupted programming automation: Programming is erroneously carried out because of automation failure.
16-
17-
- Hacked systems: Unauthorized users logged into a programming device.
18-
19-
You can display a programmed device and scroll through various programming changes carried out on it by other devices.
20-
21-
View code that was added, changed, removed, or reloaded by the programming device. Search for programming changes based on file types, dates, or times of interest.
22-
23-
## When to review programming activity
24-
25-
You may need to review programming activity:
10+
Enhance forensics by displaying programming events occurring on your network devices and analyzing any code changes using the OT sensor. Watching for programming events helps you investigate suspicious programming activity, such as:
2611

27-
- After viewing an alert regarding unauthorized programming
12+
- **Human error**: An engineer programming the wrong device.
13+
- **Corrupted programming automation**: Programming errors due to automation failures.
14+
- **Hacked systems**: Unauthorized users logged into a programming device.
2815

29-
- After a planned update to controllers
16+
Use the **Programming Timeline** tab on your OT network sensor to review programming data, such as when investigating an alert about unauthorized programming, after a planned controller update, or when a process or machine isn't working correctly and you want to understand who made the last update and when.
3017

31-
- When a process or machine isn't working correctly (to see who carried out the last update and when)
18+
Programming activity shown on OT sensors include both *authorized* and *unauthorized* events. Authorized events are performed by devices that are either learned or manually defined as programming devices. Unauthorized events are performed by devices that haven't been learned or manually defined as programming devices.
3219

33-
:::image type="content" source="media/how-to-work-with-maps/differences.png" alt-text="Screenshot of a Programming Change Log":::
34-
35-
Other options let you:
36-
37-
- Mark events of interest with a star.
38-
39-
- Download a *.txt file with the current code.
40-
41-
## About authorized versus unauthorized programming events
20+
> [!NOTE]
21+
> Programming data is available for devices using text based programming protocols, such as DeltaV.
4222
43-
Unauthorized programming events are carried out by devices that haven't been learned or manually defined as programming devices. Authorized programming events are carried out by devices that were resolved or manually defined as programming devices.
23+
## Prerequisites
4424

45-
The Programming Analysis window displays both authorized and unauthorized programming events.
25+
To perform the procedures in this article, make sure that you have:
4626

47-
## Accessing programming details and changes
27+
- An OT sensor installed and configured, with text based programming protocol traffic.
4828

49-
Access the Programming Analysis window from the:
29+
- Access to the sensor as a **Viewer**, **Security analyst** or **Admin** user.
5030

51-
- [Event Timeline](how-to-track-sensor-activity.md)
31+
## Access programming data
5232

53-
- [Unauthorized Programming Alerts](#unauthorized-programming-alerts)
33+
The **Programming Timeline** tab can be accessed from the **Device map**, **Device inventory**, and **Event timeline** pages in the sensor console.
5434

55-
### Event timeline
35+
### Access programming data from the device map
5636

57-
Use the event timeline to display a timeline of events in which programming changes were detected.
37+
1. Sign into the OT sensor console and select **Device map**.
5838

59-
:::image type="content" source="media/how-to-work-with-maps/timeline.png" alt-text="Screenshot of the event timeline.":::
39+
1. In the **Groups** area to the left of the map, select **Filter** > **OT Protocols** > select a text based programming protocol, such as DeltaV.
6040

61-
### Unauthorized programming alerts
41+
1. In the map, right-click on the device you want to analyze, and select **Programming timeline**.
6242

63-
Alerts are triggered when unauthorized programming devices carry out programming activities.
43+
:::image type="content" source="media/analyze-programming/select-programming-timeline-from-device-map.png" alt-text="Screenshot of the programming timeline option from the device map." lightbox="media/analyze-programming/select-programming-timeline-from-device-map.png":::
6444

65-
:::image type="content" source="media/how-to-work-with-maps/unauthorized.png" alt-text="Screenshot of unauthorized programming alerts":::
45+
The device details page opens with the **Programming Timeline** tab open.
46+
47+
### Access programming data from the device inventory
6648

67-
> [!NOTE]
68-
> You can also view basic programming information in the Device Properties window and Device Inventory.
49+
1. Sign into the OT sensor console and select **Device inventory**.
6950

70-
## Working in the programming timeline window
51+
1. Filter the device inventory to show devices using text based programming protocols, such as DeltaV.
7152

72-
This section describes how to view programming files and compare versions. Search for specific files sent to a programmed device. Search for files based on:
53+
1. Select the device you want to analyze, and then select **View full details** to open the device details page.
7354

74-
- Date
55+
1. On the device details page, select the **Programming Timeline** tab.
7556

76-
- File type
57+
For example:
7758

78-
:::image type="content" source="media/how-to-work-with-maps/timeline-view.png" alt-text="Screenshot of a programming timeline window.":::
59+
:::image type="content" source="media/analyze-programming/programming-timeline-window-device-inventory.png" alt-text="Screenshot of programming timeline tab on device details page." lightbox="media/analyze-programming/programming-timeline-window-device-inventory.png":::
7960

80-
|Programming timeline type | Description |
81-
|--|--|
82-
| Programmed Device | Provides details about the device that was programmed, including the hostname and file. |
83-
| Recent Events | Displays the 50 most recent events detected by the sensor. <br />To highlight an event, hover over it and select the star. :::image type="icon" source="media/how-to-work-with-maps/star.png" border="false"::: <br /> The last 50 events can be viewed. |
84-
| Files | Displays the files detected for the chosen date and the file size on the programmed device. <br /> By default, the maximum number of files available for display per device is 300. <br /> By default, the maximum file size for each file is 15 MB. |
85-
| File status :::image type="icon" source="media/how-to-work-with-maps/status-v2.png" border="false"::: | File labels indicate the status of the file on the device, including: <br /> **Added**: the file was added to the endpoint on the date or time selected. <br /> **Updated**: The file was updated on the date or time selected. <br /> **Deleted**: This file was removed. <br /> **No label**: The file wasn't changed. |
86-
| Programming Device | The device that made the programming change. Multiple devices may have carried out programming changes on one programmed device. The hostname, date, or time of change and logged in user are displayed. |
87-
| :::image type="icon" source="media/how-to-work-with-maps/current.png" border="false"::: | Displays the current file installed on the programmed device. |
88-
| :::image type="icon" source="media/how-to-work-with-maps/download-text.png" border="false"::: | Download a text file of the code displayed. |
89-
| :::image type="icon" source="media/how-to-work-with-maps/compare.png" border="false"::: | Compare the current file with the file detected on a selected date. |
61+
### Access programming data from the event timeline
9062

91-
### Choose a file to review
63+
Use the event timeline to display a timeline of events in which programming changes were detected.
9264

93-
This section describes how to choose a file to review.
65+
1. Sign into the OT sensor console and select **Event timeline**.
9466

95-
**To choose a file to review:**
67+
1. Filter the event timeline for devices using text based programming protocols, such as **DeltaV**.
9668

97-
1. Select an event from the **Recent Events** pane
69+
1. Select the event you want to analyze to open the event details pane on the right, and then select **Programming timeline**.
9870

99-
2. Select a file from the File pane. The file appears in the Current pane.
71+
## View programming details
10072

101-
:::image type="content" source="media/how-to-work-with-maps/choose-file.png" alt-text="Screenshot of selecting the file you want to work with.":::
73+
The **Programming Timeline** tab shows details about each device that was programmed. Select an event and a file to view full programming details on the right. In the **Programming Timeline** tab:
10274

103-
### Compare files
75+
- The **Recent Events** area lists the 50 most recent events detected by the OT sensor. Hover over an event period select the star to mark the event as an **Important** event.
10476

105-
This section describes how to compare programming files.
77+
- The **Files** area lists programming files detected for the selected device. The OT sensor can display a maximum of 300 files per device, where each file has a maximum size of 15 MB. The **Files** area lists each file's name and size, and one of the following statuses to indicate the programming event that occurred:
10678

107-
**To compare:**
79+
- **Added**: The programming file was added to the endpoint
80+
- **Updated**: The programming file was updated on the endpoint
81+
- **Deleted**: The programming file was removed from the endpoint
82+
- **Unknown**: No changes were detected for the programming file
10883

109-
1. Select an event from the Recent Events pane.
84+
- When a programming file is opened on the right, the device that was programmed is listed as the *programmed asset*. Multiple devices may have made programming changes on the device. Devices that made changes are listed as the *programming assets*, and details include the hostname, when the change was made, and the user that was signed in to the device at the time.
11085

111-
2. Select a file from the File pane. The file appears in the Current pane. You can compare this file to other files.
86+
> [!TIP]
87+
> Select the :::image type="icon" source="media/analyze-programming/download-icon.png" border="false"::: download button to download a copy of the currently displayed programming file.
11288
113-
3. Select the compare indicator.
89+
For example:
11490

115-
:::image type="content" source="media/how-to-work-with-maps/compare.png" alt-text="Screenshot of the compare indicator.":::
91+
:::image type="content" source="media/analyze-programming/programming-timeline-2.png" alt-text="Screenshot of viewing programming details in programming timeline." lightbox="media/analyze-programming/programming-timeline-2.png":::
11692

117-
The window displays all dates the selected file was detected on the programmed device. The file may have been updated on the programmed device by multiple programming devices.
93+
## Compare programming detail files
11894

119-
The number of differences detected appears in the upper right-hand corner of the window. You may need to scroll down to view differences.
95+
This procedure describes how to compare multiple programming detail files to identify discrepancies or investigate them for suspicious activity.
12096

121-
:::image type="content" source="media/how-to-work-with-maps/scroll.png" alt-text="Screenshot of scrolling down to your selection.":::
97+
**To compare files:**
12298

123-
The number is calculated by adjacent lines of changed text. For example, if eight consecutive lines of code were changed (deleted, updated, or added) this will be calculated as one difference.
99+
1. Open a programming file from an alert or from the **Device map** or **Device inventory** pages.
124100

125-
:::image type="content" source="media/how-to-work-with-maps/program-timeline.png" alt-text="Screenshot of the programming timeline view." lightbox="media/how-to-work-with-maps/program-timeline.png":::
101+
1. With your first file open, select the compare :::image type="icon" source="media/analyze-programming/compare-icon.png" border="false"::: button.
126102

127-
4. Select a date. The file detected on the selected date appears in the window.
103+
1. In the **Compare** pane, select a file for comparison by selecting the scale icon under **Action** next to the file. For example:
128104

129-
5. The file selected from the Recent Events/Files pane always appears on the right.
105+
:::image type="content" source="media/analyze-programming/compare-file-pane.png" alt-text="Screenshot of compare files pane." lightbox="media/analyze-programming/compare-file-pane.png":::
130106

131-
## Device programming information: Other locations
107+
The selected file opens up in a new pane for side-by-side comparison with the first file. The current file installed on the programmed device is labeled *Current* at the top of the file.
132108

133-
In addition to reviewing details in the Programming Timeline, you can access programming information in the Device Properties window and the Device Inventory.
109+
:::image type="content" source="media/analyze-programming/compare-files-side-by-side.png" alt-text="Screenshot of programming file comparison side by side." lightbox="media/analyze-programming/compare-files-side-by-side.png":::
134110

135-
| Device type | Description |
136-
|--|--|
137-
| Device properties | The device properties window provides information on the last programming event detected on the device. |
138-
| The device inventory | The device inventory indicates if the device is a programming device. <br> :::image type="content" source="media/how-to-work-with-maps/inventory-v2.png" alt-text="Screenshot of the device inventory page."::: |
111+
Scroll through the files to see the programming details and any differences between the files. Differences between the two files are highlighted in green and red.
139112

140113
## Next steps
141114

142-
For more information, see [Import device information to a sensor](how-to-import-device-information.md).
115+
For more information, see [Import device information to a sensor](how-to-import-device-information.md).
168 KB
Loading
196 KB
Loading
1.05 KB
Loading
2.14 KB
Loading
380 Bytes
Loading
5.71 KB
Loading
154 KB
Loading
77.7 KB
Loading
160 KB
Loading

0 commit comments

Comments
 (0)