Synchronization Algorithms for Programmable Logic Controller Emulation
This research develops a way to discover the optimal Synchronization Algorithm used to synchronize a back-end Programmable Logic Controller (PLC) with a honeypot based on the emulated protocol. Synchronization between the back-end PLC and the honeypot is important for the emulation of a device's protocol because some protocols are stateful and provide responses to requests based on previous requests. The honeypot needs to ensure the back-end PLC is in the same state before sending a request to the PLC. There are four Synchronization Algorithms under test: Catchup, Lockstep, Latelock, and Triggerlock. These four algorithms are each tested against eleven protocols. Through a full factorial experiment, it is shown for 91% of the protocols the best algorithm is Triggerlock. The only exception is the stateless protocol HTTP, where the best algorithm is Catchup because of the honeypot's instant disconnection from the back-end PLC after receiving the response to its request.