pietinger Moderator
Joined: 17 Oct 2006 Posts: 5187 Location: Bavaria
|
Posted: Sun Nov 01, 2020 2:38 am Post subject: C4 IMA und Portage (update mit emerge -u @world) |
|
|
(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies Post Nr. 2)
Hinweis: Alle Beschreibungen der C-Reihe wurden getestet mit einem signierten, monolithischen, (stub-) Kernel (*) der Version 5.9.0, 5.9.2 und 5.9.3, der per SecureBoot von UEFI direkt geladen wird. (* das bedeutet B.2 und B.3 wurden komplett vorher umgesetzt)
C.4 IMA und Portage (update mit emerge -u @world)
Vielleicht hast Du schon ein wenig ausprobiert und irgendein bash-script (welches root gehört) geändert. Danach konntest Du es nicht mehr ausführen. Genauso wie wir es erwarten. Danach hast Du "evmctl --ima_hash MYBASHSCRIPT.SH" probiert und festgestellt, dass Du es danach wieder starten konntest. Jetzt fragst Du, wofür wir den zweiten Kernel benötigen, wenn wir auch im "Appraise"-Modus unsere Programme wieder bereinigen können. Nun - es kommt drauf an.
Ich machte soeben einen "emerge --sync" und prüfte dann mittels "emerge -uNDvp @world" welche Pakete upgedatet werden sollen. Dabei war auch das Paket "eix". Dieses Update habe ich ohne Sorge von portage laufen lassen. Die Ausführung von "eix" war danach aber natürlich erstmal nicht möglich. Der Kernel gibt uns im Log diese Zeile:
Code: | kernel: [ 7271.296716] audit: type=1800 audit(1604194517.060:31): pid=13927 uid=0 auid=1000 ses=2 op=appraise_data cause=missing-hash comm="bash" name="/usr/bin/eix" dev="sda3" ino=16911922 res=0 errno=0 |
Nachdem ich eix (und den libraries) wieder einen Hash verpasst habe, konnte ich es wieder starten. Können wir also alle Updates von Portage im "Appraise"-Modus durchführen ?
Nein !
Spätestens wenn Portage Libraries erneuert, die es selbst benötigt, könnte dies dazu führen, dass wir mitten im emerge stecken bleiben. Ich konnte es leider noch nicht testen, vertraue aber auf die Aussage im Gentoo Wiki zu IMA, die das behauptet. Getestet: Neu-Installationen und Updates, die eigene Shell-Skripte mitbringen und ausführen wollen, funktionieren nur im "measure"-Modus. Ein Kernel-Update mittels "make" benötigt ebenfalls den "measure"-Modus. Das gilt auch wenn Du nur die Konfig des bestehenden Kernel ändern willst [1]. Deshalb haben wir unseren zweiten Kernel. Die Vorgehensweise ist mehr als simpel:
1. Boote den UNLOCKED Kernel.
2. Führe Deinen "emerge -uNDv @world" und/oder führe Deinen "make" aus.
3. Führe dieses Kommando aus und warte (es kann wirklich sehr lange laufen)
Code: | # find / -fstype ext4 -type f -uid 0 -executable -mtime 0 -exec evmctl ima_hash '{}' \; |
Wie Du siehst ist es der gleiche Befehl wie in C.3, lediglich ergänzt um "-mtime 0". Dieser sorgt dafür, nur Files zu finden, die in den letzten 24 Stunden geändert wurden (was ja der Fall ist). Falls Du nach 3 Minuten ungeduldig wirst, führe den find mit "-D all" aus. Also: "find -D all / -fstype [...]" ).
Edit 2021-10-04: Den letzten Satz habe ich damals deswegen geschrieben, weil die damalige Version vom "evmctl" keine Bildschirmausgaben machte und man nicht sah ob es noch läuft; das ist mit der heutigen Version anders; vergiß also den letzten Satz.
4. Reboot zurück zu Deinem "Every-Day"-Kernel.
[1] (Es würde funktionieren, wenn Du nach dem "make menuconfig" (der abbricht), das Kommando "find /usr/src -fstype ..." ausführst und danach noch einmal "make menuconfig" startest. Das gleiche Spiel für den dann folgenden "make".)
Sonstiges:
Du kannst Dir die Attribute anzeigen lassen mit:
Code: | # getfattr -m . -d /usr/bin/eix
getfattr: Entferne führenden '/' von absoluten Pfadnamen
# file: usr/bin/eix
security.ima=0sAXI+WjhMy5H0NKPCGFuI078MUUvA |
Die Hashes aller Programme findest Du in:
Code: | # cat /sys/kernel/security/integrity/ima/ascii_runtime_measurements | more
10 1d8d532d463c9f8c205d0df7787669a85f93e260 ima-ng sha1:0000000000000000000000000000000000000000 boot_aggregate
10 e0d729d01ebe0c8629a631acdbf172b7f97d2a8c ima-ng sha1:54b44b144bf922bb698188c01947f46fa4ff6ab0 /lib/rc/bin/eend
10 d3f408eb36bd713b07993fd526cf1768786a659a ima-ng sha1:d9978120f9abc5354a94a30b2a5c383f48a54167 /bin/chgrp
10 226a2931071ab563fdd7a3cc6716a6e8483eac93 ima-ng sha1:92a828569a50d6b26a6bed0fe54569ebdb2bdc3c /lib64/ld-2.31.so
10 996d60a70e375c366d38cfea7d7fbf764a8fe499 ima-ng sha1:9eff758104fd8cc9d6cce858a01ce3fc2584ec50 /lib64/librc.so.1
10 db87a43fafbfeb8724669cb0393e8b4e40b8a861 ima-ng sha1:96743914df6c6ecb3299fe1d4a163390bea5f4ff /lib64/libeinfo.so.1
[...] |
Have Fun ! |
|