• Offizieller Beitrag

    der CVE beschreibt ja eine der kritischsten Sicherheitslücken der letzten Wochen. Dabei geht es um eine Loch in der Protokollierungssoftware log4j. Das ist insofern brisant, da diese von VIELEN Javaprogrammierern verwendet wird. Das ist auch gut so, würde man versuchen das Rad neu zu erfinden gäbe es sicherlich deutlich mehr Sicherheitslecks.

    Das Loch als solches erlaubt es dem Angreifer beliebigen Code auf dem Server auszuführen. Das gescheiht indem man log4j sagt bitte laden den Code von xyz (das kann dann jeder erreichbare Rechner sein) und mach mal....

    Nur zur Info meine Server habe ich natürlich gleich gescannt, wobei ich recht sicher war dass ich zumindest privat (auf meinen Rechnern) nicht betroffen bin.

    Dazu mehrere Tools verwendet:

    Fenrir (linux)

    git clone https://github.com/Neo23x0/Fenrir.git und dann das .sh starten ala "./fenrir.sh /"

    also Angriffsversuche habe ich genügend in den apache logs gefunden.

    Fenrir braucht recht lange um alles zu scannen da es auch archive entpackt etc. also im Hintergrund laufen lassen und parallel mit anderen tools weitermachen.

    Logpresso (Java also Multiplatform)

    Von https://github.com/logpresso/CVE-2021-44228-Scanner die letzte Jar Version (aktuell 2.3.3) herunterladen

    Z.B mit wget https://github.com/logpresso/CVE-…-scan-2.3.3.jar

    und mit java -jar logpresso-log4j2-scan-<VERSION>.jar <laufwerk> scannen.

    Log4JScan

    Von https://github.com/fullhunt/log4j-scan herunterladen ala git clone https://github.com/fullhunt/log4j-scan.git.

    Dann log4j-scan.py -u <dein zu testender server> aufrufen

    evtl. muss man vorher noch die requirements installieren

    Code
    apt install git
    apt install python3-pip
    pip3 install -r requirements.txt

  • Olaf Krause 19. Dezember 2021 um 14:10

    Hat den Titel des Themas von „Log4J CVE“ zu „Log4J CVE-2021-44228“ geändert.
  • Das ist auch gut so, würde man versuchen das Rad neu zu erfinden gäbe es sicherlich deutlich mehr Sicherheitslecks.

    Als Javaprogrammierer sag ich dazu mal: Meistens wohl eher nein. Das Rad sollte viel öfter mal neu erfunden werden, denn Traktorreifen an einem Fahrrad mögen zwar funktionieren, sind aber nicht sonderlich sinnvoll. Der Trend, ein Framework/eine Bibliothek zu nutzen, das/die viel mehr Funktionalität bietet, als das Projekt eigentlich benötigt, verschwendet nicht nur gewaltig Ressourcen, sondern baut auch Sicherheitslücken da ein, wo sonst garantiert keine auftauchen würden. Log4j ist da eigentlich sogar ein super Beispiel für, denn nur die allerwenigsten Anwender einer Software mit Log4j dürften die LDAP-Funktionalität von Log4j tatsächlich benötigen. Ich wage mal zu behaupten, dass der Log4j-Sourcecode ungefähr um den Faktor 100 größer ist, als für mindestens 95% aller Nutzer von Log4j nötig wäre. Dass das das Risiko von unentdeckten Sicherheitslücken deutlich vergrößert, dürfte wohl klar sein.


    Dass eierlegende Wollmilchsäue wie Log4j kleine, maßgeschneiderte Lösungen verdrängen, ist in erster Linie nur dem Umstand geschuldet, dass Programmierern oft (oder in der Wirtschaft eher fast immer) nicht die Zeit für ein Projekt zugebilligt wird, die nötig wäre, um ein wirklich gutes Produkt zu erstellen. Das Narrativ vom "Neuerfinden des Rades" ist da nur eine willkommene Ausrede, immer wieder das gleiche Riesenframework zu nutzen, weil schlicht die Zeit fehlt, sich in individuellere Lösungen einzuarbeiten.

    Damit will ich natürlich nicht sagen, dass Standardbibliotheken an sich nicht gut wären. Klar muss man nicht jedes kleine Rädchen neu erfinden. Aber für die konkrete Anwendung völlig unnütz aufgeblähte Bibliotheken bringen mehr Probleme mit sich als sie vermeiden.

    Frohe Weihnachten! :)

    • Offizieller Beitrag

    Log4j ist da eigentlich sogar ein super Beispiel für, denn nur die allerwenigsten Anwender einer Software mit Log4j dürften die LDAP-Funktionalität von Log4j tatsächlich benötigen. Ich wage mal zu behaupten, dass der Log4j-Sourcecode ungefähr um den Faktor 100 größer ist, als für mindestens 95% aller Nutzer von Log4j nötig wäre. Dass das das Risiko von unentdeckten Sicherheitslücken deutlich vergrößert, dürfte wohl klar sein.

    Ich gebe Dir teilweise recht - aber ich habe schon so viele Fälle gesehen wo die Teams unabhängig von einander die gleiche Funktionalität entwickelt haben, die dann später keiner mehr warten kann... Die Größe und Komplexität vergrößert das Risiko korrekt, aber die vielen kleinen, teils dann miserabel gewarteten Lösungen, kompensieren das dann wieder (meine Beobachtung/Erfahrung ohne das mit statistischen Zahlen hinterlegen zu können).

    Bei uns ist es aktuell 50:50 log4j und logback (durch Spring getrieben immer weniger log4j). Die 3pp immer mit Augenmaß einsetzen ist schon richtig und regelmäßig hinterfragen schadet auch nicht.

  • Moin tolles Thema,

    mir gehen die immer häufiger auftauchenden Sicherheitslücken gewaltig auf den Sa..... Ich bin mit meinem Admin Team für die Systembetreuung in einem großen Mittelständischen Unternehmen tätig. Da die Log4j Komponenten von vielen Software Anbietern in Ihre Produkte integriert wurden war das echt schon übel bei uns. VMware Horizon war da unser größtes Problem. Die UAG hängen direkt im Internet und waren davon natürlich betroffen. Also wieder mal eine unnötige Notfall Aktion am Wochenende.... Immerhin war VMware Vorbildlich schnell mit dokumentierten Workarounds am Start. Hat aber bis jetzt 3 aktualisierte Vorgehensweisen nachgeschoben.

    Warum schaffen es die Entwickler nicht sichere und vernünftige Software zu entwickeln??? Kann doch nicht so schwer sein??

    Als Realist ist mir klar das es die letzten 10 Jahre in meiner Berufslaufbahn nicht besser werden wird.......

    • Offizieller Beitrag

    Warum schaffen es die Entwickler nicht sichere und vernünftige Software zu entwickeln??? Kann doch nicht so schwer sein??

    Naja selbst die simpelsten Programme können bugs haben - jeder der selber mal programmiert hat kann das denke ich nachvollziehen.

    Leider hat es sich auch noch nicht überall eingebürgert entsprechende tools zur "Qualitätssicherung" ala Sonar - CVE Scanner etc. einzusetzen. Bzw. man schleppt einen Berg von issues aus der Vergangenheit mit sich rum und sieht den Wald vor lauter Bäumen nicht. Die Tools selber sind aber auch nicht immer das gelbe vom Ei. Denke aber da wird sich jetzt mehr tun - Sicherheit in der IT wird immer wichtiger.

    Dazu kommt nat. schon ein Stück auch Geiz ist geil von Käufern (uns eingeschlossen) - wovon soll den ein SW-Entwickler leben, wenn jeder erwartet das es kostenlos ist. Also muss man indirekt zahlen durch entsprechende Supportverträge oder Werbung oder oder. Sicherheit kostet meist extra; muss nicht monetär sein kann auch extra Aufwand bedeuten ala 2FA.

    Vergabe an "Billigentwickler" die gerade mal die Syntax kennen, ohne das Ergebnis dann aber vernünftig zu prüfen (das kostet dann ja wieder) macht es auch nicht besser. Nein auch in anderen Ländern gibt es gute Entwickler und bei uns Pfeifen, das soll also keine offshore - lokal Debatte sein.

    Als Realist ist mir klar das es die letzten 10 Jahre in meiner Berufslaufbahn nicht besser werden wird.......

    Besser nein, aber anders - ich fürchte das Thema Sicherheit kommt gerade erst hoch, warten wir mal ab was noch kommt mit alles in der Cloud.

    Da fällt mir ein ich muss heute mal paar mal offline gehen um auf eine neue Firewall zu schwenken (OPNsense). Da bin ich auch noch am lernen, wie man das wirklich halbwegs sicher aufsetzt und Einbruchsversuche auch bemerkt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!