Bundesamt für Sicherheit in der Informationstechnik

M 2.573 Einhaltung einer sicheren Vorgehensweise bei der Software-Entwicklung

Verantwortlich für Initiierung: Leiter Entwicklung

Verantwortlich für Umsetzung: Entwickler, Leiter Entwicklung

Der Implementierungsprozess bei der Software-Entwicklung muss sicher gestaltet werden, um beispielsweise erkennen und vermeiden zu können, dass die Software versehentlich geändert oder absichtlich manipuliert wird. Insbesondere sicherheitskritische Software-Komponenten, z. B. Authentisierungssysteme, müssen während der Entwicklung von mehreren Entwicklern geprüft und getestet werden, z. B. durch stringente Anwendung des Vier-Augen-Prinzips, um die Informationssicherheit für die zu entwickelnde Software zu gewährleisten.

Es ist eine Versionskontrolle für die entwickelte Software zu gewährleisten. Insbesondere die Dokumentation der Unterschiede zwischen Versionen und die Möglichkeit zur Rückkehr zu vorherigen Versionen sind erforderlich (siehe M 6.32 Regelmäßige Datensicherung).

Damit die Integrität der Software nicht kompromittiert werden kann, sind regelmäßige Code-Reviews erforderlich. Diese müssen von unabhängigen Dritten oder zumindest von Entwicklern, die den Code nicht selbst geschrieben haben, durchgeführt werden. Hierbei ist zu prüfen, ob der Programmcode alle gewünschten Funktionen enthält und gleichzeitig keinerlei zusätzliche oder ungewollte Funktionen beinhaltet.

Werden externe Bibliotheken oder Code aus externen Quellen in die Entwicklungsumgebung eingebunden, so sind diese auf Schwachstellen und mögliche Konflikte mit anderen bereits verwendeten Komponenten zu überprüfen. Dies sollte mittels externer Informationsquellen (z. B. Online-Verzeichnisse mit bekannten Fehlermeldungen und Sicherheitslücken) und durch eigene Tests stets in Abstimmung mit dem Entwicklungsverantwortlichen geschehen.

Prüffragen:

  • Wird eine Versionskontrolle für die entwickelte Software umgesetzt?

  • Werden regelmäßig unabhängige Code-Reviews durchgeführt?

Stand: 15. EL Stand 2016