GNU/Linux >> Znalost Linux >  >> Linux

Může přechod na špatný web na firefox nebo instalace škodlivého pluginu firefox infikovat další části mé domovské složky v systému Linux?

Krátká odpověď zní:pokud je váš Firefox kompromitován, může si dělat, co chce. Může upravovat soubory, které chce. Může dokonce keylogovat a získat root. Existuje však několik způsobů, jak můžete zlepšit své zabezpečení, jako je použití bezpečnějšího prohlížeče, AppArmor nebo pluginu NoScript. Dlouhá odpověď je...

Ano, pokud je váš proces Firefoxu kompromitován, může dělat naprosto cokoliv, co váš běžný uživatel. V Linuxu bezpečnost pochází z oddělení uživatelů. Trochu jsem mluvil o rizicích předpokladu, že máte intra -ochrana uživatele zde. V zásadě má váš systém bezpečnostní kontroly všude, a pokud jsou dva procesy stejného uživatele, pak jsou považovány za stejně důvěryhodné a mohou se navzájem libovolně rušit. To zahrnuje keylogging, což znamená, že mohou při příštím zadání si očuchejte heslo roota. Nebo by to mohlo vkládat úhozy, pohybovat myší, upravovat všechny soubory ve vašem domovském adresáři a mnoho souborů mimo něj. Mohl přistupovat k síti podle libosti a téměř ke všemu ostatnímu. Pokud je váš proces Firefoxu kompromitován, máte mnohem více starostí, než jen úpravy vaší složky Chromium. Firefox běží jako váš uživatel. Váš uživatel jste vy . Malware, který se vyloupne z Firefoxu, zdědí toto privilegium a bude moci dělat, co můžete, jako je několik příkladů, které jsem uvedl výše.

Všimněte si také, že Chromium je výrazně bezpečnější než Firefox. Zatímco Firefox nemá žádné proaktivní bezpečnostní mechanismy, Chromium jich má nepřeberné množství (suid chroot sandbox, seccomp-bpf sandbox, několik typů sandboxů jmenného prostoru a další). V mnoha obsahech je Firefox téměř vždy první, kdo je hacknut, přičemž Chrome/Chromium přežívá nejdéle a světovým expertům trvá nejdéle, než najdou cestu přes všechny vrstvy sandboxu. Pokud je vaším primárním cílem zabezpečení, možná budete chtít zůstat pouze u Chromia.

Pokud přesto chcete používat Firefox, můžete to do značné míry zmírnit pomocí sandboxu, který je součástí Linuxu. Ubuntu má sandbox AppArmor, takže jej můžete použít mimo jiné k ochraně vašich prohlížečů. Nevím, jak je aktuální, ale návod na jeho povolení najdete zde. AppArmor je typ karantény nazývaný MAC nebo Mandatory Access Control, který je řízen jádrem, jádrem a šéfem operačního systému, který běží s ještě většími oprávněními než root. Když je profil AppArmor povolen, říká jádru, aby omezilo, ke kterým složkám a souborům má proces povolen přístup. Profil AppArmor pro Firefox je napsán tak, aby mu dal pouze potřebná oprávnění a nic jiného. Pokud se pokusí o přístup k čemukoli, k čemu nemá povoleno, jádro okamžitě přístup zakáže.

Zde je výchozí zásada aplikace Firefox AppArmor pro Ubuntu 14.04, na kterou se můžete podívat, abyste získali představu o tom, jak to funguje. Jak můžete vidět, umožňuje přístup pro čtení k většině složek, ale umožňuje pouze zápis do konfiguračních složek souvisejících s Firefoxem. Složky Chromium nejsou na seznamu povolených cest a jakékoli pokusy o zápis do nich budou zamítnuty.

# vim:syntax=apparmor
# Author: Jamie Strandboge <[email protected]>

# Declare an apparmor variable to help with overrides
@{MOZ_LIBDIR}=/usr/lib/firefox

#include <tunables/global>

# We want to confine the binaries that match:
#  /usr/lib/firefox/firefox
#  /usr/lib/firefox/firefox
# but not:
#  /usr/lib/firefox/firefox.sh
/usr/lib/firefox/firefox{,*[^s][^h]} {
  #include <abstractions/audio>
  #include <abstractions/cups-client>
  # TODO: finetune this for required accesses
  #include <abstractions/dbus>
  #include <abstractions/dbus-accessibility>
  #include <abstractions/dbus-session>
  #include <abstractions/gnome>
  #include <abstractions/ibus>
  #include <abstractions/nameservice>
  #include <abstractions/p11-kit>

  # Addons
  #include <abstractions/ubuntu-browsers.d/firefox>

  # for networking
  network inet stream,
  network inet6 stream,
  @{PROC}/[0-9]*/net/if_inet6 r,
  @{PROC}/[0-9]*/net/ipv6_route r,
  @{PROC}/[0-9]*/net/dev r,
  @{PROC}/[0-9]*/net/wireless r,

  # should maybe be in abstractions
  /etc/ r,
  /etc/mime.types r,
  /etc/mailcap r,
  /etc/xdg/*buntu/applications/defaults.list    r, # for all derivatives
  /etc/xfce4/defaults.list r,
  /usr/share/xubuntu/applications/defaults.list r,
  owner @{HOME}/.local/share/applications/defaults.list r,
  owner @{HOME}/.local/share/applications/mimeapps.list r,
  owner @{HOME}/.local/share/applications/mimeinfo.cache r,
  owner /tmp/** m,
  owner /var/tmp/** m,
  /tmp/.X[0-9]*-lock r,
  /etc/udev/udev.conf r,
  # Doesn't seem to be required, but noisy. Maybe allow 'r' for 'b*' if needed.
  # Possibly move to an abstraction if anything else needs it.
  deny /run/udev/data/** r,

  /etc/timezone r,
  /etc/wildmidi/wildmidi.cfg r,

  # firefox specific
  /etc/firefox*/ r,
  /etc/firefox*/** r,
  /etc/xul-ext/** r,
  /etc/xulrunner-2.0*/ r,
  /etc/xulrunner-2.0*/** r,
  /etc/gre.d/ r,
  /etc/gre.d/* r,

  # noisy
  deny @{MOZ_LIBDIR}/** w,
  deny /usr/lib/firefox-addons/** w,
  deny /usr/lib/xulrunner-addons/** w,
  deny /usr/lib/xulrunner-*/components/*.tmp w,
  deny /.suspended r,
  deny /boot/initrd.img* r,
  deny /boot/vmlinuz* r,
  deny /var/cache/fontconfig/ w,
  deny @{HOME}/.local/share/recently-used.xbel r,

  # TODO: investigate
  deny /usr/bin/gconftool-2 x,

  # These are needed when a new user starts firefox and firefox.sh is used
  @{MOZ_LIBDIR}/** ixr,
  /usr/bin/basename ixr,
  /usr/bin/dirname ixr,
  /usr/bin/pwd ixr,
  /sbin/killall5 ixr,
  /bin/which ixr,
  /usr/bin/tr ixr,
  @{PROC}/ r,
  @{PROC}/[0-9]*/cmdline r,
  @{PROC}/[0-9]*/mountinfo r,
  @{PROC}/[0-9]*/stat r,
  owner @{PROC}/[0-9]*/task/[0-9]*/stat r,
  @{PROC}/[0-9]*/status r,
  @{PROC}/filesystems r,
  /sys/devices/pci[0-9]*/**/uevent r,
  owner @{HOME}/.thumbnails/*/*.png r,

  /etc/mtab r,
  /etc/fstab r,

  # Needed for the crash reporter
  owner @{PROC}/[0-9]*/environ r,
  owner @{PROC}/[0-9]*/auxv r,
  /etc/lsb-release r,
  /usr/bin/expr ix,
  /sys/devices/system/cpu/ r,
  /sys/devices/system/cpu/** r,

  # about:memory
  owner @{PROC}/[0-9]*/statm r,
  owner @{PROC}/[0-9]*/smaps r,

  # Needed for container to work in xul builds
  /usr/lib/xulrunner-*/plugin-container ixr,

  # allow access to documentation and other files the user may want to look
  # at in /usr and /opt
  /usr/ r,
  /usr/** r,
  /opt/ r,
  /opt/** r,

  # so browsing directories works
  / r,
  /**/ r,

  # Default profile allows downloads to ~/Downloads and uploads from ~/Public
  owner @{HOME}/ r,
  owner @{HOME}/Public/ r,
  owner @{HOME}/Public/* r,
  owner @{HOME}/Downloads/ r,
  owner @{HOME}/Downloads/* rw,

  # per-user firefox configuration
  owner @{HOME}/.{firefox,mozilla}/ rw,
  owner @{HOME}/.{firefox,mozilla}/** rw,
  owner @{HOME}/.{firefox,mozilla}/**/*.{db,parentlock,sqlite}* k,
  owner @{HOME}/.{firefox,mozilla}/plugins/** rm,
  owner @{HOME}/.{firefox,mozilla}/**/plugins/** rm,
  owner @{HOME}/.gnome2/firefox*-bin-* rw,
  owner @{HOME}/.cache/mozilla/{,firefox/} rw,
  owner @{HOME}/.cache/mozilla/firefox/** rw,
  owner @{HOME}/.cache/mozilla/firefox/**/*.sqlite k,

  #
  # Extensions
  # /usr/share/.../extensions/... is already covered by '/usr/** r', above.
  # Allow 'x' for downloaded extensions, but inherit policy for safety
  owner @{HOME}/.mozilla/**/extensions/** mixr,

  deny @{MOZ_LIBDIR}/update.test w,
  deny /usr/lib/mozilla/extensions/**/ w,
  deny /usr/lib/xulrunner-addons/extensions/**/ w,
  deny /usr/share/mozilla/extensions/**/ w,
  deny /usr/share/mozilla/ w,

  # Miscellaneous (to be abstracted)
  # Ideally these would use a child profile. They are all ELF executables
  # so running with 'Ux', while not ideal, is ok because we will at least
  # benefit from glibc's secure execute.
  /usr/bin/mkfifo Uxr,  # investigate
  /bin/ps Uxr,
  /bin/uname Uxr,

  # Site-specific additions and overrides. See local/README for details.
  #include <local/usr.bin.firefox>
}

Dalším způsobem, jak to zmírnit, je použití NoScript. Umožňuje vám blokovat nebezpečný JavaScript, Flash atd. z webových stránek, což vede k velkým útokům na Firefox menší pravděpodobnost úspěchu. I když necháte většinu skriptů povolenou, protože deaktivace skriptů způsobí, že mnoho webových stránek nebude fungovat podle očekávání, plugin stále poskytuje transparentní ochranu před dalšími hrozbami, jako je clickjacking a XSS. Je to velmi populární plugin a velmi dobře hodnocený v bezpečnostní komunitě. Vřele doporučuji, abyste si ji kromě povolení AppArmor nainstalovali, pokud je vaším cílem minimalizovat riziko, že škodlivý web ohrozí váš počítač nebo jakékoli soubory na něm.


Toto je trochu pozdější aktualizace situace, ale zdá se, že Firefox tímto problémem již netrpí téměř u žádné verze od 57 (první vydání Quantum) a novější. WebExtensions má sandboxing a zdá se, že dokonce dochází k sandboxingu v tom, jak Firefox prohlíží vaše místní soubory, jako je Chrome/Chromium. Podrobnosti o tom jsou na https://wiki.mozilla.org/Security/Sandbox#Linux

EDIT/Poznámka:To znamená, že jsem stále označil odpověď nad ideální odpovědí a hlasoval pro ni, protože kdysi platila pro Firefox a stále platí pro mnoho jeho forků, jako je Waterfox a Pale Moon


Linux
  1. Linuxový editor, který dokáže zvýraznit všechny výskyty vybraného slova

  2. Jak mohu zjistit, zda systém Linux používá Wayland nebo X11?

  3. Mohu použít příkaz (například strom), aniž bych jej instaloval v celém systému?

  1. Různé linuxové distribuce sdílejí stejnou složku /home?

  2. Jak mohu použít rsync se systémem souborů FAT?

  3. Jak špatné je skutečně nainstalovat Linux na jeden velký oddíl?

  1. Linux – umožnit uživateli číst domovské adresáře některých jiných uživatelů?

  2. Jak najít domovský adresář uživatele na linuxu nebo unixu?

  3. Jak mohu spustit skript v Perlu jako systémový démon v linuxu?