ArtikelEntwicklungSecurity

Mehr Sicherheit durch weniger Geheimhaltung

Zuverlässigkeit und Sicherheit

Software gegen solche Angriffe zu schützen, ist wesentlich schwieriger, als sie fehlerfrei und damit in einem technischen Sinne sicher zu machen. Kein noch so großer Testaufwand kann zuverlässig angeben, dass eine Software auch vor zukünftigen Angriffs-Methoden, sicher ist, also auch vor solchen, die erst noch entwickelt werden. Diese werden möglicherweise genau so programmiert, dass sie bestehende Sicherheitstechniken umgehen; ein Angreifer mit großem Know-how wird dabei auch die Möglichkeiten der Testwerkzeuge und -methoden berücksichtigen, um unentdeckt zu bleiben.

Ein auf den ersten Blick paradoxer Vorschlag besteht darin, die Geheimhaltung für kritische Systeme und Geräte systematisch zu beseitigen. Heute werden mehr und mehr Geräte von Embedded Computern, also von eingebetteten Rechnern gesteuert, die verschleiern, wie das jeweilige System als Ganzes funktioniert. Früher konnte man einen Staubsauger zerlegen, und man wusste, wie er funktionierte: Man sah gleich, ob eine Verdrahtung anfällig war. Unabhängige Tester konnten ein fachlich fundiertes Urteil über die Sicherheit eines Geräts fällen und dafür sorgen, dass so ein Gerät aus dem Handel genommen wurde. Das ändert sich, sobald Embedded-Computer-Systeme beteiligt sind. Damit verschwindet die technische Transparenz.

Die Software für solche Systeme wird heute wie selbstverständlich geheim gehalten. Es scheint ganz normal zu sein, dass Unternehmen höchste Geheimhaltung für ihre Produkte anstreben. Die Argumente für den Schutz der eigenen Investitionen und all dessen, was sich unter Intellectual Property zusammenfassen lässt, scheinen überzeugend. Das Problem aber ist, dass die daraus entstehende Geheimhaltung allzu oft schlampiges Design und schwere Fehler versteckt, die die Software anfällig für Angriffe macht, also zu mangelhafter Qualität führt.

Quelle: PR-COM
Quelle: PR-COM

Eine derartige Geheimhaltung kann man sich unter Security-Aspekten heute aber eigentlich nicht mehr erlauben. Nicht nur, weil man sich von einer breiten und unabhängigen Qualitätssicherung abschneidet, sondern auch, weil es ein absolutes Geheimnis ohnehin nicht gibt: Auch die geheimsten Dinge sind immer einigen Personen bekannt. Wenn nur eine kleine Gruppe, die in einem Unternehmen mit der Herstellung von Software befasst ist, Zugang zum Wissen hat, so reicht eine einzige “Schwachstelle”, ein einziger “Bad Guy” – wissentlich oder unwissentlich sei noch dahingestellt – um die Geheimhaltung in Frage zu stellen. Das Geheimnis bleibt zwar weiterhin ein Geheimnis für die meisten, aber es befindet sich zugleich auch schon in den falschen Händen. Was keine angenehme Vorstellung ist, denn diese Bad Guys können nun unter dem Schutzschirm der Geheimhaltung ihr Werk in aller Ruhe vorantreiben.

Frei lizenzierte Open-Source-Software

Einer der wichtigsten Trends in der Softwareentwicklung der letzten Jahre war der Einsatz von FLOSS (Freely Licensed Open Source Software). Diese Art von Software hat zwei wichtige Eigenschaften: Erstens ist sie frei lizenziert, so dass sie jeder kopieren, verändern und weitergeben kann. Zweitens sind ihre Quellen frei verfügbar. Man kann sie also gründlich untersuchen und alle Probleme und Schwachstellen, die gefunden werden, offen diskutieren.

Hier ist eine grundsätzliche Veränderung der Sicherheits-Philosophie notwendig: Die Verwendung von FLOSS für kritische Software sollte zumindest wünschenswert, an einigen Stellen sogar verpflichtend sein. Natürlich erleichtert dieses Konzept im ersten Schritt tatsächlich die Arbeit der Bad Guys, doch erfahrungsgemäß sind diese ja sowieso bereit, alles zu tun, um zu den geheimen Dingen vorzudringen. Viel wichtiger aber ist, dass mit FLOSS die weltweite Community der Good Guys sicherstellen kann, dass kritische Software auch den höchsten Sicherheitsanforderungen entspricht. Sie muss sich nun nicht mehr darauf verlassen, dass jemand beim Geheimnisse Bewahren tatsächlich einen guten Job gemacht habt.