Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
macOS-Security-and-Privacy-Guide — Kuratierter macOS-Sicherheits- und Datenschutzleitfaden mit praktischen Anleitungen für Bedrohungsmodellierung, Festplattenverschlüsselung, Firewall-Konfiguration, sichere Authentifizierung und Netzwerk-Härtung. | Kitploit
Tools/GitHubGitHub/drduh/macos-security-and-privacy-guide
NetzwerksicherheitDrahtlose SicherheitKryptographiePrivatsphäreAuthentifizierungLernen & BildungKuratierte Ressourcen
GitHubdrduh/macos-security-and-privacy-guide

macOS-Security-and-Privacy-Guide

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Kuratierter macOS-Sicherheits- und Datenschutzleitfaden mit praktischen Anleitungen für Bedrohungsmodellierung, Festplattenverschlüsselung, Firewall-Konfiguration, sichere Authentifizierung und Netzwerk-Härtung.

Repository anzeigenWebseite
22.5k1.5kvor 11h 54mVon Kitploit geprüft
  • Grundlagen
  • Bedrohungsmodell
    • Schutzgüter
    • Gegner
    • Fähigkeiten
    • Gegenmaßnahmen
    • Beispielmodell
  • Hardware
  • macOS installieren
    • Systemaktivierung
    • Apple-Konto
    • App Store
    • Virtualisierung
      • Apple-Container
  • Erster Start
  • Admin- und Benutzerkonten
    • Einschränkungen
    • Einrichtung
  • Firmware
  • FileVault
  • Sperrmodus
  • Firewall
    • Anwendungsschicht-Firewall
      • Tarnmodus
      • Signierte Apps
      • Firewall neu laden
      • Status abrufen
      • AirDrop
    • Firewalls von Drittanbietern
    • Paketfilter
      • Beispiel-pf-Konfiguration
      • Firewall-Befehle
      • Netzwerke blockieren
  • Dienste
  • Siri-Vorschläge und Spotlight
  • Homebrew
  • DNS
    • DNS-Profile
    • Hosts-Datei
    • DNSCrypt
    • Dnsmasq
  • Zertifizierungsstellen
  • Privoxy
  • Browser
    • Firefox
    • Chrome
    • Safari
    • Webbrowser-Privatsphäre
  • Tor
  • VPN
  • PGP/GPG
  • E-Mail
    • Thunderbird
  • Messenger
    • XMPP
    • Signal
    • iMessage
  • Malware
    • Software herunterladen
    • App Sandbox
    • Hardened Runtime
    • Antivirus
    • Gatekeeper
  • Systemintegritätsschutz
  • Metadaten und Artefakte
  • Authentifizierung
  • Backup
  • WLAN
  • SSH
  • Physischer Zugriff
  • Überwachung
    • Protokolle
    • DTrace
    • Prozesse
    • Netzwerk
      • Wireshark
  • Sonstiges
    • Bildschirmschoner
    • Diagnosedaten
    • Mediaplayer
    • Dateihandler
    • Finder-Optionen
    • Benutzerdefinierte Umask
    • Tastatureingabe
    • Netzwerk-Härtung
    • Sudoers
  • Verwandte Software
  • Weitere Ressourcen

Grundlagen

Wenden Sie allgemeine Sicherheitsempfehlungen an:

  • Erstellen Sie ein Bedrohungsmodell

    • Ist Ihr Gegner ein lokaler Lauscher, ein Krimineller mit gängiger Malware oder eine gut finanzierte und hochleistungsfähige Organisation?
    • Definieren Sie die Bedrohungen oder Gruppen, gegen die Sie sich verteidigen, und was sie realistisch tun können.
  • Halten Sie das System und die Software auf dem neuesten Stand

    • Installieren Sie regelmäßig verfügbare Updates für das Betriebssystem und alle Anwendungen.
    • Updates werden in den Systemeinstellungen oder mit dem softwareupdate-Befehlszeilenprogramm installiert. Beides erfordert kein Apple-Konto.
    • Abonnieren Sie die Apple-security-announce-Mailingliste oder prüfen Sie Apple-Sicherheitsupdates.
  • Verschlüsseln Sie sensible Daten

    • Aktivieren Sie FileVault, um den internen Speicher zu verschlüsseln.
    • Verwenden Sie einen Passwortmanager für Kontozugangsdaten und erwägen Sie, besonders sensible Dateien separat zu verschlüsseln.
  • Stellen Sie die Verfügbarkeit von Daten sicher

    • Erstellen Sie regelmäßige Backups Ihrer kritischen Daten und seien Sie bereit, im Falle einer Kompromittierung aus einem Backup wiederherzustellen.
    • Verschlüsseln Sie Backups, bevor Sie sie auf externe Medien oder Cloud-Speicher von Drittanbietern kopieren. Alternativ können Sie einen Backup-Dienst verwenden, der Ende-zu-Ende-Verschlüsselung bietet.
    • Überprüfen Sie Backups, indem Sie regelmäßig nach Zeitplan auf sie zugreifen.

Bedrohungsmodell

Der wichtigste Schritt zur sinnvollen Verbesserung von Sicherheit und Privatsphäre ist die Erstellung eines Bedrohungsmodells: einer allgemeinen Beschreibung dessen, was Sie schützen möchten, wer versuchen könnte, darauf zuzugreifen, wie dies geschehen könnte und welche Kontrollen Nutzungskompromisse wert sind. Dies schafft ein Verständnis für potenzielle Gegner und ihre Motivationen, was zu stärkeren Verteidigungsmaßnahmen führt.

Schutzgüter

Schutzgüter können ein Telefon, Laptop, Zugangsdaten und persönliche Daten wie den Browserverlauf umfassen.

Listen Sie sie in der Reihenfolge ihrer Wichtigkeit auf, beginnend mit denjenigen, die am schützenswertesten sind.

Gegner

Definieren Sie, gegen wen Sie sich verteidigen. Beginnen Sie damit, die Motivation zu definieren, die jeder Gegner haben könnte, wichtige Schutzgüter anzugreifen. Finanzieller Gewinn ist beispielsweise ein großer Motivator für viele Angreifer.

Fähigkeiten

Listen Sie für jeden Gegner auf, was er tun kann und was nicht, und ordnen Sie sie von geringsten zu größten Fähigkeiten. Ein Gelegenheitsdieb handelt beispielsweise opportunistisch: Er wird wahrscheinlich durch grundlegende Kontrollen wie Bildschirmsperre und verschlüsselten Speicher mit starken Passwörtern abgewehrt. Ein ausgefeilterer und entschlossenerer Gegner kann erfordern, ein Gerät bei Nichtgebrauch vollständig herunterzufahren, um Zugangsdaten aus dem Speicher zu löschen, sowie stärkere Authentifizierungsmechanismen.

Gegenmaßnahmen

Wählen Sie die beste Gegenmaßnahme für jede Bedrohung. Vermeiden Sie es beispielsweise, Passwörter auf Papier zu schreiben, wenn ein Mitbewohner sie finden könnte, oder verschlüsseln Sie den Speicher, um dessen Daten zu schützen, falls er gestohlen wird.

Sicherheit sollte mit Benutzerfreundlichkeit abgewogen werden: Jede Gegenmaßnahme sollte einer gegnerischen Fähigkeit entgegenwirken, um etwaige Unannehmlichkeiten zu rechtfertigen. Hören Sie auf, Verteidigungsmaßnahmen hinzuzufügen, wenn die verbleibenden Risiken für eine Situation akzeptabel sind. Überarbeiten Sie das Modell, wenn sich Geräte, Daten, Reisen, Arbeit oder Gegner ändern.

Beispielmodell

Die folgende Tabelle ist ein Beispiel für ein einfaches Bedrohungsmodell:

Lesen Sie mehr über Bedrohungsmodellierung.

Hardware

Apple-Silicon-Hardware bietet hardwaregestützte Sicherheitsfunktionen, einschließlich Schlüsselschutz auf Basis der Secure Enclave und strengerer Start-Sicherheitsoptionen. Sie ist im Allgemeinen die bevorzugte Plattform für die in diesem Leitfaden behandelten Schutzmaßnahmen.

Einige Intel-basierte Macs, insbesondere Modelle mit verwundbarer T2-Ära-Hardware, sind von Hardware-Schwachstellen betroffen, die durch ein macOS-Update nicht vollständig behoben werden können.

Vermeiden Sie Nicht-Apple-Hardware mit macOS und Systeme, die die neueste macOS-Version nicht unterstützen, da Apple nicht alle Schwachstellen in älteren Versionen behebt.

Apple-Zubehör erhält Firmware-Updates in der Regel über macOS und unterstützt aktuelle Bluetooth-Sicherheitsfunktionen. Beispielsweise nutzt Bluetooth Low Energy (BLE) Privacy rotierende Geräteadressen, um das Tracking zu reduzieren; Zubehör von Drittanbietern unterstützt diese Funktion möglicherweise nicht.

macOS installieren

Es gibt mehrere Möglichkeiten, macOS zu installieren.

Installieren Sie die neueste unterstützte Version von macOS; neuere Versionen von macOS enthalten Sicherheitskorrekturen und andere Verbesserungen, die in früheren Versionen nicht verfügbar sind.

Systemaktivierung

Während der Installation kontaktieren Apple-Silicon-Macs den Apple-Aktivierungsdienst, um zu bestätigen, dass das Gerät nicht als verloren oder gestohlen gemeldet wurde. Lesen Sie, wie dieser Prozess funktioniert.

Apple-Konto

Ein Apple-Konto ist für die grundlegende macOS-Nutzung optional, für den App Store und viele Apple-Dienste jedoch erforderlich. Überprüfen Sie die Datenschutzeinstellungen, bevor Sie Funktionen aktivieren.

Aktivieren Sie die Ende-zu-Ende-Verschlüsselung für iCloud und überprüfen Sie die Apple-Konto-Daten.

App Store

Der App Store ist eine Softwarevertriebsplattform, auf der Anwendungen von Apple geprüft werden.

App-Store-Anwendungen müssen App Sandbox und Hardened Runtime verwenden (Sicherheitsfunktionen, die einschränken, was Apps tun können, und einige Angriffe erschweren). Es bietet außerdem automatische Software-Updates.

Die Nutzung des App Store erfordert ein Apple-Konto, was ein Datenschutzrisiko darstellen kann.

Virtualisierung

Virtualisierung ermöglicht es einem anderen Betriebssystem, in einer isolierten virtuellen Maschine zu laufen. Auf Apple Silicon kann macOS unterstützte macOS-Gäste und Windows 11 für ARM mit Apps wie den folgenden ausführen:

  • UTM - Befolgen Sie die Dokumentation, um macOS- und andere virtuelle Maschinen zu erstellen.
  • VirtualBuddy - Anwendung zur Virtualisierung von macOS 12+ auf Apple Silicon.
  • Bushel - Eine leichte, kostenlose App. Wählen Sie beim ersten Start „App nicht zum Tracking auffordern“.
  • VMware Fusion - Jetzt kostenlos bei Broadcom. Saubere Benutzeroberfläche, einfache macOS-Einrichtung und Unterstützung für Windows 11 ARM.
  • tart (CLI) - Befehlszeilenanwendung, die mit Homebrew installiert wird.
  • Parallels - Kostenpflichtige Option mit starker Integration.

