• Products
  • Services
  • Blog
  • About Us
  • Contact

Latest Posts and News

Rust Dnp3 Protocols Modbus Security
Proof, Not Promises

Proof, Not Promises

AI is making bugs cheap to find. Confidence built on effort and track record won’t survive it. Testing, fuzzing and AI audits all sample; only a proof covers every input. We found a remotely triggerable panic we’d shipped for five years in our own protocol libraries, and made its whole class impossible to write.

dnp3c: Open Source DNP3 Conformance Testing

dnp3c: Open Source DNP3 Conformance Testing

We’ve released dnp3c, the DNP3 conformance test harness we’ve used internally for over a decade, as open source under the GPL. It runs the DNP Users Group’s IED Certification Procedure against an outstation, either by hand or completely unattended in CI.

The Case Against DNP3 SAv6 and AMP

The Case Against DNP3 SAv6 and AMP

DNP3’s new security protocol reinvents what TLS already provides, and it will be implemented by vendor teams that have historically struggled to safely parse basic DNP3 messages. Use TLS. It’s proven, audited, and your developers don’t need to be cryptographers.

Battalion Energy

Battalion Energy

I’m pleased to announce that I’ve joined Battalion Energy as cofounder and CTO. We’re building a cloud + edge controls platform focused on battery energy storage. There are so many things that excite me about this venture: Extremely talented founding team with a track record of building Awesome Things™. Building a modern and secure controls platform using 🦀Rust🦀 and webassembly! Disruptive business model in a rapidly expanding market. Company focus on open APIs, open ecosystems, and playing nice with others.

Protocol Scalability

Protocol Scalability

Building systems that scale is becoming critically important as the power grid undergoes a rapid transformation to meet the challenge of renewables and climate change. Software architecture is crucial to scaling communications solutions for emerging applications like distributed energy resources (DERs). This blog post discusses how software architecture affects the scalability of communication protocols and provides performance data for our protocol offerings.

Rust on Embedded Linux

Rust on Embedded Linux

We made the pragmatic decision early on to build our libraries on top of Tokio, which supports common operating systems like Linux, Windows, and MacOS. Although Rust can target bare metal, the async and library ecosystem for no_std is still rapidly evolving. Embedded Linux Despite this limitation, our libraries are still great for resource constrained environments by deploying on embedded Linux. Every release of our software includes pre-compiled libraries for popular embedded Linux architectures such as ARMv6/v7 and ARM-64.

Modbus 1.0.0

Modbus 1.0.0

We’ve released the 1.0.0 version of our Modbus library. This release adds a number of important items to make the library feature complete including: RTU (serial) support Secure Modbus - TLS support including the X.509 role extension handling Dynamically controllable protocol decoding C++ bindings API Stability The Rust community strictly adheres to the semver specification. Prior to 1.0, pretty much anything goes in terms of breaking changes.

DNP3 1.0.0

DNP3 1.0.0

We released the first external version (0.9.0) of our Rust-based DNP3 library about one year ago. Since then, our customers have deployed the library in production using all our available language bindings. During this time, there have been zero runtime failures reported in release versions. I’m proud of this simple fact. It indicates to me that we’ve made sound toolchain and engineering decisions. Our decision to use Rust for our next-gen libraries is paying dividends.

OpenDNP3: Retrospective

OpenDNP3: Retrospective

OpenDNP3 was released as open source over 10 years ago. This post describes where I believe the project has succeeded, where it hasn’t, and why Step Function I/O is using a different licensing model for our new libraries going forward. In many ways, OpenDNP3 has been a success. We are constantly learning of new companies that have successfully used the library to add DNP3 functionality to their product or service offering.

CVE-2020-10611 - RCE in a flawed DNP3 Implementation

CVE-2020-10611 - RCE in a flawed DNP3 Implementation

S4x20 hosted the Pwn2Own Miami hacking competition this year, and one of the more interesting and impactful results was a bug chain leading to remote code execution (RCE) in the Triangle Microworks (TMW) SCADA Data Gateway. The Zero Day Initiative who puts on these competitions recently released a detailed writeup (and video) of the bugs and the exploit.

  • 1
  • 2

Reliable and secure software for critical infrastructure

stepfunc

Address

  • 2843 NW Lolo Dr Bend, OR 97703

  • info@stepfunc.io
  • +1-919-428-1002

Navigation

  • Products
  • Services
  • Blog
  • About Us
  • Contact
  • Privacy Policy
  • Terms of Service