mushorg / conpot

ICS/SCADA honeypot
GNU General Public License v2.0
1.22k stars 413 forks source link

AWL/STL/PLC simulator support #65

Open creolis opened 11 years ago

creolis commented 11 years ago

Skills required: Python, programming PLCs (AWL, STL), network programming Short Description: Add support for a AWL/STL/PLC simulator. Goals is to run AWL/STL programs in Conpot and allow communication with the PLC emulator. Description: Conpot supports the protocols a common PLC is providing but not the functionality of a PLC. This means besides some randomized values and linear incrementing values like uptime the data in the honeypot is static. In order to appear more realistic and handle input values properly, we would like to support a PLC simulator. A good candidate is Awlsim (http://bues.ch/cms/hacking/awlsim.html): Awlsim is a free Step 7 compatible AWL/STL Soft-PLC written in Python. Awlsim provides an interface for virtual hardware connection modules (currently available are PROFIBUS-DP and LINUX-CNC). This interface could be used to connect Awlsim to Conpot. Maybe we could add an I/O interface to it in order to retrieve and even inject data to a running simulation.

glaslos commented 11 years ago

This looks very powerful. Did you had a look at his network emulation? I just skimmed through the tests and it seems like he emulates network interfaces.

creolis commented 11 years ago

To be honest, I could not find any hint on network emulation yet, but this is great news.

glaslos commented 11 years ago

I think I was mistaken. It actually seems like there is no intended interaction...

creolis commented 11 years ago

Note to myself: glaslos found awlsim profibus support: https://github.com/mbuesch/awlsim/blob/master/awlsimhw_pyprofibus/main.py

glaslos commented 11 years ago

pyprofibus: https://github.com/mbuesch/raspi-profibus

glaslos commented 11 years ago

Seems like the easiest way to interact with awlsim is by writing our own hardware extension: https://github.com/mbuesch/awlsim/blob/master/awlsimhw_dummy/main.py

glaslos commented 10 years ago

@creolis Did you got a quote on how relevant this is? I remember you mentioning that this might not be state of the art anymore (not sure if you can ever say something like that in the ICS domain...)

glaslos commented 10 years ago

Some initial work on the AWLSim TCP module: https://github.com/glastopf/awlsim/blob/hw_tcp/awlsimhw_tcp/main.py