Può andare su un sito Web non valido su firefox o installare un plugin firefox dannoso, infettare altre parti della mia cartella home su un sistema Linux?

4

BTW, non intendo root, solo un utente semplice. Sono preoccupato perché ho paura che se faccio cose del genere potrei infettare la mia cartella Chromium. Ho un enorme caso di disturbo ossessivo compulsivo.

    
posta RoundDuckMan 10.04.2016 - 02:10
fonte

1 risposta

3

La risposta breve è: se il tuo Firefox è compromesso, può fare tutto ciò che vuole. Può modificare qualunque file voglia. Può persino creare un keylog e diventare root. Esistono tuttavia alcuni modi per migliorare la sicurezza, ad esempio l'utilizzo di un browser più sicuro, AppArmor o il plug-in NoScript. La risposta lunga è ...

Sì, se il tuo processo di Firefox è compromesso, può fare assolutamente qualsiasi cosa il tuo normale utente possa fare. In Linux, la sicurezza viene dalla separazione degli utenti. Ho parlato un po 'dei rischi dell'assunzione che tu abbia intra -user protection qui . Fondamentalmente, il tuo sistema ha controlli di sicurezza dappertutto, e se due processi 'sono dello stesso utente, allora sono considerati ugualmente affidabili e possono interferire l'uno con l'altro a piacimento. Ciò include keylogging, il che significa che può annusare la tua password di root la prossima volta che la digiti. Oppure può iniettare sequenze di tasti, muovere il mouse, modificare tutti i file nella tua home directory e molti file al di fuori di esso. Potrebbe accedere alla rete a volontà e praticamente tutto il resto. Se il tuo processo di Firefox è compromesso, devi preoccuparti molto di più della modifica della tua cartella Chromium. Firefox viene eseguito come utente. Il tuo utente sei . Il malware che esce da Firefox eredita questo privilegio e sarà in grado di fare qualsiasi cosa tu possa fare, come i pochi esempi che ho fornito sopra.

Nota inoltre che Chromium è significativamente più sicuro di Firefox. Mentre Firefox non ha meccanismi di sicurezza proattivi di alcun tipo, Chromium li ha in abbondanza (suid sandbox chroot, sandbox seccomp-bpf, diversi tipi di sandbox namespace e altro). In molti contenuti, Firefox è quasi sempre il primo ad essere hackerato, con Chrome / Chromium che sopravvive più a lungo e il più lungo per gli hacker esperti in tutto il mondo a trovare strade attraverso tutti i livelli sandbox. Se il tuo obiettivo principale è la sicurezza, potresti voler utilizzare semplicemente Chromium.

Se si desidera comunque utilizzare Firefox, è possibile attenuarlo in larga misura utilizzando una sandbox fornita con Linux. Ubuntu ha la sandbox AppArmor, quindi puoi usarlo per proteggere i tuoi browser, tra le altre cose . Non so quanto sia aggiornato, ma le istruzioni per attivarlo possono essere trovate qui . AppArmor è un tipo di sandbox chiamato MAC, o Controllo di accesso obbligatorio, che è controllato dal kernel, dal core e dal boss del sistema operativo che viene eseguito con ancora più privilegi di root. Quando un profilo AppArmor è abilitato, dice al kernel di limitare le cartelle e i file a cui un processo può accedere. Il profilo AppArmor per Firefox viene scritto per fornire solo le autorizzazioni necessarie e nient'altro. Se tenta di accedere a qualsiasi cosa a cui non è permesso, il kernel negherà immediatamente l'accesso.

Ecco la politica predefinita di Firefox AppArmor per Ubuntu 14.04, che puoi vedere per avere un'idea di come funziona. Come puoi vedere, consente l'accesso in lettura alla maggior parte delle cartelle, ma consente solo la scrittura nelle cartelle di configurazione relative a Firefox. Le cartelle di Chromium non si trovano nei percorsi autorizzati e ogni tentativo di scrittura in questo punto verrebbe negato.

# 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>
}

Un altro modo per mitigare ciò è usando NoScript . Permette di bloccare JavaScript pericoloso, Flash, ecc. Da siti Web, il che rende meno probabile la riuscita di attacchi su molto di Firefox. Anche se la maggior parte degli script viene attivata, poiché la disattivazione degli script fa sì che molti siti Web non funzionino come previsto, il plug-in fornisce comunque una protezione trasparente da altre minacce, come il clickjacking e XSS. È un plugin molto popolare e molto ben visto nella comunità di sicurezza. Consiglio vivamente di installarlo, oltre ad abilitare AppArmor, se il tuo obiettivo è ridurre al minimo il rischio che un sito Web dannoso comprometta il tuo computer o qualsiasi file su di esso.

    
risposta data 10.04.2016 - 04:21
fonte

Leggi altre domande sui tag