|
Vertrauen?Eine verblÜffende Erkenntnis ist, daß trojanische Pferde, Viren, Trap-Doors etc. von jemanden mit Zugriff auf den Source-Cxxle praktigch unsichtbar gemacht werden können. Nehmen wir an, ein Systementwickler hat auf einem Rechner eine Spezialversion des Login-Programms erstellt, das bei der Eingabe von "tralala" sofort ohne Abfrage eines Paßwortes eineSuper-User-Kennung bereitstellt. Damit kann er auf jedem Rechner auf dem dieses Programm installiert ist, sofort Super-User werden (Trap-Door).Allerding würde diese Abfrage nach "tralala" im Source-Code des Login-Programms stehen und kann leicht entdeckt und entfernt werden. Nach einer Neuübersetzung ist dieses 'Spezialfeature' wieder verschwunden.Also geht er trickreicher vor und ändert den Compiler, so daß er beim Übersetzen des Login-Programms, die Abfrage nach "tralala" in das Login-Program einbaut. Damit hat er das Problem aber nur verschoben. Im Source-Code des Login-Programms ist nichts mehr zu sehen, dafür aber in der Source des C-Compilers. Nun geht er einen Schritt weiter und ändert den C-Compiler so, daß er zusätzlich beim Übersetzen des C-Compilers die entsprechende Anderung in den C-Compiler einbaut. Er übersetzt den C-Compiler mit dieser Anderung. Damit hat er den C-Compiler trainiert, er kann die &aAuml;nderung im Source-Code des Compiles wieder rückgängig machen. Bei jeder Ü0bersetzung des Compilers wird die Änderung ja wieder eingebaut. Damit ist die Modifikation des Login-Programms nirgends mehr in Source-Form zu sehen.Jede Spur dieser Sicherheitslücke ist verschwunden. Man kann das Betriebssystem komplett neu übersetzen und die Sicherheitslücke ist immer noch drin.In einem gewissen Sinn hat das System die Information über das "tralala"-Feature
gelernt und sie braucht nicht mehr im Source-Code repräsentiert zu werden.
Dieses Verfahren funktioniert natürlich nicht nur mit dem C-Compiler sondern mit
jedem Programm, das andere Programme transformiert: Compiler anderer Sprachen, Assembler,
Skript-Interpreter, Linker, selbst Compiler für Microcode können betroffen sein.
Selbst die genaue Durchsicht der Sourcen kann in manchen Fällen nicht verhindern,
daß man Software benutzt, die seltsame Dinge tut.
|
|
|