Freitag, April 26, 2024

Das böse Büro

Uriel Fanellis Blog in deutscher Sprache

Uriel Fanelli

Log4j, Log4j… die Decke hast du mir schmutzig gemacht.

Log4j, Log4j ... die Decke hast du mir schmutzig gemacht.

Der neue Fehler in einer in der Java-Welt weit verbreiteten Bibliothek, die ausschließlich dazu dient, Strings in eine Datei zu schreiben, sorgt in der IT-Welt für Aufsehen. In der Praxis hatten unsere Helden statt fprintf() eine katastrophale Bahre von enormer Komplexität erfunden, mit der Folge, dass sie irgendwann die Kontrolle darüber verloren.

„Unsere Helden“ waren die „Full-Stack-Exchange-Entwickler“, denen auf die Frage, wie man sich am besten einloggt, sagte: „Verwende log4j, warum lernen Strings in eine Datei zu schreiben? Es könnte dein Gehirn explodieren lassen!". Ich meine den durchschnittlichen Programmierer von heute.

Das Ergebnis ist, dass jemand eine Software geschrieben hat, die sie interpretiert, um die Protokolle zu schreiben. Es tut Dinge. Und wenn Sie ihm sagen, dass er einen bestimmten String protokollieren soll, interpretiert er ihn und ruft einen LDAP-Server auf, der ihm unter den Attributen den auszuführenden Code bereitstellt.

Aber trotzdem versuchen wir besser zu verstehen, warum dies immer noch passieren wird.

An sich ist es Open-Source-Software. Und theoretisch wird von einer robusten Entwickler-Community, die den Code lesen kann, erwartet, dass es sich um eine Open-Source-Software handelt, die Schwachstellen leicht beheben kann. Wie heißt die robuste Entwickler-Community? Es heißt "Ralph Goers". ( https://www.ralphgoers.com/ )

Log4j, Log4j ... die Decke hast du mir schmutzig gemacht.

Die „genährte Gemeinschaft“ ist ein Mensch, der in seiner Freizeit, nach der Arbeit, log4j macht.

Beeindruckend.

Bist du dafür bezahlt? Nein. Er könnte sagen: "Entschuldigung, ich bin am Strand, es ist mein Urlaub, ich komme nächsten Monat wieder, wenn meine Software nicht funktioniert, hör auf, sie zu benutzen, bis ich wieder da bin." Und daran wäre nichts Seltsames.

Dies ist nicht das erste Mal, dass dies passiert, und es wird nicht das letzte Mal sein.

Vor Jahren sagte der Entwickler von GPG, er wolle dreimal am Tag etwas essen, wolle sich einen gut bezahlten Job suchen und stelle daher die Entwicklung der Software ein, auf der ein Großteil der Userspace-Verschlüsselung von Linux basiert. Erst dann erkannten einige Unternehmen, dass sie Kleingeld hatten, und fanden einen Weg, ihm ein Gehalt für seine Leistung zu zahlen.

Bald darauf wurde entdeckt, dass OpenSSL, der andere Zweig der Open-Source-Verschlüsselung, ein Problem mit der Speicherexplosion hatte. Und es stellte sich heraus, dass alles von 3 Programmierern gemacht wurde, die in ihrer Freizeit für OpenBSD arbeiteten, offensichtlich nicht bezahlt oder einen Scheiß bezahlt.

Das Muster ist also klar:

Log4j, Log4j ... die Decke hast du mir schmutzig gemacht.

Aber es wäre besser, um das Problem AUCH zu erklären, verwenden Sie DIESES Bild:

Log4j, Log4j ... die Decke hast du mir schmutzig gemacht.

Denn genau das ist das Problem.

Große Unternehmen machen übermäßigen Gebrauch von Open-Source-Software. Und sie tun es nicht, weil es besser oder sicherer ist: Sie tun es, weil es NICHTS KOSTET.

Anstatt Lizenzen zu kaufen, sagen Manager „Linux verwenden, es ist kostenlos“.

Als die Open-Source-Bewegung geboren wurde, rechneten oder hofften Programmierer auf ein Modell, das der vorherigen Shareware ähnelte, dh "einige werden es mögen und uns Geld schicken, andere werden helfen, es zu verbessern, andere werden es verbreiten".

Aber die Realität ist, dass sie "die Idioten, die umsonst arbeiten" geworden sind. So kann es vorkommen, dass in der Microsoft-Cloud die allermeisten virtuellen Maschinen aus Linux-Images bestehen. Microsoft macht uns Milliarden. Hat einer der Linux-Entwickler jemals auch nur einen Bruchteil dieser Milliarden gesehen? Offensichtlich nicht.

Dann werden Sie mir sagen, dass es Stiftungen gibt, die große Spenden von großen Unternehmen erhalten, und meine Frage ist: ok. Aber ich rede von Programmierern. Bekommen sie dieses Geld?

Die Antwort liegt in der Mozilla Foundation und ihrer Bilanz. Wenn Sie nicht die ganze Geschichte verfolgt haben, werden die üblichen Managerz überbezahlt, während die Programmierer wie Scheiße behandelt werden.

Für Unternehmen ist Open Source zu einer Welt geworden, in der es Idioten gibt, die umsonst arbeiten, wie Scheiße behandelt werden und sogar Beleidigungen annehmen, wenn sie einen Fehler machen, und es kostet sie nichts.

Das Ergebnis ist, dass Programmierer immer weniger gerne programmieren. Ein weiterer Fall war der Metallb-Programmierer (damals der einzige), dem eine Schadensersatzklage angedroht wurde, wenn er nicht bis Ende des Wochenendes einen Fehler behob. Und er antwortete, dass er in seiner Freizeit daran arbeite, dass er Leute verärgere, die dachten, sie könnten ihn wie einen Lumpen behandeln und dachten daran, aufzuhören.

Da sich ohne Metall die Hälfte der "Kubernetes-Experten" in den Mund schoss, sprangen ihm andere zu Hilfe, und die betreffende Firma bekam so viel Hass aus dem Internet, dass sie sich lieber entschuldigten. Aber der Punkt bleibt derselbe: Für viele Manager wird Open-Source-Software von Narren gemacht, die umsonst arbeiten, und da sie für Sie arbeiten, und da sie für Sie arbeiten, können Sie sie auch wie Scheiße behandeln.

Diese Software hat eine sehr einfache Sache gemacht: die Protokolle einer Anwendung in einem bestimmten Format zu schreiben. In einer c-ähnlichen Sprache war es das Äquivalent von fprinf(). Da das Erlernen von fprintf() für den durchschnittlichen Affen zu schwierig ist, zogen es viele vor, das zu verwenden: so endete es überall oder fast. Moral: ein Durcheinander.

Solcher Müll existiert mittlerweile in fast allen Sprachen und dient hauptsächlich dazu, einem Programmierer das Erlernen von Standardbibliotheken zu ersparen, die bereits dasselbe tun.

Und dann haben wir:

  • Commons I.
  • Guave
  • JUnit
  • Jackson
  • JAXB
  • BehauptenJ
  • Überwintern
  • HTTP-Komponenten
  • Xerces2
  • Javassis
  • CgLib
  • Jms
  • QM
  • Joda (ich vermisse die Termine…)
  • Funde
  • Jsuppe
  • Netty / MINA

Fast alle Sprachen haben mittlerweile diese Art der Verbreitung von Drittbibliotheken, und jede davon hat einen anderen Ursprung, einen anderen Lebenszyklus und offensichtlich die gleiche Chance, "infiziert" zu werden.

Was läuft schief?

Nun, das passiert. Stellen Sie sich vor, Sie sind eine Frau. Sie müssen ein Kind haben. Der Manager kommt und sagt: „Sie haben unser Budget gekürzt. ab heute werden die kinder in 8 monaten gemacht". Jetzt, mit der neuen kostengünstigen Kaiserschnitt-Technik, ist dies durchaus machbar. Es ist nicht cool, aber machbar.

Im folgenden Jahr dasselbe. Jetzt müssen Sie es in 7 Monaten tun. Auch hier ist es mit ein wenig Inkubator und Schneiden möglich.

Aber unter dem Motto "Produktivitätssteigerung einfach dadurch, dass man dem Kunden kürzere Fristen verspricht" ist es passiert, dass unsere Frau in Waisenhäuser geht, um sich mit Kindern einzudecken.

Wenn die Managerin einst glaubte, dass neun Frauen in einem Monat ein Kind bekommen könnten, hat sie heute jemand davon überzeugt, dass EINE Frau in einem Monat ein Kind bekommen kann, wenn sie DevOps macht, eine CI / CD hat und das Kind Open Source ist.

In der Praxis wird EIN Programmierer gebeten, parallel zu arbeiten.

Sobald dies erledigt ist, laden Programmierer einfach Bibliotheken herunter. Dies liegt auch an einem gewissen Mangel an Kreativität der Unternehmen, die alle das Gleiche auf die gleiche Weise fordern.

Die Projektzeiten sind mit solcher Arroganz und Oberflächlichkeit berechnet, dass sie heute Gott bitten würden, das Universum in drei Tagen zu erschaffen. Und nein, „Agile / Scrum“ machte es nur noch schlimmer.

Diese kontinuierliche Kostensenkung ohne WIRKLICH Technologien, um die Entwicklung produktiver zu machen, bedeutet, dass die am häufigsten verfolgte Strategie darin besteht, von anderen geschriebene Software wiederzuverwenden. Es ist kostenlos.

Mit dem Ergebnis, dass wir die nächsten 15 Jahre, da die IT immer wichtiger und für wirklich wichtige Dinge verwendet wird, damit verbringen werden herauszufinden, wie viele Fehler und wie viele Sicherheitsprobleme aus der blinden Übernahme von Bibliotheken resultieren, die ja auch Open Source sein werden, aber kein Programmierer hat jemals gründlich untersucht, WARUM KEINE ZEIT HATTE.

Die nächsten 15 Jahre der IT-Einführung werden eine Zeit regelmäßiger Datenlecks, Hackerangriffe, exponentiell steigender Ausgaben für Cybersicherheit, Ransomware und mehr sein.

Denn es gibt kein kostenloses Essen, und wenn Sie in Ihrem Projekt einen Monat sparen, indem Sie eine Bibliothek verwenden, die Sie kostenlos herunterladen, kostet es Sie früher oder später genau so viel, um die Mängel dieser Bibliothek zu beheben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert