Blog

Wenn gute Mikrowellen schlecht werden: Warum die Sicherheit eingebetteter Systeme der nächste große Kampf für Entwickler ist

Matias Madou, Ph.D.
Veröffentlicht Aug 30, 2021

In der Popkultur gibt es viele Anspielungen auf schurkische KI und Roboter sowie auf Geräte, die sich gegen ihre menschlichen Herren wenden. Es ist stark von Science-Fiction-Spaß und Fantasie durchdrungen, aber mit der zunehmenden Verbreitung von IoT und vernetzten Geräten in unseren Haushalten sollte auch das Gespräch über Cybersecurity und Sicherheit geführt werden. Software ist allgegenwärtig, und man vergisst leicht, wie sehr wir uns auf Codezeilen verlassen, um all die cleveren Dinge zu tun, die uns so viel Innovation und Komfort bieten. Ähnlich wie bei webbasierter Software, APIs und mobilen Geräten kann anfälliger Code in eingebetteten Systemen ausgenutzt werden, wenn er von einem Angreifer in freier Wildbahn entdeckt wird. 

Es ist zwar unwahrscheinlich, dass eine Armee von Mikrowellen kommt, um die Menschheit zu versklaven (obwohl der Tesla-Bot etwas beunruhigend ist), aber bösartige Cyberangriffe sind dennoch möglich. Einige unserer Autos, Flugzeuge und medizinischen Geräte sind auf komplizierte eingebettete Systemcodes angewiesen, um wichtige Aufgaben zu erfüllen, und die Aussicht, dass diese Objekte kompromittiert werden könnten, ist nicht nur alarmierend, sondern potenziell lebensbedrohlich.

Wie bei jeder anderen Software auch, gehören die Entwickler zu den ersten, die den Code gleich zu Beginn der Erstellungsphase anfassen. Und wie bei jeder anderen Software kann dies der Nährboden für heimtückische, allgemeine Schwachstellen sein, die unentdeckt bleiben könnten, bevor das Produkt in Betrieb geht. 

Entwickler sind keine Sicherheitsexperten, und kein Unternehmen sollte von ihnen erwarten, dass sie diese Rolle übernehmen, aber sie können mit einem weitaus stärkeren Arsenal ausgestattet werden, um die Art von Bedrohungen zu bekämpfen, die für sie relevant sind. Eingebettete Systeme, die in der Regel in C und C++ geschrieben sind, werden immer häufiger zum Einsatz kommen, da sich unsere technischen Anforderungen ständig weiterentwickeln, und eine spezielle Sicherheitsschulung der Entwickler für die Tools in dieser Umgebung ist unerlässlich. 

Explodierende Fritteusen, bösartige Fahrzeuge... Sind wir leichte Beute?

Es gibt zwar einige Standards und Vorschriften für die sichere Entwicklung, um uns zu schützen, aber wir müssen weitaus präzisere und sinnvollere Schritte in Richtung aller Arten von Softwaresicherheit unternehmen. Es mag weit hergeholt erscheinen, an ein Problem zu denken, das dadurch verursacht wird, dass sich jemand in eine Fritteuse hackt, aber es ist in Form eines Angriffs zur Remote-Code-Ausführung (der es dem Bedrohungsakteur ermöglicht, die Temperatur auf ein gefährliches Niveau zu erhöhen) bereits geschehen, ebenso wie Schwachstellen, die zu Fahrzeugübernahmen führen.

Vor allem Fahrzeuge sind besonders komplex, da sie mehrere eingebettete Systeme an Bord haben, die sich jeweils um Mikrofunktionen kümmern - von automatischen Scheibenwischern bis hin zu Motor- und Bremsfunktionen. In Verbindung mit einer ständig wachsenden Anzahl von Kommunikationstechnologien wie WLAN, Bluetooth und GPS stellt das vernetzte Fahrzeug eine komplexe digitale Infrastruktur dar, die zahlreichen Angriffsmöglichkeiten ausgesetzt ist. Und bei 76,3 Millionen vernetzten Fahrzeugen, die bis 2023 weltweit auf den Straßen unterwegs sein sollen, stellt dies einen Monolithen an Verteidigungsgrundlagen dar, die für echte Sicherheit gelegt werden müssen.

MISRA ist eine der wichtigsten Organisationen im Kampf gegen die Bedrohungen eingebetteter Systeme. Sie hat Richtlinien entwickelt, die die Codesicherheit, die Sicherheit, die Portabilität und die Zuverlässigkeit im Zusammenhang mit eingebetteten Systemen erleichtern. Diese Richtlinien sind der Nordstern unter den Standards, die jedes Unternehmen bei seinen Projekten für eingebettete Systeme anstreben muss.

