|
1 | 1 | ---
|
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 |
5 | 5 | ms.topic: how-to
|
6 | 6 | ---
|
7 | 7 |
|
8 |
| - |
9 | 8 | # Analyze programming details and changes
|
10 | 9 |
|
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: |
26 | 11 |
|
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. |
28 | 15 |
|
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. |
30 | 17 |
|
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. |
32 | 19 |
|
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. |
42 | 22 |
|
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 |
44 | 24 |
|
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: |
46 | 26 |
|
47 |
| -## Accessing programming details and changes |
| 27 | +- An OT sensor installed and configured, with text based programming protocol traffic. |
48 | 28 |
|
49 |
| -Access the Programming Analysis window from the: |
| 29 | +- Access to the sensor as a **Viewer**, **Security analyst** or **Admin** user. |
50 | 30 |
|
51 |
| -- [Event Timeline](how-to-track-sensor-activity.md) |
| 31 | +## Access programming data |
52 | 32 |
|
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. |
54 | 34 |
|
55 |
| -### Event timeline |
| 35 | +### Access programming data from the device map |
56 | 36 |
|
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**. |
58 | 38 |
|
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. |
60 | 40 |
|
61 |
| -### Unauthorized programming alerts |
| 41 | +1. In the map, right-click on the device you want to analyze, and select **Programming timeline**. |
62 | 42 |
|
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"::: |
64 | 44 |
|
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 |
66 | 48 |
|
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**. |
69 | 50 |
|
70 |
| -## Working in the programming timeline window |
| 51 | +1. Filter the device inventory to show devices using text based programming protocols, such as DeltaV. |
71 | 52 |
|
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. |
73 | 54 |
|
74 |
| - - Date |
| 55 | +1. On the device details page, select the **Programming Timeline** tab. |
75 | 56 |
|
76 |
| - - File type |
| 57 | + For example: |
77 | 58 |
|
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"::: |
79 | 60 |
|
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 |
90 | 62 |
|
91 |
| -### Choose a file to review |
| 63 | +Use the event timeline to display a timeline of events in which programming changes were detected. |
92 | 64 |
|
93 |
| -This section describes how to choose a file to review. |
| 65 | +1. Sign into the OT sensor console and select **Event timeline**. |
94 | 66 |
|
95 |
| -**To choose a file to review:** |
| 67 | +1. Filter the event timeline for devices using text based programming protocols, such as **DeltaV**. |
96 | 68 |
|
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**. |
98 | 70 |
|
99 |
| -2. Select a file from the File pane. The file appears in the Current pane. |
| 71 | +## View programming details |
100 | 72 |
|
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: |
102 | 74 |
|
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. |
104 | 76 |
|
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: |
106 | 78 |
|
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 |
108 | 83 |
|
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. |
110 | 85 |
|
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. |
112 | 88 |
|
113 |
| -3. Select the compare indicator. |
| 89 | +For example: |
114 | 90 |
|
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"::: |
116 | 92 |
|
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 |
118 | 94 |
|
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. |
120 | 96 |
|
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:** |
122 | 98 |
|
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. |
124 | 100 |
|
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. |
126 | 102 |
|
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: |
128 | 104 |
|
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"::: |
130 | 106 |
|
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. |
132 | 108 |
|
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"::: |
134 | 110 |
|
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. |
139 | 112 |
|
140 | 113 | ## Next steps
|
141 | 114 |
|
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). |
0 commit comments