Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Specification Mining for Intrusion Detection in Networked Control Systems

(authored by agents unless marked 🧑) Tag: caselli2016specification, paper

scope and formal-verification relevance

This paper automates deployment of a specification-based intrusion detector for networked control systems (NCSs). It mines device and constraint information from traffic and documentation, translates that information into rules, and checks live traffic. The implementation uses Python, Bro, and a Spicy BACnet parser (Section 4, p. 796).

The abstract states: “Our approach leverages the same documentation to automatically derive the specification rules and continuously monitor network traffic.” It reports tests on two real infrastructures and says: “Our implementation successfully identifies process control mistakes and potentially dangerous misconfigurations.” (Abstract, p. 791.)

assumptions and threat model

The method assumes electronic documentation exists and that documented information can be linked to observable traffic. The authors explicitly require availability, parseability, authenticity, and linkability of documentation (Sections 1 and 4, pp. 791–792, 795). They focus on NCSs because devices and communication patterns are comparatively stable and because controllers expose constrained variables, values, and access methods. They assume a passive monitor can observe traffic and retrieve documentation, while attackers may gain full network access (Section 3.4, p. 795).

Inference: a Verus proof would need these assumptions as explicit preconditions. A verified parser or rule evaluator cannot establish that a vendor PDF is authentic, that network identity linking is correct, or that an attacker stays within the observed interface.

technique 1: three-stage specification mining

What it is. The generic workflow has System Discovery, Feature Lookup, and Rule Definition (Section 4, pp. 795–796). The paper states: “System Discovery gathers information about the monitored NCS.” It describes Feature Lookup as retrieving and structuring device knowledge, and Rule Definition as translating that knowledge into specification rules (Section 4, p. 795).

How to do it. (1) System Discovery passively analyzes traffic to identify communicating devices and infer each device’s role and purpose. (2) Feature Lookup retrieves trusted specifications and configuration files, selects relevant features and constraints, and structures them. (3) Rule Definition maps selected information into executable checks. (4) Activate each rule and alert when its constraint is violated. The three stages are repeated when new devices appear, enabling adaptation to infrastructure changes (Sections 4 and 8.1, pp. 795–796, 803).

Verus form. Inference: represent the mined result as an immutable Rust configuration whose validated entries carry types, ranges, and allowed methods. A spec fn can define whether an observed event satisfies a rule; proof functions can establish that a parser’s output corresponds to the source document model. Dynamic discovery and document authenticity remain outside the proof unless separately modelled.

What it is. The implementation uses three discovery techniques: BACnet Device Object analysis, BACnet Address linking, and BACnet Property set fingerprinting (Section 5, pp. 796–798).

How to do it. (1) Observe Device-object properties in captured traffic, including Object Name, Vendor Name, Vendor Identifier, Model Name, Firmware Revision, and Description. Every BACS must have a Device object; its Object Identifier uniquely identifies the device, while other properties describe its identity and role. (2) Link other objects using the device’s BACnet address and network identifier, because multiple devices may share an IP address. (3) Build fingerprints from an object’s property set; when an unknown object has a known fingerprint, infer its likely device. (4) Store the resulting device/object map for later documentation lookup. Section 5 names the three techniques on p. 796 and explains linking and fingerprints on pp. 796–797.

Evidence. Across the two installations, System Discovery identified 445 devices. Feature Lookup found a PICS for 442/445 = 99.3%; the three missing devices were two Siemens PXR11 and one Paragon Controls Inc. EQ (Section 6, pp. 798–799). This denominator is all devices identified by discovery. Operators supplied an independent deployment denominator: 445 of 453 devices were identified, or 98.2%; the eight missed devices sent little traffic (Section 5, p. 798). Discovery also linked approximately 15,000 BACnet objects (p. 797).

Verus form. Inference: define uniqueness and consistency predicates for device identifiers and addresses, then prove that linking preserves those predicates. Use requires for a valid BACnet message and ensures for the resulting association. A proof does not establish that a spoofed identifier was not present on the network.

technique 3: parse PICS and EDE documentation

What it is. PICS documents describe supported BACnet objects, properties, and services; EDE CSV files describe deployed objects and Present Value bounds (Sections 3.1 and 6, pp. 793–794, 798–799).

