Table of contents
Verwalten von Softwareabhängigkeiten
Aktivitäts-ID: GGI-A-23.
Beschreibung
Ein Programm zur Ermittlung von Abhängigkeiten sucht nach den tatsächlich in der Codebasis verwendeten Abhängigkeiten. Infolgedessen muss die Organisation eine Liste bekannter Abhängigkeiten für ihre Codebasis erstellen und pflegen und die Entwicklung der ermittelten Anbieter beobachten.
Die Erstellung und Pflege einer Liste der bekannten Abhängigkeiten ist eine Voraussetzung für die Umsetzung:
- Überprüfung von geistigem Eigentum und Lizenzen: Einige Lizenzen können nicht gemischt werden, auch nicht in Form von Abhängigkeiten. Man muss die Abhängigkeiten kennen, um die damit verbundenen rechtlichen Risiken abschätzen zu können.
- Schwachstellenverwaltung: Die gesamte Software ist so schwach wie ihr schwächstes Teil: siehe das Beispiel der Heartbleed-Schwachstelle. Man muss seine Abhängigkeiten kennen, um die damit verbundenen Sicherheitsrisiken einschätzen zu können.
- Lebenszyklus und Nachhaltigkeit: Eine aktive Gemeinschaft für das Projekt Abhängigkeiten ist ein gutes Zeichen für Fehlerkorrekturen, Verbesserungen und neue Funktionen.
- Sorgfältige Auswahl der verwendeten Abhängigkeiten nach “Reifekriterien” - das Ziel ist die Verwendung von Open-Source-Komponenten, die sicher sind, mit einer gesunden und gut gepflegten Codebasis und einer lebendigen, aktiven und reaktiven Gemeinschaft, die externe Beiträge akzeptiert, usw.
Chancenbewertung
Die Ermittlung und Verfolgung von Abhängigkeiten ist ein notwendiger Schritt, um die mit der Wiederverwendung von Code verbundenen Risiken zu minimieren. Darüber hinaus ist die Einrichtung von Werkzeugen und Verfahren zur Verwaltung von Software-Abhängigkeiten eine Voraussetzung für die ordnungsgemäße Verwaltung von Qualität, Vorschriften und Sicherheit.
Bedenken Sie die folgenden Fragen:
- Wie hoch ist das Risiko für das Unternehmen (Kosten, Ruf, usw.), wenn die Software beschädigt ist, angegriffen oder verklagt wird?
- Wird die Codebasis als kritisch für die Mitarbeiter, die Organisation oder das Unternehmen betrachtet?
- Was passiert, wenn eine Komponente, von der eine Anwendung abhängt, ihr Repository ändert?
Der kleinste und erste Schritt ist die Umsetzung eines Werkzeugs zur Softwarekompositionsanalyse (SCA). Für eine vollwertige SCA oder eine Abhängigkeitszuordnung kann die Unterstützung durch Fachberatungsunternehmen erforderlich sein.
Fortschrittsbeurteilung
Die folgenden Kontrollpunkte zeigen den Fortschritt in dieser Aktivität:
- Abhängigkeiten werden im gesamten intern entwickelten Code ermittelt.
- Abhängigkeiten werden im gesamten externen Code, der innerhalb des Unternehmens ausgeführt wird, festgestellt.
- Ein einfach einzurichtendes Verfahren zur Untersuchung der Softwarezusammensetzung oder zur Ermittlung von Abhängigkeiten steht Projekten zur Verfügung, um ihren kontinuierlichen Integrationsprozess zu ergänzen.
- Es werden Werkzeuge zur Abhängigkeitsprüfung eingesetzt.
Werkzeuge
- OWASP Dependency-Check: dependency-Check ist ein Werkzeug zur Software Composition Analysis (SCA), das versucht, öffentlich bekannte Schwachstellen in den Abhängigkeiten eines Projekts zu erkennen.
- OSS Review Toolkit: eine Reihe von Werkzeugen zur Unterstützung bei der Überprüfung von Open-Source-Software-Abhängigkeiten.
- Fossa: schnelle, portable und zuverlässige Abhängigkeitsprüfung. Unterstützt Lizenz- und Schwachstellenprüfungen. Sprachunabhängig; integriert sich in mehr als 20 Build-Systeme.
- Software 360.
- Eclipse Dash license tool: übernimmt eine Liste von Abhängigkeiten und fordert ClearlyDefined auf, deren Lizenzen zu prüfen.
- The FOSSology Project: FOSSology ist ein Open-Source-Projekt mit der Mission, die Einhaltung von Open-Source-Lizenzen voranzutreiben.
Empfehlungen
- Führen Sie regelmäßig Kontrollen der Abhängigkeiten und Anforderungen an das geistige Eigentum durch, um rechtliche Risiken zu minimieren.
- Idealerweise integrieren Sie die Abhängigkeitsverwaltung in den kontinuierlichen Integrationsprozess, damit Probleme (neue Abhängigkeiten, Lizenzunverträglichkeiten) so schnell wie möglich erkannt und behoben werden können.
- Behalten Sie den Überblick über Schwachstellen im Zusammenhang mit Abhängigkeiten und halten Sie Benutzer und Entwickler auf dem Laufenden.
- Informieren Sie über die mit einer falschen Lizenzierung verbundenen Risiken.
- Schlagen Sie eine einfache Lösung für Projekte vor, um die Lizenzprüfung in ihrer Codebasis einzurichten.
- Informieren Sie über deren Bedeutung und helfen Sie den Projekten, sie in ihre CI-Systeme einzubauen.
- Richten Sie sichtbaren Leitungskennzahlen für abhängigkeitsbezogene Risiken ein.
Hilfsmittel
- Vorhandene Seite der Gruppe OSS-licenced OSS licence compliance tools.
- Free and Open Source Software licence Compliance: Tools for Software Composition Analysis, von Philippe Ombredanne, nexB Inc.
- Software Sustainability Maturity Model.
- CHAOSS: Community Health Analytics Open Source Software.
Empfohlene nächste Aktivitäten
- GGI-A-21 - Einhaltung von Rechtsvorschriften verwalten Bevor man in der Lage ist, Inkompatibilitäten in Bezug auf geistiges Eigentum und Lizenzen zu erkennen, muss man alle Abhängigkeiten in seiner Open-Source-Software feststellen.
- GGI-A-22 - Verwalten von Softwareschwachstellen Bevor man in der Lage ist, Schwachstellen in seinen Code-Assets aufzuspüren, muss man alle Abhängigkeiten in seiner Open-Source-Software feststellen.