29. Mai 2007

Von Software-Architektur und Systemsicherheit

Computerwürmer und Viren stellen weiterhin eine Sicherheitsbedrohung dar. Hacker nehmen verstärkt Steuerungs- und Kontrollsysteme ins Visier. Was kann dagegen getan werden? Ein Kommentar von Norbert Struck, Managing Director bei QNX Software Systems.


Norbert Struck: „Wir müssen Systeme schaffen, die von sich aus vertrauenswürdig sind.“

Bei der neuen Art der Cyber-Kriminalität geht es nicht mehr nur um Thrill und Berühmtheit, sondern um Profit. Hacken ist für echte Profis ein Vollzeit-Job. Und Unternehmen werden zur Zielscheibe, sobald sich ein Zugriff auf Unternehmensdaten für den Hacker lohnt oder er Firmen mit der Androhung einer Denial-of-Service-(DoS-)Attacke auf ihr System erpressen kann. Dabei kann eine Attacke auf überlebenskritische Embbeded-Kontrollsysteme katastrophale Folgen haben.
Firewalls, Software zur Entdeckung von Eindringlingen und Anti-Virus-Programme sind wichtig. Aber egal wie stabil die Barrieren sind, böswillige Hacker können und werden sie überwinden. Was wir wirklich benötigen, ist ein neuer Ansatz für das Design der Systeme, die wir schützen wollen. Ein Ansatz, der diese Systeme von sich aus resistent gegen ein Eindringen von außen macht und damit fähig, Angriffe zu überstehen. Alles andere wären lediglich Betonbarrieren um ein Kartenhaus. Diese Idee ist zwar nicht ganz neu – bereits in den 1970er Jahren wurden wegweisende Aufsätze über das Thema veröffentlicht –, aber sie wurde von der Software-Industrie weitgehend ignoriert.
Das entscheidende Prinzip lautet „Least Privilege“. Das heißt, eine Software-Komponente sollte lediglich die Rechte erhalten, die sie zur Erfüllung einer vorgegebenen Aufgabe benötigt. Wenn sie also beispielsweise Daten lesen, aber nicht modifizieren soll, sollte sie auch keine Schreibrechte haben – weder explizit noch implizit. Anderenfalls könnte sie zu einer Schwachstelle für böswillige Exploits oder Software-Fehler werden.
Der Großteil heutiger Betriebssysteme verstößt gravierend gegen dieses Prinzip. In einer monolithischen Betriebssystemarchitektur, wie Windows oder Linux, laufen Gerätetreiber, Dateisystemmanager und Protocol Stacks im Memory-Adressraum des Kerns auf höchstem „Privilege Level“. Jeder dieser Dienste kann praktisch machen, was er will. Folglich kann ein einziger Programmierfehler oder böswilliger Code in jeder dieser Komponenten die Zuverlässigkeit und Sicherheit des gesamten Systems gefährden. Dies ist vergleichbar mit einem Gebäude, bei dem ein Riss in einem einzigen Ziegelstein die gesamte Struktur zum Einsturz bringen kann.

Der Microkernel-Ansatz des Betriebssystems QNX Neutrino schafft einen gegen Angriffe von außen resistenten Kern

Daher setzen viele Designer von Embedded-Systemen eine modulare Betriebssystemarchitektur ein, bei der Treiber, Protocol Stacks und andere Systemdienste außerhalb des Kerns als User-Space-Prozesse laufen. Dieser „Microkernel“-Ansatz, den QNX schon seit Jahrzehnten verfolgt, erlaubt nicht nur die Anwendung von „Least Privilege“ für Systemdienste. Er schafft ebenso einen gegen Angriffe von außen resistenten Kern, den Hacker nicht manipulieren oder verändern können. Darüber hinaus sorgt dieser Ansatz auch für überlebenswichtige Eigenschaften, wie Fehlertoleranz und Roll-back. So wird gewährleistet, dass das System trotz Treiberfehler korrekt läuft und die Auswirkungen ungewollter Vorgänge rückgängig gemacht werden können, während die Systemintegrität gewahrt bleibt.
Als Software-Designer, Entwickler und Manager müssen wir Systeme schaffen, die von sich aus vertrauenswürdig sind. Aber Vertrauenswürdigkeit ist nicht nur einfach eine zusätzliche Schicht, sondern Grundvoraussetzung. Wer von Anfang an auf eine Software-Architektur setzt, die die grundlegenden Sicherheitsprinzipien beachtet, wie die Abgrenzung von Rechten, ausfallsichere Standardeinstellungen, vollständige Interpolation oder ökonomische Mechanismen, vermeidet einen kostspieligen und harten Kampf.
Für den Aufbau von sicheren, überlebensfähigen Systemen gilt: Der Anfang bestimmt das Ende. Glücklicherweise sind die Grundprinzipien unserer Arbeit weder unerprobt noch undurchsichtig, sondern einfach gute und anerkannte Progammierpraktiken. Das Fundament wurde bereits geschaffen, lassen wir die nächste Generation innovativer – und sicherer – Systeme Realität werden.
Weitere Informationen unter www.qnx.de.

Kommentar 1:

Automats_right schrieb am 11.06.2007 13:47:51:

Von der Leistungsfähigkeit heutiger PC und industrieller Computersysteme sind sogar Experten wie ich (und sicher auch geschultere) beeindruckt, auch wenn ich der Meinung bin, dass die Hardware da viel beeindruckender und besser ist als die auch sehr komplexe und leistungsstarke Software. Ein Konzept Computer (funktioniert für PC und Embedded Systeme) Viren-sicher zu machen und dabei noch viele weitere Vorteile bei gleicher HW-Leistungsfähigkeit zu erreichen, habe ich bereits 1991 als Student der Elektrotechnik in Karlsruhe entwickelt. Ich habe mehreren Studenten (der Wirtschaftswissenschaften, deutsche und aus Norwegen) davon erzählt, dass dabei einfach ein neues Systemdesign entworfen werden muss, bei gleicher CPU und grundsätzlich gleicher Hardware. Leider hat das damals wie heute nichts bewirkt. Ich freue mich, dass Sie, Herr Struck, mit dem gleichen Vorschlag kommen, was mir bestätigt, dass ich damals doch keinen so falschen Ansatz hatte. Ich denke aber nicht, dass der Ansatz mit Privilegien und feiner Modularität, sowie einem Mikrokernel dazu genügen, obwohl das im Moment große Vorteile bringen würde und vieles sicherer machen könnte. Man hat auf dem Gebiet der Sicherheit auch schon einiges getan und die Systeme sind gar nicht so gefährdet wie einst, was bei der zunehmenden Vernetzung auch nötig war. Doch Ihrer und meiner Meinung nach können Hacker alle Barrieren überwinden. Rollback und Fehlertoleranz sind sicher sehr erstrebenswerte Eigenschaften, doch können Privilegien von Hackern eventuell auch modifiziert werden und ein Rollback kostet Laufzeiten und Systembelastung. Damit will ich in keinem Fall den von Ihnen präsentierten Ansatz schlecht reden und noch viel weniger an den Marktvorteilen von QNX Software zweifeln oder diese wegreden. Ich meine nur, dass es bessere Lösungen gibt, doch die werden ignoriert, einfach weil sie nicht da gefunden werden, wo auch genügend Einfluss und finanzielle Ressourcen vorhanden sind. Sehen Sie doch mal auf www.innohum.de. Die dort für PC angebotene Virensicherheit wäre angepasst auch im Embedded-Bereich anwendbar und in beiden nützlich. Respektvoll, ein Ingenieur


>>> Kommentar schreiben
>>> zur Comment Area