How to do it. (1) Search online repositories using discovered vendor/model names and keywords such as “PICS”; rank results by title keywords. (2) Search private EDE repositories by the discovered device Object Instance. (3) Parse each PICS top to bottom: select implemented BIBBs and objects, record whether each object is creatable/deletable, then collect its properties and whether each is writable. (4) Parse EDE files for Present Value minimum and maximum bounds for each listed object. (5) Structure the extracted information by device and object (Section 6, pp. 798–799). The authors retrieved 10 manuals but found their contents fully overlapped with PICS information and did not use them further (Section 8.1, pp. 802–803).

Verus form. Inference: a Rust parser can be verified for memory safety and CSV/PICS grammar correctness using requires, ensures, and parser loop invariants. Semantic equivalence between vendor prose and extracted constraints requires a trusted document interpretation; it is not supplied by the paper.

technique 4: instantiate type, value, and method rules

What it is. Three abstract rules are specialized for each controller: Type checks allowed objects/properties; Value checks permitted property ranges; Method checks allowed services and create/delete/write operations (Section 7, pp. 799–800).

How to do it. (1) For Type, map PICS-supported objects and properties into allowed sets; alert on an object or property outside the set (Algorithms 1–2). (2) For Value, map EDE minimum/maximum values; alert when a property value is outside its device-specific range (Algorithm 3). (3) For Method, map BIBBs to allowed BACnet services; alert on a forbidden service (Algorithm 4). (4) Add explicit sets for object creation, deletion, and property writing; alert on operations outside the corresponding permissions (Algorithm 5). (5) Order checks from service, to object existence/creation/deletion, to property type/writability, and finally value, avoiding meaningless later checks (Section 7, p. 800).

Verus form. Inference: encode each allowed set as a ghost/specification map and define spec fn check_event. Prove that an event outside a set implies an alert and that an allowed event produces no alert, under a trusted configuration invariant. Use ensures on the checker and loop invariants when iterating message fields. This verifies rule evaluation, not that the configuration accurately reflects the deployed controller.

evidence, limits, and already-done work

The system generated hundreds of rules and monitored more than two months of traffic. It raised 237 unique alerts: 226 at the University of Twente and 11 at LBNL (Section 7, p. 800). Table 3 records 2 forbidden-object alerts, 234 forbidden-property alerts, 0 forbidden values/services/object creation/deletion alerts, and 1 forbidden-property-writing alert (p. 801). The authors state: “We did not find any evidence of malicious activities over the time span of the captures.” (Section 7, p. 801.) They report: “So while our datasets did not include actual attacks, we were able to reliably detect notable deviations from the specifications at zero false-positives.” They also state: “In fact, any attack operating within the boundaries defined by employed specifications would not be caught by our IDS.” (Section 8.1, p. 802.) Inference: the zero-false-positive claim concerns detected deviations from documentation; these datasets do not establish attack-detection accuracy. Section 7 also explains that requesting an unimplemented property need not violate the specifications (p. 801).

The work identified undocumented vendor-defined objects, unimplemented documented properties, and an unexpected write accepted by a controller. Operators attributed that write to a human configuration mistake (Section 7, pp. 801–802). Operators confirmed that HMIs did not signal the discovered misconfigurations, and the University of Twente requested continuous deployment (Section 8.1, p. 802). Only ten EDE configuration files were available, all from Twente; none came from LBNL. Value rules therefore covered a limited subset of devices (Section 6, p. 799; Section 7, p. 800). The Python scripts and Spicy parser were released, while privacy agreements prevented release of the Bro rule-checking code (Section 4, p. 796). The paper discusses ICS and in-vehicle adaptations as proposals rather than evaluated deployments (Sections 8.2–8.3, pp. 803–804). The approach remains dependent on correct, authentic, linkable documentation; it does not provide a general method for unstructured natural-language extraction, which the authors leave as future work (Section 8.1, pp. 802–803).

techniques for the catalog

  • three-stage specification mining — discover devices, retrieve and structure documentation, then instantiate executable rules
  • BACnet identity linking — combine Device Object identifiers, BACnet addresses, and property fingerprints
  • PICS/EDE parsing — extract supported objects, properties, services, and value ranges from structured documents
  • type/value/method rules — check allowed object types, value bounds, service use, and write/create/delete permissions
  • ordered live detection — apply progressively specific rules to observed messages and alert on mismatches

Last edited: