Sicherheitsrisiken in Open-Source-Software: Erkenntnisse aus dem CAOS -Projekt für das BSI

Die digitale Welt ist stark von Software abhängig – von Open-Source-Lösungen bis hin zu maßgeschneiderter Unternehmenssoftware. Doch wie sicher sind diese Anwendungen wirklich? Im Rahmen des CAOS-Projekts (Code Analyse von Open Source Software) haben wir im Auftrag des BSI in den letzten drei Jahren sechs umfassende Sicherheitsanalysen unterschiedlicher Open-Source-Anwendungen durchgeführt. Dabei wurden zahlreiche Schwachstellen aufgedeckt, die verdeutlichen, dass Software-Sicherheit eine kontinuierliche Herausforderung darstellt.

Ergebnisse aus dem CAOS-Projekt: Sicherheitslücken fast überall

In nahezu jeder geprüften Anwendung konnten Schwachstellen identifiziert werden. Die Bandbreite der entdeckten Probleme reichte von kleineren Sicherheitslücken bis hin zu kritischen Risiken, die eine Kompromittierung von Benutzerkonten und Systemen möglich machten. Hier einige Beispiele:

  • Nextcloud

    • Die Zwei-Faktor-Authentifizierung (2FA) konnte durch einen Angreifer umgangen werden, indem Verifizierungsanfragen manipuliert wurden. Dies ermöglicht es, auch mit gestohlenen Zugangsdaten ein Konto zu kompromittieren.

    • Beim Dateiaustausch zwischen Nextcloud-Instanzen fehlte ein Authentifizierungsmechanismus, wodurch sich ein Angreifer als eine andere Person ausgeben und potenziell schadhafte Dateien verteilen konnte.

    • Integrierte externe Speicher konnten ohne erneute Authentifizierung genutzt werden, wodurch Angreifer Zugangsdaten abgreifen und missbrauchen konnten.

  • Vaultwarden

    • Ein fehlender Offboarding-Prozess führte dazu, dass ausscheidende Mitglieder einer Organisation weiterhin Zugriff auf verschlüsselte Daten hatten.

    • Die Sicherheitsüberprüfung für Notfallzugriffe war unzureichend, sodass ein Angreifer administrative Berechtigungen erhöhen konnte.

  • Mastodon

    • Mehrere Cross-Site-Scripting (XSS)-Schwachstellen in der Abhängigkeit zu Sidekiq ermöglichten es Angreifern, bösartigen Code einzuschleusen und auszuführen.

    • Fehlende Passwort-Richtlinien erlaubten es Nutzern, triviale oder leicht erratbare Passwörter zu verwenden, was Brute-Force-Angriffe erleichterte.

    • Rate-Limiting konnte umgangen werden, was es Angreifern erlaubte, eine Vielzahl von Anmeldeversuchen durchzuführen.

  • BigBlueButton

    • Zwei registrierte CVEs für Stored Cross-Site-Scripting-Schwachstellen ermöglichten es Angreifern, schädliche Skripte dauerhaft in die Plattform einzuschleusen.

    • Per Brute-Force konnten valide Raumnamen einer Instanz herausgefunden werden, worauf aufbauend weitere Angriffe denkbar sein könnten.

  • Jitsi

    • Obwohl keine schwerwiegenden Sicherheitslücken identifiziert wurden, gab es zahlreiche bekannte Schwachstellen in genutzten Abhängigkeiten, die Angriffsvektoren für zukünftige Exploits darstellen könnten.

  • eID-Plugins (Wordpress, Nextcloud)

    • Je eine, sehr begrenzt ausnutzbare, Cross-Site-Scripting-Schwachstelle, welche es in bestimmten Situationen ermöglichte, Skripte im Kontext der Nutzersitzung zur Ausführung zu bringen.

Diese Funde verdeutlichen, dass kontinuierliche Sicherheitsüberprüfungen notwendig sind, um Risiken frühzeitig zu identifizieren und zu beheben.

Sicherheitslücken sind nicht nur ein Open-Source-Problem

Oft wird angenommen, dass vor allem Open-Source-Software anfällig für Sicherheitslücken ist. Die Realität zeigt jedoch, dass auch selbst entwickelte, gekaufte oder gehostete Software denselben Risiken unterliegt. Gründe hierfür sind unter anderem:

  • Dynamische Entwicklungsprozesse: Ständig wachsende Codebasen und Feature-Updates erhöhen die Komplexität und das Risiko neuer Schwachstellen.

  • Hoher Zeitdruck: Entwickler stehen unter Druck, neue Features schnell bereitzustellen, wodurch Sicherheitsprüfungen oft vernachlässigt werden.

  • Komplexe Abhängigkeiten: Moderne Software-Projekte nutzen zahlreiche externe Bibliotheken, die potenziell Sicherheitslücken enthalten können.

Da Software sich kontinuierlich weiterentwickelt, müssen Sicherheitsmaßnahmen ebenfalls dynamisch und fortlaufend sein.

