
Exploit für Apache NiFi CVE-2023-34468, Angriff auf eine Sicherheitslücke in den Versionen 1.21.0 und früher, um Datenzugriff und Systemkompromittierung zu demonstrieren.
[][nifi]
Apache NiFi ist ein benutzerfreundliches, leistungsstarkes und zuverlässiges System zur Verarbeitung und Verteilung von Daten.
Apache NiFi wurde für Datenflüsse entwickelt. Es unterstützt hochgradig konfigurierbare gerichtete Graphen für Datenrouting, -transformation und Systemvermittlungslogik. Zu den wichtigsten Funktionen gehören:
Lesen Sie den Schnellstart-Leitfaden für die Entwicklung. Er enthält Informationen zum Erhalten einer lokalen Kopie des Quellcodes, Hinweise zum Issue-Tracking und Warnungen zu häufigen Problemen in Entwicklungsumgebungen.
Für einen umfassenderen Leitfaden zur Entwicklung und Informationen zur Mitarbeit am Projekt lesen Sie den NiFi Developer's Guide.
Führen Sie mvn clean install oder für parallele Builds mvn -T 2.0C clean install aus.
Der parallele Build sollte auf moderner Hardware etwa fünfzehn Minuten dauern.
laptop:nifi myuser$ mvn -T 2.0C clean install
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 115 modules...
...tens of thousands of lines elided...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:24 min (Wall Clock)
[INFO] Finished at: 2015-04-30T00:30:36-05:00
[INFO] Final Memory: 173M/1359M
[INFO] ------------------------------------------------------------------------
Führen Sie mvn clean install -DskipTests aus, um die Ausführung der Komponententests zu überspringen.
Wechseln Sie in das Verzeichnis nifi-assembly. Das Verzeichnis target enthält die Binärarchive.
laptop:nifi myuser$ cd nifi-assembly
laptop:nifi-assembly myuser$ ls -lhd target/nifi*
drwxr-xr-x 3 myuser mygroup 102B Apr 30 00:29 target/nifi-1.0.0-SNAPSHOT-bin
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.zip
Kopieren Sie die Datei nifi-VERSION-bin.tar.gz oder nifi-VERSION-bin.zip in ein separates Bereitstellungsverzeichnis. Das Entpacken der Distribution erstellt ein neues Verzeichnis, das nach der Version benannt ist.
laptop:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
laptop:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
laptop:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
total 0
drwxr-xr-x 10 myuser mygroup 340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT
Wechseln Sie in das Bereitstellungsverzeichnis und führen Sie den folgenden Befehl aus, um NiFi zu starten.
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
Die Ausführung von bin/nifi.sh start startet NiFi im Hintergrund und beendet sich. Verwenden Sie --wait-for-init mit einem optionalen Timeout in Sekunden, um auf einen vollständigen Start zu warten, bevor die Ausführung beendet wird.
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
Die Standardkonfiguration generiert beim Start einen zufälligen Benutzernamen und ein zufälliges Passwort. NiFi schreibt die generierten Anmeldedaten in das Anwendungsprotokoll unter logs/nifi-app.log im NiFi-Installationsverzeichnis.
Der folgende Befehl kann verwendet werden, um die generierten Anmeldedaten auf Betriebssystemen mit installiertem grep zu finden:
laptop:nifi-1.0.0-SNAPSHOT myuser$ grep Generated logs/nifi-app*log
NiFi protokolliert die generierten Anmeldedaten wie folgt:
Generated Username [USERNAME]
Generated Password [PASSWORD]
Der USERNAME ist eine zufällige UUID aus 36 Zeichen. Das PASSWORD ist eine zufällige Zeichenfolge aus 32 Zeichen. Die generierten Anmeldedaten werden in conf/login-identity-providers.xml gespeichert, wobei das Passwort mit bcrypt gehasht wird. Notieren Sie diese Anmeldedaten an einem sicheren Ort für den Zugriff auf NiFi.
Der zufällige Benutzername und das Passwort können mit dem folgenden Befehl durch benutzerdefinierte Anmeldedaten ersetzt werden:
./bin/nifi.sh set-single-user-credentials <username> <password>
Öffnen Sie den folgenden Link in einem Webbrowser, um auf NiFi zuzugreifen: https://localhost:8443/nifi
Der Webbrowser zeigt eine Warnmeldung an, die auf ein potenzielles Sicherheitsrisiko aufgrund des selbstsignierten Zertifikats hinweist, das NiFi während der Initialisierung generiert hat. Das Akzeptieren des potenziellen Sicherheitsrisikos und das Fortsetzen des Ladens der Oberfläche ist eine Option für anfängliche Entwicklungsinstallationen. Produktionsumgebungen sollten ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle bereitstellen und die NiFi-Keystore- und Truststore-Konfiguration aktualisieren.