Sicherheit von debsums
Sicherheit von debsums
debsums kann ja bekannterweise die MD5 Hashes der installierten Dateien mit denen aus /var/lib/dpkg/info/*.md5sums vergleichen.
Die Sicherheit, dass die Hashes stimmen habe ich dadurch, dass die Release Datei am Mirror signiert ist. Wenn die Signatur passt, sollte auch der Hash von der Packages datei passen, dort sollte der Hash des .deb passen und somit auch die md5sums im .deb.
Allerdings könnte ein Rootkit ja durchaus die md5sums in /var/lib/dpkg/info verändern und so einfach den eigenen Hash dort hinschreiben. Debsums überprüft also nicht ob das installierte deb auch mit dem übereinstimmt, welches am mirror liegt.
Mal davon abgesehen, dass es tools wie tripwire gibt: Kann man die Integrität eines Systems irgendwie besser testen als mit debsums alleine? Ein Anfang wäre ja zB sicherzustellen, dass die md5sums files nicht verändert wurden.
Die Sicherheit, dass die Hashes stimmen habe ich dadurch, dass die Release Datei am Mirror signiert ist. Wenn die Signatur passt, sollte auch der Hash von der Packages datei passen, dort sollte der Hash des .deb passen und somit auch die md5sums im .deb.
Allerdings könnte ein Rootkit ja durchaus die md5sums in /var/lib/dpkg/info verändern und so einfach den eigenen Hash dort hinschreiben. Debsums überprüft also nicht ob das installierte deb auch mit dem übereinstimmt, welches am mirror liegt.
Mal davon abgesehen, dass es tools wie tripwire gibt: Kann man die Integrität eines Systems irgendwie besser testen als mit debsums alleine? Ein Anfang wäre ja zB sicherzustellen, dass die md5sums files nicht verändert wurden.
Re: Sicherheit von debsums
Wie im Debian Wiki beschrieben debsums von einem Live-System (oder einem anderen bekanntermaßen (hoffentlich wirklich) nicht komprimierten System) aus starten?
Re: Sicherheit von debsums
Ok sehe ich das richtig, dass damit alle .debs vom mirror erneut heruntergeladen werden?
Bzw die Wikiseite erscheint mir jetzt so, als wollten sie sagen man solle sowieso besser dpkg --verify verwenden? Weil darunter ja steht "older dpkg versions"
Bzw die Wikiseite erscheint mir jetzt so, als wollten sie sagen man solle sowieso besser dpkg --verify verwenden? Weil darunter ja steht "older dpkg versions"
Re: Sicherheit von debsums
Aber müssten nicht über den folgenden Befehl die Werte mit dem Repository übereinstimmen? Läd man damit nicht im Prinzip die gewünschten Werte herunter?reox hat geschrieben:Ok sehe ich das richtig, dass damit alle .debs vom mirror erneut heruntergeladen werden?
Code: Alles auswählen
apt-get update
Re: Sicherheit von debsums
Ja.uname hat geschrieben:12.12.2018 11:04:00Aber müssten nicht über den folgenden Befehl die Werte mit dem Repository übereinstimmen?...
Wenn sich aber ein Rootkit auf deinem Rechner eingenistet hat, könnte sich das natürlich immer in die Kommunikation zwischen deinem Rechner und dem Mirror einklinken und die Prüfsummen in der übertragenen Datei manipulieren.
Wenn man wirklich ein Rootkit auf seinem Rechner befürchtet, hilft nur, ein Lifesystem idealerweise von einem Read-Only-Medium (DVD) zu booten und die Prüfsummen damit zu verifizieren.
Gegen Rootkits, die sich im UEFI verankert haben, hilft aber selbst das nicht mehr.
Re: Sicherheit von debsums
Kannst du ein Live-USB empfehlen? Vor allen eins, dass von unterschiedlichster Hardware gut bootet. Selbst mit https://grml.org habe ich mittlerweile so meine Probleme. Ich benötigte sowohl i686 als auch amd64.MSfree hat geschrieben:Wenn man wirklich ein Rootkit auf seinem Rechner befürchtet, hilft nur, ein Lifesystem idealerweise von einem Read-Only-Medium (DVD) zu booten und die Prüfsummen damit zu verifizieren.
Re: Sicherheit von debsums
apt-get update holt doch nur die Packages und Release dateien, oder nicht? Die md5sums kommen ja aus den Paketen und werden nur dort abgelegt, wenn das Paket installiert wurde.uname hat geschrieben:12.12.2018 11:04:00Aber müssten nicht über den folgenden Befehl die Werte mit dem Repository übereinstimmen? Läd man damit nicht im Prinzip die gewünschten Werte herunter?reox hat geschrieben:Ok sehe ich das richtig, dass damit alle .debs vom mirror erneut heruntergeladen werden?Code: Alles auswählen
apt-get update
dH wenn ich davon ausgehe, dass jemand die md5sum lists verändert hat, so müsste ich Release, Release.gpg, Packages und alle .debs vom Mirror holen und alles verifizieren.
ich wollte gerade grml sagen... Bisher hatte ich damit noch nie ein Problem. Es gibt ja auch Grml96. Gehts da um zu neue HW oder zu alte?uname hat geschrieben:12.12.2018 12:26:14Selbst mit https://grml.org habe ich mittlerweile so meine Probleme. Ich benötigte sowohl i686 als auch amd64.
Re: Sicherheit von debsums
Ich hab jetzt versucht mal die Anleitung vom Debian Wiki zu machen. Das funktioniert nur nicht...
Beim Schritt
bekomme ich haufenweise Fehlermeldungen
edit: Mhh ein workaround scheint dafür das hier zu sein:
ein problem dabei ist, wenn die pakete in der version die installiert sind, nicht mehr am mirror liegen. Er zeigt mir aber an, dass ich 8GB an Paketen laden soll, das kommt schon hin.
Beim Schritt
Code: Alles auswählen
APT_CONFIG=/tmp/apt.conf apt-get install $(cat /tmp/pkgs)
Code: Alles auswählen
E: Für Paket »...« existiert kein Installationskandidat.
edit: Mhh ein workaround scheint dafür das hier zu sein:
Code: Alles auswählen
APT_CONFIG=/tmp/apt.conf apt-get install $(apt list --installed | awk '{ print $1 " " $2 }' | sed 's/\/.* /=/')
Re: Sicherheit von debsums
gerade ist mir gekommen, dass da ein Forenmitglied einmal ein Programm geschrieben hat:
viewtopic.php?f=37&t=151947
Der Link im Thread funktioniert nicht mehr, aber vorhanden scheint trotzdem noch alles zu sein und zwar brandaktuell hier:
http://www.dw-itsecurity.de/tools-hacks ... rity-check
viewtopic.php?f=37&t=151947
Der Link im Thread funktioniert nicht mehr, aber vorhanden scheint trotzdem noch alles zu sein und zwar brandaktuell hier:
http://www.dw-itsecurity.de/tools-hacks ... rity-check
Re: Sicherheit von debsums
Hahaha ja, das ist ja super aktuell! Das schaut sehr brauchbar aus, wird ausprobiert!smutbert hat geschrieben:13.12.2018 21:53:34Der Link im Thread funktioniert nicht mehr, aber vorhanden scheint trotzdem noch alles zu sein und zwar brandaktuell hier:
http://www.dw-itsecurity.de/tools-hacks ... rity-check
Ich hab gestern dann noch eine verifikation gestartet, basierend auf den heruntergeladenen debs und das hat gut funktioniert. Eine handvoll findet er halt nimmer am Mirror - wobei ich mir da auch die Frage stelle wie die aufs System gekommen sind. Ich vermute das sind zT so alte Sachen die nicht mehr in den neuen dists drin sind.
Re: Sicherheit von debsums
Vielleicht selbst erstelle Dateien? Magst du die Liste oder Auszüge hier posten?reox hat geschrieben:Eine handvoll findet er halt nimmer am Mirror
Re: Sicherheit von debsums
Ich hab mal alles rausgeworfen wo ich eh weiß warum es da drin steht und davon mal ein Auszug:uname hat geschrieben:17.12.2018 12:40:11Vielleicht selbst erstelle Dateien? Magst du die Liste oder Auszüge hier posten?reox hat geschrieben:Eine handvoll findet er halt nimmer am Mirror
Code: Alles auswählen
debsums: no deb available for btrfs-tools
debsums: no deb available for clang-4.0
debsums: no deb available for fonts-droid
debsums: no deb available for fonts-dseg-otf
debsums: no deb available for fonts-dseg-ttf
debsums: no deb available for gir1.2-mediaart-1.0:amd64
debsums: no deb available for gksu
debsums: no deb available for gstreamer0.10-plugins-base:amd64
debsums: no deb available for host
Was mich eher interessiert ist eigentlich das debsums2. Leider klappt es nicht:
Code: Alles auswählen
$ python debsums2.py --directory / --online --writedb
Entries read from /var/lib/dpkg/info: 535140
Total files found in / 661147
Number of new files in package / 661147
Traceback (most recent call last):
File "debsums2.py", line 893, in <module>
main()
File "debsums2.py", line 824, in main
fetch_md5sum_online([fileactive['uri']], connection))
File "debsums2.py", line 236, in fetch_md5sum_online
with tarfile.open(mode="r:gz", fileobj=StringIO(response.data)) as tar:
File "/usr/lib/python2.7/tarfile.py", line 1693, in open
return func(name, filemode, fileobj, **kwargs)
File "/usr/lib/python2.7/tarfile.py", line 1751, in gzopen
raise ReadError("not a gzip file")
tarfile.ReadError: not a gzip file
Code: Alles auswählen
$ python debsums2.py --directory / --online --writedb
Entries read from /var/lib/dpkg/info: 535140
Total files found in / 661147
Number of new files in package / 661147
Traceback (most recent call last):
File "debsums2.py", line 893, in <module>
main()
File "debsums2.py", line 824, in main
fetch_md5sum_online([fileactive['uri']], connection))
File "debsums2.py", line 236, in fetch_md5sum_online
with tarfile.open(mode="r:*", fileobj=StringIO(response.data)) as tar:
File "/usr/lib/python2.7/tarfile.py", line 1680, in open
raise ReadError("file could not be opened successfully")
tarfile.ReadError: file could not be opened successfully
Vllt braucht das Tool mal ein Update?
Was ich recht spannend finde, ist das eine komplette Implementierung für MD5 dabei ist. Nur python implementierungen von Hashes sind leider ur langsam. Da machts mehr sinn die aus Hashlib zu verwenden.
edit: ah, ich sehe den Fehler. Python2 kann kein lzma bei tar. Nur debsums2 scheint nicht gerade für python3 gebaut zu sein... Und die md5 implementierung ist teil der --insane option. Also wenn die Paranoia zuschlägt
Re: Sicherheit von debsums
also debsums2 rennt mal bei mir. Ich hab die veränderte Version hier veröffentlicht: https://github.com/reox/debsums2/
Mir ist da jetzt noch ein Problem aufgefallen, wenn der Paranoia Level hoch ist. debsums2 überprüft vor dem Download nicht, ob das Repository überhaupt signiert ist. Zudem kann bei dem partiellen Download auch nicht der Hash vom .deb selber überprüft werden, da nur ein Teil davon heruntergeladen wird. Theoretisch könnte ein Angreifer mir beim Download einfach das falsche Paket unterjubeln.
Somit muss man zwangsläufig immer das gesamte Paket laden um den Hash vom .deb zu checken. Ein Workaround dazu wäre, per debmirror einen lokalen Mirror zu erzeugen. Dabei werden alle Signaturen überprüft. Dann kann man per debsums2 checken.
Allerdings muss man zum testen der configfiles unter /etc sowieso den --online-full check machen, da die md5s von configfiles nicht in der md5sums datei stehen
Mir ist da jetzt noch ein Problem aufgefallen, wenn der Paranoia Level hoch ist. debsums2 überprüft vor dem Download nicht, ob das Repository überhaupt signiert ist. Zudem kann bei dem partiellen Download auch nicht der Hash vom .deb selber überprüft werden, da nur ein Teil davon heruntergeladen wird. Theoretisch könnte ein Angreifer mir beim Download einfach das falsche Paket unterjubeln.
Somit muss man zwangsläufig immer das gesamte Paket laden um den Hash vom .deb zu checken. Ein Workaround dazu wäre, per debmirror einen lokalen Mirror zu erzeugen. Dabei werden alle Signaturen überprüft. Dann kann man per debsums2 checken.
Allerdings muss man zum testen der configfiles unter /etc sowieso den --online-full check machen, da die md5s von configfiles nicht in der md5sums datei stehen