Um jedoch Code zu erstellen und auszuführen, der diesem Goldstandard entspricht, sind Ingenieure für eingebettete Systeme erforderlich, die mit den Werkzeugen vertraut sind - ganz zu schweigen vom Sicherheitsbewusstsein -. 

Warum ist die Weiterbildung im Bereich der Sicherheit eingebetteter Systeme so spezifisch?

Die Programmiersprachen C und C++ sind nach heutigen Maßstäben betagt, werden aber nach wie vor häufig verwendet. Sie bilden den funktionierenden Kern der Codebasis für eingebettete Systeme, und Embedded C/C++ genießt ein glänzendes, modernes Leben als Teil der Welt der vernetzten Geräte.

Obwohl diese Sprachen recht alte Wurzeln haben - und ein ähnliches Verhalten gegenüber Schwachstellen in Bezug auf häufige Probleme wie Injektionsfehler und Pufferüberläufe aufweisen - müssen Entwickler, um wirklich erfolgreich Sicherheitslücken in eingebetteten Systemen zu entschärfen, praktische Erfahrungen mit Code sammeln, der die Umgebungen nachahmt, in denen sie arbeiten. Eine generische C-Schulung in allgemeinen Sicherheitspraktiken ist einfach nicht so wirkungsvoll und einprägsam, wie wenn zusätzliche Zeit und Sorgfalt in die Arbeit in einem Embedded C-Kontext investiert wird.

Da ein modernes Fahrzeug zwischen einem Dutzend und mehr als hundert eingebettete Systeme enthält, ist es unerlässlich, dass die Entwickler genau wissen, worauf sie achten müssen und wie sie die Probleme beheben können, und zwar direkt in der IDE.

Wie sieht ein Fehler in der Geschäftslogik in eingebettetem C/C++ aus? Werfen Sie einen Blick darauf und sehen Sie, ob Sie ihn wie ein Profi erkennen und beheben können.

Der Schutz eingebetteter Systeme von Grund auf liegt in der Verantwortung aller

Der Status quo in vielen Unternehmen ist, dass die Entwicklungsgeschwindigkeit die Sicherheit übertrumpft, zumindest wenn es um die Verantwortung der Entwickler geht. Sie werden selten nach ihrer Fähigkeit beurteilt, sicheren Code zu produzieren, aber die schnelle Entwicklung toller Funktionen ist der goldene Standard. Die Nachfrage nach Software wird nur noch steigen, aber diese Kultur hat uns auf einen aussichtslosen Kampf gegen Schwachstellen und die daraus resultierenden Cyberangriffe eingestellt. 

Wenn Entwickler nicht geschult sind, ist das nicht ihre Schuld, und es ist eine Lücke, die jemand im AppSec-Team füllen helfen muss, indem er die richtigen, zugänglichen (ganz zu schweigen von bewertbaren) Weiterbildungsprogramme für die gesamte Entwicklergemeinschaft empfiehlt. Gleich zu Beginn eines Softwareentwicklungsprojekts muss das Thema Sicherheit ganz oben auf der Agenda stehen, und jeder - vor allem die Entwickler - muss das bekommen, was er braucht, um seine Rolle zu spielen. 

Praktische Erfahrungen mit Sicherheitsproblemen bei eingebetteten Systemen

Pufferüberläufe, Injektionsfehler und Fehler in der Geschäftslogik sind häufige Fallstricke bei der Entwicklung eingebetteter Systeme. Wenn sie tief in einem Labyrinth von Mikrocontrollern in einem einzigen Fahrzeug oder Gerät verborgen sind, kann dies aus der Sicherheitsperspektive eine Katastrophe bedeuten.

Pufferüberlauf ist besonders häufig, und wenn Sie einen tiefen Einblick in die Kompromittierung der Fritteuse, über die wir zuvor gesprochen haben, erhalten möchten (und die Remotecodeausführung ermöglicht), lesen Sie diesen Bericht über CVE-2020-28592.

Jetzt ist es an der Zeit, sich mit einer Pufferüberlaufschwachstelle in echtem eingebettetem C/C++-Code auseinanderzusetzen. Spielen Sie diese Herausforderung, um zu sehen, ob Sie die schlechten Codierungsmuster, die zu diesem heimtückischen Fehler führen, lokalisieren, identifizieren und beheben können:

Pufferüberlauf-Historie erstellen.



Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Ressource anzeigen
Ressource anzeigen

