6 Best Practices für Software Composition Analysis (SCA)
27. April 2022
0 Min. LesezeitOpen-Source-Software bildet das Fundament der modernen Anwendungsentwicklung und ermöglicht es Teams, schneller zu entwickeln und Innovationen voranzutreiben. Diese Flexibilität bringt jedoch erhebliche Sicherheitsherausforderungen mit sich. Open-Source-Abhängigkeiten bergen Schwachstellen und Lizenzrisiken, die Ihre gesamte Software-Lieferkette beeinträchtigen können. Erfolgreiche Unternehmen setzen auf Best Practices für Software Composition Analysis (SCA), die die Sicherheit verbessern und gleichzeitig effiziente Entwickler-Workflows ermöglichen. Dieser Leitfaden stellt sechs wichtige Best Practices vor, mit denen Sie den Nutzen von SCA maximieren und Risiken minimieren können.
1. Finden Sie ein entwicklerfreundliches Tool (und zeigen Sie Entwicklern, wie es ihnen hilft)
Entwickler sind damit beschäftigt, Code zu schreiben. Sie müssen ganzheitlich denken, effizient entwerfen und schnell iterieren. Ein SCA-Tool, das nicht entwicklerfreundlich ist, bremst Ihre Entwickler-Workflows aus und wird daher wahrscheinlich nicht genutzt. Ein entwicklerfreundliches SCA-Tool muss einfach einzurichten und zu bedienen sein. Außerdem sollte es sich möglichst früh unkompliziert in bestehende SDLC-Workflows und -Tools integrieren lassen, etwa in Versionsverwaltungstools und IDEs.
Wenn Sie ein Tool ausgewählt haben, erklären Sie Ihren Entwicklern, warum SCA wichtig ist und wie es ihnen helfen kann. Entwickler, die Sicherheit nicht als ihre Verantwortung ansehen, könnten sich dagegen sträuben, diese Aufgabe zu übernehmen. Machen Sie ihnen klar, dass es ihnen später Zeit spart, wenn sie von Anfang an auf Sicherheit achten und Sicherheitsprüfungen in ihre Workflows integrieren. So lassen sich Codeänderungen zur Behebung von Sicherheitsproblemen vermeiden. Code, der von Anfang an sicher entwickelt wird, muss nicht nachträglich überarbeitet werden!
2. Machen Sie sich mit Abhängigkeiten vertraut
Open-Source-Pakete enthalten zwei Arten von Abhängigkeiten: direkte und transitive. Eine direkte Abhängigkeit ist ein Paket, das Sie in Ihr eigenes Projekt einbinden. Eine transitive (indirekte) Abhängigkeit ist ein Paket, das von einer Ihrer direkten Abhängigkeiten verwendet wird. Stellen Sie sich das wie einen verschachtelten Baum vor: Ihre Pakete enthalten Abhängigkeiten, und diese Pakete enthalten wiederum Abhängigkeiten und so weiter.
Analysen zeigen, dass 80 % der Schwachstellen in Open-Source-Paketen in transitiven Abhängigkeiten zu finden sind! Das bedeutet, dass sich die meisten Schwachstellen in Ihrem Code in (verschachtelten) Abhängigkeiten befinden, von deren Verwendung Sie wahrscheinlich nichts wussten. Ein gutes SCA-Tool sollte alle Abhängigkeiten in Ihrem Code präzise untersuchen und auch transitive Abhängigkeiten erkennen und prüfen können. Wenn Sie die Tiefe und Komplexität der in Ihrem Code verwendeten Open-Source-Pakete kennen, können Sie sicherstellen, dass Schwachstellen auf jeder Ebene zuverlässig erkannt werden.
3. Automatisieren Sie Scans und ermitteln Sie umsetzbare Maßnahmen
Mit einem guten SCA-Tool können Sie in regelmäßigen Abständen automatisierte Scans durchführen. Nutzen Sie diese Möglichkeit! Richten Sie eine proaktive und kontinuierliche Überwachung Ihres Codes ein. Automatisierte Scans liefern konkrete Hinweise darauf, wo Schwachstellen auftreten und wie sie sich beheben lassen. Prüfen Sie sorgfältig die Empfehlungen Ihres SCA-Tools zur Behebung von Schwachstellen und stellen Sie sicher, dass Ihre Entwickler Vertrauen in die vorgeschlagenen Maßnahmen haben.
4. Integrieren Sie SCA in Ihre CI/CD-Pipeline
Ihr SCA-Tool sollte auf dem Weg von der Entwicklung über das Testen bis hin zur Produktion keinen Endpunkt darstellen. Sie sollten SCA-Scans in Ihre CI/CD-Pipeline integrieren können, damit das Erkennen und Beheben von Schwachstellen zu einem festen Bestandteil Ihrer Softwareentwicklungs- und Build-Prozesse wird. Die Integration Ihres SCA-Tools in den Rest Ihrer Pipeline erleichtert es Entwicklern außerdem, sich auf eine Kultur einzustellen, in der Code-Sicherheit zum täglichen Workflow gehört.
5. Nutzen Sie die Möglichkeiten von Berichten und SBoM-Funktionen
Viele Unternehmen – darunter die US-Bundesregierung – verlangen beim Kauf einer Software die Vorlage eines Software-Stücklistenberichts (SBoM). Eine detaillierte SBoM zu Ihrem Produkt zeigt, dass Sie den Wert der Nachverfolgung aller Komponenten Ihrer Anwendung kennen.
Auch klare Berichte zu Ihren Sicherheitsscans und den vorgenommenen Korrekturen sind wertvoll. Detaillierte Berichte über Ihre Sicherheitspraktiken und die Anzahl behobener Schwachstellen zeigen Ihr Engagement für Sicherheit und stärken Ihre Marktposition.
6. Stärken Sie Sicherheitsrichtlinien und verbessern Sie die Lizenz-Compliance
Wenn Sie genau wissen, welche Open-Source-Pakete Ihre Entwickler verwenden, können Sie Richtlinien erstellen, die die Sicherheitsvorgaben Ihres Unternehmens festlegen und durchsetzen. Die Erkenntnisse aus Schwachstellenscans können Sie nutzen, um Leitplanken für Ihre Entwickler einzurichten und sie dabei zu unterstützen, Open-Source-Pakete mit Blick auf die Sicherheit einzusetzen.
Für die Anwendungssicherheit ist es wichtig, verwendeten Open-Source-Code nachzuverfolgen. Für die Compliance ist es jedoch entscheidend, auch die Open-Source-Lizenzen im Blick zu behalten! Lizenzen legen die rechtlichen Nutzungsbedingungen für Open-Source-Pakete fest. Nutzen Sie Ihr SCA-Tool, um Einblick in die Lizenzbedingungen Ihrer Open-Source-Komponenten zu erhalten. Bei der Ausarbeitung von Sicherheitsrichtlinien können Sie Vorgaben aufnehmen, die Entwickler dazu anhalten, die Lizenz-Compliance frühzeitig im Softwareentwicklungszyklus zu berücksichtigen.
Open-Source-Projekte sind per Definition öffentlich und für alle sichtbar – auch für Angreifer. Jede in ihnen entdeckte und behobene Schwachstelle wird damit indirekt offengelegt und kann von Angreifern gefunden werden. Je beliebter ein Open-Source-Projekt ist, desto attraktiver ist das Paket als Angriffsziel, da ein Angriff größere Auswirkungen haben kann. Als Beispiel sei der oben erwähnte Equifax-Datenschutzverstoß genannt: Das dabei verwendete Open-Source-Paket, die Apache-Struts-Bibliothek für Java, kommt in vielen Anwendungen zum Einsatz. Dadurch hatte der Angriff besonders weitreichende Folgen.
Unternehmen, die Open-Source-Software einsetzen, tun dies natürlich „auf eigenes Risiko“: Es gibt keinen Anbieter, der sie über Fehler informiert, und auch keinen unterzeichneten Vertrag, der sie von der Verantwortung entbindet. Die Verantwortung für die Sicherheit dieser Komponenten liegt vollständig bei den Nutzern.
Snyk-Lösungen für Software Composition Analysis
Snyk bietet umfassende SCA-Lösungen, mit denen Unternehmen diese Best Practices wirksam umsetzen können. Snyk Open Source unterstützt Entwickler dabei, Schwachstellen in Open-Source-Abhängigkeiten direkt in ihren Workflows zu finden und zu beheben. Dank nahtloser Integration in IDEs, Versionsverwaltungssysteme und CI/CD-Pipelines ermöglicht Snyk kontinuierliche Überwachung und automatisierte Behebung. Die leistungsstarke Schwachstellendatenbank und die Priorisierungsfunktionen sorgen dafür, dass Entwickler zuerst die kritischsten Probleme angehen. Darüber hinaus bietet Snyk detaillierte Berichte und die Erstellung von SBoMs, damit Unternehmen Compliance-Anforderungen erfüllen und ihr Engagement für Sicherheit nachweisen können. Mit Snyks SCA können Unternehmen ihre Sicherheitslage verbessern, die Lizenz-Compliance stärken und während des gesamten Entwicklungszyklus eine Sicherheitskultur fördern.
Entdecken Sie den Stand der Open-Source-Sicherheit
Erfahren Sie mehr über aktuelle Trends und Ansätze für Open-Source-Software und Supply-Chain-Sicherheit.