Kontinuierliche Überwachung vs. einmalige Überprüfung

Ein einmaliger Penetrationstest ist wie eine Momentaufnahme – die Sicherheitslage einer Anwendung kann sich jedoch innerhalb kürzester Zeit ändern. Unternehmen müssen daher auf langfristige und kontinuierliche Sicherheitsstrategien setzen, anstatt sich auf gelegentliche Prüfungen zu verlassen. Best Practices hierfür sind:

  • Shift-Left-Prinzip: Sicherheitsprüfungen frühzeitig in den Entwicklungsprozess integrieren, um Schwachstellen bereits in der Entwicklungsphase zu erkennen und zu beheben.

  • Regelmäßige Sicherheitsanalysen: Statische und dynamische Analysen kontinuierlich durchführen, um Sicherheitsrisiken frühzeitig zu erkennen.

  • Automatisierte Sicherheitsüberwachung: Werkzeuge wie SAST (Static Application Security Testing) und DAST (Dynamic Application Security Testing) einsetzen, um Schwachstellen automatisch zu identifizieren.

    👉 Takeaways

  • Sicherheit ist kein Zustand, sondern ein fortlaufender Prozess.

  • Selbst „kleine“ Schwachstellen können gravierende Folgen haben, wenn sie nichtrechtzeitig geschlossen werden.

  • Sicherheitsüberprüfungen müssen ein integraler Bestandteil des SDLC sein – ähnlich wie Funktionalitäts- oder Performancetests.

Wie Sie die Kontrolle über Ihre Sicherheitslage behalten

Eine strategische Herangehensweise ist entscheidend, um Sicherheitsrisiken effektiv zu minimieren. Unternehmen sollten systematisch vorgehen und folgende Maßnahmen priorisieren:

  • Security Posture Management: Gesamten Sicherheitsstatus überwachen und kontinuierlich anpassen.

  • Automatisierte Sicherheitsüberprüfung: Regelmäßige Analysen mit spezialisierten Tools durchführen, um Schwachstellen frühzeitig zu erkennen.

  • Software-Supply-Chain-Security: Die gesamte Lieferkette der Software prüfen, um Schwachstellen in externen Abhängigkeiten zu minimieren.

  • Security Awareness: Regelmäßige Schulungen und gezielte Sensibilisierungsmaßnahmen für Entwickler und Mitarbeiter durchführen.

    👉 Takeaways

  • Ein strukturierter Ansatz und automatisierte Überwachung helfen, Risiken frühzeitig zu minimieren.

  • Technische Maßnahmen allein reichen nicht aus – organisatorische Prozesse und Schulungen sind essenziell.

Sicherheitsanalysen:

Unsere Lösung: Wie wir unterstützen können

Wir bieten Unternehmen maßgeschneiderte Lösungen zur Stärkung ihrer Software-Sicherheit:

  • mgm Atlas:

    • Ganzheitliche Sicht über alle erkannten Sicherheitslücken

    • Kontinuierliche Überwachung und regelmäßige Überprüfung

    • Nahtlose Integration in CI/CD-Prozesse

  • Unser Dienstleistungsportfolio:

    • Penetrationstests zur Identifikation von Schwachstellen

    • Kontinuierliches Application Security Testing für proaktive Sicherheitsmaßnahmen

    • Secure Code Reviews zur Verbesserung der Code-Qualität

    • Bedarfsorientierte Beratung und individuelle Sicherheitsstrategien

    • LAS (Lean Application Security), um Sicherheit reibungsarm in den Entwicklungsprozess zu integrieren

  • Zusätzliche Leistungen:

    • Security Awareness-Konzepte für alle Mitarbeitenden im Unternehmen

    • Secure Coding Trainings zur Verbesserung der Sicherheitspraktiken

    • Individuell angepasste Sicherheits-Konzepte für Unternehmen jeder Größe

 

Fazit: Sicherheitsüberprüfungen als Schlüsselfaktor für vertrauenswürdige Software

Ohne kontinuierliche Sicherheitsprüfungen wird es immer schwieriger, Software langfristig sicher und vertrauenswürdig zu halten. Unternehmen müssen Sicherheitsmaßnahmen fest in ihren Entwicklungs- und Betriebsprozess integrieren. Unsere Expertise und Tools helfen Ihnen, diese Herausforderungen erfolgreich zu bewältigen.

Ihr Ansprechpartner

Mirko Richter

Application Security und Secure Coding

LAS - Lean Application Security

Ein erprobtes Konzept für inhärent sichere Anwendungen und Systeme durch frühzeitige Einbindung von Sicherheit in den Softwareentwicklungsprozess.

ATLAS - Security Testing Platform

mgm ATLAS ist die effiziente Integration von automatisierten Tests in Entwicklungsprozesse. Es ergänzt unseren Lean Application Security Ansatz optimal um eine schlanke und skalierbare Testplattform.