Summary
- Angreifer können die Jenkins Script Console nutzen, um bösartige Groovy-Skripte auszuführen und damit cyberkriminelle Aktivitäten wie der Einsatz von Cryptocurrency-Minern auslösen.
- Fehlkonfigurationen, wie nicht ordnungsgemäß angelegte Authentifizierungsmechanismen, machen den /script-Endpunkt für Angreifer zugänglich. Dies kann zu Remote-Code-Ausführung (RCE) und Missbrauch führen.
- Angreifer können Jenkins-Schwachstellen ausnutzen, um Skripte auszuführen, die eine Miner-Binärdatei herunterladen und ausführen sowie die Persistenz mithilfe von Cron-Jobs und systemd-run-Dienstprogrammen aufrechterhalten.
Jenkins ist eine Open-Source-Lösung, die kontinuierliche Integration und kontinuierliche Bereitstellung (Continuous Integration and Continuous Delivery, CI/CD) ermöglicht und die Automatisierung der verschiedenen Phasen der Softwareentwicklung wie Test-, Build- und Bereitstellung unterstützt. Sie bietet Nutzern viele Vorteile, kann aber auch von böswilligen Akteuren als Angriffsvektor genutzt werden, die falsch konfigurierte Server und ungepatchte Jenkins-Versionen missbrauchen, um Cryptocurrency Miner und Backdoors zu implementieren sowie sensible Informationen zu sammeln.
Ablauf

Die Script Console in Jenkins ist ein Tool, mit dem Administratoren und autorisierte Nutzer Groovy-Skripte direkt auf dem Jenkins-Server ausführen können. Die Konsole lässt die Skripte mit den erweiterten Zugriffsrechten von Jenkins ablaufen.
Standardmäßig aktiviert Jenkins die Skriptkonsole nicht für anonyme Nutzer, sondern nur für authentifizierte Nutzer mit administrativen Rechten. Doch ist eine Jenkins-Instanz falsch konfiguriert - zum Beispiel, wenn bestimmte Authentifizierungsmechanismen nicht korrekt aufgesetzt sind - führt dies zu anfälligen Instanzen.
Eine schnelle Suche auf Shodan zeigt die Anzahl der öffentlich zugänglichen Jenkins-Server. Zwar sind nicht alle diese zugänglichen Jenkins-Server anfällig für Missbrauch, sie können aber dennoch als Dreh- und Angelpunkt für Angreifer dienen.

Ein böswilliger Akteur, der Zugriff auf die Jenkins Script Console hat, kann schädliche Skripte ausführen, um Kryptowährungen zu sammeln.
Die technischen Einzelheiten zu möglichen Angriffsabläufen und eine Analyse des Skripts beinhaltet der Originalbeitrag.
Schutzmaßnahmen
Zum Schutz von Jenkins Servern vor den dargestellten Angriffen sollten die folgenden Best Practices befolgt werden:
- Setzen Sie die Script Approval-Funktion von Jenkins ein.
- Wenden Sie geeignete Authentifizierungs- und Autorisierungsrichtlinien für den Zugriff auf die Webkonsole an. Jenkins bietet spezielle Guidelines zum Thema Access Control.
- Nutzen Sie die Audit Logging-Funktion von Jenkins.
- Stellen Sie sicher, dass Jenkins Server nicht aus dem Internet zugänglich sind.
Vision One Threat Hunting Query
Möglicherweise nützliche Abfragen beim Threat Hunting mit Vision One:
- eventSubId: 2 AND processCmd:* exec * --rig-id *
- eventSubId: 2 AND processCmd:cron AND objectCmd:* exec * --rig-id *
Fazit
Die soliden Funktionen der Jenkins-Software machen sie zu einem unverzichtbaren Werkzeug für die moderne Softwareentwicklung. Diese Funktionen bergen jedoch auch erhebliche Risiken, wenn sie falsch konfiguriert oder nicht gepatcht sind.
Die Gewährleistung einer ordnungsgemäßen Konfiguration, einer robusten Authentifizierung und Autorisierung, regelmäßiger Audits und der Einschränkung des Internetzugangs zu Jenkins-Servern sind allesamt wichtige Schritte für Unternehmen, um die Wahrscheinlichkeit, dass ihre Jenkins-Instanzen zu Angriffsvektoren werden, deutlich zu verringern und ihre Entwicklungsumgebungen vor Angriffen zu schützen.
Die entsprechenden Indicators of Compromise sind hier zu finden sowie MITRE ATT&CK Techniques im Originalbeitrag.