ICS SCADA RTOS Rust project brainstorming


#1

Hi all,

Is anyone interested (or already working) on a Rust project in the filed of Industrial Control Systems (ICS), Cyber-Physical Systems (CPS), Supervisory Control and Data Acquisition (SCADA) or maybe Real Time Operating Systems (RTOS), that involves secure coding or system hardening or anything related with hardware/software security in general ?

I think that a modern safe/secure PL like rust is a good pointer to find programmers interested in these topics :slight_smile: Do you think that is a good idea to brainstorm on something like this ?

From my side the result should be something interesting from an academic viewpoint (eg: one or more scientific ICS security papers involving design, implementation, testing and evaluation of something).

P.S. I’m totally new to the rust language, I’m coming from an EE background and currently I’m doing an EECS PhD related with some of the topics listed above.

P.S.S. Thank you for your time

Cheers !


#2

Amit Levy (http://www.amitlevy.com/) recently spoke at Rust NYC on the subject of Tock, which is a research project on an embedded RTOS in Rust.
https://amitlevy.com/talks/tock-adi2016.pdf


#3

There is also this: https://zinc.rs/


#4

Hi @rrichardson,

Thank you for the link :slight_smile: .

I knew about an earlier Levy’s paper


that I found from the official book’s bibliography page:
https://doc.rust-lang.org/book/bibliography.html

I’ll definitely take a look at the slides.


#5

Somewhat related to ICS, I’m working on an EtherCAT Master Driver in Rust.


#6

Hi @cjschneider2,

I’m not familiar with the EhterCAT protocol, but I think is an interesting project, thanks for sharing.

I worked a little bit with Ethernet/IP industrial protocol.
What I’ve used so far is cpppo, that implements only a subsef of Ethernet/IP, and it is written in Python and it is quite CPU heavy for my target simulations. As far as a known, there is no complete, open source, performance-aware, implementation of it.


#7

I’ll probably look into seeing what’s required to implement Ethernet/IP later. Though usually the problems with implementing industry protocols are getting hardware for testing (as an open-source implementation outside of what I use at work) and no/poor/wrong documentation (Edit: Not to mention the price of the standards documents for EtherNet/IP). I do like using Rust as an alternative to C with my current project at any rate.


#8

Bumping as I want to re-ask precisely this question, and to say there’s now an all-Rust Modubs-TCP implementation, with DNP3 in the works.


#9

Hi @ocschwar,

Can you please share some relevant links?

Thanks!


#10

Tokio-based Modbus TCP server. https://github.com/ocschwar/tokio-modbus


#11

Still working on the DNP3, and it will be some time.