© S&SMedia/Bianca Röder, © DRogatnev/Shutterstock.com
Security in der Softwareentwicklung

Then and now


Softwareentwicklung heute – schnelle und gute Ergebnisse werden erwartet und der Trend der Programmiersprachen geht in Richtung mehr Abstraktion, doch dabei sollte die Sicherheit der Software nicht im Hintergrund stehen. Welche Fehler führen zu Sicherheitslücken und wie war es früher? Ein Überblick.

Die Programmiersprachen und verwendeten Technologien sind immer im Wandel. Wo früher noch vieles selbst und möglichst hardwarenah geschrieben wurde, um die beste Performance herauszuholen, stehen heute die Entwicklungszeit und damit auch die Entwicklungskosten stärker im Vordergrund. Time to Market, also die Dauer von der Entwicklung bis zum Einsatz der Software, ist ein wichtiger Begriff für Auftraggeber und sollte natürlich so gering wie möglich gehalten werden. Um diesem Ziel gerecht zu werden, wird oft darauf verzichtet, Softwareprojekte von Grund auf neu zu gestalten, stattdessen kommen vorhandene Frameworks und Bibliotheken zum Einsatz. Mögliche Fehlerquellen liegen dann seltener im eigenen Projekt – doch sollten wir den anderen Entwicklern blind vertrauen?

Drittanbietercode

In der Vergangenheit gab es schon oft Probleme bei bekannten Paketmanagern wie npm, der Bibliotheken für Node.js bereitstellt. Mit unerlaubtem Zugriff auf Entwickleraccounts konnten Angreifer unbemerkt Schadcode in oft genutzte Bibliotheken einschleusen und so Zugangsdaten stehlen [1]. In seinem Blog [2] beschreibt David Gilbertson, wie er Benutzernamen, Passwörter, Session-Cookies und Kreditkartendaten mit Hilfe von verstecktem Code, der in einer Bibliothek nachgeladen wird, sammelt. Diese Bibliothek wird monatlich ca. 120 000 Mal heruntergeladen. Um nicht entdeckt zu werden, werde der Code nur einmalig und nur zu bestimmten Uhrzeiten heruntergeladen und sei zudem auch noch verschleiert und komprimiert. Zum Schluss schreibt er, diese Bibliothek sei nur fiktiv, doch ganz so abwegig ist so etwas nicht. Auf externe Abhängigkeiten können wir leider aus Zeit- und Kostengründen selten verzichten, und man muss ja bekanntlich nicht immer das Rad neu erfinden. Allerdings sollte man fremdem Code immer noch mit Vorsicht begegnen. Um die Sicherheit zu stärken, gibt es viele Konzepte, die sich in der Vergangenheit oft bewiesen haben. Dazu gehören beispielsweise „Layered Security“ und „Defense in Depth“. Beides beschreibt ein ähnliches Prinzip: das Absichern von Systemen auf mehreren Ebenen, da es immer vorkommen kann, dass eine Komponente fehlerhaft sein könnte und man somit nicht auf eine einz...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang