Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
D10 AppArmor KDE Profile
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Wed Dec 02, 2020 1:32 am    Post subject: D10 AppArmor KDE Profile Reply with quote

(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies Post Nr. 3)


EDIT 2021-12-12: Mit der neuen Version der kde-frameworks hat sich wohl einiges geändert. Bitte lies den ganzen Thread.


D.10 AppArmor KDE Profile

Ich sagte ja schon in D.9 "Sicherheit bedeutet auch Einschränkung". Diese Einschränkung gilt für Mensch wie für Anwendung gleichermaßen. Wenn Du Programme nutzt, die mit dem großen Internet sprechen, dann haben diese nun halt mal keinen Zugriff auf Dein /home. Desweiteren dürfen sie regelmäßig auch keine anderen Programme starten oder Links setzen um Restriktionen zu umgehen. Nun gibt es Anwendungen, die auf Deine Daten zugreifen wollen (und müssen damit sie überhaupt arbeiten können) und auch ins Internet wollen. Hier müssen wir uns entscheiden. Glücklicherweise können wir aber zweigleisig fahren.

Ein Beispiel hierfür ist das Programm "gwenview". Es ist fähig Bilder nach Facebook und Co. zu übertragen. Ich nutze das nicht, deswegen habe ich das Profil ONLYLOCAL verwendet. Dies sorgt nun dafür, dass bei jedem Start von gwenview eine AUDIT-Meldung im Systemlog landet, die besagt dass "genview" keinen NETLINK aufbauen darf (keine Sorge, sonst geht alles). (Wenn Dich das optisch stört, dann ändere ONLYLOCAL so ab, dass dies nicht protokolliert wird: Indem Du das "audit" vor den "deny"s löscht).

Wenn Du allerdings mit gwenview ins Internet willst und deshalb ONLYNETWORK statt ONLYLOCAL inkludierst, solltest Du eine Zeile löschen. Diese erlaubt lesenden Zugriff auf alles. Warum ist diese im Profil ? Weil gwenview leider sehr neugierig ist und immer gleich mal das ganze Verzeichnis auslesen möchte. In der lokalen Version ist dies sicherheitsunkritisch. Mit Netzwerk-Zugang MUSS das aber raus, so dass gwenview nur noch Bild-Dateien bearbeiten kann ... was dann aber wieder zu vielen (harmlosen) AUDIT-Meldungen führt (bääh kann das Verzeichnis nicht lesen)(keine Sorge, sonst geht alles).

Tja, einen Tod muss man sterben ... dafür kann ich Dir versichern, dass gwenview - falls es wild läuft - allerhöchstens alle Deine Bild-Dateien löschen oder verschlüsseln kann, aber nicht an Deine Buchhaltungs-Daten rankommt. Wenn Du jetzt sagst, Du willst mit gwenview nur die Bilder ansehen, aber gar nichts speichern, dann modifiziere den Zugriff von "rw" auf "r". Jetzt könnte Gwenview nichts mehr schreiben und sollte - selbst mit Internet-Zugang - sehr sicher sein (schlimmstenfalls könnte es nur noch Deine Bild-Dateien übertragen).

Aber auch Du musst Dich einschränken. Alle Programme mit Internet-Zugang können nur auf das Verzechnis /home/*/Downloads zugreifen. Wenn Du mit Deinem Browser versuchst Deinen Download woanders zu speichern wird dies schief gehen (keine Sorge der Browser stürzt nicht ab; also versuche es ruhig). Außerdem lasse ich meinen Browser einfach nicht alles mögliche starten. Wozu auch ? Brauche ich das wirklich ? Solange ich das PDF runterladen kann und mir dann lokal ansehen kann. Hauptsache die Videos auf Youtube werden ordentlich angezeigt. (Für den konqueror habe ich sogar okular integriert; nur beim falkon hatte ich keine Lust mehr).

Ein letztes Wort ... zu Java. Habe ich nicht. Nutze ich nicht. Will ich nicht. Und kann mein Browser auch nicht. Wenn Du Deinen Browser mit Java haben willst, solltest Du ernsthaft an eine eigene virtuelle Maschine denken. Ich will jetzt nicht schlecht über die EP reden, aber nach meinem Verständnis ist das AA-Profil dort nur ein Feigenblatt ... der Browser hat Zugriff auf alles und kann jedes Programm starten ... das bedeutet, Du bist nur so geschützt wie Linux es mit DAC bietet. Dann kann man so ein Profil auch besser gleich weglassen ... Sorry - ich mag es einfach nicht, wenn man Leuten eine Sicherheit vorgaukelt, die einfach nicht gegeben ist (deswegen bin ich auch so kritisch mit FDE).

Ich werde für jede Anwendung die Besonderheiten erläutern. Los gehts mit den ...


Anwendungen ohne Netzwerk-Zugriff

  • Profile: /etc/apparmor.d/usr.bin.mupdf-gl
  • Beschreibung/Bemerkung: Bei mir ist der mupdf ein Link auf mupdf-gl. Überprüfe das bei Dir. Dies ist die PARANOID-Version, die nur lesenden Zugriff auf .pdf- oder .PDF-Dateien erlaubt. Du kannst dies natürlich bei Bedarf ändern. Falls der mupdf auch noch andere Dateiformate lesen kann, kannst Du dies sicher auch ganz einfach erweitern.

Code:
# version 1

abi <kernel>,

include <local/VARIABLES>
@{SFX}=pdf PDF

profile mupdf-gl /usr/bin/mupdf-gl
{
include <local/ONLYLOCAL>
include <local/ISAKDE>

@{MYDATADIRS}/**.@{SFX}  r,
}


  • Profile: /etc/apparmor.d/usr.bin.okular
  • Beschreibung/Bemerkung: Dies ist die lokale Version. Es geht also alles bis auf Netzwerk-Funktionen. Was die Dateiformate betrifft gilt das gleich wie für den mupdf. Bitte verwechsle dieses Profil nicht mit dem beim konqueror. Der lädt okular mit SEINEM Profil, so dass dort okular auf keine lokalen Daten zugreifen kann (außer /home/*/Download). Okular schmeisst ab und zu harmlose AUDITs ins log.

Code:
# version 1

abi <kernel>,

include <local/VARIABLES>
@{SFX}=pdf PDF

profile okular /usr/bin/okular
{
include <local/ONLYLOCAL>
include <local/ISAKDE>
# include <local/USECUPS>

owner /home/*/.local/share/okular/**  rw,
owner /home/*/.local/share/okular/bookmarks* l -> /home/*/.local/share/okular/#[0-9]*,

@{MYDATADIRS}/**.@{SFX}  rw,
}


  • Profile: /etc/apparmor.d/usr.bin.gwenview
  • Beschreibung/Bemerkung: Siehe Einleitung. Die Dateiformate sind auch nicht vollständig. Ja, man könnte in dieser lokalen Version auch das erlauben: @{MYDATADIRS}/** rw, ... aber ich bin halt ... vorsichtig.

Code:
# version 1

abi <kernel>,

include <local/VARIABLES>
@{SFX}=jpg JPG Jpg jpeg JPEG pic PIC Pic png PNG Png gif GIF Gif bmp BMP Bmp tif TIF tiff TIFF

profile gwenview /usr/bin/gwenview
{
include <local/ONLYLOCAL>
include <local/ISAKDE>
# include <local/USECUPS>

owner /home/*/.local/share/gwenview/**  rw,

@{MYDATADIRS}/**.@{SFX}  rw,

# delete this line if you switch to ONLYNETWORK
# (then you will have many entries in your syslog; dont care - gwenview still works)
/**  r,
}



Anwendungen mit Netzwerk-Zugriff

  • Profile: /etc/apparmor.d/usr.bin.wesnoth
  • Beschreibung/Bemerkung: Das Spiel Wesnoth

Code:
# version 1

abi <kernel>,

profile wesnoth /usr/bin/wesnoth
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>

owner /home/*/.local/share/wesnoth/**  rw,
/var/cache/fontconfig/  r,
/usr/share/wesnoth/fonts/*  rw,
}



Anwendungen mit Netzwerk-Zugriff die mit der QTWebEngine kommunizieren

  • Profile: /etc/apparmor.d/usr.bin.marble
  • Beschreibung/Bemerkung: Marble

Code:
# version 1

abi <kernel>,

profile marble /usr/bin/marble
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
# include <local/USECUPS>

/usr/lib64/qt5/libexec/QtWebEngineProcess  ix,
/** k,
/dev/shm/.org.chromium.*  rwk,
/proc/*/oom_score_adj  rw,

ptrace (read, readby) peer=marble,

owner /home/*/.local/share/marble/**  rw,
owner /home/**/.directory  r,
}


  • Profile: /etc/apparmor.d/usr.bin.konqueror
  • Beschreibung/Bemerkung: Der Webbrowser Konqueror. Mit diesem Profil kann der konqueror nur okular starten um PDFs direkt anzeigen zu lassen. Sonstiges lasse ich ihn nicht starten. Veraltet: Wenn ich mit einem Rechts-Klick auf einen Link klicke, geht zwar alles; dies erzeugt aber einen AUDIT dass er /usr/bin/ldd nicht starten konnte. Wenn Du Datei öffnen wählst, gibts auch ein paar AUDITs - keine Sorge Du kommst problemlos in Downloads rein.

