Der Blätterkatalog benötigt Javascript.
Bitte aktivieren Sie Javascript in Ihren Browser-Einstellungen.
The Blätterkatalog requires Javascript.
Please activate Javascript in your browser settings.
16 -17 2020 Elektronik 15 Software-Engineering Im medizinischen Imaging-Bereich laufen 83 Prozent aller Geräte mit Betriebssystemen für die es keinen Support gibt Gar 98 Prozent des Datenverkehrs von IoT-Geräten sind nicht verschlüsselt und 57 Prozent aller IoTGeräte sind anfällig für schwerwiegende und mittelschwere Angriffe Das ist das Ergebnis einer Analyse von 1 2 Millionen IoT-Geräten in ITAbteilungen und Organisationen des Gesundheitswesens in den USA der Forschungsgruppe Unit 42 von Palo Alto Networks Ein Grund für die hohen Prozentsätze Über die Hälfte der Geräte basiert noch immer auf Windows 7 Für Angreifer ist das ein gedeckter Tisch und für Embedded-Entwickler herausfordernd Sie können sich beim Entwickeln neuer Anwendungen und Systeme nicht darauf verlassen dass die Best Practices bei Fragen der Sicherheit umfassend erfüllt sind Somit müssen sie selbst ihre Systeme so sicher wie möglich machen Viele Angriffsvektoren in der IT und bei Embedded-Systemen machen sich klassische Schwachstellen wie Buffer Overruns oder Null-Pointer-Dereferenzierungen zunutze Hierbei handelt es sich fast immer um Programmierfehler die zwar schnell passieren jedoch nur schwer aufzudecken sind Letztlich liegt das an strukturellen Schwächen der hauptsächlich eingesetzten Sprachen Cund C++ Beim Entwickeln von Embedded-Software sind Cund C++ immer noch die populärsten Programmiersprachen Jedoch ist die Definition woraus ein zulässiges C-Programm besteht der Flexibilität zuliebe sehr liberal ausgelegt die Compiler können viele Fehler nicht aufdecken Zudem existieren zahlreiche Mehrdeutigkeiten die die Compiler basierend auf unterschiedlichen Interpretationen des Standards auflösen müssen Updates nicht immer möglich In der herkömmlichen IT sind es die Anwender gewohnt dass Fehler fortGroSSes Risiko aufgrund kleiner Fehler laufend mithilfe von Updates behoben werden oder Systeme mit separaten Security-Produkten zu schützen sind In der Embedded-Welt ist die Situation jedoch eine andere Zum einen reicht es nicht zu gegebener Zeit ein Update auszurollen Ein Buffer Overflow im Herzschrittmacher unbefugter Fernzugriff auf ein fahrendes Auto oder eine Manipulation von Sensordaten in der Industrie können immense Schäden anrichten In den letzten Jahren hat sich gezeigt dass es sich hierbei nicht um Bedrohungen aus einem Science-Fiction-Roman handelt So gab es etwa Rückrufaktionen bei einer Insulinpumpe und bei einem Herzschrittmacher da sie Sicherheitslücken aufwiesen die Angriffe möglich machten Glücklicherweise wurden die Angriffsvektoren nicht genutzt Zum anderen sind die Ansätze der traditionellen IT im Embedded-Bereich schlicht nicht praktikabel Viele Geräte sind mit sehr geringen Übertragungskapazitäten mit dem Internet verbunden Um die Messdaten eines Sensors zu übertragen sind Oft sind es gerade die kleinen Fehler die eine Software angreifbar machen und die mithilfe der statischen Analyse relativ einfach zu beseitigen wären Ein typisches Beispiel dafür ist die Sicherheitslücke in beep einem kleinen Kommandozeilen-Tool bei Linux mit nicht einmal 250 Code-Zeilen Beep gibt einfach einen Ton auf dem PC-Lautsprecher aus Frequenz und Dauer sind über Parameter beim Aufruf einstellbar Bis Version 1 3 4 fand sich hier ein Bug über den ein Angreifer privilegierte Benutzerrechte auf dem System erlangen konnte Voraussetzung für einen Exploit des Bugs ist dass Beep mit setuid root ausgeführt wird Bei zahlreichen Linux-Distributionen wie etwa Debian war das der Fall da das Tool einen Schreibzugriff auf die virtuelle Konsole benötigt Beep parst einige Argumente der Kommandozeile und übergibt den Befehl zum Erzeugen eines Tons an die Systemfunktion ioctl Über einen Signal-Handler erkennt der Anwender Interrupts Im Signal-Handler liegt die Ursache für eine Race Condition Eine Folge Ein Angreifer kann während der Ausführung eine beliebige Datei angeben in die Beep dann schreibt So kann die Datei ein symbolischer Link zu jeder beliebigen Datei sein ebenso zu Systemdateien Das Data Race betrifft die geteilte Variable console_device Als erster Thread wird das Hauptprogramm erkannt Bild a der zweite Thread ist der Signal-Handler Bild b Beide greifen auf die Variable console_device zu ohne dass ein Locking oder ein anderer Mechanismus zur Synchronisation vorhanden ist Bild c Mithilfe der statischen Code-Analyse hätte ein Entwickler den Fehler frühzeitig erkennen können Bilder Grammatech