Wenn gute Mikrowellen schlecht werden: Warum die Sicherheit eingebetteter Systeme der nächste große Kampf für Entwickler ist
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.
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:
Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.
Ä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.
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 buchenMatias 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.
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.
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:
Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.
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.
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:
Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.
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 buchenMatias 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.
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.
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:
Wie haben Sie abgeschnitten? Besuchen Sie www.securecodewarrior.com für präzise und effektive Schulungen zur Sicherheit eingebetteter Systeme.
Inhaltsübersicht
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 buchenHerunterladenRessourcen für den Einstieg
Die Leistungsfähigkeit von OpenText Fortify + Secure Code Warrior
OpenText Fortify und Secure Code Warrior bündeln ihre Kräfte, um Unternehmen dabei zu helfen, Risiken zu reduzieren, Entwickler zu Sicherheits-Champions zu machen und Kundenvertrauen aufzubauen. Lesen Sie hier mehr darüber.
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
Ressourcen für den Einstieg
10 wichtige Vorhersagen: Secure Code Warrior über den Einfluss von KI und Secure-by-Design im Jahr 2025
Unternehmen stehen vor schwierigen Entscheidungen über den Einsatz von KI, um die langfristige Produktivität, Nachhaltigkeit und den Sicherheits-ROI zu unterstützen. In den letzten Jahren ist uns klar geworden, dass KI die Rolle des Entwicklers niemals vollständig ersetzen wird. Von KI + Entwicklerpartnerschaften bis hin zum zunehmenden Druck (und der Verwirrung) rund um die Secure-by-Design-Erwartungen - lassen Sie uns einen genaueren Blick darauf werfen, was wir im nächsten Jahr erwarten können.
OWASP Top 10 für LLM-Bewerbungen: Was ist neu, was hat sich geändert, und wie bleibt man sicher?
Bleiben Sie bei der Absicherung von LLM-Anwendungen mit den neuesten OWASP Top 10 Updates immer einen Schritt voraus. Entdecken Sie, was neu ist, was sich geändert hat und wie Secure Code Warrior Sie mit aktuellen Lernressourcen ausstattet, um Risiken in der generativen KI zu minimieren.
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.