Hacking 3D Printing

I’ve written about our great age of making which has led in the emergence of community based maker spaces, and revolutions in product development and manufacturing.

One of the key technologies is additive manufacturing, most famously, inexpensive 3D printing. At the heart of 3D printing and other digital fabrication is the “executable design”, machine code files which not only describe the object, but specify how to make the object. This is one of the most exciting things about digital fabrication, because these files mean that we can do everything you can do with any digital content: publish, share (or sell) over the network, copy, and modify designs.

Unfortunately, just as you can upload, search, and download digital designs (e.g., Thingiverse), you can also hack them. This is a serious issue, especially for a business relying on digital fabrication, and for anyone building critical or dangerous machines from digitally specified parts.

The security issues are pretty simple, basically the same as for any other data, though the possible mischief is much more complicated, because the parts are physical objects in the real word. It is correspondingly difficult to detect hacking, because slight changes to any of a dozen files might create a fatal flaw that is not apparent until the parts are assembled and the machine operated.

Researchers at Ben-Gurion Univiersity of the Negev have published a very clear demonstration of this challenge [1]. The walk through a complete attack that includes hacking into the system with the design files for a quadcopter, stealing the files, monkeying with the design in ways that are not easy to see, and replacing the good file with the doctored one. The unwitting user, prints out the parts and assembles the copter—which promptly crashes when a rotor fails.

It is important to note that none of these steps is especially clever or technically deep. Hacking into the system is, unfortunately, widely known and common. Obviously, the hacker needs to know a bit about digital design to do the sabotage, but the actual method is simple as pie. Worse, the hacked file can be used as many times as wanted, so the hack might propagate quickly.

The whole point is just how straightforward and simple the attack is, and to give a very visible and memorable image of the consequences.

With the growth of additive manufacturing worldwide, we believe the ability to conduct malicious sabotage of these systems will attract the attention of many adversaries, ranging from criminal gangs to state actors, who will aim either for profit or for geopolitical power

Another point to comment on is that this particular attack didn’t even touch the control software and logic, which are equally vulnerable in many cases.  Yoiks! And don’t forget the other stuff, such as the controller, the sensors, and the data streaming software used by the copter—any and all of which could be hacked just as easily.

In addition, the BGUN hack was designed to illustrate the fact that it is very difficult for humans to visually verify these design files. The data is pretty much beyond human understanding, and the part looked OK, even though it had been modified to have a fatal flaw.

The unfortunate implication is that it is difficult to trust design data in general, even without deliberate hacking, how can you tell if this part is a good design or not? I can see a need for provenance, to try to establish a chain of trust for all the parts of your system.

  1. Sofia Belikovetsky, Mark Yampolskiy, Jinghui Toh, and Yuval Elovici, dr0wned – Cyber-Physical Attack with Additive Manufacturing. Ben Gurion Univiersity of hte Negev, 2016. https://arxiv.org/abs/1609.00133


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s