Malicious actors could take control of thousands of 3D printers that can be accessed directly from the Internet without requiring any authentication.
According to the SANS Internet Storm Center, a Shodan search reveals over 3,700 instances of OctoPrint interfaces exposed to the Web, including nearly 1,600 in the United States.
OctoPrint is a free and open source web interface for 3D printers that allows users to monitor and control every aspect of their device and printing jobs. OctoPrint can be used to start, stop or pause a print job, it provides access to the printer’s embedded webcam, it supplies information on the progress of a print job, and monitors the temperature of key components.
While it may seem that failure to protect a 3D printer against unauthorized access cannot pose a major risk, SANS’s Xavier Mertens warns that an attacker can conduct a wide range of malicious activities.
For instance, they can access G-code files, which are text files that contain the instructions needed to print a 3D object. In the case of organizations, these files could store valuable trade secrets.
“Indeed, many companies’ R&D departments are using 3D printers to develop and test some pieces of their future product,” Mertens noted.
The researcher pointed out that an attacker could also upload specially crafted G-code files to an unprotected printer. They could instruct the device to start printing when nobody is around, or they could make small changes to the code.
“By changing the G-code instructions, you will instruct the device to print the object but the altered one won’t have the same physical capabilities and could be a potential danger once used,” Mertens explained. “Think about 3D-printed guns but also 3D-printed objects used in drones. Drone owners are big fans of self-printed hardware.”
3D printers have been known to catch fire and it’s not implausible that an attacker may be able to intentionally start a fire given the high temperatures during operation of the system.
Finally, an attacker could be able to spy on the vulnerable printer’s owner through the embedded webcam.
These attacks are possible not due to some serious vulnerabilities in OctoPrint, but due to the failure of users to securely configure their devices.
OctoPrint developers advise users to enable the Access Control feature and take additional steps to secure the device if remote access is required. If Access Control is disabled, anyone can remotely gain full control over the printer.
“If you plan to have your OctoPrint instance accessible over the internet, always enable Access Control and ideally don’t make it accessible to everyone over the internet but instead use a VPN or at the very least HTTP basic authentication on a layer above OctoPrint,” OctoPrint documentation reads. “A physical device that includes heaters and stepper motors really should not be publicly reachable by everyone with an internet connection, even with access control enabled.”