Book a consultation

octoplant Version Control and Change Management: The Approved-Version Model

octoplant Change Detection: Scheduled Jobs, Drift and Unauthorized Changes

octoplant change detection explained: scheduled upload-and-compare jobs, alerts, drift, and telling planned, accidental and unauthorized changes apart.

Vladimir Romanov


octoplant change detection is the part of AMDT’s version control that watches the plant floor rather than the repository. Scheduled jobs upload from devices and compare what is running against the approved version. In AMDT’s words, “automated jobs compare the current device state with the stored reference version, exposing configuration drift,” and the system “alerts you to every difference” (AMDT, change management and version control).

It exists because the planned path, check-in and check-out, only governs people who follow it. This page covers how the jobs work, how to tell planned, accidental and unauthorized changes apart, the security case, tuning job frequency, and what to do when a change is detected. It sits under octoplant version control and change management.

How octoplant change detection works

The octoplant change detection loop and triage outcomes A scheduled job uploads from the device and compares the upload against the approved version. A match is logged and the loop waits for the next run. A difference raises an alert to the owner, which goes to triage. Triage has three outcomes: a planned change is checked in and approved, an accidental change is reversed by restoring the approved version, and an unauthorized change is handled as a security incident. Detect on a schedule, decide by hand match: logged, wait for the next run Scheduled job per device class Upload from the device Compare vs approved version Result match or difference difference Alert to the device owner Triage who, what, why Planned: check in and approve Accidental: restore approved Unauthorized: incident
The software finds the difference automatically. Classifying it as planned, accidental or unauthorized is a human decision, and the outcome differs for each.

AMDT describes octoplant running “scheduled jobs across your OT environment” that “capture current configurations and programs, and compare them against approved versions” (AMDT, About octoplant). In practice the loop is:

  1. A job runs on schedule for a device or group of devices.
  2. It uploads the current program or configuration from each device.
  3. It compares the upload against the approved version using Smart Compare.
  4. It records the result. A match needs no action. A difference is logged.
  5. It alerts. AMDT lists “alerts and notifications for unplanned or out-of-process changes” (octoplant.com, change management), and also alerts when “backups fail, devices become unreachable, or configuration states deviate from the expected version” (AMDT, About octoplant).

The same jobs produce the backups described under automated device backup, which is why detection and backup usually share one schedule.

The first baseline decides everything after it

Change detection is only as good as the approved version it compares against. When a plant first connects devices, the obvious shortcut is to accept whatever the first upload finds as the approved version. That blesses every undocumented edit already in the plant and turns years of drift into the official reference.

A more defensible start:

  • Upload first, approve later. Treat the first upload as a snapshot, not a reference.
  • Compare it with whatever exists: the integrator’s handover files, the last project on the engineering server, the laptop copies.
  • Resolve the differences by device, starting with safety, quality-critical and bottleneck assets, and record why each one was accepted.
  • Approve only after review, so the reference means “checked,” not merely “found.”

It is slower, but it is the only way the first alert means something.

Planned, accidental and unauthorized: telling them apart

AMDT says octoplant detects “planned, accidental, or unauthorized changes” (same source). The software sees all three the same way: a difference. The classification comes from comparing the detected change with the plant’s own records.

A hand pressing a selector button on a dark machine operator panel beside red and white pushbuttons
The same edit at the machine can be a planned fix, a slip or an unauthorised change. The job only reports that something moved; the plant's records decide which it was.
TypeTypical exampleHow you recognise itWhat it costs if missed
PlannedAn approved change downloaded but not yet checked inMatches a work order or change requestA stale repository; the next change starts from the wrong version
AccidentalA forced I/O bit left on, a wrong parameter after a drive swapNo record, no intent, often found by the person who did itQuality drift, nuisance faults, a latent hazard
UnauthorizedA contractor’s unrecorded fix, a bypassed interlock, a malicious editNo record and no plausible ownerSafety, product and security exposure

Most detected changes are planned or accidental. A night-shift technician who raises a timer to keep the line running is not an attacker. Treating every alert as a security incident burns out the people who must review them; treating none as one misses the one that matters.

An illustrative scenario. Monday’s job flags a difference on a mixer controller: an agitator speed limit raised by 10%. Step one of the triage below finds no work order. The weekend supervisor explains that a maintenance technician raised it to clear a viscous batch and meant to put it back. The controls lead restores the approved version, records why, and opens a change request to assess whether the higher limit should become standard. Total effort: twenty minutes, on a weekday, with the right people.

Drift: the slow version of the same problem

Drift is many small undetected changes over months. Each is harmless alone. Together they mean the stored program no longer describes the plant, and every planned change and every restore is built on a guess. Our manufacturing downtime guide covers how much of a long outage is spent establishing what state the equipment was in. Frequent change detection keeps drift small enough to resolve one item at a time.

Why octoplant change detection matters for OT security

An unauthorized change to controller logic is the outcome an OT attacker wants: a changed setpoint, a disabled interlock, a modified sequence. Network monitoring tools see traffic to a controller. A device-content compare sees what changed inside it. They are complementary, and we found no public octoplant integration with Claroty, Nozomi, Dragos or Armis as of October 2026; see OT security platforms.

What a device compare catches, mapped to attacker techniques. MITRE ATT&CK for ICS catalogues how adversaries change controllers, and for each technique below it lists Audit (M0947) among the mitigations: verifying the integrity of changes after the fact.

ATT&CK for ICS techniqueWhat the attacker changesWhat scheduled change detection showsWhat it misses
Modify Program, T0889Program organisation units, through downloads, online edits or program appendsThe changed or added blocks against the approved versionChanges reverted before the next job runs
Modify Parameter, T0836Values that govern behaviour, such as run times or limitsChanged parameters, where the device type’s compare covers themValues held only in live memory and excluded from the compare as noise
Program Download, T0843A user program transferred to the controller, in full or as an online edit or appendThe resulting difference, from a few rungs to the whole programWho did it, and from where: that is the network sensor’s evidence

The right-hand column is the case for running a network monitor as well. A compare proves the content changed; traffic records show the session that changed it.

For the evidence side, change detection records feed frameworks such as NIS2, IEC 62443 and NERC CIP. The compliance page explains what a tool can and cannot evidence. For the inventory and vulnerability view across sites, built on the same octoplant data, see octovision.

Tuning job frequency against network load

Uploading a full program puts load on the controller’s communication capacity and on the network, and some older devices and networks handle it poorly. AMDT states that octoplant licences include unlimited jobs (octoplant pricing), so the constraint is operational, not commercial.

  • Tier by criticality. Daily for safety, quality-critical and regulated assets; weekly for the rest is a common starting point.
  • Stagger jobs so a hundred uploads do not hit one network segment at shift change.
  • Avoid sensitive windows, such as batch execution or changeovers, for devices that respond slowly during uploads.
  • Respect regulatory floors. NERC CIP-010-4 requirement R2.1 asks for monitoring of baseline changes at least once every 35 calendar days on high impact BES Cyber Systems (NERC). That is a minimum for compliance, not a sensible interval for catching an edit before it causes harm.
  • Match frequency to review capacity. Alerts nobody reads within a day are not detection.
  • Check the network path. Jobs cross zones and firewalls; an OT network assessment and our note on segmentation in brownfield plants cover how to allow this without flattening the network.

Triage table for a detected change

StepQuestionOwnerIf yesIf no
1Is there a matching work order or change request?Controls leadCheck in and approve as the new referenceGo to 2
2Did someone on site make it, and can they explain it?Area supervisorAssess; document and approve, or restoreGo to 3
3Was a contractor or OEM on site or connected?Project engineerObtain their record; then as step 2Go to 4
4Does the change touch safety, quality or security functions?Controls lead, OT securityTreat as an incident; preserve evidenceRestore the approved version and record why

Where it gets hard

  • Detection is periodic, not instant. A change made just after a job runs is invisible until the next one.
  • Live data noise. Values that legitimately change in operation can trigger false differences unless filtered.
  • Coverage gaps. Devices octoplant cannot upload from, or that sit on unreachable networks, are not checked at all. Confirm coverage against AMDT’s gated support matrix.
  • Alert fatigue. Without a triage owner and a time limit, alerts accumulate and the system quietly stops working.

Back to octoplant version control and change management or the AMDT hub.

Frequently asked questions

How does octoplant change detection work?

octoplant runs scheduled jobs that upload the current program or configuration from each device and compare it against the approved version stored in its repository. AMDT says the comparison exposes configuration drift and that alerts flag unplanned or out-of-process changes. A person then decides whether a detected change is accepted as a new version, reversed, or investigated.

Can octoplant detect unauthorized PLC changes?

It can detect that the program or configuration in a supported device differs from the approved version, which is how an unauthorized change shows up. It cannot tell on its own whether a difference was authorized; that requires the change records and a person to triage it. Detection also happens at job intervals, not in real time.

How often should octoplant change detection jobs run?

It depends on device criticality and on how much upload traffic your controllers and network can carry. Many plants would run critical or regulated assets daily and lower-risk assets weekly, staggering jobs to avoid loading a busy network. AMDT's pricing page states that jobs are unlimited, so the constraint is load and review capacity, not licensing.

Does octoplant change detection replace an OT network monitoring tool?

No. Network monitoring tools such as Claroty or Nozomi watch traffic and can see that something connected to a controller. octoplant compares the device's contents against an approved version and shows exactly what changed in the logic or configuration. They answer different questions, and many plants would want both.

What is configuration drift in a PLC?

Configuration drift is the gradual divergence between what is running in a device and the version the plant believes is running. It builds up through online edits, untracked contractor fixes and parameter tweaks. Each step is small, but together they make the stored program an unsafe basis for the next change or for recovery.

References and further reading

  1. OT Change Management & Version Control · AMDTSmart Compare, drift detection and approval workflows.
  2. About Octoplant · AMDTThe check-out, edit, check-in cycle and scheduled compare jobs, in AMDT's words.
  3. Change Management - Control Every Update · AMDT (octoplant.com)Optional approval processes and alerts for out-of-process changes.
  4. Pricing · AMDT (octoplant.com)Core, Plus and Premium editions, unlimited jobs, documents not counted as devices. No prices.
  5. CIP-010-4: Cyber Security, Configuration Change Management and Vulnerability Assessments · NERCR1 baseline configuration; R2.1 monitoring at least every 35 calendar days.
  6. Modify Program, Technique T0889 · MITRE ATT&CK for ICSLists Audit (M0947) among the mitigations.
  7. Modify Parameter, Technique T0836 · MITRE ATT&CK for ICS
  8. Program Download, Technique T0843 · MITRE ATT&CK for ICS

← Version Control

Have a project that needs technical ownership?

Send us the situation. If it is not something we should take on, we will say so.