GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann der Besuch einer schlechten Website in Firefox oder die Installation eines bösartigen Firefox-Plugins andere Teile meines Home-Ordners auf einem Linux-System infizieren?

Die kurze Antwort lautet:Wenn Ihr Firefox kompromittiert ist, kann er tun, was er will. Es kann beliebige Dateien ändern. Es kann sogar keyloggen und root werden. Es gibt jedoch einige Möglichkeiten, wie Sie Ihre Sicherheit verbessern können, z. B. die Verwendung eines sichereren Browsers, AppArmor oder des NoScript-Plugins. Die lange Antwort lautet...

Ja, wenn Ihr Firefox-Prozess kompromittiert ist, kann er absolut alles tun, was Ihr normaler Benutzer tun kann. In Linux entsteht Sicherheit durch die Trennung von Benutzern. Ich habe ein wenig über die Risiken gesprochen, die mit der Annahme verbunden sind, dass Sie intra haben -Benutzerschutz hier. Grundsätzlich hat Ihr System überall Sicherheitsüberprüfungen, und wenn zwei Prozesse vom selben Benutzer stammen, gelten sie als gleichermaßen vertrauenswürdig und können sich nach Belieben gegenseitig stören. Dazu gehört Keylogging, was bedeutet, dass sie können Erschnüffeln Sie Ihr Root-Passwort, wenn Sie es das nächste Mal eingeben. Oder es könnte Tastenanschläge einschleusen, die Maus bewegen, alle Dateien in Ihrem Home-Verzeichnis und viele Dateien außerhalb davon ändern. Es konnte nach Belieben auf das Netzwerk zugreifen und so ziemlich auf alles andere. Wenn Ihr Firefox-Prozess kompromittiert ist, müssen Sie sich um viel mehr Sorgen machen, als dass Ihr Chromium-Ordner geändert wird. Firefox wird als Ihr Benutzer ausgeführt. Ihr Benutzer sind Sie . Malware, die aus Firefox ausbricht, erbt dieses Privileg und kann alles tun, was Sie tun können, wie die wenigen Beispiele, die ich oben gegeben habe.

Beachten Sie auch, dass Chromium deutlich sicherer ist als Firefox. Während Firefox keinerlei proaktive Sicherheitsmechanismen hat, hat Chromium sie im Überfluss (suid chroot sandbox, seccomp-bpf sandbox, verschiedene Arten von Namespace-Sandboxen und mehr). Bei vielen Inhalten ist Firefox fast immer der erste, der gehackt wird, wobei Chrome/Chromium am längsten überlebt und welterfahrene Hacker am längsten brauchen, um Wege durch alle Sandbox-Schichten zu finden. Wenn Ihr Hauptziel Sicherheit ist, sollten Sie vielleicht nur Chromium verwenden.

Wenn Sie Firefox dennoch verwenden möchten, können Sie dies weitgehend durch die Verwendung einer mit Linux gelieferten Sandbox abmildern. Ubuntu verfügt über die AppArmor-Sandbox, mit der Sie unter anderem Ihre Browser schützen können. Ich weiß nicht, wie aktuell es ist, aber die Anweisungen zum Aktivieren finden Sie hier. AppArmor ist eine Art Sandbox namens MAC oder Mandatory Access Control, die vom Kernel gesteuert wird, dem Kern und Chef des Betriebssystems, das mit noch mehr Rechten als Root ausgeführt wird. Wenn ein AppArmor-Profil aktiviert ist, weist es den Kernel an, einzuschränken, auf welche Ordner und Dateien ein Prozess zugreifen darf. Das AppArmor-Profil für Firefox ist so geschrieben, dass es nur die erforderlichen Berechtigungen erhält und sonst nichts. Wenn es versucht, auf irgendetwas zuzugreifen, was ihm nicht erlaubt ist, wird der Kernel den Zugriff sofort verweigern.

Hier ist die standardmäßige Firefox AppArmor-Richtlinie für Ubuntu 14.04, die Sie sich ansehen können, um eine Vorstellung davon zu bekommen, wie sie funktioniert. Wie Sie sehen können, erlaubt es den Lesezugriff auf die meisten Ordner, aber nur das Schreiben in Konfigurationsordner, die sich auf Firefox beziehen. Chromium-Ordner befinden sich nicht in den Pfaden auf der weißen Liste, und alle Versuche, dort zu schreiben, würden verweigert.

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

Eine andere Möglichkeit, dies abzumildern, ist die Verwendung von NoScript. Es ermöglicht Ihnen, gefährliches JavaScript, Flash usw. von Websites zu blockieren, was Angriffe auf Firefox viel macht weniger Erfolg haben. Selbst wenn Sie die meisten Skripts aktiviert lassen, weil das Deaktivieren von Skripts dazu führt, dass viele Websites nicht wie erwartet funktionieren, bietet das Plugin dennoch transparenten Schutz vor anderen Bedrohungen wie Clickjacking und XSS. Es ist ein sehr beliebtes Plugin und in der Sicherheitsgemeinschaft sehr angesehen. Ich empfehle dringend, dass Sie es zusätzlich zur Aktivierung von AppArmor installieren, wenn Sie das Risiko minimieren möchten, dass eine bösartige Website Ihren Computer oder darauf befindliche Dateien kompromittiert.


Dies ist ein etwas späteres Update der Situation, aber es scheint, dass Firefox dieses Problem seit so ziemlich jeder Version von 57 (der ersten Quantum-Version) und höher nicht mehr hat. WebExtensions hat Sandboxing, und es scheint sogar Sandboxing zu geben, wie Firefox Ihre lokalen Dateien wie Chrome/Chromium anzeigt. Details dazu finden Sie unter https://wiki.mozilla.org/Security/Sandbox#Linux

BEARBEITEN/Anmerkung:Trotzdem habe ich die Antwort über der idealen Antwort markiert und sie positiv bewertet, da sie einst für Firefox galt und immer noch für viele seiner Gabeln gilt, wie Waterfox und Pale Moon


Linux
  1. Verschiedene Linux-Distributionen teilen sich den gleichen /home-Ordner?

  2. Installieren von Tomcat 7 auf einem Linux-System mit Native Library

  3. Wo finde ich das Java SDK unter Linux nach der Installation?

  4. Wie kann ich herausfinden, ob ein Linux-System Wayland oder X11 verwendet?

  5. Wie schlimm ist es wirklich, Linux auf einer großen Partition zu installieren?

14 Linux-Distributionen, auf die Sie sich für Ihren alten 32-Bit-Computer verlassen können

6 wichtige Dinge, die nach der Installation von Manjaro Linux zu tun sind

Dbxfs – Dropbox-Ordner lokal als virtuelles Dateisystem in Linux bereitstellen

Alpine (oder anderes Linux) auf VPS oder Bare Metal Server installieren

Wo finde ich die erste Version des Linux-Betriebssystems?

Wie kann ich einen ganzen Ordner, der andere Ordner enthält, mit sftp unter Linux hochladen?