Information Systems Audit and Control Association Prüfung und Source-Code-Verwaltung

Ordnungsmerkmale

erschienen in: <kes> 2005#6, Seite 72

Rubrik: ISACA informiert

Eine klassische Art, den Änderungszyklus von Textdateien zu kontrollieren, sind Source-Code-Verwaltungssysteme. Welche Anforderungen aus Sicht der Revision dabei zu beachten sind, schildert der vorliegende Beitrag.

Ursprünglich wurden Source-Code-Verwaltungsysteme, wie der Name schon sagt, für die Softwareentwicklung konzipiert. Heute setzt man sie jedoch in vielen weiteren Anwendungsbereichen ein, bei denen Dateien in großer Anzahl, mit komplexen inneren Abhängigkeiten und mit hohen Änderungsfrequenzen vorliegen. Fundamentale Anforderungen an Source-Code-Systeme sind:

Wenn hier von Revisionen gesprochen wird und nicht von Versionen, so liegt das an der Terminologie der Source-Code-Verwaltung: Eine Version ist dabei ein Begriff, der einem Produkt zugeordnet wird, etwa einer Test- oder Verkaufsversion. Eine Version besteht somit aus einer Vielzahl von Quelldateien in unterschiedlichen Revisionsständen, die zum Zeitpunkt der Versionserstellung vorhanden sind. Eine Version liegt somit "quer" zu den vorhandenen Revisionsständen und lässt sich als eine zusätzliche Markierung ausgewählter Quellen auffassen.

Die Einhaltung aller obigen Anforderungen ist prüfungsrelevant. Darüber hinaus gibt es aber verschiedene Punkte, die für die Prüfungspraxis besonders beachtenswert sind:

Moderne Source-Code-Verwaltungssysteme arbeiten netzorientiert. Sicherheitsprüfungen haben dann einen Server- und Netzwerkbezug, nachgeschaltete Systeme haben Auswirkungen auf den Aufbau und die Ausstattung von Webservern und Firewalls. Die Server, die zur Source-Code-Verwaltung benutzt werden, sind möglicherweise aus dem Internet heraus sichtbar und bieten somit eine neue Angriffsfläche auf die interne Netz-Infrastruktur eines Unternehmens.

Source-Code-Verwaltungssysteme wurden ursprünglich von Software-Entwicklern für Software-Entwickler programmiert. Die Benutzerschnittstellen sind häufig spartanisch und orientieren sich an der Kommandozeile. Deshalb gibt es eine Vielzahl zusätzlicher graphischer Benutzeroberflächen, oft als Free- oder Shareware von Drittanbietern. Hier ist zu prüfen, ob solche Programme den häuslichen Sicherheitsanforderungen gerecht werden. Ein häufig anzutreffender Mangel ist etwa das unzureichend abgesicherte Speichern von Autorisierungsinformationen (Passwörter).

Alle wichtigen Systeme bieten die Möglichkeit zusätzliche Informationen in die Quellen aufzunehmen, die dem System entnommen oder im Dialog abgefragt werden. Die Aufnahme und Positionierung der zusätzlichen Information funktioniert meist als Expansion von Platzhaltern in der Quelle; dabei ist eine weitgehend freie Konfiguration möglich. Es ist dabei darauf zu achten, dass diese Möglichkeiten auch entsprechend den konkreten Anforderungen genutzt werden – auch die Aussagekraft der Inhalte sollte überprüft werden. Seitenlange Log-Einträge, die nicht mehr enthalten als eine Angabe "Fehlerkorrektur", sind nicht akzeptabel.

Häufig gibt es zusätzliche Werkzeuge, die ebenfalls einer Kontrolle unterworfen werden müssen. Bei der Software-Entwicklung etwa wird zu der Rekonstruktion eines alten Programmstands neben den entsprechenden Quellen auch die damals verwendete Compiler-Version benötigt. Derartige zugeordnete Werkzeuge dürfen nicht vergessen werden.

Source-Code-Verwaltungssysteme bieten durch ihre Archivfunktion zwar einen gewissen Schutz vor Verlust und ungewollten Änderungen. Die Systeme sind aber nicht "dokumentenecht": Mit passenden Berechtigungen ist es meist möglich, alte Stände zu ändern ohne dabei Spuren zu hinterlassen. Falls der Geschäftsbetrieb oder gesetzliche Vorschriften eine nachweisbar unveränderliche Aufbewahrung der Quellen fordern, sind daher zusätzliche Maßnahmen erforderlich.

Die Strukturen der Quellcode-Verwaltung und des Archivs sollten die Projektorganisation beziehungsweise die Geschäftsstrukturen widerspiegeln. Quellen, die inhaltlichen Bezug zueinander besitzen und die häufig von denselben Bearbeitern gemeinsam bearbeitet werden, sollten auch im System einander "nahe" sein. Dies erfordert eine sorgfältige Vorab-Planung, da die Strukturen eines Quell-Archivs sich im Nachhinein nur noch mit viel Aufwand anpassen lassen.

Sicherheit vor unberechtigten Zugriffen wird auf verschiedenen Ebenen erzeugt. Aktuelle Systeme besitzen durchweg ein eigenes Berechtigungssystem, darüber hinaus ist die Rechtevergabe auf Dateien und Verzeichnisse des Servers und in der jeweiligen Betriebssystemumgebung relevant. Eine Prüfung hat alle Ebenen zu bewerten – dabei sind wegen des hohen Risikopotenzials besonders Zugriffswege von außen (Internet) beachtenswert. Zugriffe sollten nur mit Benutzerkennungen erfolgen, die eindeutig einer Person zugeordnet sind. Ein Mangel, der in der Software-Entwicklung häufig beobachtet werden kann, ist beispielsweise, die Ergebnisse von Make- oder Build-Läufen direkt wieder in das Quellarchiv eintragen zu lassen. Gegen ein solches Verfahren spricht, dass eine Absicherung des Archivs gegen unberechtigten Zugriff kaum möglich ist, wenn auch der Compiler Schreibrechte auf das Quellarchiv besitzt.

Weitere Informationen

ISACA German Chapter e. V.
Eichenstrasse 7
46535 Dinslaken
[externer Link] www.isaca.de

Karin Thelemann, CISA
ISACA-Vorsitzende
Tel.: +49 69 15208-26488
E-Mail: karin.thelemann@de.ey.com

Bernd Wojtyna
Vorstand Facharbeit
Tel.: +49 251 288-4253
E-Mail: Bernd.Wojtyna@extern.Sparkassen-Informatik.de