Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: Jak lépe zabezpečit Ubuntu → Skype a AppArmor  (Přečteno 3931 krát)

arrange

  • Závislák
  • ****
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
    • Zobrazit profil
Jak lépe zabezpečit Ubuntu → Skype a AppArmor
« kdy: 28 Červenec 2010, 19:41:19 »
Milé děti,

v dnešní hodině si ukážeme, jak lépe zabezpečit svůj počítač před napadením pomocí AppArmor. Sice jsem se také zrovna vrátila ze stáže, ale protože mě pan ředitel pověřil tímto úkolem, pokusím se ho zhostit nejlépe jak umím.

Za domácí úkol jsem vám zadala prostudovat teoretické podklady:
http://wiki.ubuntu.cz/AppArmor

Pokud vám v dnešní hodině nebude něco jasné, vzpomeňte si na DÚ, anebo rychle nalistujte příslušnou stránku...

Takže:

Ukázka tvorby profilu v AppArmor na Skypu

Skype jsem vybrala proto, že je to takový jakýsi blob furt připojený k internetu, o kterém ani pořádně nevíme, co dělá. Zkusíme se mu tedy kouknout na zoubek a případně mu utnout tipec. Na druhou stranu je to možná příliš velké sousto pro začátečníky, ale co už.

Otevřeme si dva Terminály, v jednom budeme upravovat profil, kde nastavíme, co Skypu povolíme a co už ne
Kód: [Vybrat]
sudo nano /etc/apparmor.d/usr.bin.skypea v druhém budeme sledovat logy
Kód: [Vybrat]
tail -f /var/log/syslog
Nejdřív vytvoříme základní profil pro Skype
(inspirujeme se openSUSáckým profilem z balíku apparmor-profiles).
----------------------------------------------------------
Kód: [Vybrat]
# Last Modified: Mon Oct 26 13:29:13 2009
# REPOSITORY: http://apparmor.test.opensuse.org/backend/api draglor 53
# Additional profiling based on work by Андрей Калинин, LP: #226624

# zahrneme základní proměnné
#include <tunables/global>

