GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erkennen Sie veraltete gemeinsam genutzte Bibliotheken im Speicher mit UChecker

Dieses Tutorial erklärt, was UChecker ist und wie man veraltete gemeinsam genutzte Bibliotheken im Speicher mit UChecker in Linux-Betriebssystemen erkennt.

Einführung

IT-Organisationen, die sich auf Free and Open Source Software (FOSS) verlassen, stehen vor einem ständigen Kampf bei der Verarbeitung ungepatchter gemeinsam genutzter Bibliotheken. Dies ist kein triviales Problem, da gemeinsam genutzte Bibliotheken eine weit verbreitete Angriffsfläche darstellen. Beispielsweise legen Untersuchungen nahe, dass OpenSSL die am stärksten zielgerichtete Software der Welt ist und für 19 % der feindlichen Aktivitäten weltweit verantwortlich ist .

Wenn Sie unter vielen vergleichbaren Open-Source-Codesets für OpenSSL- und GNU C (glibc)-Bibliotheken verantwortlich sind, sind Sie verpflichtet, rechtzeitig Updates und Patch-Management durchzuführen. Der traditionelle Ansatz zum Aktualisieren von Bibliotheken besteht darin, den gesamten Server neu zu starten oder alle Prozesse neu zu starten, wenn es keine Möglichkeit gibt, festzustellen, welche Prozesse noch die veralteten Bibliotheken verwenden. Systemneustarts verursachen jedoch eigene Komplikationen und Risiken. Danke an KernelCare Team können wir dieses Problem mit einem einfachen Skript namens UChecker leicht lösen .

Was ist UChecker

UChecker, kurz für Userspace Checker , ist ein kostenloser Open-Source-Scanner, der identifiziert, welche Ihrer Prozesse noch veraltete Bibliotheken verwenden und neu gestartet werden müssen. Es wurde während der Entwicklung von Live-Patching für gemeinsam genutzte Bibliotheken erstellt von KernelCare. Mit Uchecker können Sie anfällige FOSS-Bibliotheken identifizieren und patchen. Sie müssen betroffene Prozesse neu starten (es sei denn, Sie verwenden Bibliotheksaktualisierungsdienste ohne Neustart), aber durch das Scannen nach Schwachstellen können Sie feststellen, welche Prozesse Ihrer Aufmerksamkeit bedürfen und welche nicht.

Dadurch vermeiden Sie unnötige Serverneustarts, die zu Dienstverschlechterungen und/oder -ausfällen führen, sowie die Entstehung von Schwachstellenfenstern, da Bibliotheken ungepatcht bleiben, bis der Neustart geplant werden kann. In der Tat wissen Sie möglicherweise nicht einmal, welche Dienste welche Bibliotheken verwenden, daher ist es verlockend, einfach den gesamten Server neu zu starten, um sie alle zu aktualisieren, oder die Hauptdienste neu zu starten. Auch diese Vorgehensweise kann so störend sein wie ein Neustart.

So funktioniert UChecker

Uchecker funktioniert mit allen modernen Linux-Distributionen ab der 6. Version. Es ist eine kostenlose Software, die mit JSON erstellt wurde und gemäß den Bedingungen der GNU General Public License zur Weitergabe und/oder Änderung offen ist. Uchecker erkennt Prozesse, die alte (d. h. ungepatchte) gemeinsam genutzte Bibliotheken verwenden. Es erkennt und meldet nicht aktuelle gemeinsam genutzte Bibliotheken, die von laufenden Prozessen verwendet werden. Seine Erkennungsfähigkeiten basieren auf dem BuildID-Vergleich. Dadurch sind sie sich der gelöschten oder ersetzten Dateien bewusst.

Die folgende grafische Darstellung zeigt, wie Uchecker funktioniert.

Das Uchecker-Tool kann die Prozess-ID und den Namen sowie die Namen von gemeinsam genutzten Bibliotheken, die nicht gepatcht sind, zusammen mit ihren Build-IDs erkennen. Uchecker erhält die neuesten BuildIDs von KC-Ressourcen. Es übernimmt dann einen laufenden Prozess, indem es über /proc/ iteriert und ruft eine verknüpfte Freigabebibliothek von /proc/<pid>/maps ab . An diesem Punkt fragt Uchecker, ob die gemeinsam genutzte Bibliothek nicht ersetzt oder gelöscht wurde. Abhängig von der Antwort analysiert die Software ELF entweder aus dem Dateisystem oder aus dem zugeordneten Speicher. Dann sammelt Uchecker die BuildID aus .note.gnu.build-id .

Mit UChecker veraltete gemeinsam genutzte Bibliotheken im Speicher erkennen

Es ist keine Installation erforderlich! Führen Sie einfach das Uchecker-Skript aus, um die ungepatchten Bibliotheken auf Ihrem Linux-Server zu finden:

# curl -s -L https://kernelcare.com/checker | python

Der obige Befehl durchsucht Ihre Linux-Serversysteme nach veralteten gemeinsam genutzten Bibliotheken, die mit python verknüpft sind verarbeitet und in der Standardausgabe auflistet.

Sie können diese ungepatchten Bibliotheken dann mit dem Standard-Paketmanager Ihres Systems aktualisieren.

Sehen Sie sich die visuelle Demonstration der Funktionsweise von Uchecker im folgenden Video an:

Schlussfolgerung

Mit Uchecker können Sie Ihre FOSS-Bibliotheken gepatcht und auf dem neuesten Stand halten. Sie können den üblichen Ärger vermeiden, Server neu starten zu müssen, da Sie nicht wissen, welche Prozesse neu gestartet werden müssen. Dies ist unter anderem für OpenSSL- und GNU C (glibc)-Bibliotheken relevant. Mit Technologien wie KernelCare+ ist es jetzt sogar möglich, zusätzlich zu denen im Linux-Kernel einen Live-Patch von Schwachstellen in wichtigen User-Space-Bibliotheken durchzuführen. Sie können Anwendungen aktualisieren, ohne ihren Betriebszustand zu beeinträchtigen. Es sind keine Neustarts oder Neustarts erforderlich.


Linux
  1. Strippen von gemeinsam genutzten Linux-Bibliotheken

  2. Sperrmechanismen für Shared-Memory-Konsistenz

  3. Speicherverwaltung mit struct epoll_event

  4. Gemeinsam genutzten Posix-Speicher entfernen, wenn er nicht verwendet wird?

  5. Gemeinsamer Linux-Speicher:shmget() vs. mmap()?

So listen Sie gemeinsam genutzte Bibliotheken auf, die von ausführbaren Dateien in Linux verwendet werden

ipcs-Befehlsbeispiele unter Linux

Empfehlung für die Kommunikation zwischen Prozessen

So verwenden Sie Shared Memory mit Linux in C

Fehler beim Laden gemeinsam genutzter Bibliotheken:libncurses.so.5:

rkhunter:Verdächtige Shared-Memory-Segmente