Gelöschte Bibliotheken nach Systemupdates finden

Aus AdminWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Vorwort

Es kommt ja öfters vor, dass bei einem Update nur einige System-Bibliotheken geupdatet werden und man das System deswegen ja nicht unbedingt neu starten muss. Allerdings werden von gestarteten Programmen immer noch die Bibliotheken verwendet, die vor dem Update aktuell waren, solange diese Programme nicht neu gestartet werden. Dies kann dazu führen, dass die Systeme, obwohl man sie aktuell hält, dennoch verwundbar sind.

benötigte Tools

es werden folgende Tools benötigt:

  • lsof - bei Debian im Paket lsof enthalten
  • grep - bei Debian im Paket grep enthalten

Durchführung

  • um alle gelöschten oder veränderten und dennoch verwendeten Bilbiotheken heraus zu finden, führt man nach dem Update auf seinen Systemen folgendes Kommando aus:
server:~# lsof -n | egrep -i "(del|node)"
  • eine Ausgabe könnte dann in etwa so aussehen:
server:~# lsof -n | egrep -i "(del|node)"
COMMAND   PID  USER       FD  TYPE DEVICE NODE     NAME
nrpe      1111 nagios     mem REG  9,1    22637092 /usr/lib/libssl.so.0.9.8   (path inode=22638819)
dbus-daem 2222 messagebus mem REG  9,1    22635753 /usr/lib/libexpat.so.1.5.2 (path inode=22638405)
apache2   3333 www-data   mem REG  9,1    22635753 /usr/lib/libexpat.so.1.5.2 (path inode=22638405)
  • dabei wird über das del nach gelöschten Dateien und Dateien die zwar noch im Speicher gemapped sind, aber auf der Festplatte nicht mehr existieren, gesucht
  • node sucht nach der Ausgabe path inode=, also nach inodes die sich verändert haben
  • bei der Beispiel Ausgabe sieht man das die Programme nrpe, dbus und apache2 also einmal neugestartet werden müssten, da diese alte Versionen der Bibliotheken verwenden

Tipp

  • das unter Debian verfügbare Tool checkrestart, welches im Paket debian-goodies enthalten ist, übernimmt diese Aufgabe und erstellt ein Ausgabe mit den neuzustartenen Programmen