CPC G06F 21/554 (2013.01) [G06F 2221/034 (2013.01)] | 16 Claims |
1. A system for detecting a malicious programmable logic controller (PLC) code segment in a PLC program corresponding to a specific type of PLC, the system comprising:
(a) a binary parser that parses the code segment into a plurality of functional elements;
(b) a variable and function block mapper that maps the functional elements into a high-level data structure;
(c) a fuzzer that generates a behavioral model of the high-level data structure into an automaton;
(d) a classifier that predicts to which processes the automaton corresponds; and
(e) a detector that detects unsafe states in the automaton and that generates an indication of a detected unsafe state, wherein the automaton includes a directed multigraph that includes a plurality of states in which each state is represented as a node and in which each state transition is represented as an edge, in which the classifier indicates a total number of states in the automaton and average degree of the multigraph, wherein the average degree equals a total number of edges in multigraph divided by a total number of nodes in the multigraph.
|