Adversaries may change the operating mode of a controller to gain additional access to engineering functions such as Program Download. Programmable controllers typically have several modes of operation that control the state of the user program and control access to the controllers API. Operating modes can be physically selected using a key switch on the face of the controller but may also be selected with calls to the controllers API. Operating modes and the mechanisms by which they are selected often vary by vendor and product line. Some commonly implemented operating modes are described below:
ID | Name | Description |
---|---|---|
S1045 | INCONTROLLER |
INCONTROLLER can establish a remote HTTP connection to change the operating mode of Omron PLCs.[5][6] |
S1006 | PLC-Blaster |
PLC-Blaster stops the execution of the user program on the target to enable the transfer of its own code. The worm then copies itself to the target and subsequently starts the target PLC again. [7] |
S1009 | Triton |
Triton has the ability to halt or run a program through the TriStation protocol. TsHi.py contains instances of halt and run functions being executed. [8] |
ID | Asset |
---|---|
A0003 | Programmable Logic Controller (PLC) |
A0010 | Safety Controller |
ID | Mitigation | Description |
---|---|---|
M0801 | Access Management |
Authenticate all access to field controllers before authorizing access to, or modification of, a device's state, logic, or programs. Centralized authentication techniques can help manage the large number of field controller accounts needed across the ICS. |
M0800 | Authorization Enforcement |
All field controllers should restrict operating mode changes to only required authenticated users (e.g., engineers, field technicians), preferably through implementing a role-based access mechanism. Further, physical mechanisms (e.g., keys) can also be used to limit unauthorized operating mode changes. |
M0802 | Communication Authenticity |
Protocols used for device management should authenticate all network messages to prevent unauthorized system changes. |
M0804 | Human User Authentication |
All field controllers should require users to authenticate for all remote or local management sessions. The authentication mechanisms should also support Account Use Policies, Password Policies, and User Account Management. |
M0807 | Network Allowlists |
Use host-based allowlists to prevent devices from accepting connections from unauthorized systems. For example, allowlists can be used to ensure devices can only connect with master stations or known management/engineering workstations. [9] |
M0930 | Network Segmentation |
Segment operational network and systems to restrict access to critical system functions to predetermined management systems. [9] |
M0813 | Software Process and Device Authentication |
Authenticate connections fromsoftware and devices to prevent unauthorized systems from accessing protected management functions. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0015 | Application Log | Application Log Content |
Monitor device application logs which may contain information related to operating mode changes, although not all devices produce such logs. |
DS0029 | Network Traffic | Network Traffic Content |
Monitor ICS management protocols for functions that change an asset’s operating mode. |
DS0040 | Operational Databases | Device Alarm |
Monitor alarms for information about when an operating mode is changed, although not all devices produce such logs. |