Worum geht es?
Oft stellt Quellcode einen sehr wertvollen Teil des geistigen Eigentums einer Organisation dar und selbst wenn keine eigenen Urheberrechte daran bestehen, muss Quellcode dennoch geschützt werden. Unberechtigte Kopien sind sicherlich ein Problem; unberechtigte oder ungewollte Veränderungen können aber ein weitaus gravierendes Problem darstellen.
Sogenannte Easter Eggs, mit denen sich Entwickler meist scherzhaft in einer Anwendung verewigen, sind eher harmlos. Eine eingebaute Hintertür oder andere böswillige Veränderungen sind dagegen eine ganz andere Sache.
Und das am Ende des Tages auch ungewollte, unbefugte oder unbeabsichtigte Änderungen eines Quellcodes gravierende Störungen und Schäden verursachen können, wenn Systeme oder Anwendungen nicht mehr wie vorgesehen funktionieren, liegt auf der Hand.
Ob eine wichtige oder gar kritische Anlage nun durch gezielte oder versehentliche Veränderung der eingesetzten Steuerungssoftware ausfällt, beschädigt oder gar zerstört wird, ist vom Ergebnis her betrachtet ziemlich egal.
Was empfiehlt die ISO 27002?
Die von der Norm in Kapitel 8.4 vorgeschlagenen Maßnahmen ähneln solchen, die wir bereits in anderem Kontext kennengelernt haben.
- Die Verwaltung von Code und Codebibliotheken sollte auf Basis eines festgelegten Verfahrens erfolgen. Das im Zuge der Regelung kein Quellcode vergessen werden sollte, liegt auf der Hand. Praktisch ist dies aber oft nicht ganz einfach, da sich Quellcode beispielsweise in Form von Macros auch in MS-Office-Dateien verstecken kann.
- Der Zugriff auf Quellcode und Entwicklerwerkzeuge sollte streng reglementiert und kontrolliert werden.
- Neben der grundsätzlichen Frage, wer überhaupt Zugriff erhält, sollte auch eindeutig vorbestimmt sein, wer Quellcode nur lesen und wer diesen auch bearbeiten bzw. verändern darf.
- Die zentrale Ablage von Quellcode in einem dazu geeigneten System, welches neben der Rechteverwaltung auch die Möglichkeit bietet, jegliche Veränderung nachvollziehbar zu machen, ist sinnvoll. Dies gilt erst recht, wenn mehrere Entwickler an dem Quellcode arbeiten. Eine Lösung zur Quellcodeverwaltung ist auch sinnvoll, um beispielsweise Konfigurationen von Appliances (Router, Firewall, etc.) abzulegen und Änderungen einfach erkennbar zu machen.
- Tatsächlich zu übernehmende Änderungen am Code sollten stets eine Genehmigung voraussetzen, welche ihrerseits erst nach einer Kontrolle der Änderung erteilt werden darf.
- Auf das Code Repository selbst sollte nur unter Verwendung hierfür zugelassener und geeigneter Werkzeuge zugegriffen werden können.
- Jeglicher Zugriff und jede Änderung an Quellcode sollte aufgezeichnet werden. Auch in diesem Zusammenhang sind Tools zur Quellcodeverwaltung hilfreich oder gar notwendig. Änderungen werden nicht nur dokumentiert, sondern lassen sich ggf. auch mit einem einfachen Click erkennbar machen.
Fazit
Organisationen, die selbst professionell Software entwickeln, dürften leichter Zugang zu den hier vorgeschlagenen Maßnahmen haben. Selbstverständlich ist dies dennoch nicht.
Andere Organisationen, die nur nebenher etwas Entwicklung betreiben oder Software anpassen, sind typischerweise schnell überfordert. Oft sind bereits die zu lösenden Probleme an sich nicht bekannt und der Gedanke an geeignete Gegenmaßnahmen kommt gar nicht erst auf.
Beratung durch einen Experten ist in diesem Kontext besonders wichtig, da Risiken oft unmerklich bestehen. Die anfangs als Beispiel genannte Hintertür in einer Steuerungssoftware ist von außen nicht erkennbar. Man sieht es regelmäßig nicht, dass etwas nicht stimmt – solange nicht, bis plötzlich der Schaden eingetreten ist.