[!WARNING] VMware erfordert ein Broadcom-Konto und die Annahme von Vereinbarungen vor dem Download. Parallels erfordert ein Konto, Zahlungsdaten und andere Daten - siehe Datenschutzhinweis.

Apple-Container

Apple Container ist ein Befehlszeilenwerkzeug zum Ausführen von Linux-Containern auf macOS. Anders als Container-Laufzeiten, die eine einzelne Linux-VM gemeinsam nutzen, führt Apple Container jeden Container in einer isolierten, leichtgewichtigen virtuellen Maschine mithilfe der macOS-Virtualisierungsfunktionen aus. Dies bietet eine stärkere Isolationsgrenze zwischen Workloads und dem Host-Betriebssystem.

Erster Start

Wenn macOS zum ersten Mal startet, verlangt der Einrichtungsassistent die Erstellung eines primären Kontos.

Legen Sie ein langes und einzigartiges Passwort fest. Lassen Sie das Feld für den Passworthinweis leer.

Vermeiden Sie personenbezogene Namen: Der Computername (z. B. „John Appleseeds MacBook“) wird über lokale Netzwerke gesendet und ist für andere Geräte sichtbar.

Der Systemname kann in Systemeinstellungen > Info oder mit scutil-Befehlen konfiguriert werden:```bash sudo scutil --set ComputerName MacBook sudo scutil --set HostName MacBook sudo scutil --set LocalHostName MacBook

root@kitploit:~
# Benutzer- und Administratorkonten

Das erste erstellte Konto ist ein Administratorkonto. Administratoren können systemweite Einstellungen ändern und Befehle mit [sudo](https://en.wikipedia.org/wiki/Sudo) ausführen, das vorübergehend erhöhte Rechte gewährt. Jedes Programm, das der Administrator ausführt, könnte denselben Zugriff erhalten; sudo kann außerdem [Sicherheitslücken](https://bogner.sh/2014/03/another-mac-os-x-sudo-password-bypass/) aufweisen.

Es gilt als [bewährte Methode](https://help.apple.com/machelp/mac/10.12/index.html#/mh11389), für die reguläre tägliche Arbeit ein eigenes Standardkonto zu verwenden und das Administratorkonto nur für die Installation, Konfiguration und Aktualisierung von Software und System zu nutzen.

Es ist nicht erforderlich, sich jemals über den macOS-Anmeldebildschirm mit dem Administratorkonto anzumelden. Wenn ein Terminal-Befehl Administratorrechte erfordert, fordert das System zur Authentifizierung auf, und das Terminal verwendet diese Rechte weiter. Zu diesem Zweck bietet Apple [Empfehlungen](https://support.apple.com/102099) zum Ausblenden des Administratorkontos und seines Home-Verzeichnisses.

## Einschränkungen

- Nur Administratoren können Anwendungen im systemweiten Verzeichnis `/Applications` installieren. Finder und Installer fordern einen Standardbenutzer zur Eingabe der Anmeldedaten eines Administrators auf, wenn eine Genehmigung erforderlich ist. Einige Anwendungen können stattdessen in `~/Applications` installiert werden; Anwendungen, die keinen Admin-Zugriff erfordern, sollten im Benutzerverzeichnis installiert werden. App-Store-Anwendungen werden weiterhin in `/Applications` installiert und erfordern keine zusätzliche Authentifizierung.
- Ein Standardbenutzer ist in der Regel nicht berechtigt, `sudo` zu verwenden. Wenn Administratorrechte erforderlich sind, fordert macOS zur Eingabe der Anmeldedaten eines Administrators auf, oder die Aufgabe kann von einem Administratorkonto aus ausgeführt werden.
- Die Systemeinstellungen und mehrere Systemdienstprogramme (z. B. WLAN-Diagnose) erfordern für die volle Funktionalität Administratorberechtigungen. Einige Systemeinstellungen müssen durch Auswahl des Schloss-Symbols entsperrt werden. Manche Anwendungen fordern beim Öffnen lediglich zur Authentifizierung auf, andere müssen direkt von einem Administratorkonto aus geöffnet werden, um alle Funktionen zu nutzen (z. B. Konsole).
- Einige Drittanbieter-Anwendungen gehen davon aus, dass der aktuelle Benutzer Administrator ist, und funktionieren nicht von einem Standardkonto aus.
- Siehe [Issue 167](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/167) für weitere Überlegungen.

## Einrichtung

Konten können in den Systemeinstellungen erstellt und verwaltet werden. Bei bestehenden Systemen ist es in der Regel einfacher, ein zweites Administratorkonto zu erstellen und dann das ursprüngliche Konto von einem Administratorkonto in ein Standardkonto zu ändern. Neu installierte Systeme sollten stattdessen nach der Einrichtung ein Standardkonto hinzufügen.

Das Herabstufen eines Kontos kann über das neue Administratorkonto in den Systemeinstellungen erfolgen.

Siehe auch [diesen Beitrag](https://superuser.com/a/395738) für weitere Informationen darüber, wie macOS die Gruppenmitgliedschaft bestimmt.

# Firmware

Stellen Sie sicher, dass die Firmwaresicherheit auf [Volle Sicherheit](https://support.apple.com/guide/mac-help/mchl768f7291/mac) eingestellt ist, um Manipulationen am System zu verhindern. Dies ist die Standardeinstellung.

# FileVault

Apple-Silicon-Macs verwenden standardmäßig hardwaregestützte Speicherverschlüsselung. [FileVault](https://support.apple.com/guide/mac-help/protect-data-on-your-mac-with-filevault-mh11785/mac) erfordert zusätzlich das Passwort eines autorisierten Benutzers, um das Startvolume nach einem Neustart zu entsperren.

Bei Apple Silicon schützt die FileVault-Autorisierung auch die [Firmware](https://support.apple.com/102384), wodurch verhindert wird, dass von etwas anderem als der festgelegten Startdiskette gestartet wird, auf [Wiederherstellung](https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/15.0/mac/15.0#mchl5abfbb29) zugegriffen wird und diese mit dem Geräte-Firmware-Update-Modus (DFU) [wiederbelebt](https://support.apple.com/108900) wird.

FileVault fordert zur Festlegung eines Wiederherstellungsschlüssels auf, der bei Verwendung an einem sicheren Ort aufbewahrt werden sollte. FileVault bietet außerdem die Option, iCloud für die Wiederherstellung zu verwenden.

Bestätigen Sie den FileVault-Status:```bash
fdesetup status

Sperrmodus

Sperrmodus verringert die Angriffsfläche erheblich, indem System- und App-Funktionen deaktiviert werden, die häufig bei ausgefeilten Angriffen ausgenutzt werden.

Wenn der Sperrmodus aktiviert ist, bietet Safari die Option, vertrauenswürdige Websites von Einschränkungen auszunehmen.

Firewall

Für macOS sind verschiedene Arten von Firewalls verfügbar.

[!NOTE] Wenn Malware Administratorrechte erlangt, kann sie Firewall-Richtlinien deaktivieren oder umgehen; verlassen Sie sich nicht auf eine lokale Firewall als starken Schutz gegen eine vollständige Systemkompromittierung.

Firewall auf Anwendungsebene

Die integrierte Firewall bietet grundlegenden Schutz und blockiert nur eingehende Verbindungen. Sie kann ausgehende Verbindungen weder überwachen noch blockieren.

Sie kann über die Registerkarte Firewall im Bereich Netzwerk der Systemeinstellungen gesteuert werden oder mit dem folgenden Befehl:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

root@kitploit:~
### Stealth-Modus

Angreifer scannen häufig Netzwerke, um Zielsysteme zu identifizieren. Wenn der [Stealth-Modus](https://support.apple.com/guide/mac-help/use-stealth-mode-to-keep-your-mac-more-secure-mh17133/mac) aktiviert ist, werden auf Verbindungsversuche zu geschlossenen Ports keine Antworten gesendet, wodurch das System schwerer zu erkennen ist.

Stealth-Modus aktivieren:```bash
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on

Signierte Apps

Standardmäßig erlaubt die Firewall eingehende Verbindungen für Software, die von Apple oder einem identifizierten Entwickler signiert wurde. Das Deaktivieren dieser Regeln bewirkt, dass macOS nachfragt, bevor eine Anwendung eingehende Verbindungen akzeptieren darf:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off

root@kitploit:~
### Firewall neu laden

Nachdem Sie Einstellungen mit `socketfilterfw` geändert haben, laden Sie den Firewall-Dienst neu, um die neue Konfiguration anzuwenden:```bash
sudo pkill -HUP socketfilterfw

Status abrufen

Firewall-Status bestätigen:```bash for firewallFlag in
--getglobalstate
--getblockall
--getallowsigned
--getstealthmode
--listapps do /usr/libexec/ApplicationFirewall/socketfilterfw "$firewallFlag" done

root@kitploit:~
Oder mit [system profiler](https://ss64.com/mac/system_profiler.html):```bash
system_profiler SPFirewallDataType

AirDrop

Das Aktivieren der Firewall auf Anwendungsebene und das Deaktivieren eingehender Verbindungen für integrierte Software verhindert, dass AirDrop funktioniert. Damit AirDrop funktioniert, erteilen Sie sharingd und rapportd Firewall-Ausnahmen:```bash sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/sharingd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/rapportd sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/sharingd

root@kitploit:~
## Firewalls von Drittanbietern

Anwendungen wie [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html), [Radio Silence](https://radiosilenceapp.com/) und [LuLu](https://objective-see.com/products/lulu.html) bieten eine Balance zwischen Benutzerfreundlichkeit und Sicherheit.

Diese Programme können sowohl eingehende als auch ausgehende Verbindungen überwachen und blockieren. Allerdings erfordern sie möglicherweise eine Closed-Source-[Systemerweiterung](https://support.apple.com/HT210999).

Wenn Sie von häufigen Erlauben-oder-Blockieren-Abfragen überfordert werden, erlauben Sie Verbindungen vorübergehend und zeichnen Sie diese gleichzeitig auf ([Silent Allow mode](https://help.obdev.at/littlesnitch6/concepts-opmodes) in Little Snitch). Überprüfen Sie die Konfiguration, um die Netzwerkaktivität zu verstehen und zu kontrollieren.

## Paketfilter

macOS enthält außerdem [pf](https://en.wikipedia.org/wiki/PF_(firewall)), eine Paketfilter-Firewall, die über die Befehlszeile konfiguriert wird. Sie ist leistungsfähig, aber wesentlich komplexer als die integrierte Anwendungsfirewall.

pf kann auch mit einer grafischen Anwendung wie [Murus](https://www.murusfirewall.com/) gesteuert werden.

Viele [Bücher](https://nostarch.com/book-of-pf-4e) und [Anleitungen](https://www.openbsd.org/faq/pf/) befassen sich mit der pf-Firewall. Das folgende Beispiel zeigt, wie eine grundlegende Richtlinie konfiguriert wird.

### Beispiel einer pf-Konfiguration

Fügen Sie die folgenden Regeln zu einer Datei namens `pf.rules` hinzu:```console
# Define interface
wifi = "en0"

# Global options
set block-policy drop
set skip on lo0
set state-policy if-bound
set ruleset-optimization basic

# Normalize
scrub in on $wifi all fragment reassemble

# Define tables
table <blocklist> persist

# Deny and log blocked traffic
block log all
block quick from no-route to any
antispoof quick for $wifi

# Enforce blocklist
block log quick on $wifi from <blocklist> to any
block log quick on $wifi from any to <blocklist>

# Allow DHCP
pass out on $wifi proto udp from any port 68 to any port 67 keep state
pass in  on $wifi proto udp from any port 67 to any port 68 keep state

# Allow outbound TCP
pass out on $wifi proto tcp from ($wifi) to any flags S/SA keep state

# Allow outbound UDP
pass out on $wifi proto udp from ($wifi) to any keep state

# Allow outbound ICMP (ping)
pass out on $wifi proto icmp from ($wifi) to any keep state

Ein fortgeschrittenes Beispiel für die Konfiguration von pf ist in pf/pf.rules verfügbar.

Firewall-Befehle

Um die Firewall zu steuern:

BefehlAufgabe
sudo pfctl -e -f pf.rulesFirewall mit Konfigurationsdatei aktivieren
sudo pfctl -t blocklist -T add 1.2.3.4IPv4-Adresse zur Blocklist-Tabelle hinzufügen
sudo pfctl -dFirewall deaktivieren

Um die Firewall zu überwachen:

Netzwerke blockieren

pf kann Bereiche von Netzwerkadressen blockieren, beispielsweise für eine gesamte Organisation. Fragen Sie Merit RADb nach der Liste der Netzwerke, die von einem autonomen System (einem großen Netzwerk, das von einer einzelnen Organisation betrieben wird) genutzt werden, wie zum Beispiel Facebook:```bash whois -h whois.radb.net '!gAS32934'

root@kitploit:~
Fügen Sie die zurückgegebene Liste der Netzwerke zur Blocklist hinzu:```bash
sudo pfctl -t blocklist -T add $(whois -h whois.radb.net '!gAS32934' | sed -n '2p')

Bestätigen Sie, dass die Adressen hinzugefügt wurden:```console $ sudo pfctl -t blocklist -T show No ALTQ support in kernel ALTQ related functions disabled 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16 ...

root@kitploit:~
Bestätigen Sie, dass der Netzwerkverkehr zu diesen Adressen blockiert ist (DNS-Anfragen funktionieren weiterhin):```console
$ dig a +short facebook.com
157.240.2.35

$ curl --connect-timeout 5 -I https://facebook.com/
*   Trying 157.240.2.35...
* TCP_NODELAY set
* Connection timed out after 5002 milliseconds
* Closing connection 0
curl: (28) Connection timed out after 5002 milliseconds

$ sudo tcpdump -tqni pflog0 'host 157.240.2.35'
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.443: tcp 0

Die Firewall verwirft die anfänglichen Pakete, die zum Starten der TCP-Verbindung benötigt werden, sodass die Verbindung eine Zeitüberschreitung erleidet.

Siehe drduh/config/scripts/pf-blocklist.sh für weitere Inspiration.

Dienste

Viele System- und Benutzer-Hintergrunddienste werden von launchd verwaltet.

Administratorkonten können Dienste und Erweiterungen in den Systemeinstellungen ändern.

So liest du eine Dienstkonfiguration:```bash defaults read /System/Library/LaunchAgents/com.apple.Finder

root@kitploit:~
> [!IMPORTANT]
> Systemdienste sind durch [SIP](https://github.com/drduh/macOS-Security-and-Privacy-Guide#system-integrity-protection) geschützt; das Deaktivieren von SIP zum Ändern von Systemdiensten kann die Sicherheit beeinträchtigen und Systeminstabilität verursachen.

Zum Anzeigen des Status der Dienste:```bash
find /var/db/com.apple.xpc.launchd \
  -type f -print -exec defaults read {} \; 2>/dev/null

Weitere Informationen finden Sie unter Skriptverwaltung mit launchd und launchd.info.

Siri-Vorschläge und Spotlight

Siri-Vorschläge und Spotlight können je nach aktivierten Funktionen einige Suchanfragen oder Nutzungsinformationen an Apple senden. Suchen Sie in den Systemeinstellungen nach „Siri und Spotlight“, deaktivieren Sie dann Online-Vorschläge und konfigurieren Sie Kategorien, die von der Indizierung oder Vorschlagsfunktion ausgeschlossen werden sollen. Weitere Informationen finden Sie in der Datenschutzrichtlinie Suche & Datenschutz von Apple.

Homebrew

Wenn ein Programm nicht über den App Store verfügbar ist, ziehen Sie Homebrew in Betracht.

[!IMPORTANT] Einige Homebrew-Installations- oder -Verwaltungsworkflows können zur Eingabeaufforderung für „App-Verwaltung“ oder Voller Festplattenzugriff führen. Erteilen Sie diese Berechtigungen nur, wenn Sie sie vollständig verstehen und sie notwendig sind.

Führen Sie in vertrauenswürdigen und sicheren Netzwerken regelmäßig brew upgrade aus, um Software-Updates zu installieren. Um Informationen zu einem Paket vor der Installation zu erhalten, führen Sie brew info <package> aus und überprüfen Sie dessen Formel online. Aktivieren Sie zusätzliche Sicherheitsoptionen, wie z. B. HOMEBREW_NO_INSECURE_REDIRECT=1

Laut den anonymen Analysen von Homebrew erhebt Homebrew anonyme Nutzungsdaten und meldet sie an eine selbst gehostete InfluxDB-Instanz.

Um die Homebrew-Analysen abzulehnen, führen Sie brew analytics off aus oder setzen Sie HOMEBREW_NO_ANALYTICS=1 in der Shell-Startdatei.

DNS

DNS-Profile

macOS bietet „DNS-Konfigurationsprofile“ zur Konfiguration von verschlüsseltem DNS, Filterung und DNSSEC.

DNS-Profile können erstellt oder von Anbietern wie Quad9, AdGuard und NextDNS bezogen werden.

Hosts-Datei

Verwenden Sie die Hosts-Datei, um Domains zu blockieren, die mit Malware, Werbung und anderen unerwünschten Diensten in Verbindung stehen.

Um eine Domain über einen A-Record zu blockieren, fügen Sie eine der folgenden Zeilen an /etc/hosts an:``` 0 example.com 0.0.0.0 example.com 127.0.0.1 example.com

root@kitploit:~
> [!NOTE]
> IPv6 verwendet AAAA-Records anstelle von A-Records: Blockieren Sie IPv6-Verbindungen, indem Sie `::1 example.com`-Einträge aufnehmen.

Viele Domain-Listen sind online verfügbar. Bevor Sie eine an `/etc/hosts` anhängen, stellen Sie sicher, dass jeder Eintrag mit `0`, `0.0.0.0` oder `127.0.0.1` beginnt, und behalten Sie den Eintrag `127.0.0.1 localhost` bei.

Beliebte Hosts-Listen sind:
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts)
- [Sinfonietta/hostfiles](https://github.com/Sinfonietta/hostfiles)
- [someonewhocares.org](https://someonewhocares.org/hosts/zero/hosts)

Um eine Liste herunterzuladen und an die Hosts-Datei anzuhängen, verwenden Sie den Befehl [tee](https://man7.org/linux/man-pages/man1/tee.1.html):```bash
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
  sudo tee -a /etc/hosts

Little Snitch unterstützt auch Blocklisten.

DNSCrypt

Um DNS-Verkehr zu verschlüsseln, erwäge DNSCrypt/dnscrypt-proxy. Wenn es mit einem vertrauenswürdigen Resolver konfiguriert wird, verschlüsselt DNSCrypt DNS-Abfragen. DNSSEC kann zusätzlich signierte DNS-Antworten validieren, sofern unterstützt.

Installiere DNSCrypt über Homebrew und folge den Anweisungen, um dnscrypt-proxy zu konfigurieren und zu starten:```bash brew install dnscrypt-proxy

root@kitploit:~
Wenn Sie DNSCrypt mit Dnsmasq verwenden, finden Sie die DNSCrypt-Konfigurationsdatei, indem Sie Folgendes ausführen:```bash
brew info dnscrypt-proxy | grep dnscrypt-proxy.toml | head -1

Dieser Befehl sollte einen Pfad wie /opt/homebrew/etc/dnscrypt-proxy.toml anzeigen.

Standardmäßig lauscht dnscrypt-proxy auf 127.0.0.1:53 und sendet Abfragen an einen oder mehrere konfigurierte DNS-Anbieter. Ändern Sie die Konfiguration und setzen Sie listen_addresses auf einen anderen Port als 53, z. B. 5355:```toml listen_addresses = ['127.0.0.1:5355', '[::1]:5355']

root@kitploit:~
DNSCrypt starten:```bash
sudo brew services restart dnscrypt-proxy

Bestätigen, dass DNSCrypt läuft:```console $ sudo lsof +c 15 -Pni UDP:5355 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dnscrypt-proxy 15244 nobody 7u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 10u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355 dnscrypt-proxy 15244 nobody 12u IPv4 0x1337f85ff9f8beef 0t0 UDP 127.0.0.1:5355 dnscrypt-proxy 15244 nobody 14u IPv6 0x1337f85ff9f8beef 0t0 UDP [::1]:5355

root@kitploit:~
Darüber hinaus blockieren diese pf-Regeln den herkömmlichen DNS-Verkehr zu Port 53 außerhalb der Loopback-Schnittstelle, um das Risiko von [DNS-Leaks](https://dnsleaktest.com/) zu reduzieren:```console
block drop quick on !lo0 proto udp from any to any port = 53
block drop quick on !lo0 proto tcp from any to any port = 53

Dnsmasq

dnsmasq kann Antworten zwischenspeichern, Upstream-Anfragen für unqualifizierte Namen verhindern und ganze Top-Level-Domains blockieren.

Verwenden Sie es in Kombination mit DNSCrypt, um den DNS-Verkehr zu verschlüsseln.

Wenn Sie DNSCrypt nicht verwenden, wählen Sie mindestens einen DNS-Resolver, der nicht vom ISP bereitgestellt wird. Zwei beliebte Alternativen sind Google DNS und OpenDNS.

Dnsmasq installieren:```bash brew install dnsmasq

root@kitploit:~
Laden Sie [drduh/config/dnsmasq.conf](https://github.com/drduh/config/blob/main/dnsmasq.conf) herunter und bearbeiten Sie es oder die Standardkonfigurationsdatei.

Siehe [drduh/config/domains](https://github.com/drduh/config/tree/main/domains) für Beispieldomänenlisten, die hinzugefügt werden können, um bestimmte Ziele zu blockieren.

Installieren und starten Sie das Programm (sudo ist erforderlich, um an den [privilegierten Port](https://unix.stackexchange.com/questions/16564/why-are-the-first-1024-ports-restricted-to-the-root-user-only) 53 zu binden):```bash
sudo brew services start dnsmasq

Um dnsmasq als lokalen DNS-Server festzulegen, öffne Systemeinstellungen > Netzwerk und wähle die aktuell verwendete Netzwerkverbindung (z. B. Wi-Fi) aus, öffne dann den Tab DNS, wähle + und füge 127.0.0.1 hinzu, oder verwende:```bash sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1

root@kitploit:~
Bestätigen Sie, dass Dnsmasq konfiguriert ist:```console
$ scutil --dns | head
DNS configuration

resolver #1
  search domain[0] : whatever
  nameserver[0] : 127.0.0.1
  flags    : Request A records, Request AAAA records
  reach    : 0x00030002 (Reachable,Local Address,Directly Reachable Address)

$ networksetup -getdnsservers "Wi-Fi"
127.0.0.1

[!NOTE] Einige VPN-Anwendungen überschreiben beim Verbinden die DNS-Einstellungen. Siehe issue 24 und drduh/config/scripts/macos-dns.sh.

Zertifizierungsstellen

macOS enthält einen Satz vertrauenswürdiger Root-Zertifizierungsstellen (CAs), die von Unternehmen, Regierungen und anderen Organisationen aus der ganzen Welt betrieben werden. Eine vertrauenswürdige CA kann Zertifikate ausstellen, die macOS und Browser für HTTPS-Verbindungen akzeptieren können, was den Root-CA-Speicher zu einem kritischen Teil der Vertrauensgrenze des Systems macht.

Untersuchen Sie System Roots, um den von Apple bereitgestellten vertrauenswürdigen Root-Zertifikatsspeicher zu verstehen, mithilfe von Keychain Access oder des Befehlszeilenwerkzeugs security und der Datei /System/Library/Keychains/SystemRootCertificates.keychain. Keychain Access kann auch mit dem folgenden Befehl gestartet werden:```bash open "/System/Library/CoreServices/Applications/Keychain Access.app"

root@kitploit:~
Überprüfen Sie auch alle Zertifikate, die von einem Benutzer, Administrator, VPN-Client, Sicherheitsprodukt oder einer Mobile-Device-Management-Anwendung in den Schlüsselbunden **login**, **Local Items** und **System** hinzugefügt wurden.

Um ein ausgewähltes Zertifikat zu deaktivieren, ändern Sie seine Vertrauenseinstellung auf **Never Trust** und schließen Sie das Fenster zur Bestätigung. Dadurch kann das Risiko von [MITM](https://wikipedia.org/wiki/Man-in-the-middle_attack)-Angriffen verringert werden, bei denen ein gefälschtes Zertifikat verwendet wird, um verschlüsselten Datenverkehr [unbemerkt abzufangen](https://en.wikipedia.org/wiki/DigiNotar#Issuance_of_fraudulent_certificates).

> [!WARNING]
> Das Entfernen oder Ändern von Vertrauenseinstellungen für Zertifizierungsstellen kann Websites, Software-Updates, Unternehmensnetzwerke, VPNs, Captive Portale und andere Dienste beeinträchtigen.

Siehe Apples Listen zu [verfügbaren vertrauenswürdigen Zertifikaten](https://support.apple.com/103723) und [blockierten Zertifikaten](https://support.apple.com/103247#blocked) für aktuelle Informationen zum Trust-Store.

# Privoxy

Ziehen Sie in Betracht, [Privoxy](https://www.privoxy.org/) als lokalen Proxy zu verwenden, um Webverkehr zu filtern.

Installieren und starten Sie Privoxy mit Homebrew:```bash
brew install privoxy
brew services start privoxy

Alternativ ist ein signiertes Installationspaket für Privoxy von ihrer Website oder Sourceforge erhältlich. Das signierte Paket ist sicherer als die Homebrew-Version und wird vom Privoxy-Projekt unterstützt.

Standardmäßig lauscht Privoxy auf dem lokalen TCP-Port 8118.

Setzen Sie den HTTP-Proxy des Systems für die aktive Netzwerkschnittstelle auf 127.0.0.1 und Port 8118:```bash sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118

root@kitploit:~
Legen Sie den System-**HTTPS**-Proxy fest:```bash
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118

Der Proxy kann auch unter Systemeinstellungen > Netzwerk > Details > Proxys eingerichtet werden.

Bestätigen Sie, dass der Proxy eingerichtet ist:```console $ scutil --proxy { ExceptionsList : { 0 : *.local 1 : 169.254/16 } FTPPassive : 1 HTTPEnable : 1 HTTPPort : 8118 HTTPProxy : 127.0.0.1 HTTPSEnable : 1 HTTPSPort : 8118 HTTPSProxy : 127.0.0.1 }

root@kitploit:~
Obwohl der meiste Webverkehr verschlüsselt ist, kann Privoxy Anfragen anhand des Hostnamens filtern. Beispielsweise blockieren die folgenden Regeln den gesamten Verkehr außer Verkehr zu .net-, github.com- und Apple-Domains:```console
{ +block{all} }
.

{ -block }
.apple.
.github.com
.net

Um Facebook-Domains zu blockieren:```console { +block{facebook} } .cdninstagram. .facebook*. .fb. .fbcdn*. .fbinfra. .fbsbx. .fbstatic*. .fbsv. .fburl. .instagr.am .tfbnw. .thefacebook. fb*.akamaihd.net

root@kitploit:~
Siehe [drduh/config/privoxy/config](https://github.com/drduh/config/blob/main/privoxy/config) und [drduh/config/privoxy/user.action](https://github.com/drduh/config/blob/main/privoxy/user.action) für weitere Privoxy-Beispiele. Privoxy muss **nicht** neu gestartet werden, nachdem Filterregeln bearbeitet wurden.

Um zu überprüfen, ob Datenverkehr blockiert oder umgeleitet wird, verwenden Sie [curl](https://en.wikipedia.org/wiki/CURL) oder öffnen Sie die Privoxy-Schnittstelle unter <http://p.p> in einem Browser:```console
$ ALL_PROXY=127.0.0.1:8118 curl example.com -IL | head
HTTP/1.1 403 Request blocked by Privoxy
Content-Length: 9001
Content-Type: text/html
Cache-Control: no-cache
Pragma: no-cache

$ ALL_PROXY=127.0.0.1:8118 curl github.com -IL | head
HTTP/1.1 302 Local Redirect from Privoxy
Location: https://github.com/
Content-Length: 0

HTTP/1.1 200 Connection established

HTTP/2 200
content-type: text/html; charset=utf-8

[!NOTE] Anwendungen und Dienste können die Proxy-Einstellungen ignorieren. pf kann den Datenverkehr über einen Proxy umleiten, ohne jede Anwendung separat zu konfigurieren.

Browser

Webbrowser bergen erhebliche Sicherheits- und Datenschutzrisiken, da sie nicht vertrauenswürdige Internetinhalte herunterladen und ausführen.

Eine zentrale Sicherheitsgrenze des Browsers ist die Same-Origin-Policy (SOP), die verhindert, dass eine Website Daten einer anderen Website lesen kann. Eine Umgehung kann Daten oder Aktionen anderer Websites im selben Browserprofil offenlegen.

Manche Browserangriffe beruhen darauf, den Benutzer dazu zu bringen, Software zu installieren, Berechtigungen zu erteilen oder eine bösartige Erweiterung zu verwenden. Seien Sie besonders vorsichtig bei unerwarteten Downloads, Erweiterungsaufforderungen und Aufforderungen, Befehle im Terminal auszuführen.

Browsererweiterungen stellen ebenfalls ein erhebliches Sicherheitsrisiko dar: Eine bösartige oder schlecht gemachte Erweiterung kann alles im Browser gefährden, einschließlich Anmeldedaten. Die Verwendung von Browsererweiterungen sollte auf unbedingt notwendige Erweiterungen beschränkt werden, die nur von vertrauenswürdigen Entwicklern veröffentlicht wurden.

Verwenden Sie separate Browserprofile für verschiedene Identitäten und Zwecke. Falls praktikabel, deaktivieren Sie JavaScript und erlauben Sie es nur auf vertrauenswürdigen Websites über die Website-Berechtigungen des Browsers.

Mozilla Firefox, Google Chrome, Safari und Tor Browser sind beliebte Browser, jeder mit einzigartigen Funktionen und individuellen Zwecken.

Firefox

Firefox hat große Teile seiner Codebasis durch die Quantum- und Photon-Projekte modernisiert. Quantum umfasst die Verlagerung einiger Komponenten von C++ zu Rust, einer Programmiersprache, die entwickelt wurde, um Speichersicherheit und Nebenläufigkeitssicherheit zu verbessern.

Firefox bietet ein mit Chrome vergleichbares Sicherheitsmodell, einschließlich eines Bug-Bounty-Programms für die verantwortungsvolle Offenlegung von Schwachstellen. Firefox folgt einem vierwöchigen Veröffentlichungszyklus.

Siehe drduh/config/firefox.user.js und arkenfox/user.js für empfohlene Konfigurationen. Siehe auch NoScript, eine Erweiterung, die selektives Blockieren von Skripten ermöglicht.

Firefox konzentriert sich auf den Datenschutz der Benutzer. Er unterstützt Tracking-Schutz im privaten Modus. Der Tracking-Schutz kann für das Standardkonto aktiviert werden, obwohl er das Browsing-Erlebnis auf einigen Websites beeinträchtigen kann. Firefox im strengen Modus für Tracking-Schutz randomisiert Fingerabdrücke, um sich gegen Tracking zu verteidigen. Firefox bietet separate Benutzerprofile. Das Browsen kann auch mit Multi-Account-Containern abgegrenzt werden.

Firefox unterstützt Web-Erweiterungen nur über die WebExtension-API, die Chrome sehr ähnlich ist. Die Einreichung von Web-Erweiterungen in Firefox ist kostenlos. Web-Erweiterungen in Firefox sind größtenteils Open Source, obwohl bestimmte Web-Erweiterungen proprietär sind.

Chrome

Google Chrome basiert auf dem Open-Source-Projekt Chromium. Chrome enthält einige proprietäre Komponenten, automatische Updates, einen PDF-Viewer, Medien-Codec-Unterstützung, Absturzberichte und die Integration des Google-Kontos. Weitere Informationen finden Sie in den Datenschutzeinstellungen von Chrome und den Datenschutzrichtlinien von Google.

Chrome bietet eine Kontosynchronisierung zwischen mehreren Geräten, einschließlich Anmeldedaten; die Daten werden mit dem Kontopasswort verschlüsselt.

Chrome hat den größten Anteil an der weltweiten Nutzung und ist die bevorzugte Zielplattform für die meisten Entwickler. Wichtige Technologien basieren auf den Open-Source-Komponenten von Chrome, wie node.js, das die V8-Engine von Chrome verwendet, und das Electron-Framework, das auf Chromium und node.js basiert. Die große Nutzerbasis von Chrome macht es zum attraktivsten Ziel für Bedrohungsakteure und Sicherheitsforscher. Trotz ständiger Angriffe hat Chrome im Laufe der Jahre eine beeindruckende Sicherheitsbilanz bewahrt. Das ist keine kleine Leistung.

Chrome bietet separate Profile, robustes Sandboxing, häufige Updates und weist beeindruckende Referenzen auf. Darüber hinaus bietet Google ein sehr lukratives Bug-Bounty-Programm für die Meldung von Schwachstellen sowie ein eigenes Project-Zero-Team. Das bedeutet, dass eine große Anzahl hochtalentierter und motivierter Personen den Chrome-Code ständig prüft und absichert.

Ziehen Sie in Betracht, die V8-Optimierung (Leistungsmerkmale der JavaScript-Engine) in den Browsereinstellungen zu deaktivieren – siehe diese Erklärung für die Sicherheitsabwägungen.

Blockieren Sie Tracker mit uBlock Origin Lite.

Deaktivieren Sie das DNS-Prefetching (siehe DNS Prefetching and Its Privacy Implications). Chrome versucht möglicherweise, DNS mithilfe der öffentlichen Nameserver 8.8.8.8 und 8.8.4.4 von Google aufzulösen.

Weitere Informationen finden Sie unter Chromium Security und Chromium Privacy. Lesen Sie die Datenschutzrichtlinie von Google, um zu verstehen, wie personenbezogene Daten erfasst und verwendet werden.

Safari

Safari ist der integrierte Browser von Apple und in macOS integriert, was Verbesserungen der Akkulaufzeit auf Apple-Hardware bietet.

Safari besitzt sowohl Open-Source- als auch proprietäre Komponenten. Safari basiert auf der Open-Source-Web-Engine WebKit, die im macOS-Ökosystem allgegenwärtig ist. WebKit wird von Apple-Apps wie Mail, Bücher und dem App Store verwendet. Die Blink-Engine von Chrome ist ein Fork von WebKit, und beide Engines weisen eine Reihe von Ähnlichkeiten auf.

Safari unterstützt bestimmte einzigartige Funktionen, die der Sicherheit und Privatsphäre der Benutzer zugute kommen. Content Blocker ermöglichen die Erstellung von Regeln zur Blockierung von Inhalten ohne Verwendung von JavaScript. Dieser regelbasierte Ansatz verbessert Speichernutzung, Sicherheit und Privatsphäre erheblich. Safari 11 führte Intelligent Tracking Prevention ein, die in Safari gespeicherte Tracking-Daten entfernt, nachdem der Benutzer eine Zeit lang nicht mit der Website des Trackers interagiert hat. Safari kann den Browser-Fingerprint randomisieren, um Tracking zu reduzieren. Safari unterstützt bestimmte Funktionen wie WebUSB oder die Battery API aus Sicherheits- und Datenschutzgründen bewusst nicht. Private Tabs in Safari haben isolierte Cookies und einen Cache, der beim Schließen des Tabs zerstört wird. Safari unterstützt auch Profile, die den Multi-Account-Containern von Firefox entsprechen, um Cookies und Browsing zu trennen. Safari kann durch den Lockdown-Modus, der pro Website deaktiviert werden kann, erheblich sicherer gemacht werden. Lesen Sie mehr über Tracking-Schutz in Safari.

Web-Erweiterungen in Safari haben zusätzlich zu den WebExtension-APIs die Option, nativen Code in der Sandbox-Umgebung von Safari zu verwenden. Web-Erweiterungen in Safari werden auch über den Apple App Store vertrieben. Die Einreichung im App Store bringt den zusätzlichen Vorteil, dass der Code der Web-Erweiterungen von Apple geprüft wird. Andererseits ist die Einreichung im App Store mit hohen Kosten verbunden. Die jährliche Entwickler-Abo-Gebühr kostet 100 USD (im Gegensatz zu Chromes Gebühr von 5 USD und der kostenlosen Einreichung bei Firefox). Die hohen Kosten sind für die Mehrheit der Open-Source-Entwickler unerschwinglich. Infolgedessen hat Safari nur sehr wenige Erweiterungen zur Auswahl. Denken Sie jedoch an die hohen Kosten, wenn Sie Erweiterungen installieren. Es ist zu erwarten, dass die meisten Web-Erweiterungen eine Möglichkeit haben, die Nutzung zu monetarisieren, um die Entwicklungskosten zu decken. Vermeiden Sie Web-Erweiterungen ohne verfügbaren Open-Source-Code zur Überprüfung.

Safari synchronisiert Benutzereinstellungen und Passwörter mit dem iCloud-Schlüsselbund. Zum Anzeigen eines gespeicherten Passworts ist eine Authentifizierung mit dem aktuellen Gerätekonto-Passwort oder einer anderen konfigurierten Authentifizierungsmethode erforderlich.

Safari implementiert neue Web-Funktionen langsamer als Chrome oder Firefox, aber Sicherheitsupdates werden umgehend über Systemupdates bereitgestellt.

Siehe auch el1t/uBlock-Safari zum Deaktivieren von Hyperlink-Auditing-Beacons.

Web browser privacy

Websites leiten Informationen über den Browser und das Gerät aus Einstellungen, Schriftarten, Bildschirmgröße, Sprache, IP-Adresse und Browserverhalten ab. Diese Informationen tragen zum Browser-Fingerprinting bei.

Weitere Informationen über sicherheitsbewusstes Browsen und darüber, welche Daten der Browser sendet, finden Sie in den Ressourcen HowTo: Privacy & Security Conscious Browsing, browserleaks.com, Am I Unique? und EFF Cover Your Tracks.

Um Cross-Site-Tracking zu reduzieren, blockieren Sie Drittanbieter-Cookies.

Beachten Sie auch WebRTC, das lokale oder öffentliche (falls mit einem VPN verbunden) IP-Adresse(n) preisgeben kann. In Firefox und Chrome/Chromium kann diese Funktion mit uBlock Origin deaktiviert werden. Der Lockdown-Modus deaktiviert WebRTC in Safari ebenfalls.

Tor

Tor ist ein Anonymitätsnetzwerk, das beim Browsen zusätzliche Privatsphäre bieten kann. Der Tor Browser ist ein modifizierter, auf Firefox basierender Browser, der für die Nutzung des Tor-Netzwerks konfiguriert ist.

Laden Sie den Tor Browser vom Tor Project herunter, sowohl dmg- als auch asc-Dateien zur Überprüfung:```console $ cd ~/Downloads

$ file tor-browser-macos-* tor-browser-macos-15.0.17.dmg: XZ compressed data, checksum NONE tor-browser-macos-15.0.17.dmg.asc: PGP signature Signature (old)

$ gpg --verify tor-browser-macos-*.asc [...] gpg: Can't check signature: No public key

$ gpg --auto-key-locate nodefault,wkd --locate-keys [email protected] gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) [email protected]" imported gpg: Total number processed: 1 gpg: imported: 1 pub rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2027-07-15] Key fingerprint = EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 uid [ unknown] Tor Browser Developers (signing key) [email protected] sub rsa4096/0x157432CF78A65729 2024-07-15 [S] [expires: 2026-10-26] Key fingerprint = CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

$ gpg --verify tor-browser-macos-*.asc gpg: assuming signed data in 'tor-browser-macos-15.0.17.dmg' gpg: Signature made Sun Jun 28 15:35:20 2026 PDT gpg: using RSA key CAAE408AEBE2288E96FC5D5E157432CF78A65729 gpg: Good signature from "Tor Browser Developers (signing key) [email protected]" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290 Subkey fingerprint: CAAE 408A EBE2 288E 96FC 5D5E 1574 32CF 78A6 5729

root@kitploit:~
Stelle sicher, dass `Good signature from "Tor Browser Developers (signing key) <[email protected]>"` in der Ausgabe erscheint. Die Warnung ist zu erwarten, da der Schlüssel nicht persönlich verifiziert und zu einem vertrauenswürdigen Schlüsselbund hinzugefügt wurde.

Siehe [Wie kann ich die Signatur des Tor Browsers überprüfen?](https://support.torproject.org/tbb/how-to-verify-signature/) für weitere Informationen.

Um die Installation des Tor Browsers abzuschließen, öffne das Datenträgerabbild und ziehe es in den Ordner „Programme“, oder verwende die folgenden Befehle:```bash
hdiutil mount tor-browser-macos-15.0.17.dmg
cp -r /Volumes/Tor\ Browser/Tor\ Browser.app/ ~/Applications/

Verifizieren Sie, dass die Anwendung von der Apple Developer ID des Tor-Projekts signiert wurde (MADPSAYN6T):```console $ spctl --assess -vv ~/Applications/Tor\ Browser.app /Users/user1/Applications/Tor Browser.app: accepted source=Notarized Developer ID origin=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)

$ pkgutil --check-signature ~/Applications/Tor\ Browser.app Package "Tor Browser.app": Status: signed by a certificate trusted by macOS Certificate Chain: 1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T) Expires: 2028-10-11 17:57:46 +0000 SHA256 Fingerprint: 76 3C 89 02 ED CB AD 8E 59 86 1E 93 D3 05 5B 28 F9 04 0C 96 03 8B 16 28 9F 38 64 ED 53 45 B4 DA ------------------------------------------------------------------------ 2. Developer ID Certification Authority Expires: 2031-09-17 00:00:00 +0000 SHA256 Fingerprint: F1 6C D3 C5 4C 7F 83 CE A4 BF 1A 3E 6A 08 19 C8 AA A8 E4 A1 52 8F D1 44 71 5F 35 06 43 D2 DF 3A ------------------------------------------------------------------------ 3. Apple Root CA Expires: 2035-02-09 21:40:36 +0000 SHA256 Fingerprint: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

root@kitploit:~
Der Befehl `codesign` kann auch verwendet werden, um die Codesignatur einer Anwendung zu untersuchen:```console
$ codesign -dvv ~/Applications/Tor\ Browser.app
Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=805 flags=0x10000(runtime) hashes=14+7 location=embedded
Signature size=9054
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Jun 28, 2026 at 14:01:57
Notarization Ticket=stapled
Info.plist entries=27
TeamIdentifier=MADPSAYN6T
Runtime Version=15.5.0
Sealed Resources version=2 rules=13 files=208
Internal requirements count=1 size=188

Um die vollständigen Zertifikatsdetails einer signierten Anwendung anzuzeigen, extrahieren Sie mit codesign und dekodieren Sie mit openssl:```console $ codesign -d --extract-certificates ~/Applications/Tor\ Browser.app Executable=/Users/user1/Applications/Tor Browser.app/Contents/MacOS/firefox

$ file codesign* codesign0: Certificate, Version=3 codesign1: Certificate, Version=3 codesign2: Certificate, Version=3 Certificate, Version=02

$ openssl x509 -inform der -in codesign0 -subject -issuer -startdate -enddate -noout subject= /UID=MADPSAYN6T/CN=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)/OU=MADPSAYN6T/O=The Tor Project, Inc/C=US issuer= /CN=Developer ID Certification Authority/OU=G2/O=Apple Inc./C=US notBefore=Oct 11 17:57:47 2023 GMT notAfter=Oct 11 17:57:46 2028 GMT

$ openssl x509 -inform der -in codesign0 -fingerprint -noout SHA256 Fingerprint=76:3C:89:02:ED:CB:AD:8E:59:86:1E:93:D3:05:5B:28:F9:04:0C:96:03:8B:16:28:9F:38:64:ED:53:45:B4:DA

root@kitploit:~
Tor Browser kann spezielle Verbindungsmethoden namens [Pluggable Transports](https://support.torproject.org/tor-browser/circumvention/) verwenden, um Datenverkehr schwerer erkennbar oder blockierbar zu machen. Dies kann durch die Einrichtung eines [Relays](https://support.torproject.org/relays/) oder die Nutzung einer bestehenden [Brücke](https://bridges.torproject.org/) erreicht werden.

Das Tor-Netzwerk bietet [Anonymität](https://www.privateinternetaccess.com/blog/2013/10/how-does-privacy-differ-from-anonymity-and-why-are-both-important/), was nicht unbedingt dasselbe wie Privatsphäre ist. Das Netzwerk verteidigt nicht gegen einen globalen Beobachter, der in der Lage ist, Verkehrsanalyse und Korrelation durchzuführen. Siehe auch [Seeking Anonymity in an Internet Panopticon](https://bford.info/pub/net/panopticon-cacm.pdf) und [Traffic Correlation on Tor by Realistic Adversaries](https://www.ohmygodel.com/publications/usersrouted-ccs13.pdf).

Weitere Informationen finden Sie in der [Tor Protocol Specification](https://spec.torproject.org/tor-spec/).

Siehe auch [Invisible Internet Project (I2P)](https://geti2p.net/en/about/intro) und seinen [Tor-Vergleich](https://geti2p.net/en/comparison/tor).

# VPN

Wählen Sie einen VPN-Anbieter oder ein selbst gehostetes Setup mit einem dokumentierten, modernen Protokoll und gut geprüften Clients. Vermeiden Sie veraltete Protokolle wie [PPTP](https://en.wikipedia.org/wiki/Point-to-Point_Tunneling_Protocol#Security) zugunsten von [OpenVPN](https://en.wikipedia.org/wiki/OpenVPN) oder [WireGuard](https://www.wireguard.com/) [auf einer Linux-VM](https://github.com/mrash/Wireguard-macOS-LinuxVM) oder über eine Reihe von [plattformübergreifenden Tools](https://www.wireguard.com/xplatform/).

Einige VPN-Clients senden möglicherweise Datenverkehr über die nächste verfügbare Netzwerkschnittstelle, wenn die Verbindung unterbrochen oder getrennt wird. Siehe [scy/8122924](https://gist.github.com/scy/8122924) für ein Beispiel, wie Sie Datenverkehr nur über VPN zulassen können.

Siehe Anleitungen zum Einrichten eines [IPsec](https://en.wikipedia.org/wiki/Ipsec) VPN auf einer virtuellen Maschine ([hwdsl2/setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)) oder in einem Docker-Container ([hwdsl2/docker-ipsec-vpn-server](https://github.com/hwdsl2/docker-ipsec-vpn-server)).

Es kann sich lohnen, den geografischen Standort des VPN-Anbieters zu berücksichtigen. Siehe weitere Diskussion in [Issue 114](https://github.com/drduh/macOS-Security-and-Privacy-Guide/issues/114).

Siehe auch diese [technische Übersicht](https://blog.timac.org/2018/0717-macos-vpn-architecture/) der integrierten macOS-VPN-L2TP/IPsec- und [IKEv2](https://en.wikipedia.org/wiki/IKEv2)-Clients.

# PGP/GPG

PGP ist ein Standard zum Verschlüsseln und Signieren von Daten, insbesondere von E-Mails. Er kann den Inhalt von Nachrichten zwischen Korrespondenten schützen, die Schlüssel korrekt austauschen und verifizieren, schützt jedoch keine Metadaten wie E-Mail-Empfänger und Betreffzeilen.

GPG (GNU Privacy Guard) ist ein unter der GPL lizenziertes Open-Source-Programm, das die PGP-Standards erfüllt. Es kann Softwaresignaturen verifizieren und Dateien [symmetrisch](https://en.wikipedia.org/wiki/Symmetric-key_algorithm) oder mit [öffentlichen Schlüsseln](https://en.wikipedia.org/wiki/Public-key_cryptography) verschlüsseln.

Installieren Sie GnuPG mit Homebrew (`brew install gnupg`) oder installieren Sie [GPG Suite](https://gpgtools.org/).

Laden Sie [gpg.conf](https://github.com/drduh/YubiKey-Guide/blob/main/config/gpg.conf) herunter, um die empfohlenen Einstellungen zu verwenden:```bash
curl -o ~/.gnupg/gpg.conf \
  https://raw.githubusercontent.com/drduh/YubiKey-Guide/main/config/gpg.conf

Siehe drduh/YubiKey-Guide, um Anmeldedaten zu generieren und zu verwalten.

E-Mail

E-Mail ist nicht dafür ausgelegt, standardmäßig einen starken Datenschutz zu bieten: Nachrichteninhalte können von Dienstanbietern gespeichert, in die Postfächer der Empfänger kopiert, weitergeleitet oder durch Kompromittierung von Konten offengelegt werden. Metadaten (einschließlich Empfänger, Betreff, Zeitstempel und Mailserver-Informationen) bleiben in der Regel sichtbar, selbst wenn der Nachrichteninhalt verschlüsselt ist.

Thunderbird

Thunderbird ist ein kostenloser Open-Source-E-Mail-Client mit Unterstützung für IMAP, POP, CalDAV und CardDAV. Er ist eine geeignete Wahl, um E-Mails abzurufen und lokale Kopien aufzubewahren, anstatt ausschließlich vom entfernten Server des Anbieters abhängig zu sein.

Thunderbird enthält Unterstützung für die OpenPGP-E-Mail-Verschlüsselung, die den Nachrichteninhalt schützen und kryptografische Signaturen bereitstellen kann. Überprüfen Sie öffentliche Schlüssel-Fingerabdrücke immer über einen unabhängigen Kanal, bevor Sie sich für die sensible Kommunikation auf einen Schlüssel verlassen.

Die Funktion „Archivierte Nachrichten“ kann Nachrichten von entfernten Mailservern in einen lokalen Ordner verschieben, was die Privatsphäre verbessert.

Messenger

XMPP

XMPP ist ein offenes Protokoll, das von der IETF entwickelt wurde und plattformübergreifendes, föderiertes Messaging unterstützt. Es gibt viele Client-Optionen. Erwägen Sie, einen der browserbasierten Clients zu verwenden, um von der Sandbox des Browsers zu profitieren.

Je nach Anbieter benötigen Sie möglicherweise nur einen Benutzernamen und ein Passwort, um ein Konto einzurichten.

XMPP ist standardmäßig nicht Ende-zu-Ende verschlüsselt (E2EE); verwenden Sie OMEMO mit einem kompatiblen Client.

Signal

Signal ist ein beliebter E2EE-Messenger, dessen Double-Ratchet-Protokoll von vielen anderen Anwendungen verwendet wird, darunter WhatsApp, Google Messages und Facebook Messenger.

Um die Signal-Desktop-App zu verwenden, muss Signal zunächst auf einem Telefon installiert sein.

Weitere Anleitungen finden Sie im Signal-Leitfaden der EFF.

iMessage

iMessage ist Apples hauseigener Messenger. Für die Nutzung ist ein Apple-Konto erforderlich.

Aktivieren Sie die Kontaktschlüssel-Verifizierung und verifizieren Sie Kontakte.

iMessage kann entweder mit einer Telefonnummer oder einer E-Mail-Adresse verwendet werden.

[!WARNING] Standardmäßig ist das iCloud-Backup aktiviert, das Kopien der Nachrichten-Verschlüsselungsschlüssel auf Apples Servern ohne E2EE speichert. Deaktivieren Sie entweder das iCloud-Backup oder aktivieren Sie den Erweiterten Datenschutz, um dies zu verhindern. Erinnern Sie die Empfänger von Nachrichten daran, dasselbe zu tun.

Malware

Siehe Methods of malware persistence on Mac OS X und Malware Persistence on OS X Yosemite, um zu erfahren, wie gängige macOS-Malware persistent bleibt.

Beispiele für erweiterte Fähigkeiten von macOS-Malware finden Sie im Hacking-Team-Material. Für weitere Analysen siehe root installation for MacOS, support driver for Mac Agent und RCS Agent for Mac.

Siehe auch A Brief Analysis of an RCS Implant Installer und reverse.put.as.

Software herunterladen

Anwendungen aus dem App Store oder von Apple notarisierte Anwendungen können das Malware-Risiko verringern, aber keiner der beiden Prozesse garantiert Sicherheit. Apple führt automatische Prüfungen notarisierter Apps durch, und App-Store-Apps durchlaufen eine Überprüfung. Andernfalls beziehen Sie Software von Quellen, die vom Entwickler als offiziell ausgewiesen wurden, und vergewissern Sie sich, dass die Website oder der Befehlszeilen-Download HTTPS verwendet.

App Sandbox

Prüfen Sie, ob eine Anwendung den App Sandbox verwendet:```bash codesign --display --entitlements -
/System/Applications/Calculator.app 2>&1 | grep -A2 com.apple.security.app-sandbox

root@kitploit:~
Bei aktiviertem App Sandbox sollte die Ausgabe wie folgt aussehen:```console
[Key] com.apple.security.app-sandbox
[Value]
    [Bool] true

Activity Monitor kann auch anzeigen, ob die Sandbox aktiviert ist, wenn die Spalte "Sandbox" angezeigt wird.```bash defaults write com.apple.ActivityMonitor "UserColumnsPerTab v6.0"
-dict-add 0 '(Command, CPUUsage, CPUTime, Threads, IdleWakeUps, Architecture, GPUUsage, GPUTime, PID, UID, Sandbox, restricted)'

root@kitploit:~
App-Store-Software muss App Sandbox verwenden. Anwendungen wie Google Chrome verwenden ihre eigene [sandbox](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/design/sandbox.md) und verwenden möglicherweise nicht App Sandbox.

> [!NOTE]
> Sandboxing schränkt den Standardzugriff einer Anwendung ein, aber Berechtigungen und vom Benutzer gewährte Rechte können den Zugriff erweitern.

## Hardened Runtime

Prüfe, ob eine Anwendung [Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime) verwendet:```bash
codesign --display --verbose /path/to/application.app

Wenn Hardened Runtime aktiviert ist, erscheint flags=0x10000(runtime) in der Ausgabe.

Alle Anwendungen auflisten, bei denen diese Funktion aktiviert ist:```bash for app in /Applications/.app /System/Applications/.app; do if codesign -dvv "$app" 2>&1 | grep -q 'flags=0x10000(runtime)'; then echo "$app" fi done

root@kitploit:~
**Activity Monitor** bietet die Option, eine Spalte „Eingeschränkt“ anzuzeigen, die angibt, dass einem Programm das Injizieren von Code über den [dynamischen Linker](https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html) von macOS untersagt ist.

Hardened Runtime ist eine Voraussetzung für die Notarisierung verteilter Apps.

## Antivirus

Um Dateien und Anwendungen zu überprüfen, sollten Sie erwägen, sie bei [VirusTotal](https://www.virustotal.com/gui/home/upload) hochzuladen. Beachten Sie dabei, dass sie dadurch öffentlich einsehbar werden.

macOS enthält eine integrierte Antivirensoftware namens [XProtect](https://support.apple.com/guide/security/protecting-against-malware-sec469d47bd8), die im Hintergrund läuft und automatisch Signaturen aktualisiert, die zur Erkennung von Malware verwendet werden. Wenn Malware erkannt wird, versucht XProtect, sie zu entfernen und unter Quarantäne zu stellen.

Update-Status von XProtect prüfen:```bash
xprotect version

Anwendungen wie BlockBlock oder hazcod/maclaunch können helfen, persistente Malware zu verhindern oder zu erkennen.

Antivirensoftware kann helfen, bekannte Malware zu erkennen, aber sie kann auch die Angriffsfläche vergrößern, da sie häufig mit umfangreichen Systemprivilegien läuft. Einige Produkte senden möglicherweise auch Telemetriedaten oder Proben an den Hersteller.

Siehe Sophail: Applied attacks against Antivirus, Analysis and Exploitation of an ESET Vulnerability, Popular Security Software Came Under Relentless NSA and GCHQ Attacks und How Israel Caught Russian Hackers Scouring the World for U.S. Secrets.

Gatekeeper

Gatekeeper überprüft die Notarisierung und Herkunft von Software.

Gatekeeper warnt beim Öffnen einer Anwendung ohne Notarisierung. Es kann umgangen werden, indem man die Anwendung auswählt, die nach einem fehlgeschlagenen Versuch unter Systemeinstellungen > Datenschutz & Sicherheit aufgeführt ist.

Überprüfen Sie, ob Gatekeeper aktiviert ist:```bash spctl --status --verbose

root@kitploit:~
# Systemintegritätsschutz

Um zu überprüfen, ob der Systemintegritätsschutz aktiviert ist, verwenden Sie den Befehl `csrutil status`, der Folgendes zurückgeben sollte: `System Integrity Protection status: enabled.` Andernfalls [aktivieren Sie den Systemintegritätsschutz](https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection) über den [Wiederherstellungsmodus](https://support.apple.com/102518).

# Metadaten und Artefakte

macOS hängt Dateien Metadaten an ([erweiterte APFS-Attribute](https://en.wikipedia.org/wiki/Extended_file_attributes#macOS)).

Bestimmte Metadatenattribute können mit den Befehlen [`mdls`](https://ss64.com/mac/mdls.html) und [`xattr`](https://ss64.com/mac/xattr.html) angezeigt und entfernt werden. Präferenz- (`plist`) Dateien können mit [`defaults`](https://ss64.com/mac/defaults.html) gelesen und geändert werden.

System- und Anwendungsmetadaten finden Sie in:

- `~/Library/Preferences/`
- `~/Library/Containers/<APP>/Data/Library/Preferences`
- `/Library/Preferences`

Bluetooth-Informationen:

- `/Library/Preferences/com.apple.Bluetooth.plist`

Cache für Druckaufträge:

- `/var/spool/cups`

Zuvor verbundene iOS-Geräte:

- `/Users/$USER/Library/Preferences/com.apple.iPod.plist`
- `/Library/Preferences/com.apple.iPod.plist`

Finder-Einstellungen:

- `~/Library/Preferences/com.apple.finder.plist`
- `~/Library/Preferences/com.apple.sidebarlists.plist`

Diagnosedaten:

- `/var/db/CoreDuet`
- `/var/db/diagnostics`
- `/var/db/systemstats`
- `/var/db/uuidtext`
- `/var/log/DiagnosticMessages`

Rechtschreib- und Sprachvorschläge:

- `~/Library/LanguageModeling`
- `~/Library/Spelling`
- `~/Library/Suggestions`

Anwendungsstatus:

- `~/Library/Saved\ Application\ State`
- `~/Library/Containers/<APPNAME>/Data/Library/Saved\ Application\ State`

Autosave-Metadaten:

- `~/Library/Containers/<APP>/Data/Library/Autosave\ Information`
- `~/Library/Autosave\ Information`

Siri-Analysen:

- `~/Library/Assistant/SiriAnalytics.db`

QuickTime-Player-Verlauf:

- `~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist`

Verschiedene Metadaten:

- `~/Library/Containers/com.apple.appstore/Data/Library/Preferences/com.apple.commerce.knownclients.plist`
- `~/Library/Preferences/com.apple.commerce.plist`
- `~/Library/Preferences/com.apple.QuickTimePlayerX.plist`

# Authentifizierung

Die App [Passwörter](https://support.apple.com/guide/passwords/the-passwords-app-mchl901b1b95/mac) erstellt [sichere Anmeldedaten](https://support.apple.com/guide/security/automatic-strong-passwords-secc84c811c4/web). Sie unterstützt [Passkeys](https://fidoalliance.org/passkeys/), also Anmeldedaten, die darauf ausgelegt sind, Phishing zu widerstehen, wenn sie mit kompatiblen Diensten verwendet werden.

[KeePassXC](https://keepassxc.org/) ist ein Open-Source-Passwortmanager für mehrere Plattformen, der in Betracht gezogen werden sollte. Er unterstützt starke Authentifizierung mit kompatiblen Hardware-Tokens und eine Browsererweiterung zur automatischen Eingabe von Anmeldedaten.

Einprägsame Passwörter können mit [Diceware](https://secure.research.vt.edu/diceware/) erstellt werden.

Stellen Sie sicher, dass Online-Konten [Multi-Faktor-Authentifizierung](https://en.wikipedia.org/wiki/Multi-factor_authentication) aktiviert haben. Bevorzugen Sie phishing-resistente Authentifizierung, z. B. Hardware-Tokens oder Passkeys bei unterstützten Diensten. Authenticator-Apps sind SMS-Codes vorzuziehen, aber jede MFA ist besser als eine reine Passwort-Authentifizierung.

[YubiKey](https://www.yubico.com/products/) ist ein beliebter Hardware-Authentifizierungstoken. Er kann auch Schlüssel für Ver- und Entschlüsselung, Signieren und Authentifizierungsaufgaben speichern – siehe [drduh/YubiKey-Guide](https://github.com/drduh/YubiKey-Guide).

GnuPG kann auch Passwörter und andere verschlüsselte Dateien verwalten – siehe [drduh/Purse](https://github.com/drduh/Purse) und [drduh/pwd.sh](https://github.com/drduh/pwd.sh).

# Backup

Verschlüsseln Sie Dateien lokal, bevor Sie sie auf externen Medien oder Online-Diensten sichern.

Befolgen Sie das [3-2-1-Backup-Modell](https://www.cisa.gov/sites/default/files/publications/data_backup_options.pdf): Bewahren Sie drei Kopien wichtiger Daten auf, speichern Sie sie auf mindestens zwei verschiedenen Medientypen und halten Sie mindestens eine Kopie an einem separaten physischen Ort.

## Time Machine

[Time Machine](https://support.apple.com/104984) ist das integrierte Werkzeug zur Verwaltung von Backups unter macOS. Verwenden Sie ein externes Laufwerk oder Netzwerkspeicher, um [verschlüsselte](https://support.apple.com/guide/mac-help/keep-your-time-machine-backup-disk-secure-mh21241) Backups zu erstellen.

## GnuPG

[GnuPG](https://www.gnupg.org/) kann mit einem Passwort oder öffentlichen Schlüssel verwendet werden, wobei der private Schlüssel auf einem [YubiKey](https://github.com/drduh/YubiKey-Guide) gespeichert ist.

Komprimieren und verschlüsseln Sie ein Verzeichnis mit einem Passwort:```bash
tar zcvf - ~/Downloads |
  gpg -c > ~/Downloads/backup-$(date +%F-%H%M%S).tar.gz.gpg

Entschlüsseln und dekomprimieren Sie das Verzeichnis:```bash gpg -o ~/Downloads/decrypted-backup.tar.gz -d ~/Downloads/backup-*.tar.gz.gpg tar zxvf ~/Downloads/decrypted-backup.tar.gz

root@kitploit:~
## Disk Utility

Verschlüsselte Volumes können mithilfe von [Disk Utility](https://support.apple.com/guide/disk-utility/toc) oder `hdiutil` erstellt werden:```bash
hdiutil create ~/Downloads/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Downloads/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff

Andere

Tresorit und restic könnten ebenfalls von Interesse sein.

WLAN

WLAN-Netzwerknamen, sogenannte SSIDs, und das Probe-Request-Verhalten von Geräten können Informationen über nahegelegene und früher verwendete Netzwerke preisgeben. Versteckte Netzwerke bieten keinen sinnvollen Datenschutz und können dazu führen, dass Geräte aktiv nach ihnen suchen.

Legen Sie eine private WLAN-Adresse fest, um die Netzwerkverfolgung zu verringern.

Stellen Sie die WLAN-Sicherheit auf WPA3. Befolgen Sie die Apple-Anleitung, um empfohlene Einstellungen für Router und Zugangspunkte festzulegen.

SSH

Verwenden Sie für entfernte SSH-Verbindungen einen eindeutigen SSH-Schlüssel, der durch eine Passphrase oder ein Hardware-Token geschützt ist, verifizieren Sie die Hostschlüssel des Servers und vermeiden Sie passwortbasierte Authentifizierung. Siehe drduh/config/ssh_config für empfohlene Client-Optionen.

Ein SSH-Tunnel kann Datenverkehr sicher über einen anderen Computer leiten, ähnlich wie ein VPN. Um Privoxy zu verwenden, das auf einem entfernten Host auf Port 8118 läuft:```bash ssh -C -L 5555:127.0.0.1:8118 [email protected] sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 5555 sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 5555

root@kitploit:~
Oder um eine SSH-Verbindung als [SOCKS-Proxy](https://www.mikeash.com/ssh_socks.html) zu verwenden:```bash
ssh -NCD 3000 [email protected]

Standardmäßig ist die Remote-Anmeldung (SSH-Server) unter macOS nicht aktiviert.

Um SSH zu aktivieren und eingehende Verbindungen zuzulassen, verwenden Sie Systemeinstellungen > Allgemein > Freigaben oder den Befehl:```bash sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

root@kitploit:~
Deaktiviere die Passwortauthentifizierung und erwäge eine weitere [Härtung](https://stribika.github.io/2015/01/04/secure-secure-shell.html) der SSH-Serverkonfiguration. Siehe [drduh/config/sshd_config](https://github.com/drduh/config/blob/main/sshd_config) für empfohlene Optionen.

Bestätige, dass der SSH-Server läuft:```bash
sudo lsof -Pni TCP:22

Physischer Zugriff

Lassen Sie den Computer an unsicheren Orten nicht unbeaufsichtigt. Ein versierter Angreifer mit unbeaufsichtigtem physischem Zugriff könnte einen Hardware-Keylogger installieren, um Tastatureingaben einschließlich Passwörtern aufzuzeichnen. Die Verwendung eines Macs mit eingebauter Tastatur oder einer Bluetooth-Tastatur erschwert dies, da viele handelsübliche Versionen dieses Angriffs dafür ausgelegt sind, zwischen eine USB-Tastatur und den Computer geschaltet zu werden.

Um die Folgen eines Diebstahls während der Nutzung eines Macs zu verringern, sollten Sie die Verwendung von buskill/buskill-app oder Lennolium/swiftGuard in Betracht ziehen.

Erwägen Sie den Kauf einer Blickschutzfolie für die Nutzung in der Öffentlichkeit.

Nagellack und Manipulationssiegel können auf Komponenten aufgetragen werden, um Manipulationen zu erkennen.

Überwachung

Protokolle

Überwachen Sie Systemprotokolle mit der Konsole oder dem Befehl log stream.

Geben Sie alle Systemprotokolle der letzten 5 Minuten im klassischen Syslog-Format aus:```bash log show --last 5m --style syslog

root@kitploit:~
Ausgabe als JSON-Array:```bash
log show --last 5m --style json

Geben Sie durch Zeilenumbrüche getrenntes JSON aus (ein JSON-Objekt pro Zeile); erforderlich für jq:```bash log show --last 5m --style ndjson

root@kitploit:~
Filtern Sie Nachrichten nach Subsystem, zum Beispiel von `com.apple.SoftwareUpdate`:```bash
log show --last 1h --style json \
  --predicate 'subsystem == "com.apple.SoftwareUpdate"'

Nachrichten nach Inhalt filtern, zum Beispiel solche, die failed enthalten:```bash log show --last 1h --predicate 'eventMessage CONTAINS "failed"'

root@kitploit:~
Nachrichtenfilterung ohne Beachtung der Groß-/Kleinschreibung:```bash
log show --last 1h --predicate 'eventMessage CONTAINS[c] "error"'

Zähle eindeutige Fehlermeldungen mit jq:```bash log show --last 1h --style ndjson
--predicate 'eventMessage CONTAINS[c] "error"' | jq -r '.eventMessage' | sort | uniq -c | sort -nr | head -100

root@kitploit:~
Protokolle in ein Archiv exportieren, das mit der Konsole geöffnet werden kann:```bash
log collect --last 1h --output ~/Downloads/logs-$(date +%F-%H%M).logarchive

DTrace

System Integrity Protection stört DTrace und muss vor der Verwendung teilweise deaktiviert werden.

  • iosnoop überwacht den Datenträger-I/O
  • opensnoop überwacht Dateiöffnungen
  • execsnoop überwacht Prozesse
  • errinfo überwacht fehlgeschlagene Systemaufrufe
  • dtruss überwacht alle Systemaufrufe

Siehe man -k dtrace für weitere Informationen.

Prozesse

Listen Sie laufende Prozesse mit Activity Monitor oder dem Befehl ps auf.

Netzwerk

Listen Sie offene Netzwerkverbindungen auf:```bash sudo lsof -Pni

root@kitploit:~
Listen Sie den Inhalt verschiedener netzwerkbezogener Datenstrukturen auf:```bash
sudo netstat -n -p tcp
sudo netstat -n -p udp | sort | uniq

Wireshark

Wireshark kann über die Befehlszeile mit tshark verwendet werden.

Ersetzen Sie en0 durch die aktive Schnittstelle, die von networksetup -listallhardwareports angezeigt wird.

[!IMPORTANT] Erfassen Sie Datenverkehr nur in Netzwerken und auf Systemen, für deren Überwachung Sie autorisiert sind.

DNS überwachen:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,

root@kitploit:~
HTTP überwachen:```bash
/Applications/Wireshark.app/Contents/MacOS/tshark -i en0 \
  -Y "http.request or http.response" -Tfields \
  -e ip.dst \
  -e http.request.full_uri \
  -e http.request.method \
  -e http.response.code \
  -e http.response.phrase \
  -Eseparator=/s

TLS-Zertifikate überwachen:```bash /Applications/Wireshark.app/Contents/MacOS/tshark -i en0
-Y "ssl.handshake.certificate" -Tfields
-e ip.src
-e x509sat.uTF8String
-e x509sat.printableString
-e x509sat.universalString
-e x509sat.IA5String
-e x509sat.teletexString
-Eseparator=/s -Equote=d

root@kitploit:~
# Verschiedenes

## Bildschirmschoner

Stellen Sie ein, dass der Bildschirm gesperrt wird, sobald der Bildschirmschoner startet:```bash
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0

Diagnosedaten

Deaktivieren Sie Diagnose- und Nutzungsdaten.

Deaktivieren Sie den Absturzbericht (das Dialogfeld, das nach einem Absturz einer Anwendung erscheint und dazu auffordert, das Problem an Apple zu melden):```bash defaults write com.apple.CrashReporter DialogType none

root@kitploit:~
## Mediaplayer

Verwenden Sie [QuickTime Player](https://en.wikipedia.org/wiki/Quicktime_player), die integrierte Medien-App, zum Abspielen von Musik- und Videodateien. Er nutzt [App Sandbox](https://developer.apple.com/documentation/security/app_sandbox/protecting_user_data_with_app_sandbox), [Hardened Runtime](https://developer.apple.com/documentation/xcode/configuring-the-hardened-runtime) und profitiert vom [Signed System Volume](https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web) als Teil des Basissystems.

## Datei-Handler

Verwalten Sie die [standardmäßigen Datei-Handler](https://support.apple.com/guide/mac-help/choose-an-app-to-open-a-file-on-mac-mh35597), um das Risiko beim Öffnen bestimmter Dateitypen zu reduzieren.

Ändern Sie die Standard-App für Skriptdateien, sodass beim Öffnen deren Inhalt angezeigt wird, anstatt sie auszuführen.

Suchen Sie im Finder eine beliebige .sh-Datei, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Informationen“ oder drücken Sie <kbd>Befehl</kbd> + <kbd>I</kbd>. Wählen Sie im Bereich „Öffnen mit“ im Dropdown-Menü die Option TextEdit aus. Falls es nicht aufgeführt ist, wählen Sie „Andere...“ und dann Programme > TextEdit.app. Wählen Sie „Alle ändern...“ und bestätigen Sie mit „Weiter“.

## Finder-Optionen

Versteckte Dateien und den Library-Ordner im Finder anzeigen:```bash
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library

Alle Dateiendungen anzeigen:```bash defaults write NSGlobalDomain AppleShowAllExtensions -bool true

root@kitploit:~
Dokumente standardmäßig nicht in iCloud speichern:```bash
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

Benutzerdefinierte umask

Lege eine benutzerdefinierte umask fest:```bash sudo launchctl config user umask 077

root@kitploit:~
Starte neu, erstelle dann eine Datei/ein Verzeichnis und überprüfe die Berechtigungen (macOS erlaubt standardmäßig Lesezugriff für 'group/other'):```console
$ ls -ld umask*
drwx------@ 2 user1 staff  64 Jul 26 12:00 umask.dir
-rw-------@ 1 user1 staff  32 Jul 26 12:00 umask.txt

Tastatureingabe

Aktivieren Sie die sichere Tastatureingabe im Terminal (dies kann Anwendungen wie TextExpander beeinträchtigen).

Netzwerkhärtung

Deaktivieren Sie Bonjour-Multicast-Ankündigungen (dies deaktiviert auch AirPlay- und AirPrint-Funktionen):```bash sudo defaults write /Library/Preferences/com.apple.mDNSResponder
NoMulticastAdvertisements -bool YES

root@kitploit:~
Deaktivieren Sie die [Handoff](https://support.apple.com/guide/mac-help/change-airdrop-handoff-settings-mchl6a407f99)- und [Bluetooth](https://support.apple.com/guide/mac-help/turn-bluetooth-on-or-off-blth1008)-Funktionen.

## Sudoers

macOS enthält diese Zeile in `/etc/sudoers`:```bash
Defaults env_keep += "HOME MAIL"

Dies verhindert, dass sudo HOME ändert, wenn die Berechtigungen erhöht werden. Infolgedessen können Programme, die mit sudo ausgeführt werden, Konfigurationsdateien aus dem Home-Verzeichnis des aufrufenden Benutzers verwenden. Erwägen Sie, HOME aus env_keep zu entfernen, sofern dieses Verhalten nicht ausdrücklich erforderlich ist.

Um den Komfort beizubehalten, dass der Root-Benutzer über das Home-Verzeichnis eines Nicht-Root-Benutzers verfügt, fügen Sie eine Export-Zeile an /var/root/.zshrc an, z. B.:```bash export HOME=/Users/user1

root@kitploit:~
# Verwandte Software

Software | Kategorie | Beschreibung
:-: | :-: | :-
[lynis](https://github.com/CISOfy/lynis) | Audit-Scanner | Plattformübergreifendes Sicherheits-Audit-Tool, das die Systemkonfiguration prüft und Verbesserungen zur Härtung vorschlägt.
[zentral](https://github.com/zentralopensource/zentral) | Überwachungs- & Konfigurationsplattform | Fleet-Management-Server für macOS-Endpunkte; erfasst Inventar, Ereignisse, Audits und osquery-Ergebnisse. Am besten geeignet für verwaltete Umgebungen.
[osquery](https://github.com/osquery/osquery) | Überwachungs-Engine | Stellt den Betriebssystemzustand als SQL-Tabellen bereit und ermöglicht wiederholbare Prüfungen von Prozessen, Benutzern, Startobjekten, Netzwerkverbindungen und mehr.
[pareto-mac](https://github.com/paretoSecurity/pareto-mac) | Audit-Scanner | Menüleisten-App, die einen Mac anhand gängiger Basis-Sicherheitsempfehlungen prüft.

# Zusätzliche Ressourcen

- [iCloud security and privacy overview](https://support.apple.com/102651)
- [EFF Surveillance Self-Defense Guide](https://ssd.eff.org/)
- [beerisgood/macOS_Hardening](https://github.com/beerisgood/macOS_Hardening)
- [Reverse Engineering macOS blog](https://reverse.put.as/)
- [Reverse Engineering Resources](http://samdmarshall.com/re.html)
- [Malwarebytes Blog](https://www.malwarebytes.com/blog)
- [Objective-See's Blog](https://objective-see.com/blog.html)
- [CIS Benchmarks](https://www.cisecurity.org/benchmark/apple_os/)
- [Apple Open Source](https://opensource.apple.com/)
- [iOS, The Future Of macOS, Freedom, Security And Privacy In An Increasingly Hostile Global Environment](https://gist.github.com/iosecure/357e724811fe04167332ef54e736670d)
Tool herunterladen
  • Klicken Sie vorsichtig

    • Letztendlich hängt die Sicherheit eines Systems von den Fähigkeiten und Gewohnheiten seines Administrators ab.
    • Seien Sie vorsichtig bei der Installation neuer Software: Installieren Sie diese nur aus Quellen, die der Entwickler als offiziell kennzeichnet, etwa seiner Website oder seinem GitHub-Repository.
  • GegnerMotivationFähigkeitenGegenmaßnahme
    MitbewohnerPrivate Chats oder Browserverlauf sehenNähe; kann Bildschirm sehen oder Zugangsdaten beobachtenBiometrische Authentifizierung (Fingerabdruck oder Gesicht) verwenden, Datenschutzfolie verwenden, Telefon bei Nichtgebrauch gesperrt halten
    DiebTelefon entsperren, persönliche Daten stehlen und Bankkonten plündern, Telefon für Geld verkaufenPassworteingabe beobachten, unbeaufsichtigt eingeloggtes Gerät stehlenGerät jederzeit physisch im Besitz behalten, Geräte bei Nichtgebrauch sperren, Passworteingabe nicht in der Öffentlichkeit tätigen, „Find My“ oder ähnliche Dienste verwenden, um gestohlene Geräte zu orten oder aus der Ferne zu deaktivieren
    KriminellerFinanzieller GewinnSocial Engineering (Benutzer dazu bringen, Informationen preiszugeben oder unsichere Handlungen auszuführen), leicht verfügbare Malware, Passwort-Wiederverwendung, Ausnutzen von SchwachstellenSoftware in Sandboxen ausführen, OS-Sicherheitsfunktionen aktivieren, Software-Updates automatisch installieren
    UnternehmenMarketing auf Basis von NutzerdatenErfassung von Telemetrie- und VerhaltensdatenNetzwerkverbindungen blockieren, gerätespezifische Identifikatoren zurücksetzen, keine Zahlungsdaten hinzufügen
    Staat/APTGezielte ÜberwachungPassive Überwachung der Internetinfrastruktur, fortgeschrittene VerschlüsselungsanalyseOpen-Source-Software verwenden, starke Diceware-Zugangsdaten, Hardware mit Secure Element, Geräte bei Nichtgebrauch herunterfahren, Tripwire-/Honeypot-Canary-Token-Warnungen
    BefehlAufgabe
    sudo pfctl -t blocklist -T showBlocklist anzeigen
    sudo pfctl -s rulesaktive Regeln anzeigen
    sudo pfctl -s statesState-Tabelle anzeigen
    sudo ifconfig pflog0 createPaketlog-Schnittstelle erstellen
    sudo tcpdump -ni pflog0blockierte Pakete überwachen
    BefehlAufgabe
    launchctl listBenutzer-Jobs anzeigen
    sudo launchctl listSystem-Jobs anzeigen
    launchctl list com.apple.Findereinen Dienst untersuchen
    systemextensionsctl listSystemerweiterungen auflisten
    ls /System/Library/LaunchDaemonsSystem-Daemons auflisten
    ls /System/Library/LaunchAgentsSystem-Agenten auflisten