Defizite der Computerarchitektur

Gastbeitrag von | 07.10.2019 | Softwareentwicklung | 0 Kommentare

Mit einem erfolgreichen Hacker-Angriff auf die RSA im Frühjahr 2011 fing alles an. Bei dem Angriff wurde der Algorithmus gestohlen, mit dem die Ziffernkombinationen auf den RSA-Tokens ermittelt wurden. RSA-Tokens werden häufig als zweite Identifikation für den Zugriff auf IT-Systeme genutzt. Fortan analysierte ich Computersysteme auf ihre Verwundbarkeit durch Hacker-Angriffe. Und meine Erkenntnisse sind ernüchternd: praktisch alle am Markt erhältlichen Systeme haben exakt denselben Schwachpunkt!  Er findet sich in aktuellen Systemen und auch bereits in den ersten programmierbaren Computern. Natürlich nutzen Hacker diesen Schwachpunkt auch heute konsequent aus.

Ein gemeinsames Verständnis von Begriffen

Bevor ich nachfolgend einige Fachausdrücke benutze, die vielleicht missverständlich sein könnten, möchte ich kurz erläutern, was ich mit den Begriffen meine. Damit gewinnen wir (hoffentlich) ein gemeinsames Verständnis.

  • Rechner, Computer, Prozessoren oder Controller sind im Prinzip das Gleiche: digital arbeitende Geräte, die durch Programme gesteuert werden, die in den Speichern des Gerätes abgelegt ist.
  • Ein Programm im Sinne dieses Artikels hat nichts mit Veranstaltungen oder Rundfunk zu tun, sondern ist eine Menge von Informationen, die dazu geschaffen wurde, einen Computer zu steuern, damit er das tut, was sein Nutzer von ihm erwartet.
  • Instruktionen sind die kleinsten Untermengen von Programmen. Die Änderung einer einzelnen Instruktion reicht oftmals schon aus, die Funktion eines Programmes entscheidend zu ändern.
  • Daten sind ebenfalls eine Menge von Informationen. Sie unterscheiden sich von Programmen dadurch, dass sie die Informationen darstellen, die von den Programmen bearbeitet werden. Das Verhältnis von Daten zu Programmen ist – auf das Handwerk übertragen – das gleiche wie das von Werkstoffen zu Werkzeugen.
  • Dateien sind Mengen von Daten, die als Einheit identifiziert werden können; sie werden häufig mit dem englischen Begriff File bezeichnet. Um im Beispiel zu bleiben, entspricht eine Datei einem Werkstück.
  • Schnittstellen oder Interfaces sind Verbindungen zwischen den Rechnern und ihre Umgebung; das können Drucker oder Scanner sein, aber auch externe Speicher und das Internet.
  • Mit Hardware wird der materielle Teil eines Rechnersystems bezeichnet. Die Hardware allein ist im Wesentlichen die Technik eines Systems. Sie bedarf der sie steuernden Programme, um dem System zweckdienlich zu sein.
  • Software ist der Sammelbegriff für Daten und Programme. Ich versuche ihn zu vermeiden, um deutlich zu machen, dass ich entweder von Daten oder von Programmen schreibe. Ausnahmen mache ich bei etablierten zusammengesetzten Begriffen (wie Softwarekonfiguration), und bei dem Begriff Schad-Software, weil hier die Abgrenzung nicht immer genau vorgenommen werden kann – übrigens ist das ganz im Sinne der Angreifer.
  • Nutz-Software ist ein wenig gebräuchlicher Begriff für das Pendant zur Schad-Software, und bezeichnet die vom Benutzer eines Systems für seine Zwecke installierten Daten und Programme.

 

Die Ausführung von Programmen

Als die Computer noch nicht vernetzt waren, war der eingangs erwähnte Schwachpunkt noch nicht relevant – zumindest nicht als Einfallstor für Cyber-Kriminalität. Das änderte sich als Computer miteinander vernetzt wurden. Zu dieser Zeit – also vor rund fünfzig Jahren – hätten die Hersteller von Rechnern diese Schwachstelle erkennen und beseitigen müssen. Aber: das geschah nicht.

Der Grund dafür war der Umstand, dass kurz zuvor die so genannten PC (Personal Computer) erfunden und zu einem Marktschlager wurden. Auch sie haben die gleiche Schwachstelle, und die wird aus Kompatibilitätsgründen bis heute kontinuierlich beibehalten. So kommt es, dass bauartbedingt auch moderne Computer prinzipiell nicht unterscheiden können, ob das Programm, das sie gerade ausführen, 

  • zu ihrer geplanten Verwendung gehört,
  • ihnen von einem Hacker untergeschoben wurde,
  • gar kein Programm ist, sondern ein Datenbestand, der irrtümlich als Programm auszuführen versucht wird.

 

Der lange Weg zum Gegenmittel

Mit der Zunahme der Cyber-Angriffe und ihren immer schwerer wiegenden Folgen wurden Gegenmittel ersonnen – aber nicht gegen die eigentliche Ursache, sondern gegen die möglichen Auswirkungen.

Sieht man einmal von den Verhaltensmaßregeln für Rechnerbenutzer ab, basieren die Gegenmittel auf Programmen – oder benötigen Programme zu ihrem Funktionieren. Ihre Strategie ist es, Schad-Software an ihren statischen oder dynamischen Eigenschaften zu identifizieren und später irgendwann einmal wiederzuerkennen und zu reagieren. Dieser Weg ist sehr lang:

  1. Es muss ein Schad-Software-Angriff erkannt werden.
  2. Es muss die Schad-Software identifiziert werden.
  3. Es muss ein Gegenmittel – das wiederum nur ein Programm ist – programmiert werden.
  4. Es muss dieses Gegenmittel auf den befallenen und bedrohten Rechnern installiert werden.

Die Chance ist groß, dass sich die Hacker ins Fäustchen lachen, weil sie gewünschte Informationen längst abgegriffen und neue Schad-Software entwickelt haben, die dieselbe Schwachstelle auf einen andere Art und Weise ausnutzen.

Die Schwachstelle

Die Schwachstelle, von der die Rede ist, ist die Architektur der Rechnerhardware. Zu deren Ehrenrettung möchte ich sagen, dass es früher einmal – in der Zeit vor den Halbleiterspeichern – sehr teuer war, Arbeitsspeicher für Computer herzustellen. Dieser Umstand führte zu Lösungen, die vorhandenen Speicherplatz möglichst effizient ausnutzen. Dazu gehörte die Etablierung weniger großer Speicherräume – idealerweise nur einen – die möglichst universell genutzt werden konnten. Das widerum führte zu dem Umstand, dass Programme – die Werkzeuge einer IT-Anlage – zusammen mit den Daten – den Werkstücken der IT – im selben Speicher abgelegt wurden; bildlich gesprochen Werkzeuge und Werkstücke im selben Regal einer Werkstatt.

Das konsequente Beibehalten dieser Schwachstelle hat im Laufe der Zeit zu einer Co-Evolution von Hardware und Programmen geführt, deren Auswirkungen noch dadurch verstärkt werden, dass die Hauptakteure auf beiden Feldern nicht mehr die gleichen sind. Dadurch hat sich eine wechselseitige Blockierung wesentlicher Neuerungen ergeben, und diese hat die alte Hardware-Architektur manifestiert.

Eine neue Computerarchitektur muss her

Was ist also zu tun? Wir müssen die alte Hardware-Architektur über Bord werfen! Denn die ist es, die die Nutzung von Schad-Software überhaupt erst ermöglicht, und zwar dadurch, dass in den Speichern – Arbeitsspeichern wie Permanentspeichern – keine Trennung zwischen den verschiedenen dort abgelegten Datenkategorien erfolgt. Die gleiche Trennung fehlt auch bei den Schnittstellen: Wenn es möglich ist, über dieselbe Schnittstelle Programme und Daten in einen Rechner einzubringen, wie will man beide hinterher noch sicher auseinander halten? Diese fehlende Trennung macht es den Hackern leicht, Schad-Software – und das sind Programme! – als Daten zu tarnen und in den Speichern abzulegen. Der nächste Trick – und hier kommt dann wirklich die Qualität der Software zum Tragen – ist es, den Prozessor (oder die Prozessoren) dazu zu bringen, diese fremd eingebrachten Programme auszuführen.

Der einfachste und wahrscheinlich am häufigsten angewandte Weg ist der, die Schad-Software in einem E-Mail-Anhang zu verpacken, und den Empfänger dieser E-Mail dazu zu bringen, den Anhang zu öffnen ohne vorher geprüft zu haben, worum es sich wirklich handelt. Hacker sind inzwischen ziemlich gut darin, einen ehrlichen Anschein zu erwecken und das Vertrauen der Anwender in das „Es-Wird-Schon-Nichts-Passieren!“ schamlos auszunutzen.

Wenn man die alte Hardware-Architektur über Bord wirft, muss zwangsläufig eine neue Architektur her. Und die die sollte vorsehen, dass die verschiedenen Kategorien von Daten innerhalb des Rechners in getrennten Speicherbereichen ablegt werden, die jeweils eigene Zugriffsattribute haben. Dadurch wird es technisch unmöglich, dass Daten, die in ein Rechnersystem eingebracht werden, als Instruktionen interpretiert werden können.

Zur Trennung der Daten innerhalb des Rechners gehört folgerichtig auch, dass außerhalb des Rechners eine getrennte Speicherung erfolgt. Hier genügt die Zweiteilung in Software – womit die vom Betreiber des Systems installierte Nutz-Software gemeint ist – und den Daten, die das System be- oder verarbeiten soll.

Die Computerarchitektur der Zukunft

Zu guter Letzt ist ein weiterer Schritt erforderlich, der von Mitdenkern sicherlich bereits erkannt wurde: Um sicher zu gehen, dass keine Kontaminierung der Programme erfolgen kann, muss dem Prozessor des Systems die Möglichkeit genommen werden, den für Instruktionen vorgesehenen Arbeitsspeicher zu verändern. Doch wie sollen jetzt die Programme in den Computerspeicher kommen?

Das hört sich für Nutzer von Arbeitsplatzrechnern revolutionär an, ist es aber gar nicht: Viele im industriellen Bereich oder in Fahrzeugen eingesetzte Rechner kommen bereits jetzt hervorragend mit dieser Situation zurecht. Sie bekommen ihre Programme bereits bei der Produktion in ihre Speicher abgelegt – „eingebrannt“ ist der dafür gebräuchliche Begriff.

Für Arbeitsplatz- und andere Rechner ist dieses Verfahren natürlich nicht hinnehmbar. Doch bereits ein simpler zusätzlicher Prozessor, der die Aufgabe der Programminstallation wahrnimmt, löst das Problem. Dieser zusätzliche Prozessor darf selbstverständlich keinen Zugriff zu den zu verarbeitenden Daten haben. Eine solche Computerarchitektur gibt es bereits – doch bisher leider nur auf dem Papier.

Friedhelm Becker

Friedhelm Becker

Friedhelm Becker wurde 1952 geboren. Er ist verheiratet und hat drei Töchter und vier Enkelkinder. Nach erfolgreichem Abschluss seines Chemie-Studiums arbeitete er drei Jahre in einem Labor für Baustoffprüfung und anschließend acht Jahre in der Bundeswehr. Er ist ein pensionierter Marineoffizier.

Nach seinem Ausscheiden aus dem Militärdienst arbeitete Herr Becker für namhafte Unternehmen in den Bereichen Rechnerbau (Univac, Sperry, UNISYS) und Luft- und Raumfahrt (Lockheed-Martin). Seit 1974 arbeitet er auf dem Gebiet der computergestützten Sensor-Effektor-Integration ohne nennenswerte Unterbrechungen. Seit 2013 ist er Inhaber der DCB Distribution & Consulting Becker.

Gefällt Ihnen dieser Beitrag?

Melden Sie sich für unsere News-Updates an und erhalten Sie einmal pro Woche Tipps und Meinungen von Fachleuten direkt in Ihren Posteingang.

Gefällt Ihnen dieser Beitrag?

Share This