Code:
# version 1

abi <kernel>,

profile konqueror /usr/bin/konqueror
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
# include <local/USECUPS>
# include <local/USEWEBCAM>

/usr/lib64/qt5/libexec/QtWebEngineProcess  ix,
/usr/bin/keditbookmarks  ix,

/dev/  r,
/dev/shm/.org.chromium.*  rwk,
/proc/*/oom_score_adj  rw,

ptrace (read, readby) peer=konqueror,

owner /home/*/.local/share/konqueror/**  rwk,
owner /home/*/.local/share/konqueror/* l -> /home/*/.local/share/konqueror/#[0-9]*,
owner /home/*/.local/share/konqueror/autosave/* l -> /home/*/.local/share/konqueror/autosave/#[0-9]*,
owner /home/*/.pki/**  wrk,

### okular needs

/usr/bin/okular  ix,
owner /home/*/.local/share/okular/**  rw,
owner /home/*/.local/share/okular/bookmarks* l -> /home/*/.local/share/okular/#[0-9]*,
}



  • Profile: /etc/apparmor.d/usr.bin.falkon
  • Beschreibung/Bemerkung: Der Webbrowser Falkon. Mit diesem Profil kannst Du keine externen Programme starten - der falkon auch nicht. "Verknüpfung senden" geht auch nicht (hab ich noch nie benutzt). Wenn Du Datei öffnen wählst, gibts auch ein paar AUDITs - keine Sorge Du kommst problemlos in Downloads rein.

Code:
# version 1

abi <kernel>,

profile falkon /usr/bin/falkon
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
# include <local/USECUPS>
# include <local/USEWEBCAM>

/usr/lib64/qt5/libexec/QtWebEngineProcess  ix,
# needed for private mode
/usr/bin/falkon  ix,

/dev/  r,
/dev/shm/.org.chromium.*  rwk,
/proc/*/oom_score_adj  rw,

ptrace (read, readby) peer=falkon,

owner /home/*/.config/falkon/profiles/*/* l -> /home/*/.config/falkon/profiles/*/#[0-9]*,
owner /home/*/.pki/**  wrk,
}



Du bist herzlich eingeladen diesen Thread mit Deinen Profilen zu erweitern.

.


Last edited by pietinger on Tue Dec 14, 2021 11:30 am; edited 7 times in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Wed Dec 02, 2020 10:18 am    Post subject: Reply with quote

Hab ich doch glatt den VLC vergessen ...

Anwendungen ohne Netzwerk-Zugriff

  • Profile: /etc/apparmor.d/usr.bin.vlc
  • Beschreibung/Bemerkung: Dies ist ebenfalls eine PARANOID-Version. Wenn Dich einige AUDITs im Log ärgern, gib ihm kompletten Lesezugriff. (Falls der VLC auch noch andere Dateiformate lesen kann, kannst Du dies sicher auch ganz einfach erweitern.)

Code:
# version 1

abi <kernel>,

include <local/VARIABLES>
@{SFX}=mp4 mkv webm avi mp3 wma wav

profile vlc /usr/bin/vlc
{
include <local/ONLYLOCAL>
include <local/ISAKDE>
include <local/USESOUND>
include <local/USECD>

owner /home/*/.local/share/vlc/**  rw,
owner /home/*/.config/vlc/* l -> /home/*/.config/vlc/#[0-9]*,

