1. Foren
  2. Kommentare
  3. Security-Forum
  4. Alle Kommentare zum Artikel
  5. › Log4Shell: BSI vergibt höchste…

Warum log4j? Warum so eine Funktionalität in log4j?

Neue Foren im Freiraum! Raumfahrt und freie Software haben jetzt einen Platz, die Games tummeln sich jetzt alle in einem Forum.
  1. Thema
  1. 1
  2. 2

Neues Thema


  1. Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: GL 12.12.21 - 17:18

    Ich habe mich ja schon lange gefragt, warum ich log4j verwenden soll. Leider verwenden das total viele, daher ist es meistens indirekt auch in den eigenen Anwendungen drin. Wobei ich mit java.util.logging immer ganz zufrieden war...

    Ist diese Funktionalität, JNDI anzusteuern, ein wichtiges Feature? Warum ist sowas in log4j drin? Und puh... warum ist sowas per default enabled.

    Bei Open Source entwickeln einfach sehr viele eine Grabbeltisch-Mentalität. Da wird eingepackt, was man bekommen kann. Ohne genau hinzuschauen. Und es wird mehrfach nicht genau hingeschaut: Was packe ich da ein? Was ist eigentlich die Lizenz? Wer ist Maintainer? Wobei man ja bei log4j sagen muss, dass es immerhin unter dem Dach der Apache-Foundation läuft. Wobei das am Ende auch nichts über die Qualität aussagt.

    Wobei man ja heute in der Softwareentwicklung nicht ohne auskommt. Und in anderen Bereichen ist das noch schlimmer: JavaScript zum Beispiel. Da zieht man 1000 "Bibliotheken", ohne es zu merken. Und die Docker-Images kennt man im Zweifel auch nicht genau.

  2. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: HVorragend 12.12.21 - 18:21

    Ich stimme soweit zu, dass es ein größer werdendes Risiko ist, was man sich so mit der x-ten Sub-Dependency so alles mit an Bord holt.
    log4j ist aber halt sowas wie ein de-facto Standard, über den sich aufgrund der großen Verbreitung vermutlich wenige Gedanken gemacht haben.
    Immerhin bekommt man aber eine relativ schnelle und eindringliche Warnung, wenn es dort zu einem Problem kommt... das bekommt man wohl eher weniger, wenn man sich selbst was "gebastelt" hat.

  3. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: Codemonkey 12.12.21 - 19:08

    Mich kotz es zum Beispiel an fremdes Zeug einzubinden, wenn ich 1-2 Tage Arbeit habe etwas selber zu entwickeln, das nur genau das kann was ich benötige.

    Dann mache ich es einfach (Spaß an der Arbeit und eigentlich verdiene man ich genug) anstatt mir etwas unbekanntes einzubauen, das mehr kann als ich überhaupt jemals benötige.

    Klar kann ich dann auch Fehler einbauen, aber dadurch das ich weniger (leer) Code habe, ist die Gefahr auch geringer.

    Aber bei manchen bedeutet programmieren heute Stackoverflow copy und paste, egal was da für ein veralteter, fehlerhafter oder gefährlicher Scheiss steht. Weil sie vielleicht kein Bock auf ihren Job haben

  4. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: Trockenobst 12.12.21 - 19:22

    Codemonkey schrieb:
    --------------------------------------------------------------------------------
    > Mich kotz es zum Beispiel an fremdes Zeug einzubinden, wenn ich 1-2 Tage
    > Arbeit habe etwas selber zu entwickeln, das nur genau das kann was ich
    > benötige.

    Bei komplexen Problemstellungen (etwa: Logging in zwei Streams wenn der erste nicht mehr verfügbar ist) oder Mischlogs oder dynamisierte Situationen (logge ich oder logge ich nicht basierend auf Context) kannst du Monate in Logfile-Infrastrukturen stecken. Oder zwei drei Stunden mit SLFJ oder Logback und dann dich wieder deinem/eigentlichen Problem beschäftigen.

    Java ist ja gerade so erfolgreich, weil man mit etwas XML Beschreibungen Frameworks hinzufügen kann, die Jahre gereift sind und 10000h an Arbeit gekostet haben. In der C# .net Welt muss man für vieles zahlen was man in der Java Welt umsonst bekommt. Und das "Ich frickle was zusammen" hat PHP seinen schlechten Ruf eingebracht. Die meisten Leute sind in einem oder zwei Themen gut, aber durch den ganzen Stack kannst du nicht gut sein. Du wirst Fehler machen, entweder weil man es einfach nicht weiß, weil man keine Lust hat sich auch noch in diese Kacke einzuarbeiten oder weil einem meist egal ist.



    1 mal bearbeitet, zuletzt am 12.12.21 19:24 durch Trockenobst.

  5. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: HVorragend 12.12.21 - 19:30

    Trockenobst schrieb:
    --------------------------------------------------------------------------------
    > Codemonkey schrieb:
    > ---------------------------------------------------------------------------
    > -----
    >In der C# .net Welt muss man für vieles zahlen was man in
    > der Java Welt umsonst bekommt.

    Interressehalber: was waäre das denn z.B.?

  6. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: skynet_de 12.12.21 - 19:51

    Es ist ein Unterschied ob man der Autor eines kleinen Ein-Mann Projekts ist oder in einer größeren Firma arbeitet.

    Wir haben ca. 30 Entwickler/-innen und es ist für die Zusammenarbeit besser gemeinsam De-Facto Standard Libraries statt Eigenentwicklungen zu nutzen.

    Man kann bei einer Neuanstellung davon ausgehen das diese schon mal mit log4j oder slf4j gearbeitet hat.

    Hinzu kommt noch dass man jede Menge falsch machen kann, entweder bei der Performance, Sicherheit, Stabilität oder Mischung aus allem.

    Allerdings, und das muss man dazu sagen: Das ist nicht die erste Apache Library die mir durch fragwürdige Qualität aufgefallen ist.

  7. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: mhstar 12.12.21 - 20:08

    > Hinzu kommt noch dass man jede Menge falsch machen kann, entweder bei der
    > Performance, Sicherheit, Stabilität oder Mischung aus allem.

    Zum Beispiel Java-Klassen runterladen, und ausführen, oder?

  8. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: skynet_de 12.12.21 - 20:13

    mhstar schrieb:
    --------------------------------------------------------------------------------
    > > Hinzu kommt noch dass man jede Menge falsch machen kann, entweder bei
    > der
    > > Performance, Sicherheit, Stabilität oder Mischung aus allem.
    >
    > Zum Beispiel Java-Klassen runterladen, und ausführen, oder?

    Whom to blame: Ein Zwei-Mann-OpenSource Projekt oder eine Laufzeitumgebung die so einen Unsinn überhaupt standardmäßig erlaubt? :)

    Abgesehen davon irgendwo muss man anfangen zu vertrauen. Tut man das nicht muss man es sich mit seinem Aluhut in seinem Faradayschen Käfig gemütlich machen.



    1 mal bearbeitet, zuletzt am 12.12.21 20:14 durch skynet_de.

  9. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: Codemonkey 12.12.21 - 20:15

    Kommt immer drauf an welchen Anteil vom Gesamtprojekt deine Eigenentwicklung hätte, finde ich.

    Wie gesagt es gibt Leute die knallen lieber eine komplexe Library rein von der sie einen Bruchteil benötigen, dann ist alles fertig sie können eine Funktion aufrufen und müssen nicht selber nen paar Stunden was bauen.

    Dafür werden dann potenzielle Sicherheitslücken und fragwürdige Datenschutzfragen durch eigentlich unbenötigte Features akzeptiert.

  10. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: ernstl 12.12.21 - 21:32

    Codemonkey schrieb:
    --------------------------------------------------------------------------------
    > Mich kotz es zum Beispiel an fremdes Zeug einzubinden, wenn ich 1-2 Tage
    > Arbeit habe etwas selber zu entwickeln, das nur genau das kann was ich
    > benötige.
    >
    > Dann mache ich es einfach (Spaß an der Arbeit und eigentlich verdiene man
    > ich genug) anstatt mir etwas unbekanntes einzubauen, das mehr kann als ich
    > überhaupt jemals benötige.
    >
    > Klar kann ich dann auch Fehler einbauen, aber dadurch das ich weniger
    > (leer) Code habe, ist die Gefahr auch geringer.
    >
    > Aber bei manchen bedeutet programmieren heute Stackoverflow copy und paste,
    > egal was da für ein veralteter, fehlerhafter oder gefährlicher Scheiss
    > steht. Weil sie vielleicht kein Bock auf ihren Job haben

    Sorry, aber natürlich setzt man auf Standards und somit auf entsprechende Frameworks, die diese implementieren. Wer z.B. anfängt das AMQP-Protokoll, verschiedene OAuth-Flows oder einen JSON Deserializer/Serializer selber zu implementieren, hat direkt bei der ersten Zeile Code verloren. Das selbe gilt für Abstraktionen von HTTP oder Datenbankzugriffen. Direkt mit dem guten alten Java-HTTP-Client, irgendwelchen JDBC-Treibern oder "rohen" Servlets zu arbeiten, ist zwar möglich, aber grob fahrlässig und kann nur schief gehen. Auch Logging, was erstmal trivial klingt, selbst zu implementieren wird schnell kompliziert, wenn es über ein primitives "schreib mal single-threaded ne formatierte Zeile Text in irgendeine Datei" hinaus gehen soll.
    Abgesehen davon, wird diese unnötigen Arbeiten keine Firma bezahlen.

    Spätestens in mittelgroßen Projekten hat man ohnehin Spring am Start und somit natürlich einen Haufen Dependencies im Projekt. Diese werden im Falle von Spring-Boot immerhin von Entwicklern gemanaged, die sich damit auskennen und regelmäßig aktualisiert (natürlich nur, wenn man selbst Spring aktuell hält).

    Die größte Gefahren sind selbst gebaut. Die bekommt man nur nicht mit, da niemand über den selbstgebastelten 0-day-exploit berichtet.

    PS: Entwickler, die StackOverflow copy+pasten ohne zu verstehen, was dort steht und ohne zu bemerken, dass es vielleicht schon 10 Jahre alt ist, sind halt einfach schlecht. Wenn man StackOverflow richtig benutzt, ist aber ziemlich gut.



    2 mal bearbeitet, zuletzt am 12.12.21 21:35 durch ernstl.

  11. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: minnime 12.12.21 - 22:01

    Ach, rohe Servlets finde ich ganz Ok wenn es nur darum geht etwas HTML rauszuhauen, auch bei JSON ist das ok, je nach Umfang.
    Genauso mag ich selbstgemachte Datenbankzugriffe statt ORMs, zumindest bei wenigen zu mappenden Klassen, die sind oft besser/performanter.

  12. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: ernstl 12.12.21 - 22:05

    minnime schrieb:
    --------------------------------------------------------------------------------
    > Ach, rohe Servlets finde ich ganz Ok wenn es nur darum geht etwas HTML
    > rauszuhauen, auch bei JSON ist das ok, je nach Umfang.
    > Genauso mag ich selbstgemachte Datenbankzugriffe statt ORMs, zumindest bei
    > wenigen zu mappenden Klassen, die sind oft besser/performanter.

    Ja, natürlich. Solange man die Übersicht behält, ist das völlig in Ordnung. Letztendlich baut ja alles andere darauf auf. ORMs nutzen JDBC, Webframeworks nutzen Servlets. Die sind schon sehr stabil - wenn man weiß, was man tut :)

  13. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: demon driver 12.12.21 - 22:09

    Codemonkey schrieb:
    --------------------------------------------------------------------------------
    > Mich kotz es zum Beispiel an fremdes Zeug einzubinden, wenn ich 1-2 Tage
    > Arbeit habe etwas selber zu entwickeln, das nur genau das kann was ich
    > benötige.
    >
    > Dann mache ich es einfach [...]

    Du leidest also am Not-invented-here-Syndrom.

  14. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: skynet_de 12.12.21 - 22:47

    Der einzige valide Kritikpunkt ist: warum ist das Feature standardmäßig aktiviert wenn eh bestimmt nur ein kleiner Prozentsatz überhaupt weiß was JNDI ist, geschweige denn das Feature nutzt.

  15. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: sir_edward 12.12.21 - 23:51

    Mit tinylog gibt es eine nicht so bekannte Alternative für Java, die ohne weitere Abhängigkeiten und auch ohne JNDI auskommt.

  16. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: t_e_e_k 13.12.21 - 00:48

    Codemonkey schrieb:
    --------------------------------------------------------------------------------
    > Mich kotz es zum Beispiel an fremdes Zeug einzubinden, wenn ich 1-2 Tage
    > Arbeit habe etwas selber zu entwickeln, das nur genau das kann was ich
    > benötige.
    >
    > Dann mache ich es einfach (Spaß an der Arbeit und eigentlich verdiene man
    > ich genug) anstatt mir etwas unbekanntes einzubauen, das mehr kann als ich
    > überhaupt jemals benötige.
    >
    > Klar kann ich dann auch Fehler einbauen, aber dadurch das ich weniger
    > (leer) Code habe, ist die Gefahr auch geringer.
    >
    > Aber bei manchen bedeutet programmieren heute Stackoverflow copy und paste,
    > egal was da für ein veralteter, fehlerhafter oder gefährlicher Scheiss
    > steht. Weil sie vielleicht kein Bock auf ihren Job haben

    Soetwas wie log4j sollte man nicht nachbauen. Sondern verbessern. Was doch alles so komplex in der Java Welt macht, ist das jeder die grundlegenden Dinge immer wieder neu erfinden muss. Not invented Here ...!

  17. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: mnementh 13.12.21 - 02:42

    minnime schrieb:
    --------------------------------------------------------------------------------
    > Ach, rohe Servlets finde ich ganz Ok wenn es nur darum geht etwas HTML
    > rauszuhauen, auch bei JSON ist das ok, je nach Umfang.
    > Genauso mag ich selbstgemachte Datenbankzugriffe statt ORMs, zumindest bei
    > wenigen zu mappenden Klassen, die sind oft besser/performanter.
    Ja, geht mir genauso. Hängt natürlich von der Komplexität des Projekts ab.

    Und bei Logging - wir haben log4j benutzt, aber dann hat das Java eingebaut und seitdem gibt es keinen Grund mehr für log4j.

  18. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: Technokrat85 13.12.21 - 08:15

    Geilo! Wusste gar nicht, dass es dafür sogar ein Begriff gibt. Danke fürs posten!

  19. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: Trockenobst 13.12.21 - 10:25

    HVorragend schrieb:
    --------------------------------------------------------------------------------
    > Interressehalber: was waäre das denn z.B.?

    Alles was mit und um Microsoft Server/Azure zum Arbeiten und Debuggen notwendig ist.
    Neben der teuren Visual Studio Ultimate und Reshaper, fallen mir NDepend ein, loggly für hübsche Log-Dashboards und sicherlich noch eine handvoll andere Tools deren OSS Variante bestenfalls Light Versionen sind. Ich muss aber der .net Community Respekt zollen, viele der Tools holen auf und sind nutzbar.

    Ich will nicht bezweifeln das man mit Intellij/Resharper alles andere auch irgendwie hinhacken kann oder - eher ungewöhnlich - eine Java Tool Infrastruktur fahren kann. Aber das ist nicht das was ich bei .net/Azure Entwicklungspipelines sehe. Dagegen kenne ich viele Java Umgebungen die ihren gesamten DevOps von Anfang (Eclipse) bis Ende (Quarkus) in der Cloud komplett kostenlos beschreiten können. Notfalls wird irgendwas in PHP hergenommen, z.T. deren Ticket System und Deployment Überwachung.

  20. Re: Warum log4j? Warum so eine Funktionalität in log4j?

    Autor: LeeRoyWyt 13.12.21 - 10:42

    skynet_de schrieb:
    --------------------------------------------------------------------------------
    > Der einzige valide Kritikpunkt ist: warum ist das Feature standardmäßig
    > aktiviert wenn eh bestimmt nur ein kleiner Prozentsatz überhaupt weiß was
    > JNDI ist, geschweige denn das Feature nutzt.

    Das sollte generell für alle Feature-Requests gelten, finde ich. Wer sowas braucht, kann es selbst aktivieren, dem Rest tut es dann (mit einiger Wahrscheinlichkeit) nicht weh.

  1. Thema
  1. 1
  2. 2

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. IT-Projektleiter (m/w/d)
    TechniSat Digital GmbH, Daun
  2. Augenoptiker als technischer Kundenberater (m/w/d) Hardware / Software
    Rodenstock GmbH, Düsseldorf
  3. Hochschulabsolvent (w/m/d) Management Consulting
    ifb group, verschiedene Einsatzorte
  4. SAP Basis Berater (m/w/x)
    über duerenhoff GmbH, Raum Berlin

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. (u. a. Paper Mario: The Origami King (Switch) für 27€ statt 69,99€, Star Wars Squadrons (PS4...
  2. 31,99€
  3. 7,49€


Haben wir etwas übersehen?

E-Mail an news@golem.de