Ähnlich wie webbasierte Software, APIs und mobile Geräte kann anfälliger Code in eingebetteten Systemen ausgenutzt werden, wenn er von einem Angreifer in freier Wildbahn entdeckt wird.

Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Weitergeben:
Autor
Matias Madou, Ph.D.
Veröffentlicht Aug 30, 2021

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und kann auf über 10 Patente verweisen. Wenn er nicht am Schreibtisch sitzt, ist Matias als Ausbilder für fortgeschrittene Anwendungssicherheitstrainings courses tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat einen Doktortitel in Computertechnik von der Universität Gent, wo er die Sicherheit von Anwendungen durch Programmverschleierung untersuchte, um die innere Funktionsweise einer Anwendung zu verbergen.

Weitergeben:

In der Popkultur gibt es viele Anspielungen auf schurkische KI und Roboter sowie auf Geräte, die sich gegen ihre menschlichen Herren wenden. Es ist stark von Science-Fiction-Spaß und Fantasie durchdrungen, aber mit der zunehmenden Verbreitung von IoT und vernetzten Geräten in unseren Haushalten sollte auch das Gespräch über Cybersecurity und Sicherheit geführt werden. Software ist allgegenwärtig, und man vergisst leicht, wie sehr wir uns auf Codezeilen verlassen, um all die cleveren Dinge zu tun, die uns so viel Innovation und Komfort bieten. Ähnlich wie bei webbasierter Software, APIs und mobilen Geräten kann anfälliger Code in eingebetteten Systemen ausgenutzt werden, wenn er von einem Angreifer in freier Wildbahn entdeckt wird. 

Es ist zwar unwahrscheinlich, dass eine Armee von Mikrowellen kommt, um die Menschheit zu versklaven (obwohl der Tesla-Bot etwas beunruhigend ist), aber bösartige Cyberangriffe sind dennoch möglich. Einige unserer Autos, Flugzeuge und medizinischen Geräte sind auf komplizierte eingebettete Systemcodes angewiesen, um wichtige Aufgaben zu erfüllen, und die Aussicht, dass diese Objekte kompromittiert werden könnten, ist nicht nur alarmierend, sondern potenziell lebensbedrohlich.

Wie bei jeder anderen Software auch, gehören die Entwickler zu den ersten, die den Code gleich zu Beginn der Erstellungsphase anfassen. Und wie bei jeder anderen Software kann dies der Nährboden für heimtückische, allgemeine Schwachstellen sein, die unentdeckt bleiben könnten, bevor das Produkt in Betrieb geht. 

Entwickler sind keine Sicherheitsexperten, und kein Unternehmen sollte von ihnen erwarten, dass sie diese Rolle übernehmen, aber sie können mit einem weitaus stärkeren Arsenal ausgestattet werden, um die Art von Bedrohungen zu bekämpfen, die für sie relevant sind. Eingebettete Systeme, die in der Regel in C und C++ geschrieben sind, werden immer häufiger zum Einsatz kommen, da sich unsere technischen Anforderungen ständig weiterentwickeln, und eine spezielle Sicherheitsschulung der Entwickler für die Tools in dieser Umgebung ist unerlässlich. 

Explodierende Fritteusen, bösartige Fahrzeuge... Sind wir leichte Beute?

Es gibt zwar einige Standards und Vorschriften für die sichere Entwicklung, um uns zu schützen, aber wir müssen weitaus präzisere und sinnvollere Schritte in Richtung aller Arten von Softwaresicherheit unternehmen. Es mag weit hergeholt erscheinen, an ein Problem zu denken, das dadurch verursacht wird, dass sich jemand in eine Fritteuse hackt, aber es ist in Form eines Angriffs zur Remote-Code-Ausführung (der es dem Bedrohungsakteur ermöglicht, die Temperatur auf ein gefährliches Niveau zu erhöhen) bereits geschehen, ebenso wie Schwachstellen, die zu Fahrzeugübernahmen führen.

Vor allem Fahrzeuge sind besonders komplex, da sie mehrere eingebettete Systeme an Bord haben, die sich jeweils um Mikrofunktionen kümmern - von automatischen Scheibenwischern bis hin zu Motor- und Bremsfunktionen. In Verbindung mit einer ständig wachsenden Anzahl von Kommunikationstechnologien wie WLAN, Bluetooth und GPS stellt das vernetzte Fahrzeug eine komplexe digitale Infrastruktur dar, die zahlreichen Angriffsmöglichkeiten ausgesetzt ist. Und bei 76,3 Millionen vernetzten Fahrzeugen, die bis 2023 weltweit auf den Straßen unterwegs sein sollen, stellt dies einen Monolithen an Verteidigungsgrundlagen dar, die für echte Sicherheit gelegt werden müssen.