owner /home/*/vlcsnap*.png  rw,

@{MYDATADIRS}/**.@{SFX}  r,
}




Edir 2021-02-04: Es ist zwar schon zwei Wochen alt; ich kam aber nicht eher dazu hier mal zu schreiben warum es so wichtig ist auch lokale Programme abzusichern - gerade der VLC ist schon in der Vergangenheit immer wieder mal mit sicherheitskritischen Lücken aufgefallen. Das war gerade wieder einmal:
https://www.videolan.org/security/sb-vlc3012.html

Edit 2022-11-30: Und schon wieder: https://www.heise.de/news/Kritische-Sicherheitsluecke-in-VLC-Media-Player-7362049.html

JEDE Verarbeitung externer Daten ist grundsätzlich gefährlich ! Gerade heutige, moderne Formate für Videos ...

.


Last edited by pietinger on Wed Nov 30, 2022 3:39 pm; edited 3 times in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Wed Dec 09, 2020 4:09 am    Post subject: Kontact aus KDE-PIM Reply with quote

Anwendungen aus der KDE-PIM-Suite


Edit 2021-12-12: Folgende Warnung ist veraltet; siehe übernächsten Post.

Falls Du bereits KMail, Akregator oder Kontact nutzt, muss ich Dir gleich mal eine große Warnung mitgeben:

Selbst mit dem Profil für den Konqueror kann es sein, dass Du ohne Schutz durch AppArmor im Internet surfst !

Warum ?


Weil KDE ein Biest ist. Das sage nicht nur ich, sondern auch Entwickler von AppArmor ... wobei ...
Quote:
But KDE and QT apps are separate beasts. [...]
In short both KDE and GNOME have made several design decisions that make it hard to impossible to properly separate individual applications within a users session.

(aus: https://gitlab.com/apparmor/apparmor/-/issues/61 )

Ich habe den Konqueror als System-Webbrowser eingestellt und nutze Kontact, weil ich da gleich alles "unter einem Dach" habe. Ich nutze dort neben der Übersicht, die Module: E-Mail, Kontakte, Kalender und Nachrichten (Aufgaben, Journale und Haftnotizen habe ich daher nur rudimentär ausprobiert). WENN ich einen Link in den Nachrichten (=akregator) anklicke startet Kontakt selbst die QTWebengine ... und da ich bisher noch kein Profil dafür habe ... natürlich ungesichert. Jetzt könnte man auf die Idee kommen jeden Link im Akregator mit "Verknüpfung in externen Browser öffnen" anklicken. Das gleiche passiert intern auch, wenn Du in einer E-Mail einen Link anklickst. Und jetzt wird es spannend:

Es kommt drauf an, ob Du VORHER schon einen konqueror gestartet hast, oder nicht.
Du willst das sicher selbst überprüfen und damit Du nicht nur auf den "aa-status" angewiesen bist, gebe ich Dir noch einen neuen Parameter für "ps" mit: "Z". Mache also:
Code:
# ps auxZ


Fall 1: Nach dem Du Dich frisch angemeldet hast, startest Du Kontact (oder kmail) und klickst dann auf einen Link in einer Mail. Mache obige Abfrage und sei entsetzt ...

Schließe den Konqueror mit STRG-Q (ich habe früher auch immer ALT-F4 gedrückt und musste mir das hart abgewöhnen).

Fall 2: Starte einen neuen Konqueror (aus der Taskleiste) und überprüfe zuerst mit "ps auxZ" ob dieser auch im Enforce-Mode läuft. Klicke dann wieder auf den Link in einer Mail. Mache erneut obige Abfrage.

Warum ist das so ?

Ziemlich viele KDE-Anwendungen starten andere Anwendungen über "xdg-open", welches seinerseits komische Sachen macht (*) und dann ENTWEDER einen bereits laufenden konqueror mit einem neuen Auftrag betraut ODER - falls keiner läuft - dann letztendlich das dem "kdeinit5" übergibt, DER jedoch DUMMERWEISE den konqueror so startet:

Code:
unconfined                      peter    24437 24.0  1.3 2840652 215692 ?      Sl   04:27   0:01 konqueror [kdeinit5] --mimetype text/html https://lwn.net/Articles/839325/rss

Warum ist das doof ? Weil AppArmor in diesem Fall nichts davon mitbekommt und diesen Prozess nicht überwacht. (* Nein, ich will da nicht ins Detail gehen.)

Lange Rede kurzer Sinn: Starte Deinen System-Browser immer BEVOR Du irgendwelche Links anklickst. (das brauchst Du auch weiterhin mit Einsatz dieses Profils für kontact).


Da ich aber auch geschützt sein will, wenn ich im akregator die Links so anklicke - und auch sonst - habe ich für kontact ein Profil erstellt. Ich habe zwar testweise für "kmail", "kaddressbook" und "akregator" auch Profile erstellt; aber das war kein Spass und der Zustand dieser Profile ist nicht zur Veröffenlichung geeignet. Selbst das Profil für den kontact hat von mir sicherheitshalber ein complain-flag bekommen. Prüfe dieses Profil erst eine gewisse Zeit bevor Du das entfernst und damit das Profil "scharf" schaltest.

Das Profil für den "kontact" benötigt zwei zusätzliche Basis-Profile. Das USEQTWEBENGINE findest Du in D.11 - das andere hier habe ich nur erstellt um die Einbindung von "qtspeech" auszulagern. Ich nutze mangels "phonon" diese Speech-Sachen nicht und konnte es daher nicht testen. Falls Du das nutzt, sollte es für Dich einfacher sein, das in USESPEECH zu ergänzen.

Edit 2022-04-08: Lese bitte gleich Post Nr. 10 in diesem Thread.

  • Profile: /etc/apparmor.d/local/USESPEECH
  • Beschreibung/Bemerkung: Es wird leider automatisch von einigen KDE-Anwendungen gestartet. Irgendein Experte weiß vielleicht auch, wie man das abschalten könnte - ich weiß es leider nicht. kontact startet den Unsinn natürlich auch :-(


Code:
# version 2

/usr/bin/speech-dispatcher  ix,
/usr/libexec/speech-dispatcher-modules/sd_*  ix,
/usr/libexec/speech-dispatcher-modules/  r,
owner /run/user/[0-9]*/speech-dispatcher** rwk,


  • Profile: /etc/apparmor.d/usr.bin.kontact
  • Beschreibung/Bemerkung: Ich habe soviel wie möglich in Kontact fremd gestartet, kann aber nicht zusichern dass ich alle benötigten Programme erwischt habe. P.S.: Wenn Du an einer Mail eine Datei anhängen willst, sollte diese Datei vorher in ~/Downloads sein ... Du weißt ja: Meine Daten in /home sind mir heilig (siehe BP: ONLYNETWORK). Ja, ich brauche und will den "kitinerary-extractor" nicht; deshalb habe ich den auch nicht erlaubt. Google einfach mal was der macht und wieso einige den als Sicherheitslücke betrachten ...

    Edit 2021-12-14: Hier ist die neue Version 4, da in der alten ja auch noch "Okular" fehlte (damit man PDFs direkt aus einer Mail heraus sehen kann). Die andere Anpassung (Allow ~/Dokumente) ist aufgrund der neuen Version der KDE-Frameworks. Bitte lösche das raus, falls Du da sensible Dateien drin hast.
    Edit 2022-05-05: In dieser Version 5 habe ich lediglich die Zeile "/usr/bin/kde-open5 rix," geändert in "/usr/bin/kde-open rix," (Dank der neuen KDE-Version; witzigerweise bleibt aber die kshell5).
    Edit 2024-04-03: In Version 6 habe ich die Zeile "/usr/libexec/keyboxd rix," hinzugefügt.

Code:
# version 6

abi <kernel>,

profile kontact /usr/bin/kontact
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
include <local/USEQTWEBENGINE>
# include <local/USESPEECH>
# include <local/USECUPS>

# I dont need it and dont like it; it makes only noise
deny /usr/lib64/libexec/kf5/kitinerary-extractor  rx,

# I dont have any documents in ~/Dokumente so I allow it to avoid annoying errors
# Please comment this out if you have sensible documents in this folder
owner /home/*/Dokumente/{,*}  rw,

/dev/tty  rw,

audit /usr/bin/akonadi_control  rix,
/bin/bash  rix,
/usr/bin/xdg-open  rix,
/usr/bin/kde-open  rix,
/usr/bin/kfmclient  rix,
/usr/bin/kshell5  rix,
/usr/bin/gpg  rix,
/usr/bin/gpgconf  rix,
/usr/bin/gpgsm  rix,
/usr/bin/gpg-agent  rix,
/usr/bin/pinentry-curses  rix,
/usr/bin/kaddressbook  rix,
/usr/bin/kmail  rix,
/usr/bin/gwenview  rix,
/usr/bin/okular  rix,
/usr/bin/kleopatra  rix,
/usr/bin/dirmngr  rix,
/usr/libexec/scdaemon  rix,
/usr/libexec/keyboxd  rix,

owner /proc/[0-9]*/task/[0-9]*/comm  w,

owner /home/*/.gnupg/{,**}  rwk,
owner /home/*/.gnupg/**  l -> /home/*/.gnupg/**,
owner /home/*/.local/share/akonadi/**  rwk,
owner /home/*/.local/share/akregator/**  rwk,
owner /home/*/.local/share/akregator/**  l -> /home/*/.local/share/akregator/**#[0-9]*,
owner /home/*/.local/share/gwenview/**  rw,
owner /home/*/.local/share/kmail2/**  rwk,
owner /home/*/.local/share/kmail2/autosave/* l -> /home/*/.local/share/kmail2/autosave/#[0-9]*,
owner /home/*/.local/share/kontact/**  rwk,
owner /home/*/.local/share/kontact/* l ->  /home/*/.local/share/kontact/#[0-9]*,
owner /home/*/.local/share/korganizer/**  rwk,
owner /home/*/.local/share/phishingurl/*  rwk,
owner /home/*/.local/share/okular/**  rw,
owner /home/*/.local/share/okular/bookmarks* l -> /home/*/.local/share/okular/#[0-9]*,
owner /home/*/.pki/**  rwk,
}




Über Rückmeldungen - auch Reklamationen - würde ich mich sehr freuen !

.


Last edited by pietinger on Wed Apr 03, 2024 2:17 pm; edited 15 times in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Mon Dec 14, 2020 11:54 pm    Post subject: AppArmor Profil für Firefox / KDE Reply with quote

Firefox

Ich sollte ein Profil für den Firefox (unter KDE) erstellen. Natürlich suche ich dann als erstes im Web nach bereits vorhandenen Profilen. Hier habe ich lediglich ein sehr altes für Firefox Version 60.5.0 gefunden. Da ich selbst den Firefox nicht benutze, kann ich nicht beurteilen ob folgendes in der aktuellen Version 83.0 überhaupt noch ein Thema ist (Auszug aus altem Profil):
Code:
# Apparmor 2.13.1 -  Copyright (C) 2009-2018 Canonical Ltd.
#
# Hardened profile for firefox 60.5.0
[...] [1]
   # Disable default features of Firefox : Pocket, Screenshot, Followonsearch, Form autofill, Activity stream...

   deny /usr/lib/firefox/browser/features/ r,
   deny /usr/lib/firefox/browser/features/* rwx,
[...] [2]
   # Enforce denied read/write to datareporting and to the whole .cache/ directory, for the following reasons :
   #
   # /safebrowsing/ - Related file of the safebrowsing
   # activity-stream.tippytop.json - Log your browsing history, even with "never remember history" or "private browsing" enabled.
   # /startupCache/ - Include binary format as cache

   deny @{HOME}/.cache/mozilla/firefox/*.default/* rw,
   deny @{HOME}/.mozilla/firefox/*.default/datareporting/* w,

Im folgenden Profil ist obiger Punkt [1] dadurch umgesetzt, dass nirgends eine Schreibfreigabe auf /usr/lib/firefox/** erfolgt. Punkt [2] habe ich nicht aktiviert und müsste von Dir noch unkommentiert werden, falls das wirklich noch aktuell sein sollte.

Ich habe mir die unstable Version 83.0 nicht als binary geholt, sondern ließ sie mir mit folgenden USE-Flags compilieren (alles Standard bis auf "-pulseaudio"):
Code:
dbus gmp-autoupdate openh264 system-av1 system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-webp
-debug -eme-free -geckodriver -hardened -hwaccel -jack -lto -pgo -pulseaudio -screencast (-selinux) -wayland -wifi


Wie auch in allen anderen Profilen mit Netzwerk-Zugang ist natürlich nur Zugriff auf "/home/*/Downloads" möglich. Der Start externer Programme ist auf ein Minimum beschränkt. Einiges wird darum sicherlich nicht funktionieren. Ebenso habe ich keinerlei Add-Ons installiert. Das Profil wird deshalb sicher um weitere Freigaben erweitert werden müssen. Es ist daher nur als Initial-Version für weitere Überprüfungen zu sehen.

  • Profile: /etc/apparmor.d/usr.bin.firefox
  • Beschreibung/Bemerkung: Dies ist ebenfalls eine PARANOID-Version. Lediglich ein Punkt war unklar und bedarf weiterer Untersuchungen. Ich habe diesen erstmal auskommentiert. Die Audits bei "Datei öffnen" sind natürlich normal, da wir keinen Zugriff auf /home - außer Downloads - erlauben. Andere Audits sollten überprüft werden.