/usr/bin/skype {
  # v této části zahrneme předpřipravené profily, které povolují základní přístup,
  # a které Skype nutně potřebuje - podrobnosti viz wiki
 
  # pro používání zvuku
  #include <abstractions/audio>
   
  # základní knihovny nutné pro každý program
  #include <abstractions/base>
 
  # použití fontů
  #include <abstractions/fonts>

  # přístup k ikonám, naposledy uloženým souborům...
  #include <abstractions/freedesktop.org>

  # základní nastavení pro Gnome
  #include <abstractions/gnome>

  # základní nastavení pro sítě a internet
  #include <abstractions/nameservice>

  # přístup k dočasným adresářům
  #include <abstractions/user-tmp>

  # základní nastavení pro X server
  #include <abstractions/X>

  # povolíme čtení všech adresářů (vždy končí na lomítko!)
  # ale ne souborů
  / r,
  /**/ r,

  # pokud chceme použít videokameru
  # potřebujeme přístup k /dev/video*
  /dev/video* mrw,

  # Skype musí být schopen číst, spouštět a zamykat z vlastních adresářů
  /usr/bin/skype mr,
  /usr/share/skype/** kr,
  /usr/share/skype/sounds/*.wav kr,

  # totéž platí pro nastavení v domovském adresáři
  @{HOME}/.Skype/   rw,
  @{HOME}/.Skype/** krw,
  @{HOME}/.config/* kr,

}

Uložíme, nahrajeme profil do AppArmor
Kód: [Vybrat]
sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.skypespustíme Skype a sledujeme, co se bude dít v logách.

První spuštění
-------------------------
Skype se tak nějak spustil, ale log je plný "prohřešků":

denied_mask="::m" fsuid=1000 ouid=0 name="/usr/lib/libv4l/v4l1compat.so"
Povolíme, je potřeba spustit z důvodu kompatibility mezi v4l1 a v4l2.

denied_mask="::m" fsuid=1000 ouid=0 name="/etc/passwd"
Na co mapovat /etc/passwd jako spustitelný? Čtení stačí - to už jsme povolili v abstractions/nameservice! Zakázat.

denied_mask="::r" fsuid=1000 ouid=0 name="/proc/2439/net/route"
Informace k síti číst může.

denied_mask="r::" fsuid=1000 ouid=1000 name="~/.mozilla/firefox/58qx31qt.default/prefs.js"
No tak moment! Nevím, proč bych Skypu a kdoví komu ještě měl prozrazovat mé nastavení FF, včetně záznamů doplňků. Zakázat!

denied_mask="m::" fsuid=1000 ouid=1000 name="/dev/shm/pulse-shm-2861101225"
viz /etc/passwd

denied_mask="::r" fsuid=1000 ouid=0 name="/proc/filesystems"
Povolíme přečtení dostupných filesystémů.

denied_mask="::m" fsuid=1000 ouid=0 name="/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf"
viz /etc/passwd

Takže do profilu přidáme
Kód: [Vybrat]
  /usr/lib/libv4l/v4l1compat.so rm,
  deny /etc/passwd m,
  @{PROC}/[0-9]*/net/route r,
  deny @{HOME}/.mozilla/** r,
  deny /dev/shm/pulse-shm-[0-9]* m,
  @{PROC}/filesystems r,
  deny /usr/share/fonts/** m,
(to deny je zde jen proto, aby nám nezahlcovalo logy)

Takto může následovat nekonečná řada úpravy profilu, uložení, apparmor_parser -r, spuštění Skypu, kontrola logů, až ke konečnému vítězství. Já jsem nakonec došla k něčemu takovému, ale chce to ještě doladit ;)
Kód: [Vybrat]
# REPOSITORY: http://apparmor.test.opensuse.org/backend/api draglor 53

#include <tunables/global>
/usr/bin/skype {
  #include <abstractions/audio>
  #include <abstractions/base>
  #include <abstractions/fonts>
  #include <abstractions/freedesktop.org>
  #include <abstractions/gnome>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>
  #include <abstractions/X>
  #include <abstractions/dbus>

  # povolíme čtení adresářů (vždy končí na lomítko!)
  # ale ne souborů
  / r,
  /**/ r,

  # pokud chceme použít videokameru
  # potřebujeme přístup k /dev/video*
  /dev/video* mrw,

  # Skype musí být schopen číst, spouštět a zamykat z vlastních adresářů
  /usr/bin/skype mr,
  /usr/share/skype/** krm,
  /usr/share/skype/sounds/*.wav kr,

  # totéž platí pro nastavení v domovském adresáři
  @{HOME}/.Skype/   rw,
  @{HOME}/.Skype/** krw,
  @{HOME}/.config/* kr,

  # povolit přístup do Downloads, pokud by mi někdo poslal soubor
  @{HOME}/Downloads/ rw,
  @{HOME}/Downloads/** rw,

  /usr/lib/libv4l/v4l1compat.so rm,
  @{PROC}/[0-9]*/net/route r,
  @{PROC}/filesystems r,
  /sys/devices/** r,

  deny @{HOME}/.mozilla/** r,
  deny /etc/passwd m,
  deny /dev/shm/pulse-shm-[0-9]* m,
  deny /usr/share/fonts/** m,
}

Takže za DÚ: udělat si vlastní funkční profil! Příští týden bude písemka!
http://www.openstreetmap.org - mapy celého světa "wiki style"

arrange

  • Závislák
  • ****
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
    • Zobrazit profil
Re: Jak lépe zabezpečit Ubuntu → Skype a AppArmor
« Odpověď #1 kdy: 19 Srpen 2010, 21:53:55 »
Kdo chcete něco jednoduššího na procvičení, můžete si zkusit aktivovat předpřipravený profil pro FF:
Kód: [Vybrat]
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox
Když si doinstalujete apparmor-notify, budete o případných problémech informováni pomocí systémové notifikace. Pokud se budete chtít profilu zase zbavit, stačí
Kód: [Vybrat]
sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/usr.bin.firefox
sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
http://www.openstreetmap.org - mapy celého světa "wiki style"

alhexth

  • Návštěvník
  • *
  • Příspěvků: 58
    • Zobrazit profil
Re:Jak lépe zabezpečit Ubuntu → Skype a AppArmor
« Odpověď #2 kdy: 30 Duben 2012, 09:55:13 »
Mně se objevil zádrhel kdy apparmor (resp. aa-notify) tahal do paměti až 615 MB dat, což mojí obstarožní mašince nedělalo dobře na žaludek... no, odinstaloval jsem. :-)