LiveActive security incident?Get immediate response
MITRE ATT&CK® ICS Asset

A0003: Programmable Logic Controller (PLC)

A Programmable Logic Controller (PLC) is an embedded programmable control device. PLCs typically utilize a modular architecture with separate modules used to support its processing capabilities, communication mediums, and I/O interfaces. PLCs allow for the deployment of customized programs/logic to control or monitor an operational process. This logic is defined using industry specific programming languages, such as IEC 61131 [1], which define the set of tasks and program organizational units (POUs) included in the device’s programs. PLCs also typically have distinct operating modes (e.g., Remote, Run, Program, Stop) which are used to determine when the device can be programmed or whether it should execute the custom logic.

ICSA0003ICS AssetObject v1.1Modified
Glexia's Take · Automated analysis

Security context for executives and security teams

Automation confidenceHigh

A PLC is the embedded controller that runs customized logic for an operational process. In practical risk terms, it is often where cyber access can become a physical or production-impacting event. The related ATT&CK techniques show why PLC coverage matters: adversaries may monitor process state, upload or download programs, modify tasking, parameters, alarms, or I/O behavior, force restart/shutdown, or disrupt device functionality.

Executive priority

Treat PLCs as critical operational assets, not just network endpoints. Leadership should ask whether the organization has a current inventory of PLCs, approved logic/configuration baselines, controlled engineering access, recoverable backups, and evidence that unauthorized program, mode, parameter, alarm, and I/O changes would be noticed. This is material for business continuity, OT incident response readiness, vulnerability prioritization, and compliance evidence around change control and safety-relevant operations.

Technical view

SOC, OT engineering, and IR teams should validate visibility around the PLC lifecycle: engineering workstation access, vendor programming activity, program upload/download events, online edits, program append activity, controller mode changes, firmware update mode activation, restart/shutdown events, parameter and alarm changes, and unusual I/O point changes. Because ATT&CK provides no official detection for this asset, coverage should be proven locally against the specific PLC models, programming tools, control protocols, historian/OPC sources, and network paths in use.

Likely telemetry

  • PLC asset inventory, firmware/software version, operating mode, and role in the process
  • Engineering workstation and jump host authentication, process execution, and vendor programming software usage logs
  • PLC program upload, download, online edit, program append, tasking, and configuration change records where available
  • Network traffic to and from PLCs, including native control protocol activity and OPC-related collection where present
  • Historian, OPC tag, and process state data used to detect unexpected reads or value changes

Detection direction

  • Build detections around deviations from approved maintenance windows, known engineering hosts, and authorized users rather than treating all PLC programming activity as malicious.
  • Compare running PLC logic, task associations, parameters, alarm settings, and configuration against approved baselines after maintenance and during investigations.
  • Alert on program download/upload, online edit, program append, mode changes, firmware update mode, restart/shutdown, and repeated I/O value changes when they occur outside expected procedures.
  • Correlate network discovery, port scan, broadcast discovery, sniffing indicators, and process-state monitoring with later PLC programming or configuration activity.
  • Account for false positives from legitimate engineering work, commissioning, testing, and emergency maintenance; require operational context before escalation decisions.

Mitigation priorities

  • Maintain an authoritative PLC inventory mapped to process criticality and recovery priority.
  • Restrict and monitor access to engineering workstations, jump hosts, vendor programming software, and interfaces capable of PLC program or configuration changes.
  • Enforce formal change control for PLC logic, tasking, parameters, alarm settings, firmware update mode, operating mode, and I/O overrides.
  • Keep offline, tested backups of PLC programs and configurations to support rapid validation and recovery.
  • Segment and monitor PLC network paths so discovery, collection, and programming activity are limited to expected systems and procedures.
Additional notes and limits

This take is based on the ATT&CK ICS asset A0003 and its relationships to PLC-targeting techniques including program upload/download, online edit, program append, modify controller tasking, manipulate I/O image, modify parameter, modify alarm settings, process-state monitoring, discovery, DoS, restart/shutdown, firmware update mode, and exploitation for evasion. The IEC 61131-3 reference supports the importance of tasks, programs, and programming languages in PLC logic governance.

MITRE does not provide an official detection section for this asset, and the supplied object does not specify particular vendors, protocols beyond examples in related descriptions, tactics, or active threat activity. Local PLC models, engineering workflows, logging capabilities, network architecture, and safety/process context are required to determine actual detection and control coverage.

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Official MITRE ATT&CK definition

Programmable Logic Controller (PLC)

A Programmable Logic Controller (PLC) is an embedded programmable control device. PLCs typically utilize a modular architecture with separate modules used to support its processing capabilities, communication mediums, and I/O interfaces. PLCs allow for the deployment of customized programs/logic to control or monitor an operational process. This logic is defined using industry specific programming languages, such as IEC 61131 [1], which define the set of tasks and program organizational units (POUs) included in the device’s programs. PLCs also typically have distinct operating modes (e.g., Remote, Run, Program, Stop) which are used to determine when the device can be programmed or whether it should execute the custom logic.

View the same entry on attack.mitre.org (MITRE-hosted reference; in-page links above use the Glexia ATT&CK library.)

Glexia analysis

How security teams should use this page

Treat this object as behavior context, not an attribution claim. Validate the related groups, software, data sources, and mitigations against official ATT&CK relationships and your own telemetry before making control-coverage decisions.

ATT&CK relationship table

Techniques used

This mirrors the MITRE pattern of making group, software, campaign, and technique relationships scannable. Relationship notes come from mirrored ATT&CK relationship text when available.

61 rows
DomainIDNameRelationship / procedure
ICST0846.003Multicast DiscoverySub-techniqueMulticast Discovery targets this object.
ICST0890Exploitation for Privilege EscalationExploitation for Privilege Escalation targets this object.
ICST0846Remote System DiscoveryRemote System Discovery targets this object.
ICST1695Block CommunicationsBlock Communications targets this object.
ICST1693.002Module FirmwareSub-techniqueModule Firmware targets this object.
ICST1691Block Operational Technology MessageBlock Operational Technology Message targets this object.
ICST1694Insecure CredentialsInsecure Credentials targets this object.
ICST0874HookingHooking targets this object.
ICST0868Detect Operating ModeDetect Operating Mode targets this object.
ICST0869Standard Application Layer ProtocolStandard Application Layer Protocol targets this object.
ICST1695.003Wi-FiSub-techniqueWi-Fi targets this object.
ICST1692Unauthorized MessageUnauthorized Message targets this object.
ICST0871Execution through APIExecution through API targets this object.
ICST0843.002Online EditSub-techniqueOnline Edit targets this object.
ICST1693Modify FirmwareModify Firmware targets this object.
ICST0843Program DownloadProgram Download targets this object.
ICST1691.001Command MessageSub-techniqueCommand Message targets this object.
ICST0845Program UploadProgram Upload targets this object.
ICST0848Rogue MasterRogue Master targets this object.
ICST0885Commonly Used PortCommonly Used Port targets this object.
ICST0888Remote System Information DiscoveryRemote System Information Discovery targets this object.
ICST0846.002Broadcast DiscoverySub-techniqueBroadcast Discovery targets this object.
ICST1693.001System FirmwareSub-techniqueSystem Firmware targets this object.
ICST1691.002Reporting MessageSub-techniqueReporting Message targets this object.
ICST0802Automated CollectionAutomated Collection targets this object.
ICST0859Valid AccountsValid Accounts targets this object.
ICST0838Modify Alarm SettingsModify Alarm Settings targets this object.
ICST0851RootkitRootkit targets this object.
ICST0892Change CredentialChange Credential targets this object.
ICST0842Network SniffingNetwork Sniffing targets this object.
ICST0872Indicator Removal on HostIndicator Removal on Host targets this object.
ICST0843.003Program AppendSub-techniqueProgram Append targets this object.
ICST0801Monitor Process StateMonitor Process State targets this object.
ICST0847Replication Through Removable MediaReplication Through Removable Media targets this object.
ICST0843.001Download AllSub-techniqueDownload All targets this object.
ICST1695.002EthernetSub-techniqueEthernet targets this object.
ICST0806Brute Force I/OBrute Force I/O targets this object.
ICST0840Network Connection EnumerationNetwork Connection Enumeration targets this object.
ICST0878Alarm SuppressionAlarm Suppression targets this object.
ICST0862Supply Chain CompromiseSupply Chain Compromise targets this object.
ICST0866Exploitation of Remote ServicesExploitation of Remote Services targets this object.
ICST0814Denial of ServiceDenial of Service targets this object.
ICST1694.001Default CredentialsSub-techniqueDefault Credentials targets this object.
ICST0820Exploitation for EvasionExploitation for Evasion targets this object.
ICST0846.001Port ScanSub-techniquePort Scan targets this object.
ICST1692.002Reporting MessageSub-techniqueReporting Message targets this object.
ICST0836Modify ParameterModify Parameter targets this object.
ICST1695.001Serial COMSub-techniqueSerial COM targets this object.
ICST0816Device Restart/ShutdownDevice Restart/Shutdown targets this object.
ICST0884Connection ProxyConnection Proxy targets this object.
ICST0835Manipulate I/O ImageManipulate I/O Image targets this object.
ICST0809Data DestructionData Destruction targets this object.
ICST0834Native APINative API targets this object.
ICST0830Adversary-in-the-MiddleAdversary-in-the-Middle targets this object.
ICST0858Change Operating ModeChange Operating Mode targets this object.
ICST0877I/O ImageI/O Image targets this object.
ICST0821Modify Controller TaskingModify Controller Tasking targets this object.
ICST0800Activate Firmware Update ModeActivate Firmware Update Mode targets this object.
ICST1692.001Command MessageSub-techniqueCommand Message targets this object.
ICST0861Point & Tag IdentificationPoint & Tag Identification targets this object.
ICST0889Modify ProgramModify Program targets this object.
Relationship explorer

All related ATT&CK context

Change history

Object version and sync metadata

The fields below describe the current mirrored snapshot. When Glexia retains multiple ATT&CK source imports, you can open the table to compare the same object across releases (hashes and MITRE timestamps). For MITRE’s own release notes and roadmap, see ATT&CK resources — Updates.

ATT&CK release
19.1
Object version
1.1
Created
Modified
Raw hash
4f64d12e9fb06229...
Imported snapshots across ATT&CK releases(1)
ReleaseBundle importedObject versionModifiedStatusRaw hash
19.11.1Current bundle4f64d12e9fb0…
Raw source

Mirrored ATT&CK source object

The raw object is retained through the mirrored ATT&CK source bundle and object hash. The raw endpoint returns the exact object from the mirrored bundle when available.

Source references

External references and citations

MITRE external references are preserved separately from Glexia analysis so citations remain traceable to their original source records.

  1. [1]
    IEC February 2013

    IEC 2013, February 20 IEC 61131-3:2013 Programmable controllers - Part 3: Programming languages Retrieved. 2019/10/22

    Open source URL
  2. [2]
    mitre-attackA0003
    Open source URL
Source and licensing

Source: MITRE ATT&CK®. © 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. Glexia is not affiliated with or endorsed by MITRE.