Code:
# version 0

abi <kernel>,

profile firefox /usr/bin/firefox
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
# include <local/USECUPS>
# include <local/USEWEBCAM>

/dev/  r,
/dev/tty  rw,
/dev/shm/org.mozilla.*  rwk,

/usr/bin/firefox  rix,
/usr/lib64/firefox/firefox  rix,
/bin/basename  rix,
/bin/uname  rix,

ptrace (read, readby) peer=@{profile_name},

/usr/lib64/firefox/fonts/**  rw,

owner /run/user/[0-9]*/dconf** rwk,

# deny /home/*/.cache/mozilla/firefox/*.default/* rw,
# deny /home/*/.mozilla/firefox/*.default/datareporting/* w,
owner /home/*/.local/share/applications/  r,
owner /home/*/.mozilla/{,**}  rwk,
}


.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Sun Dec 12, 2021 8:04 pm    Post subject: Reply with quote

EDIT 2021-12-12: Mit der neuen Version der kde-frameworks hat sich wohl einiges geändert.

Deshalb habe ich gerade 3 Profile angepasst:

- ONLYNETWORK Version 2 (in D.5)
- ISAKDE Version 3 (in D.9)
- USEQTWEBENGINE Version 2 (in D.11)

Bitte stelle alle Programme die die QTWebEngine nutzen so um, wie in D.11 beschrieben.

So wie es aussieht wurde das Startverhalten von KDE-Programmen geändert. Eine gute Nachricht gibt es schon mal:

Wenn ich in einer E-Mail (unter "Kontact") einen externen Link anklicke wird direkt der Konqueror gestartet - und zwar im Enforce-Modus - OHNE dass ich vorher einen Konqueror öffnen musste. Bedeutet: Meine alte Warnung, dass Du ansonsten ohne Schutz durch AA im Internet surfst, ist damit hinfällig.

Die schlechte Nachricht: In allen Programmen die ONLYNETWORK verwenden (und die ich deshalb nicht an mein /home ranlasse), musst Du nun das Verzeichnis "/home/.../DOWNLOADS/" in der Eingabezeile manuell eingeben, weil KDE nun immer erst "~/Dokumente" lesen will ... :-(

Das ganze ist noch ein bischen mit der heißen Nadel ... naja ... KDE ist halt einfach ein Biest ... aber möglicherweise ist es jetzt sogar ein bischen besser geworden (von AppArmor aus gesehen). (Da bräuchte ich halt einen KDE-Experten, der die Interna im Schlaf beherrscht ...)


Last edited by pietinger on Thu May 05, 2022 8:25 am; edited 2 times in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Mon Dec 13, 2021 11:59 pm    Post subject: Reply with quote

Habe soeben eine neue Version 4 des Profils "usr.bin.kontact" zwei Posts weiter vorne reinkopiert.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Tue Dec 14, 2021 1:30 am    Post subject: Reply with quote

Dies ist die neue Version für den Falkon Webbrowser.

  • Profile: /etc/apparmor.d/usr.bin.falkon
  • Beschreibung/Bemerkung: Der Webbrowser Falkon. Bitte nutze nicht die aus D.11. Ich lasse in D.11 die alte Version nur als Anschauung noch drin.

Code:
# version 3

abi <kernel>,

profile falkon /usr/bin/falkon
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
include <local/USEQTWEBENGINE>
# include <local/USECUPS>
# include <local/USEWEBCAM>

# needed for private mode
/usr/bin/falkon  ix,

/dev/  r,
owner /home/*/.pki/**  rwk,
owner /home/*/.config/falkon/profiles/* l -> /home/*/.config/falkon/profiles/#[0-9]*,
owner /home/*/.config/falkon/profiles/*/* l -> /home/*/.config/falkon/profiles/*/#[0-9]*,
}
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Mon Jan 03, 2022 4:14 pm    Post subject: Reply with quote

  • Profile: /etc/apparmor.d/usr.bin.konversation
  • Beschreibung/Bemerkung: Der IRC Client Konversation. Da ich keine File-Transfers mache, ist diese Funktion nicht getestet (es fehlen daher möglicherweise noch Freigaben).

Code:
# version 2

abi <kernel>,

profile konversation /usr/bin/konversation
{
include <local/ONLYNETWORK>
include <local/ISAKDE>
include <local/USESOUND>
# include <local/USECUPS>

/usr/bin/keditbookmarks  ix,
/usr/bin/kfmclient  ix,
/usr/bin/kshell5  ix,

owner /home/*/.local/share/konversation/{,**}  rwk,
owner /home/*/.local/share/konversation/* l -> /home/*/.local/share/konversation/#[0-9]*,
}
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Thu Feb 10, 2022 12:16 pm    Post subject: Reply with quote

Schon wieder hatten wir ein Update der kde-frameworks. Natürlich teste ich dann soviel wie möglich und siehe da: Wenn ich im Akregator (unter dem Dach von kontact) versuche einen Link im externen Browser zu öffnen, bekomme ich:

Code:
kernel: audit: type=1400 audit(1644494225.916:48): apparmor="DENIED" operation="exec" profile="kontact" name="/usr/bin/falkon" pid=3641 comm="kde-open5" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0


Warte mal. Wieso Falkon ? Ich habe doch den Konqueror als Standard-Browser in meinen KDE Systemeinstellungen eingestellt. Äh, ja also, jetzt steht der Falkon drin. Nach dem ich das zurück geändert habe auf den Konqueror ist wieder alles i.O. Wenn ein Update meine Einstellungen ändert, begeistert mich das wirklich nicht ... :-(
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 4160
Location: Bavaria

PostPosted: Fri Apr 08, 2022 2:22 pm    Post subject: qtspeech ist nun optional Reply with quote

Heute kam eine neue (stable) KDE Version 21.12.3 und hat ein neues Use-Flag eingeführt: "speech", welches standardmäßig aber nicht eingeschaltet ist. Natürlich habe ich gleich mal überprüft, welche Auswirkungen das hat. Erfreulicherweise wird damit kein "qtspeech" mehr geladen (es wird auch nach einem "emerge -c" gelöscht). Somit benötigen wir für das Profil usr.bin.kontact auch nicht mehr die Einbindung des Profils "USESPEECH". Du kannst also das Profil anpassen und diese Zeile auskommentieren (oder gleich ganz löschen):
Code:
# include <local/USESPEECH>

Ich lasse aber natürlich das Profil "USESPEECH" im 3. Post hier, für alle die das nutzen wollen / müssen.

.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum