Feierlich konnte ich gestern mein neues Startup eröffnen, eine hochmoderne Tankstelle mit Internet-Anbindung der Tankfüllstandsüberwachung in Seeshaupt – der bayerischen Whisky– und Tesla-Hauptstadt. Per TCP/IP und RS232 kann so jedermann von aussen die Füllstände der Tanks betrachten und Schindluder betreiben…
Ja, okay. Die Tankstelle gibt es nicht, alles ist Fake. Es handelt sich um einen sogenannten Honeypot, der dazu dient, Angriffe auf diese Systeme zu entdecken. Er läuft auf einem kleinen Raspberry Pi Zero in einem Docker-Container bei mir zuhause – die Anbindung erfolgt via WireGuard und eine IP aus meinem Provider Independent Netz. Der Code stammt von Trend-Micro, die zudem einen ausführlichen Report zum Sachverhalt veröffentlich haben.
Denn der Rest stimmt schon: Altsysteme des Herstellers Veeder-Root zur Tanküberwachung setzen exakt auf dieses Protokoll und waren/sind oft ungeschützt im Internet erreichbar.
Neben Tankstellenbetrieben sind auch private Tankanlagen betroffen, z.B. bei Speditionen oder Heizöllagern. Verbaut werden neben Sensoren und Pumpen solche Steuereinheiten:
Sie dienen insbesondere dazu, den „Schwund“ in Grenzen zu halten, also die Tank- und Füllvorgänge zu protokollieren, daneben aber auch physische Aspekte der Tanks: Wassergehalt, Temperatur, Ausdehnung, Leckage-Tests.
Der Fachausdruck lautet hierfür ATG: „Automated tank gauge“ und das Sicherheitsproblem wurde schon vor Jahren vom IT-Security-Dienstleister Rapid7 (Kursverlauf der Aktie) veröffentlicht:
https://blog.rapid7.com/2015/01/22/the-internet-of-gas-station-tank-gauges/
https://blog.rapid7.com/2015/11/18/the-internet-of-gas-station-tank-gauges-take-2/
Nun findet man bei Shodan noch immer solche System, wobei in Deutschland die Honeypots überwiegen. Natürlich kann ich (ohne illegalen Zugriff) nicht sicher sein, dass es sich hier nicht um einen Honeypot handelt, aber zumindest deutet z.B. folgendes durchaus auf „reale“ Systeme hin:
In diesem Falle blieb ein dreimaliger Kontaktversuch beim mittelständischen Betreiber erfolglos, auch am Telefon wurde ich zuletzt am späten Nachmittag des 10.04.2019 ziemlich wüst von einer ziemlich inkompetenten Telefonistin abgefertigt, fast schon beleidigt. Das BSI schaut sich nach einer Mail von mir vom 3.4.2019 die in Deutschland erreichbaren ATGs an – und sofern diese keine Honeypots sind werden die Provider informiert.
Weitere Tankstellen oder Honeypots lassen sich am besten auf https://www.shodan.io ausfindig mache, hierzu sucht man auf Port 10001 (bekannt auch von Ubiquity-Discovery) und Strings wie „Tank“ oder „Bestand“. Shodan ist in der Lage auch angepasste Honeypots zu erkennen, weshalb meine Tankstelle gleich wieder „geschlossen“ worden ist:
Neuere Anlagen des Herstellers stellen einen Web-Fernzugang per https bereit und mir sind bisher keine gravierenden Sicherheitsprobleme bekannt, trotzdem gehören auch diese Schnittstellen nicht nach aussen. Fast immer gibt es für solche industriellen Kontrollsysteme (ICS) nur eine beschränkte Wartung, von Herstellern ausgeräumte Probleme bleiben daher den Altinstallationen bis an das Ende der Nutzungszeit erhalten. Deshalb dürfen diese Geräte schlichtweg nicht vom Internet her ansprechbar sein. Das steht auch schon seit Jahren in sämtlichen Veröffentlichungen des BSI wie dem IT-Grundschutz-Kompendium.
Meine Empfehlung lautet deshalb: „WireGuard all the things!“
Noch nie war der Aufbau und Betrieb eines VPNs so einfach, kostenlos und schnell, wie heute – native Apps inklusive. Alternativ kann man natürlich auch vorhandene Legacy-Technik verwenden, wie IPSec oder OpenVPN – Hauptsache Dritte kommen erst einmal nicht an Login-Interfaces (und fiese embedded TCP/IP-Stacks) und damit irgendwann auf dumme Ideen.
Weitere Links zum Thema:
- https://www.ericzhang.me/gas-station-atgs-exposed-to-public/
- https://hackaday.com/2015/01/22/security-problems-with-gas-station-automated-tank-gauges/
- http://docs.gilbarco.com/gold/gold_public_access.cfm?section_id=364
Wer es selbst mal auf meinem Honeypot ausprobieren möchte, verwendet am besten Netcat:
nc bts1-334dec597811b6c.static.premium-sdsl.netbone.de 10001
<CTRL+A>I20100<ENTER>
Update 19.04.2019:
Die Zapfsäulen sind bisher nicht ausgelastet…