AppArmor killt Chrome

29/03/2010 - 08:22 von Hauke Laging | Report spam
Moin,

ich komme mit der Anpassung von AppArmor an Chrome nicht klar. Chrome macht
da irgendwas, und ich kriege es nicht hin, ihm das zu erlauben.

Das Log sagt:
type=APPARMOR_DENIED msg=audit(1269840754.862:1515): operation="ptrace"
info="different namespaces" error=-1 pid883 parent876
profile="/opt/google/chrome/chrome///opt/google/chrome/chrome-sandbox"
tracer883 tracee881

Ich habe mal gelesen, dass Prozesse unter Apparmors Kontrolle nur solche
Prozesse tracen könnten, für die sie ein eigenes Profil haben. Leider finde
ich das nicht wieder.

Die Konfogurationsdatei sieht so aus:

#include <tunables/global>

/opt/google/chrome/chrome {
#include <abstractions/chrome>

capability chown,
capability dac_override,
capability fsetid,
capability setgid,
capability setuid,
capability sys_admin,
capability sys_chroot,
capability sys_ptrace,

/opt/google/chrome/chrome-sandbox cx,
profile /opt/google/chrome/chrome-sandbox {

#include <abstractions/chrome>

capability chown,
capability dac_override,
capability fsetid,
capability setgid,
capability setuid,
capability sys_admin,
capability sys_chroot,
capability sys_ptrace,

}

}

In <abstractions/chrome> stehen die ganzen Dateirechte.


Der Ablauf ist der: Zunàchst wird ein Shellscript gestartet, das dann
/opt/google/chrome/chrome (normale Datei) startet, das wiederum
/opt/google/chrome/chrome-sandbox (SUID root) startet.


Chrome verreckt dann mit dieser Meldung:

Check failed: pid_ > 0. Did not find zygote process (using sandbox binary
/opt/google/chrome/chrome-sandbox)

Google spuckt dazu zwar ein bisschen was aus, aber das ergibt IMHO wenig
Sinn. Ich habe Chrome gerade neu runtergeladen, Build Date 24 Màrz.

Auch meine Recherche zu Apparmor und SUID hat nichts Spannendes zutage
gefördert. Ich kann mir gut vorstellen, dass AppArmor das SUID aushebelt.
Aber warum, und wie stellt man das ab? Ich hatte bisher keine Idee, wie ich
mir anzeigen lassen kann, mit welcher EUID Prozesse gestartet werden. Ich
bekomme zwar die PIDs aus dem Log, aber dann sind die Prozesse schon
beendet.


CU

Hauke
http://www.hauke-laging.de/ideen/
 

Lesen sie die antworten

#1 Andreas Kohlbach
30/03/2010 - 03:01 | Warnen spam
Hauke Laging wrote on 29. March 2010:

ich komme mit der Anpassung von AppArmor an Chrome nicht klar. Chrome macht
da irgendwas, und ich kriege es nicht hin, ihm das zu erlauben.



Wow. Gerade wollte ich Ähnliches in der Browser-Gruppe auch schreiben. :-)
Ich nutze aber Chromium, was aber wohl keinen Unterschied beim Problem
macht.

Das Log sagt:
type=APPARMOR_DENIED msg=audit(1269840754.862:1515): operation="ptrace"
info="different namespaces" error=-1 pid883 parent876
profile="/opt/google/chrome/chrome///opt/google/chrome/chrome-sandbox"
tracer883 tracee881

Ich habe mal gelesen, dass Prozesse unter Apparmors Kontrolle nur solche
Prozesse tracen könnten, für die sie ein eigenes Profil haben. Leider finde
ich das nicht wieder.



Ich finde in einem Wiki:

| px dieses (Unter-) Programm hat ein eigens AppArmor Profil
| ux dieses (Unter-) Programm darf ohne AppArmor Profil ausgeführt werden

[...]

/opt/google/chrome/chrome-sandbox cx,



Diese Datei habe ich gar nicht (mehr?).

Der Ablauf ist der: Zunàchst wird ein Shellscript gestartet, das dann
/opt/google/chrome/chrome (normale Datei) startet, das wiederum
/opt/google/chrome/chrome-sandbox (SUID root) startet.


Chrome verreckt dann mit dieser Meldung:

Check failed: pid_ > 0. Did not find zygote process (using sandbox binary
/opt/google/chrome/chrome-sandbox)



Die habe ich auch. Teste bitte mal, Chromium aus dem Enforcement raus zu
nehmen. Mein Problem, dass (ist im Complaint-Mode) genau dieser Fehler
immer noch kommt. Was mich etwas stutzig macht.

Google spuckt dazu zwar ein bisschen was aus, aber das ergibt IMHO wenig
Sinn.



Ich habe dazu nur einen Chat gefunden, der erwàhnt, dass der SUID Prozess
wohl eine andere PID oder so bekam.

Ich habe den Rechner eben auch neu gebootet. Das Problem bleibt. Auch
wenn er nur im Complaint-Mode ist.

Ich habe Chrome gerade neu runtergeladen, Build Date 24 Màrz.



Ich auch. Vorgestern installiert, gestern kam noch ein Update hinterher.

Auch meine Recherche zu Apparmor und SUID hat nichts Spannendes zutage
gefördert. Ich kann mir gut vorstellen, dass AppArmor das SUID aushebelt.
Aber warum, und wie stellt man das ab? Ich hatte bisher keine Idee, wie ich
mir anzeigen lassen kann, mit welcher EUID Prozesse gestartet werden. Ich
bekomme zwar die PIDs aus dem Log, aber dann sind die Prozesse schon
beendet.



Vielleicht ein Bug? Da ich das Problem nun auch habe?

Und außer uns wohl niemand Chromium benutzt? ;-)

Btw. Chromium lief genau einmal. Ich hatte ihn dann sauber beendet, dann
aa-genprof geladen. Er startete nicht mehr. Ich hatte dann gesehen, dass
(warum?) er in den Enforcement-Mode gestellt wurde. Hatte ihn dann in den
Complaint-Mode gestellt, was aber immer noch die oben erwàhnte Meldung
bringt. Und wie du sagst, hilft Google nicht wirklich.
Andreas
Linux: The choice of a GNU generation.

Ähnliche fragen