Mit AWS IoT gibt es einen  weltweit verfügbaren Datendienst von Amazon, welcher es sich wie eine Liste von Buzzwords für die Zukunft des Internet der Dinge (IoT) anhört. Im Gegensatz zu anderen Systemanbietern werden in der Cloud vom Buchhändler beliebte Schwachstellen gleich im keim erstickt:

  • High-End-Skalierbarkeit
  • Verschlüsselung (End-To-End möglich!)
  • Vielfalt von Protokollen
  • Flexibles Management von Regeln, Messaging…

Dinge (sicher) ins Internet in 5 Minuten. Ein Blick für den Nerd.

Die größte Schwachstelle von AWS IoT ist vermutlich, dass es im Deutschen Datacenter (Frankfurt) aktuell noch nicht verfügbar ist. Wechselt man in der AWS Console auf Irland, so bekommt man rechts den Menüpunkt „AWS IoT“ präsentiert. Beim ersten Öffnen leitet einen das System durch verschiedene Schritte, die zwar in der Anleitung ganz gut beschrieben – selbige allerdings etwas versteckt ist. Besonders fehlt eine Auflistung der Konzepte, die man bei Amazon im Internet der Dinge umgesetzt hat.

Konzepte

Schema des AWS Internet-Of-Things (Quelle: Amazon)
Schema des AWS Internet-Of-Things (Quelle: Amazon)

Wie der Name „Internet of Things“ einem bereits verrät, benötigt man „Dinge“ (Things) mit denen man etwas machen möchte. Ein „Ding“ ist eine Lampe, ein Sensor, eine Maschine oder sonst ein real existierendes Objekt in der Welt. Jedem „Ding“ können Attribute zugeordnet werden. Dies können statische Metainformationen, wie der Ort oder der Gerätetyp  sein, aber auch dynamisch später veränderliche Attribute. Bei intelligenter Entwicklung ist jedes „Ding“ selbst dafür verantwortlich, diese Daten autonom zu pflegen.  Weitere Funktion, die ein Ding können sollte, ist das Empfangen von Nachrichten (vergl. QuickStart Guide).

Ist das Ding angelegt, so muss es mit dem Internet verbunden werden. Amazon bietet hierfür eine Anzahl von Client-APIs an. Hier verwendet wurde lediglich das NodeJS SDK, die anderen sollten allerdings die gleichen Konzepte umsetzen. Damit das „Ding“ in die Cloud kommt, werden einige Informationen benötigt: Host/Port des Endpoints, ClientID,ThingName und natürlich die Schlüssel. Beim Anlegen eines neuen „Ding“ werden die Schlüsselpaare zum Download angeboten (Achtung: Nicht vergessen, diese hier auch zu laden, den privaten Schlüssel gibt es später nicht mehr!)

Jegliche Kommunikation zwischen Ding und Cloud laufen über verschlüsselte Verbindungen. Der Internetanbieter, der auf Clientseite (Gerätesteuerrung und Monitoring / SCADA) oder Geräteseite („Ding“) verwendet wird, kann die transportiere Information nicht einsehen. Ein „Sniffen“ im LAN ist ebenfalls nicht notwendig.  Das große Aber kommt jedoch im Kapitel „Sicherheit & Cloud“.

Sobald Dinge vorhanden sind, kann ein Regelwerk erstellt werden. Die einfachste Regel, die man in wenigen Minuten in NodeJS bauen kann, ist „Drücken auf Lichtschalter“=>“Licht geht an“. Schalter und Licht sind jeweils ein „Ding“ – die Regel muss so intelligent sein, dass sie das Attribut „Ist licht an“ von dem Licht abgreifen kann und entsprechend An/Aus schaltet. IoT würde nicht immer in Verbindung mit Big Data gebracht werden, wenn man sich nicht auch um die Speicherung der Zustände kümmern müsste. Regel für Lichtschalter und  eine einfache Speicherung können innerhalb von 5 Minuten mit Hilfe der Anleitung  erstellt werden. Danach findet man die Regeln zusammen mit seinen Things als „Ressourcen“ in der Account-Übersicht von AWS-IoT (für EU-West).

Das letzte relevante Konzept ist das Thema Nachrichten. Regeln, Dinge und natürlich Interaktionen verursachen „Ereignisse“. Der Austausch erfolgt über den Message-Broker, welcher generell alle Zugriffsrechte für das Abonnieren der Ereignisse kontrolliert. Laut Dokumentation hat jeder Amazon-Account einen eigenen Namespace. Auf die Schnelle konnte nicht herausgefunden werden, wie man zum Beispiel ein Szenario abbilden kann, welches einen Teil der Informationen einem Dritten zugänglich macht. (Kleine Randbemerkung: Hier sehe ich auch die größten Schwächen im SmartMeter-Gateway). Das Konzept von Amazon ist es scheinbar auf die geschlossene Umgebung ausgerichtet zu sein und eher ein Intranet-Of-Things umzusetzen als ein Internet-of-Things.

Sicherheit & Cloud

Natürlich benötigt auch AWS IoT zum Funktionieren das Internet. Alles, was an bekannten Schwachstellen für Internet gesteuerte Anlagen bekannt ist, trifft auch hier zu (vergl. Beitragsreihe „Smarte Verunsicherung„). Vorbildlich ist die Verschlüsselung, die soweit wie möglich erzwungen wird. Dem Anwender sollte aber klar sein, dass er den privaten Schlüssel von Amazon heruntergeladen hat, auf deren Server sind die Daten daher mit Sicherheit entschlüsselbar.

Obscurity

Im Gegensatz zu anderen Energy-Datenmanagement-Systemen (EDM) oder IoT Cloud-Lösungen, arbeitet man bei Amazon vollständig frei von vordefinierten Schemata. Schaut man sich den Konzepte Abschnitt an, so fehlen dort Standardbezeichner wie „Verbrauch“, „Schaltzustand“ oder „Temperatur“. Auf die Sicherheit übertragen bedeutet dies, dass es Amazon auch nicht direkt möglich ist, zu verstehen welche Daten sie da eigentlich bekommen. Eine „1“ kann eingeschaltet bedeuten, oder 1 Grad, oder sonst etwas. Mit einer einfachen heuristischen Analyse kann man jedoch die Grammatik zum Wortsalat herausfinden. Nichts anderes wird bei Re-Engineering des Vaillant-eBus Protokolls oder der SMA SIP Schnittstelle gemacht:   Beobachten des Datensalates, dann versuchen eine Grammatik zu finden (=Hypothese), prüfen…

Was heute noch eine Sicherheit durch Verwirrung ist, kann sich sehr schnell ändern, wenn mehr und mehr Lösungen auf Basis von AWS IoT Verbreitung finden. Entwickler von Lösungen werden ihre Standardbezeichnungen und Datenformate haben, so dass auf dieser Basis sehr schnell die Grammatik (bzw. Heuristik)  auch dem Cloudanbieter verfügbar ist.

Man-In-The-Middle

Mit der sogenannten Vorratsdatenspeicherung haben wir in Deutschland die Speicherung der sogenannten Verkehrsdaten bekommen. Amazon-Cloud (wie auch alle anderen IoT-Clouds) sind dadurch extrem anfällig geworden. Um etwas Dramatik in diesen Beitrag zu bringen, nehmen wir den Temperatursensor in einem Atomkraftwerk. Das Regelwerk sagt, dass bei Erreichen einer bestimmten Temperatur die Notabschaltung eingeleitet werden soll. Die TCP/IP Verbindung ist dabei als Reaktion auf ein Ereignis eindeutig identifizierbar. Der Angreifer kann diese abfangen, verbiegen oder die Übermittlung der Temperatur für einige Zeit unterdrücken. DNS-Spoofing, IP-Flooding und ähnliche weit verbreiteten  Techniken machen es möglich.

Fazit – Amazon AWS IoT

Das Angebot von Amazon an die IoT-Gemeinde ist deutlich durchdachter, als andere Lösungen auf dem Markt. Vor einem Einsatz im industriellen Umfeld muss das Thema Sicherheit jedoch auch hier beleuchtet werden.

Den Beitrag "Das Internet der Dinge beim Buchhändler - IoT von Amazon offline Lesen:

Kommentar hinterlassen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

benötigt