"Chef, wir haben eine Sicherheitslücke!"
- Zumindest ist bei uns etwas sicher ...Hallo Habr!
In den Kommentaren
zum vorherigen Beitrag zu InoThings ++ äußerten sie die Meinung, dass es im Internet der Dinge einen wichtigeren Diskussionsbereich gibt als staatliche Eingriffe - dies ist der Bereich zur Gewährleistung der Gerätesicherheit. Aus allen Blickwinkeln.
Ich kann hier nur mit einer Sache argumentieren: dass eine Diskussion über Sicherheitsfragen in einem Round-Table-Format stattfinden sollte; Aus diesem Grund werden wir den Runden Tisch so lassen, wie er ist, wenn es um die Notwendigkeit (oder Unnötigkeit) nationaler Standards und allgemein um staatliche Eingriffe in die Industrie geht, aber wir werden separat über Sicherheit sprechen.
Warum wird Sicherheit im Internet der Dinge im Allgemeinen als etwas Besonderes und Spezifisches betrachtet, im Gegensatz zur Sicherheit in klassischen IT-Systemen?
Ja, im Allgemeinen, denn IoT-Systeme ähneln klassischen Systemen nur für den Benutzer, der schöne Bilder auf dem Bildschirm sieht oder eine Glühbirne von einem Smartphone aus steuert - aber im Inneren sind sie auf niedriger Ebene völlig anders.
Und leider schlucken wir immer noch viele Male mit Autoren von Produkten, die die Unterschiede in Ansatz und Problemen nicht verstehen.
Das „Internet der Dinge“ ist in erster Linie eine Geschichte über erschwingliche, billige, kompakte, wirtschaftliche und daher extrem massive Geräte, die mit lokalen oder globalen Datennetzen verbunden sind.
Was bedeutet das in der Praxis?
• Im Allgemeinen eine
drahtlose Verbindung . Wir vertrauen natürlich darauf, dass nur Draht teuer ist. Diejenigen, die ein verkabeltes Smart Home gebaut haben, wissen, dass dies eine umfassende Überholung bedeutet, da in allen Ecken Niederspannung angelegt wird. Und wenn der Draht überhaupt nicht verlegt werden kann?
Tatsächlich begann die rasante Entwicklung des Internet der Dinge mit dem Aufkommen billiger, wirtschaftlicher und drahtloser Verbindungen mit großer Reichweite - von WLAN und BLE zu Hause bis zu LoRaWAN, Sigfox, NB-IoT und so weiter. Verbindungen, die es ermöglichten, einen bestimmten Raum mit Sensoren zu sättigen, ohne sich um deren Stromversorgung und Verbindung zu kümmern.
Radio ist jedoch nicht nur Bequemlichkeit, sondern auch ein Fluch. Wenn Nachbarn, um eine Verbindung zum Kabel herzustellen, die Schlösser an Ihrer Tür öffnen müssen, „hören“ sie Ihr drahtloses Zuhause nicht nur fast immer, sondern können es auch blockieren oder sogar vortäuschen.
• In der Regel äußerst
sparsame Betriebsarten des Funkkanals - ein Gerät ohne konstante Stromversorgung muss durch eine Batterie geschützt werden. Das Speichern auf dem Funkkanal führt dazu, dass das Aktualisieren der Firmware des Geräts über Funk entweder überhaupt nicht möglich oder sinnlos ist, da eine Episode des Updates mehrere zehn Prozent des verfügbaren Akkus verbraucht.
Dementsprechend gewinnt die anfängliche Qualität des Codes und der Protokolle eine extrem hohe Bedeutung - wenn ein schwerwiegendes Loch in ihnen entdeckt wird, kann der Hersteller natürlich eine neue Datei auf seine Website hochladen, aber es macht keinen Sinn.
• In der Regel
Prozessoren mit geringem Stromverbrauch und
geringem Stromverbrauch . Ein typischer IoT-Sensor basiert heutzutage auf Prozessoren der Klasse von STM32L0 bis zum jüngeren STM32L4 und kann aufgrund von Einschränkungen des Speichers und der Verarbeitungsleistung (sowie des Funkkanals, siehe oben) möglicherweise keine komplexen Autorisierungs-, Authentifizierungs- und anderen Schutzschemata abrufen . Darüber hinaus kann ein geringer Stromverbrauch auch das Fehlen eines „zusätzlichen“ Speichers bedeuten, der für die drahtlose Aktualisierung der Firmware erforderlich ist. Der unzuverlässige Funkkanal bedeutet, dass die Firmware nicht direkt in einen „Live“ -Blitz gerollt werden kann und möglicherweise kein Speicher vorhanden ist, um sie in einem separaten Bereich zu speichern und anschließend die funktionierende Firmware neu zu schreiben .
Und über all das spreizen Masse und Allgegenwart ihre Flügel - was in der Praxis bedeutet, dass der Eigentümer keine effektive Kontrolle über den Zugang zu Geräten hat.
Wenn Sie vier Wi-Fi-Geräte in Ihrem Haus hatten - einen Router, einen Laptop und zwei Smartphones - war das Problem, sie zu verlieren, nicht sehr akut, da keines davon ein auswerfbarer Vorfall war.
Wenn Sie drei oder vier Dutzend intelligente Glühbirnen, Schalter, Temperatursensoren und den Teufel in Ihrem Haus haben, was sonst noch - Sie werden höchstwahrscheinlich eine weitere ausgebrannte oder nur eine alte Glühbirne in den Papierkorb werfen, ohne daran zu denken, dass der Schlüssel weiterhin sicher in Ihrem Blitz aufbewahrt wird von Ihrem WiFi-Netzwerk.
Wenn wir nicht über die Größe der Wohnung sprechen, sondern über das Gelände, das Hotel oder die Fabrik, kontrollieren Sie nicht einmal den Zugriff auf IoT-Geräte. Jeder kann Ihre Glühbirne abschrauben, die Zugangsschlüssel abziehen und sie in einer halben Stunde wieder festschrauben - und Sie werden es nicht einmal bemerken.
Geräte können geklont werden. Sie können Schlüssel und Zertifikate von Geräten lesen. Geänderte Firmware kann auf Geräte hochgeladen werden.
Die Frage ist hier nicht, dass dies alles nicht mit einem Wi-Fi-Router möglich wäre - das ist natürlich möglich. Das Problem ist der Übergang von Quantität zu Qualität: Mit der versprochenen exponentiellen Zunahme der Anzahl von IoT-Geräten werden solche Angriffe sinnvoll und realisierbar. Tatsächlich wird die Geschichte mit IP-Kameras wiederholt - obwohl es nur wenige davon gab, dachte niemand, dass Kameras mit demselben Loch in der Firmware ausreichen würden, um ein Skript zu schreiben, das sie in einem riesigen Botnetz sammelt, mit dem GitHub überflutet werden könnte Twitter
Wie es endete -
Sie alle wissen .
In der klassischen Informationssicherheit wird angenommen, dass wenn ein Angreifer vollen physischen Zugriff auf das geschützte Gerät hat - im Allgemeinen ist dies nicht das Ende, aber alles ist schlecht. Im Internet der Dinge ist in diesem Zusammenhang „alles ist schlecht“ - dies ist nicht das Ergebnis böswilliger Taten einer Person, sondern der permanente und anfängliche Zustand des Systems.
Das Sicherheitsproblem im Internet der Dinge ist nicht das Problem von morgen. Das ist heute ein Problem. Wenn Sie es nicht lösen, wird es morgen kein Problem, sondern eine Katastrophe.
Bei InoThings ++ möchten wir unter anderem zweifellos auch darüber sprechen - und wie wir dem Entwickler klar machen können, dass IoT völlig neue Bedrohungsmodelle bringt, und darüber, was dagegen zu tun ist.
Ich werde einige Berichte präsentieren.
Ein Einführungsbericht über die Probleme beim Schutz von IoT-Geräten und neue Bedrohungen für das IoT mit einer Analyse sowohl der russischen Gesetzgebung als auch der Empfehlungen, die bereits von ausländischen Organisationen, einschließlich
NIST ,
ENISA ,
IIC und
anderen, herausgegeben wurden - noch keine Anforderungen - (Links unter den Namen) nicht nur Links, sondern auch zu den relevanten Dokumenten - ich empfehle wirklich, sie zu lesen, wenn Sie etwas mit der Entwicklung von IoT-Geräten zu tun haben.
Dieser Bericht ist einfach ein Muss für Integratoren und Entwickler, die kürzlich in den IoT-Markt eingetreten sind und die möglichen Konsequenzen noch nicht vollständig erkannt haben. Hier gibt es keine Wahl - dies sind Dinge, von denen Sie einfach nichts wissen können, und wenn Sie sie heute nicht verstehen, kann dies morgen zu einer Katastrophe für Sie und Ihr Unternehmen führen, auf die Sie sich einfach nicht vorbereiten können.
Es ist überhaupt kein technischer, sondern auch ein wichtiger Bericht - dass wir jetzt in einer glückseligen Zeit leben, in der jeder Hersteller in seinen Geräten flüstern kann, was sein Herz begehrt, und es nichts für ihn geben wird.
Genauer gesagt, die Tatsache, dass diese Zeit bald zu Ende geht - der Bedarf an Gesetzesänderungen in Bezug auf IoT und intelligente Geräte im Allgemeinen ist gereift, und die Branche wird hier weiterhin ihre DSGVO erhalten.
Der erste (notwendige, aber nicht ausreichende) Schritt zur Sicherheit von IoT-Systemen ist das Schreiben von zuverlässigem Code. Eine Möglichkeit, die Zuverlässigkeit zu erhöhen, besteht darin, Standards einzuhalten, die in Branchen entwickelt wurden, die Jahrzehnte älter als das Internet der Dinge sind - beispielsweise den MISRA C-Code-Qualitätsstandard „Automotive“.
Die Einhaltung von MISRA C und die Verwendung von Analysegeräten für statischen Code allein garantieren Ihnen natürlich keine absolute Zuverlässigkeit. Sie können jedoch eine relativ große Anzahl von Fehlern vermeiden, angefangen bei banaler Nachlässigkeit, Kopieren und Einfügen bis hin zu Tippfehlern. Leider ist die Praxis, zuverlässigen Code zu schreiben, unter eingebetteten Programmierern immer noch sehr schlecht verbreitet - und ich hoffe, dass Philip zumindest einige der Konferenzteilnehmer dazu inspirieren wird, diese Praktiken in ihre Arbeit umzusetzen.
Eine andere Möglichkeit, die Zuverlässigkeit des Codes zu erhöhen, besteht darin, anstatt das Schießen auf eigenen Beinen und andere natürliche Auswahl von Typ-C-Sprachen zu fördern, zu Sprachen zu wechseln, die ursprünglich als zuverlässiger konzipiert wurden und es Ihnen nicht erlauben, viele Fehler zu machen (ich schreibe jetzt mit aller Verantwortung als Person gestern um zwei Uhr Nachts wird ein Stapelüberlaufereignis abgefangen, das in zufälligen Momenten auftrat, manchmal nach zehn Minuten aktiven Firmware-Betriebs.
Wie vielversprechend die Aussichten sind, so vage und gegenwärtig sind solche Sprachen - zum Beispiel gehört Rust, der Hauptkandidat für die Rolle des zukünftigen Standards im Bereich der eingebetteten Software, für die meisten praktizierenden Programmierer zur Kategorie „Ich habe gehört, es ist cool, aber wofür habe ich jetzt?“. Dies wird besonders durch die traditionelle Hype-Kurve erleichtert, auf der sich Rust bewegt - sie stieg an die Spitze und war offen unvorbereitet für den ernsthaften praktischen Einsatz, wonach viele Entwickler einfach aufhörten, ihr zukünftiges Schicksal zu überwachen.
Tatsächlich wird Eugene Ihnen in dem Bericht erzählen, was das aktuelle Schicksal von Rust ist, warum es bereits als Arbeitssprache angesehen werden kann und wie viele Kilometer Nervenenden es Sie kosten wird, es hier und jetzt zu verwenden.
Und schließlich ein rein praktischer Bericht - darüber, was erforderlich ist, um das Vertrauen in Ihre Geräte zu gewährleisten, wenn Sie diese bereits einige hundert Teile installiert haben und gleichzeitig sicher sind, dass sich zu jeder Zeit mindestens mehrere Dutzend davon in den Schränken befinden. Sie haben vergessen zu sperren und können jederzeit darauf zugreifen. Führen Sie die Firmware zusammen und laden Sie sie auf ein Gerät hoch, das anscheinend dasselbe ist, aber nicht mehr Ihres.
Darüber hinaus reicht es nicht aus, diese Geräte zu steuern - sie müssen zuerst bereitgestellt werden, was aus Sicht der Authentifizierung auch eine eher nicht triviale Aufgabe sein kann.
InoThings ++ 2019
Alle diese Berichte - wie auch viele andere - sind auf der InoThings ++ - Konferenz zu hören. Besonders wertvoll ist es, nicht nur zu hören, sondern ihre Reden zu beenden und sie an den Rand zu stellen, um das Gespräch fortzusetzen. Dies ist es, was einen lebhaften Besuch von Technologiekonferenzen wertvoll macht. Nachdem Sie sechs Monate lang eine Aufzeichnung einer Performance oder eines Albums in einer Diashow mit einem Auge durchgesehen haben, können Sie in diesem Moment nicht aufstehen und nach weiteren Details fragen, den Redner zu einer Tasse Kaffee bringen, um detaillierter über seine Projekte zu sprechen, und so weiter und so fort.
Deshalb komm. Tickets
kosten derzeit 15.000 Rubel , und glauben Sie mir, für eine Konferenz dieses Niveaus und mit solchen Rednern - das ist sehr bescheiden.