MISRA ist eine der wichtigsten Organisationen im Kampf gegen die Bedrohungen eingebetteter Systeme. Sie hat Richtlinien entwickelt, die die Codesicherheit, die Sicherheit, die Portabilität und die Zuverlässigkeit im Zusammenhang mit eingebetteten Systemen erleichtern. Diese Richtlinien sind der Nordstern unter den Standards, die jedes Unternehmen bei seinen Projekten für eingebettete Systeme anstreben muss.

Um jedoch Code zu erstellen und auszuführen, der diesem Goldstandard entspricht, sind Ingenieure für eingebettete Systeme erforderlich, die mit den Werkzeugen vertraut sind - ganz zu schweigen vom Sicherheitsbewusstsein -. 

Warum ist die Weiterbildung im Bereich der Sicherheit eingebetteter Systeme so spezifisch?

Die Programmiersprachen C und C++ sind nach heutigen Maßstäben betagt, werden aber nach wie vor häufig verwendet. Sie bilden den funktionierenden Kern der Codebasis für eingebettete Systeme, und Embedded C/C++ genießt ein glänzendes, modernes Leben als Teil der Welt der vernetzten Geräte.

Obwohl diese Sprachen recht alte Wurzeln haben - und ein ähnliches Verhalten gegenüber Schwachstellen in Bezug auf häufige Probleme wie Injektionsfehler und Pufferüberläufe aufweisen - müssen Entwickler, um wirklich erfolgreich Sicherheitslücken in eingebetteten Systemen zu entschärfen, praktische Erfahrungen mit Code sammeln, der die Umgebungen nachahmt, in denen sie arbeiten. Eine generische C-Schulung in allgemeinen Sicherheitspraktiken ist einfach nicht so wirkungsvoll und einprägsam, wie wenn zusätzliche Zeit und Sorgfalt in die Arbeit in einem Embedded C-Kontext investiert wird.

Da ein modernes Fahrzeug zwischen einem Dutzend und mehr als hundert eingebettete Systeme enthält, ist es unerlässlich, dass die Entwickler genau wissen, worauf sie achten müssen und wie sie die Probleme beheben können, und zwar direkt in der IDE.

Wie sieht ein Fehler in der Geschäftslogik in eingebettetem C/C++ aus? Werfen Sie einen Blick darauf und sehen Sie, ob Sie ihn wie ein Profi erkennen und beheben können.

Der Schutz eingebetteter Systeme von Grund auf liegt in der Verantwortung aller

Der Status quo in vielen Unternehmen ist, dass die Entwicklungsgeschwindigkeit die Sicherheit übertrumpft, zumindest wenn es um die Verantwortung der Entwickler geht. Sie werden selten nach ihrer Fähigkeit beurteilt, sicheren Code zu produzieren, aber die schnelle Entwicklung toller Funktionen ist der goldene Standard. Die Nachfrage nach Software wird nur noch steigen, aber diese Kultur hat uns auf einen aussichtslosen Kampf gegen Schwachstellen und die daraus resultierenden Cyberangriffe eingestellt. 

Wenn Entwickler nicht geschult sind, ist das nicht ihre Schuld, und es ist eine Lücke, die jemand im AppSec-Team füllen helfen muss, indem er die richtigen, zugänglichen (ganz zu schweigen von bewertbaren) Weiterbildungsprogramme für die gesamte Entwicklergemeinschaft empfiehlt. Gleich zu Beginn eines Softwareentwicklungsprojekts muss das Thema Sicherheit ganz oben auf der Agenda stehen, und jeder - vor allem die Entwickler - muss das bekommen, was er braucht, um seine Rolle zu spielen. 

Praktische Erfahrungen mit Sicherheitsproblemen bei eingebetteten Systemen

Pufferüberläufe, Injektionsfehler und Fehler in der Geschäftslogik sind häufige Fallstricke bei der Entwicklung eingebetteter Systeme. Wenn sie tief in einem Labyrinth von Mikrocontrollern in einem einzigen Fahrzeug oder Gerät verborgen sind, kann dies aus der Sicherheitsperspektive eine Katastrophe bedeuten.

Pufferüberlauf ist besonders häufig, und wenn Sie einen tiefen Einblick in die Kompromittierung der Fritteuse, über die wir zuvor gesprochen haben, erhalten möchten (und die Remotecodeausführung ermöglicht), lesen Sie diesen Bericht über CVE-2020-28592.

Jetzt ist es an der Zeit, sich mit einer Pufferüberlaufschwachstelle in echtem eingebettetem C/C++-Code auseinanderzusetzen. Spielen Sie diese Herausforderung, um zu sehen, ob Sie die schlechten Codierungsmuster, die zu diesem heimtückischen Fehler führen, lokalisieren, identifizieren und beheben können:

Pufferüberlauf-Historie erstellen.



Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Ressource anzeigen
Ressource anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.

In der Popkultur gibt es viele Anspielungen auf schurkische KI und Roboter sowie auf Geräte, die sich gegen ihre menschlichen Herren wenden. Es ist stark von Science-Fiction-Spaß und Fantasie durchdrungen, aber mit der zunehmenden Verbreitung von IoT und vernetzten Geräten in unseren Haushalten sollte auch das Gespräch über Cybersecurity und Sicherheit geführt werden. Software ist allgegenwärtig, und man vergisst leicht, wie sehr wir uns auf Codezeilen verlassen, um all die cleveren Dinge zu tun, die uns so viel Innovation und Komfort bieten. Ähnlich wie bei webbasierter Software, APIs und mobilen Geräten kann anfälliger Code in eingebetteten Systemen ausgenutzt werden, wenn er von einem Angreifer in freier Wildbahn entdeckt wird. 

Es ist zwar unwahrscheinlich, dass eine Armee von Mikrowellen kommt, um die Menschheit zu versklaven (obwohl der Tesla-Bot etwas beunruhigend ist), aber bösartige Cyberangriffe sind dennoch möglich. Einige unserer Autos, Flugzeuge und medizinischen Geräte sind auf komplizierte eingebettete Systemcodes angewiesen, um wichtige Aufgaben zu erfüllen, und die Aussicht, dass diese Objekte kompromittiert werden könnten, ist nicht nur alarmierend, sondern potenziell lebensbedrohlich.

Wie bei jeder anderen Software auch, gehören die Entwickler zu den ersten, die den Code gleich zu Beginn der Erstellungsphase anfassen. Und wie bei jeder anderen Software kann dies der Nährboden für heimtückische, allgemeine Schwachstellen sein, die unentdeckt bleiben könnten, bevor das Produkt in Betrieb geht. 

Entwickler sind keine Sicherheitsexperten, und kein Unternehmen sollte von ihnen erwarten, dass sie diese Rolle übernehmen, aber sie können mit einem weitaus stärkeren Arsenal ausgestattet werden, um die Art von Bedrohungen zu bekämpfen, die für sie relevant sind. Eingebettete Systeme, die in der Regel in C und C++ geschrieben sind, werden immer häufiger zum Einsatz kommen, da sich unsere technischen Anforderungen ständig weiterentwickeln, und eine spezielle Sicherheitsschulung der Entwickler für die Tools in dieser Umgebung ist unerlässlich. 

Explodierende Fritteusen, bösartige Fahrzeuge... Sind wir leichte Beute?

Es gibt zwar einige Standards und Vorschriften für die sichere Entwicklung, um uns zu schützen, aber wir müssen weitaus präzisere und sinnvollere Schritte in Richtung aller Arten von Softwaresicherheit unternehmen. Es mag weit hergeholt erscheinen, an ein Problem zu denken, das dadurch verursacht wird, dass sich jemand in eine Fritteuse hackt, aber es ist in Form eines Angriffs zur Remote-Code-Ausführung (der es dem Bedrohungsakteur ermöglicht, die Temperatur auf ein gefährliches Niveau zu erhöhen) bereits geschehen, ebenso wie Schwachstellen, die zu Fahrzeugübernahmen führen.

Vor allem Fahrzeuge sind besonders komplex, da sie mehrere eingebettete Systeme an Bord haben, die sich jeweils um Mikrofunktionen kümmern - von automatischen Scheibenwischern bis hin zu Motor- und Bremsfunktionen. In Verbindung mit einer ständig wachsenden Anzahl von Kommunikationstechnologien wie WLAN, Bluetooth und GPS stellt das vernetzte Fahrzeug eine komplexe digitale Infrastruktur dar, die zahlreichen Angriffsmöglichkeiten ausgesetzt ist. Und bei 76,3 Millionen vernetzten Fahrzeugen, die bis 2023 weltweit auf den Straßen unterwegs sein sollen, stellt dies einen Monolithen an Verteidigungsgrundlagen dar, die für echte Sicherheit gelegt werden müssen.

MISRA ist eine der wichtigsten Organisationen im Kampf gegen die Bedrohungen eingebetteter Systeme. Sie hat Richtlinien entwickelt, die die Codesicherheit, die Sicherheit, die Portabilität und die Zuverlässigkeit im Zusammenhang mit eingebetteten Systemen erleichtern. Diese Richtlinien sind der Nordstern unter den Standards, die jedes Unternehmen bei seinen Projekten für eingebettete Systeme anstreben muss.

Um jedoch Code zu erstellen und auszuführen, der diesem Goldstandard entspricht, sind Ingenieure für eingebettete Systeme erforderlich, die mit den Werkzeugen vertraut sind - ganz zu schweigen vom Sicherheitsbewusstsein -. 

Warum ist die Weiterbildung im Bereich der Sicherheit eingebetteter Systeme so spezifisch?

Die Programmiersprachen C und C++ sind nach heutigen Maßstäben betagt, werden aber nach wie vor häufig verwendet. Sie bilden den funktionierenden Kern der Codebasis für eingebettete Systeme, und Embedded C/C++ genießt ein glänzendes, modernes Leben als Teil der Welt der vernetzten Geräte.

Obwohl diese Sprachen recht alte Wurzeln haben - und ein ähnliches Verhalten gegenüber Schwachstellen in Bezug auf häufige Probleme wie Injektionsfehler und Pufferüberläufe aufweisen - müssen Entwickler, um wirklich erfolgreich Sicherheitslücken in eingebetteten Systemen zu entschärfen, praktische Erfahrungen mit Code sammeln, der die Umgebungen nachahmt, in denen sie arbeiten. Eine generische C-Schulung in allgemeinen Sicherheitspraktiken ist einfach nicht so wirkungsvoll und einprägsam, wie wenn zusätzliche Zeit und Sorgfalt in die Arbeit in einem Embedded C-Kontext investiert wird.

Da ein modernes Fahrzeug zwischen einem Dutzend und mehr als hundert eingebettete Systeme enthält, ist es unerlässlich, dass die Entwickler genau wissen, worauf sie achten müssen und wie sie die Probleme beheben können, und zwar direkt in der IDE.

Wie sieht ein Fehler in der Geschäftslogik in eingebettetem C/C++ aus? Werfen Sie einen Blick darauf und sehen Sie, ob Sie ihn wie ein Profi erkennen und beheben können.

Der Schutz eingebetteter Systeme von Grund auf liegt in der Verantwortung aller

Der Status quo in vielen Unternehmen ist, dass die Entwicklungsgeschwindigkeit die Sicherheit übertrumpft, zumindest wenn es um die Verantwortung der Entwickler geht. Sie werden selten nach ihrer Fähigkeit beurteilt, sicheren Code zu produzieren, aber die schnelle Entwicklung toller Funktionen ist der goldene Standard. Die Nachfrage nach Software wird nur noch steigen, aber diese Kultur hat uns auf einen aussichtslosen Kampf gegen Schwachstellen und die daraus resultierenden Cyberangriffe eingestellt. 

Wenn Entwickler nicht geschult sind, ist das nicht ihre Schuld, und es ist eine Lücke, die jemand im AppSec-Team füllen helfen muss, indem er die richtigen, zugänglichen (ganz zu schweigen von bewertbaren) Weiterbildungsprogramme für die gesamte Entwicklergemeinschaft empfiehlt. Gleich zu Beginn eines Softwareentwicklungsprojekts muss das Thema Sicherheit ganz oben auf der Agenda stehen, und jeder - vor allem die Entwickler - muss das bekommen, was er braucht, um seine Rolle zu spielen. 

Praktische Erfahrungen mit Sicherheitsproblemen bei eingebetteten Systemen

Pufferüberläufe, Injektionsfehler und Fehler in der Geschäftslogik sind häufige Fallstricke bei der Entwicklung eingebetteter Systeme. Wenn sie tief in einem Labyrinth von Mikrocontrollern in einem einzigen Fahrzeug oder Gerät verborgen sind, kann dies aus der Sicherheitsperspektive eine Katastrophe bedeuten.

Pufferüberlauf ist besonders häufig, und wenn Sie einen tiefen Einblick in die Kompromittierung der Fritteuse, über die wir zuvor gesprochen haben, erhalten möchten (und die Remotecodeausführung ermöglicht), lesen Sie diesen Bericht über CVE-2020-28592.

Jetzt ist es an der Zeit, sich mit einer Pufferüberlaufschwachstelle in echtem eingebettetem C/C++-Code auseinanderzusetzen. Spielen Sie diese Herausforderung, um zu sehen, ob Sie die schlechten Codierungsmuster, die zu diesem heimtückischen Fehler führen, lokalisieren, identifizieren und beheben können:

Pufferüberlauf-Historie erstellen.



Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Auf Ressource zugreifen

Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht ansehenDemo buchen
PDF herunterladen
Ressource anzeigen
Weitergeben:
Interessiert an mehr?

Weitergeben:
Autor
Matias Madou, Ph.D.
Veröffentlicht Aug 30, 2021

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und kann auf über 10 Patente verweisen. Wenn er nicht am Schreibtisch sitzt, ist Matias als Ausbilder für fortgeschrittene Anwendungssicherheitstrainings courses tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat einen Doktortitel in Computertechnik von der Universität Gent, wo er die Sicherheit von Anwendungen durch Programmverschleierung untersuchte, um die innere Funktionsweise einer Anwendung zu verbergen.

Weitergeben:

In der Popkultur gibt es viele Anspielungen auf schurkische KI und Roboter sowie auf Geräte, die sich gegen ihre menschlichen Herren wenden. Es ist stark von Science-Fiction-Spaß und Fantasie durchdrungen, aber mit der zunehmenden Verbreitung von IoT und vernetzten Geräten in unseren Haushalten sollte auch das Gespräch über Cybersecurity und Sicherheit geführt werden. Software ist allgegenwärtig, und man vergisst leicht, wie sehr wir uns auf Codezeilen verlassen, um all die cleveren Dinge zu tun, die uns so viel Innovation und Komfort bieten. Ähnlich wie bei webbasierter Software, APIs und mobilen Geräten kann anfälliger Code in eingebetteten Systemen ausgenutzt werden, wenn er von einem Angreifer in freier Wildbahn entdeckt wird. 

Es ist zwar unwahrscheinlich, dass eine Armee von Mikrowellen kommt, um die Menschheit zu versklaven (obwohl der Tesla-Bot etwas beunruhigend ist), aber bösartige Cyberangriffe sind dennoch möglich. Einige unserer Autos, Flugzeuge und medizinischen Geräte sind auf komplizierte eingebettete Systemcodes angewiesen, um wichtige Aufgaben zu erfüllen, und die Aussicht, dass diese Objekte kompromittiert werden könnten, ist nicht nur alarmierend, sondern potenziell lebensbedrohlich.

Wie bei jeder anderen Software auch, gehören die Entwickler zu den ersten, die den Code gleich zu Beginn der Erstellungsphase anfassen. Und wie bei jeder anderen Software kann dies der Nährboden für heimtückische, allgemeine Schwachstellen sein, die unentdeckt bleiben könnten, bevor das Produkt in Betrieb geht. 

Entwickler sind keine Sicherheitsexperten, und kein Unternehmen sollte von ihnen erwarten, dass sie diese Rolle übernehmen, aber sie können mit einem weitaus stärkeren Arsenal ausgestattet werden, um die Art von Bedrohungen zu bekämpfen, die für sie relevant sind. Eingebettete Systeme, die in der Regel in C und C++ geschrieben sind, werden immer häufiger zum Einsatz kommen, da sich unsere technischen Anforderungen ständig weiterentwickeln, und eine spezielle Sicherheitsschulung der Entwickler für die Tools in dieser Umgebung ist unerlässlich. 

Explodierende Fritteusen, bösartige Fahrzeuge... Sind wir leichte Beute?

Es gibt zwar einige Standards und Vorschriften für die sichere Entwicklung, um uns zu schützen, aber wir müssen weitaus präzisere und sinnvollere Schritte in Richtung aller Arten von Softwaresicherheit unternehmen. Es mag weit hergeholt erscheinen, an ein Problem zu denken, das dadurch verursacht wird, dass sich jemand in eine Fritteuse hackt, aber es ist in Form eines Angriffs zur Remote-Code-Ausführung (der es dem Bedrohungsakteur ermöglicht, die Temperatur auf ein gefährliches Niveau zu erhöhen) bereits geschehen, ebenso wie Schwachstellen, die zu Fahrzeugübernahmen führen.

Vor allem Fahrzeuge sind besonders komplex, da sie mehrere eingebettete Systeme an Bord haben, die sich jeweils um Mikrofunktionen kümmern - von automatischen Scheibenwischern bis hin zu Motor- und Bremsfunktionen. In Verbindung mit einer ständig wachsenden Anzahl von Kommunikationstechnologien wie WLAN, Bluetooth und GPS stellt das vernetzte Fahrzeug eine komplexe digitale Infrastruktur dar, die zahlreichen Angriffsmöglichkeiten ausgesetzt ist. Und bei 76,3 Millionen vernetzten Fahrzeugen, die bis 2023 weltweit auf den Straßen unterwegs sein sollen, stellt dies einen Monolithen an Verteidigungsgrundlagen dar, die für echte Sicherheit gelegt werden müssen.

MISRA ist eine der wichtigsten Organisationen im Kampf gegen die Bedrohungen eingebetteter Systeme. Sie hat Richtlinien entwickelt, die die Codesicherheit, die Sicherheit, die Portabilität und die Zuverlässigkeit im Zusammenhang mit eingebetteten Systemen erleichtern. Diese Richtlinien sind der Nordstern unter den Standards, die jedes Unternehmen bei seinen Projekten für eingebettete Systeme anstreben muss.

Um jedoch Code zu erstellen und auszuführen, der diesem Goldstandard entspricht, sind Ingenieure für eingebettete Systeme erforderlich, die mit den Werkzeugen vertraut sind - ganz zu schweigen vom Sicherheitsbewusstsein -. 

Warum ist die Weiterbildung im Bereich der Sicherheit eingebetteter Systeme so spezifisch?

Die Programmiersprachen C und C++ sind nach heutigen Maßstäben betagt, werden aber nach wie vor häufig verwendet. Sie bilden den funktionierenden Kern der Codebasis für eingebettete Systeme, und Embedded C/C++ genießt ein glänzendes, modernes Leben als Teil der Welt der vernetzten Geräte.

Obwohl diese Sprachen recht alte Wurzeln haben - und ein ähnliches Verhalten gegenüber Schwachstellen in Bezug auf häufige Probleme wie Injektionsfehler und Pufferüberläufe aufweisen - müssen Entwickler, um wirklich erfolgreich Sicherheitslücken in eingebetteten Systemen zu entschärfen, praktische Erfahrungen mit Code sammeln, der die Umgebungen nachahmt, in denen sie arbeiten. Eine generische C-Schulung in allgemeinen Sicherheitspraktiken ist einfach nicht so wirkungsvoll und einprägsam, wie wenn zusätzliche Zeit und Sorgfalt in die Arbeit in einem Embedded C-Kontext investiert wird.

Da ein modernes Fahrzeug zwischen einem Dutzend und mehr als hundert eingebettete Systeme enthält, ist es unerlässlich, dass die Entwickler genau wissen, worauf sie achten müssen und wie sie die Probleme beheben können, und zwar direkt in der IDE.

Wie sieht ein Fehler in der Geschäftslogik in eingebettetem C/C++ aus? Werfen Sie einen Blick darauf und sehen Sie, ob Sie ihn wie ein Profi erkennen und beheben können.

Der Schutz eingebetteter Systeme von Grund auf liegt in der Verantwortung aller

Der Status quo in vielen Unternehmen ist, dass die Entwicklungsgeschwindigkeit die Sicherheit übertrumpft, zumindest wenn es um die Verantwortung der Entwickler geht. Sie werden selten nach ihrer Fähigkeit beurteilt, sicheren Code zu produzieren, aber die schnelle Entwicklung toller Funktionen ist der goldene Standard. Die Nachfrage nach Software wird nur noch steigen, aber diese Kultur hat uns auf einen aussichtslosen Kampf gegen Schwachstellen und die daraus resultierenden Cyberangriffe eingestellt. 

Wenn Entwickler nicht geschult sind, ist das nicht ihre Schuld, und es ist eine Lücke, die jemand im AppSec-Team füllen helfen muss, indem er die richtigen, zugänglichen (ganz zu schweigen von bewertbaren) Weiterbildungsprogramme für die gesamte Entwicklergemeinschaft empfiehlt. Gleich zu Beginn eines Softwareentwicklungsprojekts muss das Thema Sicherheit ganz oben auf der Agenda stehen, und jeder - vor allem die Entwickler - muss das bekommen, was er braucht, um seine Rolle zu spielen. 

Praktische Erfahrungen mit Sicherheitsproblemen bei eingebetteten Systemen

Pufferüberläufe, Injektionsfehler und Fehler in der Geschäftslogik sind häufige Fallstricke bei der Entwicklung eingebetteter Systeme. Wenn sie tief in einem Labyrinth von Mikrocontrollern in einem einzigen Fahrzeug oder Gerät verborgen sind, kann dies aus der Sicherheitsperspektive eine Katastrophe bedeuten.

Pufferüberlauf ist besonders häufig, und wenn Sie einen tiefen Einblick in die Kompromittierung der Fritteuse, über die wir zuvor gesprochen haben, erhalten möchten (und die Remotecodeausführung ermöglicht), lesen Sie diesen Bericht über CVE-2020-28592.

Jetzt ist es an der Zeit, sich mit einer Pufferüberlaufschwachstelle in echtem eingebettetem C/C++-Code auseinanderzusetzen. Spielen Sie diese Herausforderung, um zu sehen, ob Sie die schlechten Codierungsmuster, die zu diesem heimtückischen Fehler führen, lokalisieren, identifizieren und beheben können:

Pufferüberlauf-Historie erstellen.



Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.

Inhaltsübersicht

PDF herunterladen
Ressource anzeigen
Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Weitergeben:
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge