Die Fallen von Drittanbieter-Bibliotheken

  • Die Fallen von Drittanbieter-Bibliotheken

Heute habe ich über eine kürzlich entdeckte Sicherheitslücke in einer Drittanbieter-Logging-Bibliothek gesprochen, die mit geringem Aufwand für die Ausführung von Remote-Befehlen ausgenutzt werden kann. Eine Logging-Bibliothek und Remote-Befehle scheinen völlig unabhängig zu sein, aber überflüssige Drittanbieter-Bibliotheken gibt es zuhauf.

Je mehr Code man liest, desto mehr erkennt man, dass die Qualität vieler Open-Source-Codes sehr schlecht ist, egal wie viele tausend Sterne sie haben. Sterne repräsentieren die Nachfrage, nicht das Entwicklungsniveau.

Der Vorteil von Open Source ist, dass mehr Menschen daran arbeiten können. Der Vorteil ist, dass Features schnell hinzugefügt werden, Bugs von anderen behoben werden und der Code von anderen überprüft wird, aber die Qualifikationen sind unterschiedlich.

Ohne strenge Commit-Richtlinien ist es schwierig, die Code-Qualität zu garantieren.

Je mehr Code hinzukommt, desto größer wird die Angriffsfläche.

Obwohl das Rad neu erfinden nicht gut ist, entspricht der Produktbedarf eher einem Kinderwagenrad. Ein Plastikrad hält ewig, aber ein Flugzeugreifen hinzuzufügen erhöht nur die Angriffsfläche und die Wartungskosten. Wenn man nur ein Kinderwagenrad braucht, sollte man nicht überdimensionierte Lösungen verwenden.

Hohe Wartungskosten: Drittanbieter-Bibliotheken erfordern spezielle Prozesse und Personal zur Wartung. Ein von Huawei stark modifiziertes Testframework führte direkt dazu, dass bei der Aktualisierung des Compilers die Testfälle fehlschlugen und die Aktualisierung des Testframeworks mit der Compiler-Aktualisierung in Konflikt geriet. Beim Warten muss viel Zeit damit verbracht werden, diesen Weg weiter zu modifizieren. Als Teilnehmer habe ich die Schwierigkeiten der Modifikation von Drittanbieter-Bibliotheken aus erster Hand erlebt. Wenn die modifizierten Features in die Open-Source-Bibliothek zurückgeführt werden können, ist das noch in Ordnung. Wenn jedoch invasive Anpassungen für eigene Anforderungen vorgenommen werden, wird die Wartung sehr schwierig.

Huawei hat eine Reihe von Prozessen für Drittanbieter-Bibliotheken eingerichtet, die als sehr hinderlich empfunden werden.

Die Hürden sind extrem hoch. Die Hinzufügung von Drittanbieter-Bibliotheken erfordert die Prüfung durch einen Experten der Stufe 18 und einen Abteilungsleiter der Stufe 20. Im Grunde können nur renommierte Drittanbieter-Bibliotheken verwendet werden.

Alle Drittanbieter-Bibliotheken werden im Ordner thirdparty abgelegt. Während der vollständigen Kompilierung vergleicht CI den Quell-Repository und verbietet streng invasive Änderungen.

Spezielle Werkzeuge verfolgen alle Versionen von Drittanbieter-Bibliotheken. Für diesen Bereich wurden externe Mitarbeiter eingestellt, und wenn ein Entwickler eine Versionsaktualisierung beantragt, muss der Abteilungsleiter dies prüfen.

Es ist schwierig, einen Abteilungsleiter für solche Angelegenheiten zu gewinnen. Wenn ein Prozess sehr umständlich ist, dann dient er eigentlich dazu, davon abzuraten.

Man sollte gegenüber Drittanbieter-Bibliotheken eine skeptische Haltung einnehmen und stattdessen dem eigenen Entwicklerteam vertrauen.