Schreibt ordentlichen Code!

Gestern hat Bundesinnenminister Hans-Peter Friedrich das neue Nationale Cyber-Abwehrzentrum offiziell eröffnet. Das klingt erst mal nach James Bond und Hacking, ist aber auf den zweiten Blick eher unspektakulär. In diesem Zentrum arbeiten Experten des BSI,des Bundeskriminalamtes, des Bundesnachrichtendienstes, des Bundesamts für Verfassungsschutz, des Bundesamts für Bevölkerungsschutz und Katasrophenhilfe sowie der Bundespolizei, der Bundeswehr und des Zollkriminalamtes.

Hans-Peter Friedrich umreißt die Aufgaben des Zentrums so:

„Wo immer ein Schadprogramm auftaucht, analysieren wir es im
Cyber-Abwehrzentrum: Wie ist seine Wirkungsweise? Welche Gegenwehr ist
denkbar? Die entwickeln wir“

Das klingt in meinen Ohren arg nach dem, was die Hersteller von Antiviren-Software so tun. Ob die sich wohl über die staatlich finanzierte Konkurrenz freuen? Bedenkt man, dass es Antiviren-Programme schon seit den achtziger Jahren gibt, klingt dieser Ansatz nicht sehr vielversprechend. Schließlich hat die Antiviren-Software gegen viele Attacken nicht geholfen. Generell hat dieser Ansatz den Nachteil, dass er immer nur aus Reaktion besteht.

Wäre es nicht sinnvoller, anstatt auf Angriffe zu reagieren, intensiver daran zu forschen, wie man Code schreibt, der weniger anfällig für Angriffe ist? Die fehlerfreie Software gibt es nicht, dafür ist Softwareentwicklung viel zu komplex.

Aber es sind immer wieder die selben Lücken, die ausgenutzt werden. Ein Großteil der Angriffe auf Webseiten läuft über sogenannte SQL-Injection-Angriffe, bei denen ein Befehl zur Datenbankabfrage in ein übertragenes Feld eingefügt wird. Viele Programme sind noch immer anfällig für Buffer-Overflow Angriffe, bei denen Zeichenketten übergeben werden, die länger sind, als vom Programmierer vorgesehen.

Es gibt noch eine ganze Reihe anderer Angriffe, die im großen und ganzen darauf aufbauen, dass Programmierfehler sich ausnutzen lassen, um sich Zugang zu einem System zu verschaffen.

Hinzu kommt, das vielerorts das Bewusstsein für Softwaresicherheit nicht vorhanden ist. Unternehmen und Behörden wollen, dass die Software möglichst leicht zu bedienen ist, die gewünschten Ergebnisse liefert, und dabei am besten nichts kostet. Bei den Herstellern sieht es nicht anders aus: Qualitätssicherung spielt, besonders bei mittelständischen Unternehmen meist, eine untergeordnete Rolle; sie ist zu teuer. Wenn überhaupt eine Kontrolle stattfindet, dann wird geprüft, ob das Programm tut, was es soll, und dabei nicht abstürzt. Sicherheitstests kommen in der Regel gar nicht vor.

Im Bereich der Unternehmenssoftware sind manche Unternehmen dazu übergegangen ihre Entwickler -ähnlich wie in der Versicherungsbranche- nach einem Prämienmodell zu bezahlen. Neben einem -mageren- Grundgehalt erhalten die Entwickler Prämien, wenn sie die vorgegebenen Termine einhalten. Dies führt natürlich dazu, dass die Entwickler nur noch versuchen ihren Termin zu halten (der meist sehr knapp kalkuliert ist), Sicherheitserwägungen spielen dann keine Rolle mehr, und die allgemeine Codequalität lässt dann auch oft genug zu wünschen übrig.

„Schreibt endlich ordentlichen Code!“, möchte man den Verantwortlichen gern zurufen. Wenn ein Cyber-Abwehrzentrum was bringen soll, muss es hier ansetzen. Bekannte Lücken bekämpfen ist eine Sache, viel wichtiger ist es aber, an Techniken zu forschen, die sicheren Code ermöglichen, Entwicklern die Arbeitsbedingungen zu schaffen, unter denen eine saubere, auf Sicherheit ausgelegte Konzeption machbar ist. Und nicht zuletzt: Das Bewusstsein bei Anwendern und Entscheidern zu stärken.

Ansonsten ist der „Cyber-War“ schon verloren.