La respuesta corta es:si tu Firefox está comprometido, puede hacer lo que quiera. Puede modificar los archivos que quiera. Incluso puede registrar teclas y obtener root. Pero hay algunas formas en que puede mejorar su seguridad, como usar un navegador más seguro, AppArmor o el complemento NoScript. La respuesta larga es...
Sí, si su proceso de Firefox se ve comprometido, puede hacer absolutamente cualquier cosa que pueda hacer su usuario habitual. En Linux, la seguridad proviene de la separación de usuarios. Hablé un poco sobre los riesgos de asumir que tienes intra -protección del usuario aquí. Básicamente, su sistema tiene controles de seguridad por todas partes, y si dos procesos son del mismo usuario, se considera que son igualmente confiables y pueden interferir entre sí a voluntad. Esto incluye el registro de teclas, lo que significa que pueden husmee su contraseña de root la próxima vez que la ingrese. O podría inyectar pulsaciones de teclas, mover el mouse, modificar todos los archivos en su directorio de inicio y muchos archivos fuera de él. Podría acceder a la red a voluntad, y casi todo lo demás. Si su proceso de Firefox se ve comprometido, tiene mucho más de qué preocuparse que la modificación de su carpeta Chromium. Firefox se ejecuta como su usuario. Tu usuario eres tú . El malware que sale de Firefox hereda ese privilegio y podrá hacer todo lo que tú puedas hacer, como los pocos ejemplos que mencioné anteriormente.
También tenga en cuenta que Chromium es significativamente más seguro que Firefox. Si bien Firefox no tiene ningún mecanismo de seguridad proactivo, Chromium los tiene en abundancia (suid chroot sandbox, seccomp-bpf sandbox, varios tipos de sandbox de espacio de nombres y más). En muchos contenidos, Firefox es casi siempre el primero en ser pirateado, Chrome/Chromium es el que sobrevive más tiempo y los piratas informáticos expertos mundiales son los que más tardan en encontrar formas de atravesar todas las capas de la zona de pruebas. Si su objetivo principal es la seguridad, es posible que desee seguir usando solo Chromium.
Sin embargo, si aún desea usar Firefox, puede mitigar esto en gran medida mediante el uso de una caja de arena que viene con Linux. Ubuntu tiene el entorno limitado de AppArmor, por lo que puede usarlo para proteger sus navegadores, entre otras cosas. No sé qué tan actualizado está, pero las instrucciones para habilitarlo se pueden encontrar aquí. AppArmor es un tipo de sandbox llamado MAC, o Control de acceso obligatorio, que está controlado por el núcleo, el núcleo y el jefe del sistema operativo que se ejecuta incluso con más privilegios que el root. Cuando un perfil de AppArmor está habilitado, le dice al kernel que restrinja a qué carpetas y archivos puede acceder un proceso. El perfil de AppArmor para Firefox está escrito para otorgarle solo los permisos que necesita, y nada más. Si intenta acceder a algo que no tiene permitido, el kernel denegará el acceso de inmediato.
Esta es la política predeterminada de Firefox AppArmor para Ubuntu 14.04, que puede consultar para tener una idea de cómo funciona. Como puede ver, permite el acceso de lectura a la mayoría de las carpetas, pero solo permite escribir en las carpetas de configuración relacionadas con Firefox. Las carpetas de Chromium no están en las rutas incluidas en la lista blanca, y cualquier intento de escribir allí sería denegado.
# 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>
}
Otra forma de mitigar esto es usando NoScript. Le permite bloquear JavaScript, Flash, etc. peligrosos de los sitios web, lo que hace que los ataques a Firefox mucho menos probabilidades de éxito. Incluso si mantiene la mayoría de los scripts habilitados porque al deshabilitarlos hace que muchos sitios web no funcionen como se esperaba, el complemento aún brinda protección transparente contra otras amenazas, como el secuestro de clics y XSS. Es un complemento muy popular y muy bien considerado en la comunidad de seguridad. Le recomiendo que lo instale, además de habilitar AppArmor, si su objetivo es minimizar el riesgo de que un sitio web malicioso comprometa su computadora o cualquier archivo que contenga.
Esta es una actualización un poco posterior sobre la situación, pero parece que Firefox ya no sufre este problema en casi ninguna versión desde la 57 (la primera versión de Quantum) y posteriores. WebExtensions tiene sandboxing, y parece que incluso hay sandboxing en la forma en que Firefox ve tus archivos locales, como Chrome/Chromium. Los detalles sobre esto están en https://wiki.mozilla.org/Security/Sandbox#Linux
EDITAR/Nota:dicho esto, todavía marqué la respuesta sobre la respuesta ideal y la voté a favor, ya que una vez se aplicó a Firefox y todavía se aplica a muchas de sus bifurcaciones, como Waterfox y Pale Moon