Persistence in an industrial environment often lives where endpoint tools cannot look: in controller logic, device firmware, engineering project files and credentials that the asset owner cannot change. ATT&CK for ICS describes the Persistence tactic (TA0110) as the adversary "trying to maintain their foothold in your ICS environment" across restarts, changed credentials and other interruptions, including by replacing or hijacking code, firmware and project files. Rebuilding a Windows HMI does not remove a modified PLC program or a malicious firmware image, and a password reset does not help if the credential is hardcoded. This guide covers the five Persistence techniques and five sub-techniques in ATT&CK v20, how campaigns used them, the mitigations MITRE maps, the v20 detection strategies and how to plan integrity checks and recovery. It is written for control system engineers, OT security engineers and incident responders, and builds on the MITRE ATT&CK for ICS Guide without repeating the matrix overview.
Key takeaways
- Valid Accounts is the most observed persistence route. T0859 has 8 recorded procedure examples in v20, including both Ukraine power grid attacks and the Triton safety system attack.
- Controllers and firmware are persistence locations. Modify Program (T0889) and System Firmware (T1693.001) have 4 examples each, and both survive a rebuild of every Windows host on site.
- Insecure credentials are a v20 technique in their own right. Default Credentials (T1694.001) has 4 examples, covering the Unitronics defacements, the 2026 U.S. water utility attacks and the 2025 Poland wiper attacks.
- Integrity controls carry most of the mapped mitigations. Access Management (M0801) and Audit (M0947) each map to 7 of the 10 techniques and sub-techniques, and Code Signing (M0945) to 6.
- Recovery depends on known-good copies. Without verified offline backups of logic, configuration and firmware, an operator cannot prove that persistence has been removed.
Where Persistence sits in an ICS intrusion
Persistence follows Initial Access and often overlaps with Lateral Movement: two of the five techniques (Valid Accounts and Insecure Credentials) are listed under both tactics, and Modify Firmware also sits under Inhibit Response Function and Impair Process Control. That overlap is the point. The same change that keeps an adversary in place on a controller can also be the change that disables protection or alters the process.
To see how the tactic is used, we counted the "uses" relationships in the official ATT&CK v20 ICS dataset (ics-attack-20.0.json; groups, software and campaigns, excluding revoked and deprecated objects). 15 entities have a Persistence procedure: 7 campaigns, 5 software families and 3 groups (ALLANITE, CyberAv3ngers and OilRig), with 23 procedure examples in total. The records show three layers of persistence.
| Layer | Recorded example in ATT&CK v20 | What survives |
|---|---|---|
| Identity | Sandworm Team used valid accounts to move through VPN connections and dual-homed systems in the 2015 and 2016 Ukraine attacks; BlackEnergy created new administrator accounts to maintain presence; TEMP.Veles used valid credentials through RDP jump boxes in the Triton attack | Reimaging hosts, unless every affected account and credential is also reset |
| Engineering artefacts and controller logic | Stuxnet copied itself into Step 7 projects so that it ran when the project was opened; PLC-Blaster copied itself into program organisation units; the 2026 U.S. Water Utilities Attacks altered control logic on internet-exposed PLCs | Rebuilding workstations, and even reinstalling engineering software, if infected project files are restored |
| Firmware | Sandworm Team overwrote serial-to-Ethernet gateways with custom firmware in 2015; the 2025 Poland Wiper Attacks corrupted RTU firmware; the FrostyGoop incident involved a firmware downgrade; Triton could change running firmware in memory on the safety controller | Power cycling and program reloads; sometimes only hardware replacement restores trust |
The AA23-335A advisory on the Unitronics campaign shows a fourth effect that defenders should plan for: locking the owner out. CISA describes the actors erasing ladder logic, renaming devices, changing the communication port from 20256 to 20257, disabling upload and download functions and adding password protection to upload settings, so operators could not easily connect to recover.
The techniques in ATT&CK v20
ATT&CK v20 lists five Persistence techniques for ICS with five sub-techniques between them. Procedure counts are recorded at the level ATT&CK attaches them to, which for three techniques is the sub-technique.
| ID | Technique | Procedure examples | Assets MITRE lists as targets (selection) | Also under |
|---|---|---|---|---|
| T0859 | Valid Accounts | 8 | Jump host, HMI, PLC, safety controller, switch, firewall | Lateral Movement |
| T0873 | T0873 Project File Infection | 0 (see sub-technique) | Workstation | |
| T0873.001 | Siemens Project File Format | 1 | Workstation | |
| T0889 | T0889 Modify Program | 4 | PLC, PAC, DCS controller, safety controller | |
| T1693 | T1693 Modify Firmware | 0 (see sub-techniques) | PLC, PAC, DCS controller, safety controller | Inhibit Response Function, Impair Process Control |
| T1693.001 | System Firmware | 4 | PLC, RTU, IED, HMI, data gateway, firewall, VPN server | Inhibit Response Function, Impair Process Control |
| T1693.002 | Module Firmware | 0 | PLC, PAC, DCS controller, safety controller | Inhibit Response Function, Impair Process Control |
| T1694 | ICS T1694 Insecure Credentials | 0 (see sub-techniques) | PLC, RTU, IED, HMI, data gateway, router | Lateral Movement |
| T1694.001 | Default Credentials | 4 | Controllers, field I/O, switches, VPN servers, jump hosts | Lateral Movement |
| T1694.002 | Hardcoded Credentials | 2 | Field I/O | Lateral Movement |
How the techniques differ
- T0859 versus T1694: Valid Accounts covers credentials that belong to real users or services and were stolen or reused; Insecure Credentials covers credentials the product ships with (defaults) or cannot change (hardcoded), such as the WinCC database password Stuxnet used and the Omron PLC credential INCONTROLLER used, documented as CVE-2022-34151.
- T0873 versus T0889: Project File Infection lives on the engineering workstation and spreads when an engineer opens or downloads the project; Modify Program lives on the controller itself.
- T1693.001 versus T1693.002: System Firmware is the main device image; Module Firmware targets components such as Ethernet cards, which MITRE notes may have their own CPU, memory and operating system and less integrity checking.
Which techniques matter most for defenders
- T0859 Valid Accounts: the most observed and the cheapest to defend, through account hygiene, MFA on remote paths and removal of shared engineering accounts.
- T1694.001 Default Credentials: concentrated in recent internet-exposure campaigns against water utilities and in the 2025 Poland attacks on RTUs, relays and serial device servers.
- T0889 Modify Program: the persistence that also changes the process. Program integrity monitoring is the only reliable way to notice it before operators do.
- T1693.001 System Firmware: fewer environments can detect it, and its consequences (reboot loops, bricked gateways, a compromised safety controller) are severe.
- T0873 Project File Infection: low count, but it reinfects controllers every time a project is downloaded, so it undermines recovery.
Mitigations MITRE maps to the tactic
ATT&CK v20 maps 22 distinct ICS mitigations to the 10 Persistence techniques and sub-techniques. The table lists those mapped to three or more.
| Mitigation | Techniques mapped (v20) | What it means in an OT environment |
|---|---|---|
| M0801 Access Management | T0859, T1693 and its two sub-techniques, T1694 and its two sub-techniques | Authenticated, role-based access to controller programming and firmware functions, often through a central access management system in front of devices that cannot authenticate users themselves |
| M0947 Audit | T0859, T0873, T0873.001, T0889, T1693 and its two sub-techniques | Regular comparison of running logic, project files and firmware against approved baselines |
| M0945 Code Signing | T0873, T0873.001, T0889, T1693 and its two sub-techniques | Use signed firmware and signed project or program content where the platform supports it |
| M0941 Encrypt Sensitive Information | T0873, T0873.001, T1693 and its two sub-techniques | Protect project files and firmware images at rest from tampering and theft |
| M0937 Filter Network Traffic | T0859, T1693 and its two sub-techniques | Block programming and firmware update protocols except from approved engineering hosts |
| M0804 Human User Authentication | T0889, T1693 and its two sub-techniques | Require authentication for program changes and firmware updates |
| M0802 Communication Authenticity, M0807 Network Allowlists, M0930 Network Segmentation, M0808 Encrypt Network Traffic, M0813 Software Process and Device Authentication, M0946 Boot Integrity | T1693 and its two sub-techniques | Firmware updates only over authenticated, segmented paths, with devices that verify the image at boot |
Two further points from the mapping are worth acting on. Password Policies (M0927) is mapped to T1694.001 Default Credentials, and Restrict File and Directory Permissions (M0922) to project file infection, which means locking down the folders where engineering projects live. For the cross-tactic view, see ATT&CK Mitigations.
Controller and firmware controls in practice
- Key switches and run mode: where controllers have a physical key or software mode that blocks remote programming, keep it in run mode outside approved changes. See the PLC Security Guide.
- Remote programming disabled where not needed: the AA23-335A advisory recommends disabling remote programming, changing default ports and passwords, and keeping devices off the internet.
- Firmware from verified sources only: check vendor hashes and signatures, and stage updates through a controlled engineering host. See the Firmware and Boot Security Guide.
- Engineering workstation hardening: the AA22-103A advisory recommends credential and driver protections, least privilege and installing only necessary applications on engineering hosts. See the Engineering Workstation Security Guide.
Detection and measurement
The v20 detection strategies for this tactic combine host events with OT-specific evidence: program hashes from asset inventory, firmware hashes, device alarms and protocol content showing writes to controllers.
| Technique | v20 detection strategy | Log sources named in the analytics | Signal |
|---|---|---|---|
| T0859 Valid Accounts | DET0724 | Windows Security logon and authentication events, Sysmon, auditd, syslog auth, network device AAA logs, OT protocol content | ICS-role or engineering account authenticating from a host or address outside its approved jump path |
| T0873 and T0873.001 Project File Infection | DET0766, DET0906 | Windows object access (Security log) and Sysmon file events, auditd | Writes to project files by a process that is not the vendor engineering software, or by that software straight after loading a file from removable media |
| T0889 Modify Program | DET0783 | Program hash from asset inventory, OT protocol content, vendor device logs | Write to a program block from a source not on the approved engineering workstation list, outside a scheduled change |
| T1693.001 System Firmware | DET0731 | Firmware hash inventory, device alarms, OT protocol content, engineering workstation application logs, NetFlow | Device entering firmware update mode and receiving a large transfer from a non-approved source or outside a maintenance window |
| T1694.001 Default Credentials | DET0756 | Windows Security logon events, network device syslog, OT protocol content, syslog auth | Successful authentication with documented vendor default credentials from a source not on the approved list |
| T1694.002 Hardcoded Credentials | DET0798 | OT protocol content | Device access using credentials known to be hardcoded in vendor firmware, from a source with no operational role |
Metrics that show it is working
- Program integrity coverage: share of controllers whose running logic is compared against an approved baseline at least monthly.
- Firmware baseline coverage: share of controllers, RTUs, IEDs and gateways with a recorded approved firmware version and hash.
- Default credential count: devices still using vendor default credentials, trending to zero.
- Backup recency: share of controllers with a verified offline backup of logic and configuration taken after the last approved change.
- Unexplained changes: program or firmware changes detected that do not match a change record, and the time to explain each one.
Where identity fits
Half of this tactic is about credentials. Valid accounts, default passwords and hardcoded credentials all let an adversary return after hosts are cleaned, and many OT accounts are shared or embedded in devices, so they are rarely reset. Treat engineering, vendor and service accounts as identities with named owners; remove shared logins on jump hosts; reset every credential that touched a compromised segment after an incident, including device passwords; and record hardcoded credentials in the risk register with compensating network controls, because the owner cannot rotate them. See the OT and ICS Identity and Access Guide.
Implementation roadmap
- Capture known-good state: take offline backups of controller logic, configuration and project files, and record firmware versions and hashes for every controller, RTU, IED and gateway. See the OT Backup, Recovery and Golden Image Guide.
- Remove default credentials: change defaults on every device that allows it and record the ones that cannot be changed.
- Restrict who can change things: limit programming and firmware update protocols to named engineering workstations, use run mode or key switches, and require authentication for program changes where supported.
- Compare regularly: schedule program and firmware comparisons against the baseline, starting with safety and high-consequence controllers; review differences with control engineers before treating them as incidents.
- Alert on change events: enable the v20 analytics for program writes, firmware update mode and project file writes, tied to the change management calendar.
- Rehearse recovery: restore a controller from backup on a test bench, confirm the logic matches, and record how long it takes; keep spare hardware for devices whose firmware cannot be trusted after an incident.
Decision guidance
- Agent-based or network-based integrity checks: vendor or OT monitoring tools that read program and firmware state over the network avoid installing anything on controllers; schedule polling during stable operation and confirm with the vendor that it is supported.
- Reload or replace after compromise: reloading verified logic is usually enough for Modify Program; firmware compromise, especially on safety controllers, may justify replacement and vendor analysis.
- Small sites: manual monthly comparison of exported logic against backups, plus default credential removal, covers most observed cases.
- Large operators: centralise baselines and change records so that any detected change can be matched to a work order automatically.
Framework mapping
| Framework | Relevant references |
|---|---|
| NIST SP 800-53 Rev. 5 | AC-2 Account Management, IA-5 Authenticator Management, CM-3 Configuration Change Control, CM-5 Access Restrictions for Change, SI-7 Software, Firmware, and Information Integrity, SR-11 Component Authenticity, SI-4 System Monitoring |
| NIST CSF 2.0 | PR.AA-01, PR.AA-05, PR.PS-01, PR.PS-02, DE.CM-09 |
| NIST SP 800-82 Rev. 3 | OT tailoring of configuration management, integrity and account controls |
| ISA/IEC 62443-3-3 | SR 1.1 Human user identification and authentication, SR 1.5 Authenticator management, SR 3.2 Malicious code protection, SR 3.4 Software and information integrity |
| CIS Controls v8.1 | Control 4 Secure Configuration of Enterprise Assets and Software, Control 5 Account Management, Control 11 Data Recovery |
Common failure patterns
- Rebuilding hosts but not controllers: responders reimage HMIs and servers and declare the site clean while modified logic remains on the PLC.
- Restoring infected projects: project files backed up after infection are restored and downloaded, reintroducing the adversary's code.
- No firmware baseline: without recorded versions and hashes, nobody can tell whether a gateway or RTU runs the vendor's image.
- Credential resets that skip devices: domain passwords are reset after an incident but PLC, HMI and switch passwords are not.
- Remote programming left enabled: controllers stay in a mode that accepts program downloads from any host on the network.
- Backups that were never restored: a backup that has not been tested on a bench may be incomplete or tied to software versions no longer installed.
Practitioner checklist
- Take and verify offline backups of logic, configuration and project files after every approved change.
- Record firmware versions and hashes for all controllers, RTUs, IEDs and gateways.
- Change every changeable default credential and record those that cannot be changed.
- Restrict programming and firmware protocols to named engineering workstations.
- Keep controllers in run mode outside approved maintenance.
- Compare running logic against baselines at least monthly, starting with safety systems.
- Alert on project file writes by non-engineering processes.
- Include device and service credentials in post-incident resets.
- Rehearse a controller restore on a test bench each year.
Standards and references
- MITRE ATT&CK for ICS: Persistence (TA0110)
- MITRE ATT&CK for ICS: Valid Accounts (T0859)
- MITRE ATT&CK for ICS: Modify Program (T0889)
- MITRE ATT&CK for ICS: Modify Firmware (T1693)
- CISA: Cybersecurity Advisory AA23-335A on IRGC-affiliated actors exploiting PLCs
- CISA: AA22-103A APT Cyber Tools Targeting ICS/SCADA Devices
- NIST: SP 800-82 Rev. 3 Guide to Operational Technology (OT) Security
- NIST: SP 800-53 Rev. 5
Related NHI Mgmt Group resources: MITRE ATT&CK for ICS Guide · PLC Security Guide · OT Backup, Recovery and Golden Image Guide · ATT&CK for ICS Initial Access Tactic Guide · ATT&CK for ICS Command and Control Tactic Guide