Skip to main content

Open-Source-Sicherheit: Einführung in das Runtime-Monitoring

Artikel von
Headshot of Aner Mazur

Aner Mazur

Introducing open source security runtime monitoring Featured

12. November 2018

0 Min. Lesezeit

Snyk hat jetzt die erste Funktion seiner Lösung für das Runtime-Monitoring der Anwendungssicherheit veröffentlicht. Damit können Entwickler das tatsächliche Verhalten ihrer Open-Source-Komponenten zur Laufzeit überwachen!

Derzeit können Open-Source-Abhängigkeiten analysiert werden, wenn Snyk in das Repository eines Projekts oder in dessen CI-Zyklus integriert ist. Dabei werden anfällige Abhängigkeiten gekennzeichnet und Maßnahmen zur Behebung vorgeschlagen. Snyk investiert intensiv darin, die Behebung von Schwachstellen so einfach wie möglich in den Entwicklungs-Workflow einzubetten – etwa durch das Erstellen von Pull Requests mit Korrekturen, das Bereitstellen von Patches, wenn ein Upgrade nicht möglich ist, und vieles mehr.

Doch selbst wenn sich Schwachstellen relativ einfach beheben lassen, können Entwickler und Unternehmen noch einen großen Rückstand an Schwachstellen haben, um den sie sich kümmern müssen. Jeder Hinweis zur Priorisierung ist hilfreich. Wir sind überzeugt, dass es dabei entscheidend ist festzustellen, ob eine anfällige Abhängigkeit tatsächlich zur Laufzeit auf eine ausnutzbare Weise verwendet wird. Einige Lösungen auf dem Markt versuchen, dies mithilfe statischer Code-Analyse zu ermitteln. Das Hauptproblem dabei ist die hohe Zahl falsch positiver und falsch negativer Ergebnisse (zum Beispiel, wenn Code dynamisch aufgerufen wird oder nur bei einer bestimmten Eingabe erreichbar ist usw.).

Snyk bietet eine Lösung, die das tatsächliche Laufzeitverhalten der Anwendung überwacht und genau anzeigt, ob anfällige Funktionen in den Abhängigkeiten eines Projekts aufgerufen werden.

Sie können sich darauf verlassen, dass wir intensiv daran gearbeitet haben, die Auswirkungen auf die Anwendungsleistung so gering wie möglich zu halten. Wir werden dies auch weiterhin testen. Derzeit bieten wir für unsere Runtime-Lösung einen geschlossenen Early Access als Beta-Version an. Wenn Sie sie ausprobieren möchten, schreiben Sie uns bitte eine E-Mail an runtime@snyk.io!

Schwachstellen anhand von Runtime-Aufrufdaten priorisieren

Sobald der Agent ordnungsgemäß installiert ist und laufende Instanzen der überwachten Anwendung instrumentiert, sehen Sie auf der Karte mit den Problemdetails einen Hinweis darauf, ob anfällige Funktionen kürzlich in einer überwachten Anwendungsinstanz aufgerufen wurden. Die Schwachstellen werden danach sortiert, ob sie zur Laufzeit aufgerufen wurden, und anschließend nach Schweregrad. Außerdem werden die Namen und Pfade aller anfälligen Funktionen angezeigt. So lässt sich die Triage vereinfachen, weil Sie nachvollziehen können, welche Teile Ihrer Anwendung diese Funktionen verwenden. Wir zeigen Ihnen auch, wie lange der letzte Aufruf einer anfälligen Funktion zurückliegt.

Sicherheitsbericht zu einer Directory-Traversal-Schwachstelle mittleren Schweregrads im Modul st mit der Empfehlung, auf Version 0.2.5 zu aktualisieren.

Da möglicherweise mehrere überwachte Anwendungsinstanzen gleichzeitig laufen, sehen Sie unten rechts in den Projektmetadaten die Anzahl der überwachten Instanzen.

Projektübersicht des Dashboards mit Version 8.12.0, fünf Sicherheitslücken, 464 Abhängigkeiten, Quelle CI/CLI und einer überwachten App-Instanz.

Erste Schritte mit Node.js

Um mit der Überwachung Ihrer Node.js-Anwendungen zu beginnen, fügen Sie Ihrem Projekt die Abhängigkeit @snyk/nodejs-runtime-agent hinzu. Führen Sie dazu im Projektordner folgenden Befehl aus: npm install @snyk/nodejs-runtime-agent. Konfigurieren Sie sie so früh wie möglich in der Startsequenz Ihrer Anwendung. Ein möglicher Ablauf sieht so aus:

require('@snyk/nodejs-runtime-agent')({
projectId: '0462e42b-c92f-4b48-bac8-81eb3ff7f43e',
});
const express = require('express');

Im obigen Codeausschnitt wird die Abhängigkeit @snyk/nodejs-runtime-agent vor jeder anderen require-Anweisung eingebunden. So kann der Agent alle erforderlichen Abhängigkeiten prüfen und einen Ausführungshook erstellen. Dieser signalisiert dem Agent, wenn die Anwendung anfällige Funktionen aufruft.

Für die Konfiguration des Agents wird die ID eines auf snyk.io überwachten Projekts benötigt. Sie können die Projekt-ID über die API abrufen oder auf der Einstellungsseite des Projekts auf snyk.io nachsehen.

Weitere Informationen finden Sie in unserer Dokumentation zur Installation des Runtime-Schutzes.

Erste Schritte mit Java

Um mit der Überwachung Ihrer Java-Anwendungen zu beginnen, laden Sie unseren Runtime-Agent für Java (.ZIP) herunter und entpacken Sie das Archiv.

  1. Kopieren Sie snyk-java-runtime-agent.jar in den Ordner Ihrer Anwendung.

  2. Erstellen Sie am Speicherort der Agent-JAR-Datei eine Datei namens snyk-agent.properties. Fügen Sie darin die Projekt-ID Ihres Snyk-Projekts ein, zum Beispiel: projectId=0462e42b-c92f-4b48-bac8-81eb3ff7f43e.

  3. Fügen Sie dem Java-Befehl, mit dem Sie Ihre Anwendung starten, den Agent als Befehlszeilenargument hinzu, zum Beispiel: java -javaagent:path/to/snyk-java-runtime-agent.jar -jar my-app.jar.

    - Wenn Sie Apache Maven verwenden, fügen Sie -javaagent:path/to/snyk-java-runtime-agent.jar Ihrer Umgebungsvariable MAVEN_OPTS hinzu.

    - Wenn Sie JavaEE-Container wie GlassFish verwenden, suchen Sie die JVM Options und fügen Sie -javaagent:path/to/snyk-java-runtime-agent.jar als Option hinzu.

Demnächst verfügbar

Nach dem Sammeln Ihres Feedbacks planen wir, unser Runtime-Angebot in den nächsten Wochen aus der Closed Beta zu veröffentlichen.

Wie geht es weiter? Wenn Entwickler Open-Source-Komponenten zur Laufzeit auf bösartiges Verhalten überwachen und diese Daten mit den Scan-Ergebnissen des Quellcodes verknüpfen können, können sie Open-Source-Sicherheit über den gesamten Lebenszyklus der Anwendung hinweg verantworten – bei bekannten wie unbekannten Schwachstellen. Die Instrumentierung der Anwendung zur Laufzeit ermöglicht viele weitere Funktionen, die auf der heute veröffentlichten Runtime-basierten Priorisierung von Schwachstellen aufbauen. Diese werden in den kommenden Monaten verfügbar sein. Bleiben Sie dran!

Starten Sie mit Capture-the-Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung überholt herkömmliche Security-Workflows. Snyk Agentic AppSec setzt Security-Agenten ein, die Schwachstellen kontinuierlich finden, beheben und überprüfen – während Menschen die Maßstäbe festlegen.

Live Stream

Remediation-Agenten verständlich erklärt: Warum Beheben besser ist als Finden

Erfahren Sie, wie der Remediation Agent von Snyk Sicherheitsinformationen, Analysen zur Ausnutzbarkeit und Validierung nutzt, um Schwachstellen in zusammenführbare Pull Requests zu verwandeln.

feature ai ide dark
Blog

Ein erster Einblick in Evo Agentic AppSec: Agentic Remediation und Schutz vor schädlichem Code

Entdecken Sie die ersten Agentic-AppSec-Funktionen von Snyk: einen autonomen Remediation Agent, der Sicherheitslücken behebt, und Malicious Code Defense, das riskante Pakete blockiert, bevor sie ausgeliefert werden.