Dieses Handbuch ist eine Sammlung von Techniken zur Verbesserung der Sicherheit und des Datenschutzes von Apple Silicon Mac-Computern, auf denen eine derzeit unterstützte Version von macOS ausgeführt wird. Wenn Sie Macs mit Intel-CPUs verwenden, sind Sie anfällig für Sicherheitslücken auf der Hardwareebene, die Apple nicht beheben kann . Apple-Silicon-Macs sind die Mindestempfehlung, aber in der Regel sind neuere Chips immer sicherer.
Dieses Handbuch richtet sich an Power-User, die Sicherheit nach Unternehmensstandard übernehmen möchten, ist aber auch für unerfahrene Benutzer geeignet, die Interesse daran haben, ihre Privatsphäre und Sicherheit auf einem Mac zu verbessern.
Wenn Sie Computer für eine Organisation sichern, verwenden Sie die offiziellen NIST-Richtlinien für macOS.
Ein System ist nur so sicher, wie sein Administrator es schaffen kann. Es gibt keine einzige Technologie, Software oder Technik, die perfekte Computersicherheit garantiert. Ein modernes Betriebssystem und ein moderner Computer sind sehr komplex und erfordern zahlreiche inkrementelle Änderungen, um die eigene Sicherheit und Privatsphäre sinnvoll zu verbessern.
Dieses Handbuch wird ohne Mängelgewähr und ohne Gewährleistung jeglicher Art zur Verfügung gestellt. Wenn Sie durch die Befolgung dieser Anleitung etwas kaputt machen oder in Schwierigkeiten geraten, sind nur Sie verantwortlich.
Um eine Verbesserung vorzuschlagen, senden Sie eine Pull-Anfrage oder öffnen Sie ein Problem.
Es gelten allgemeine Best Practices für die Sicherheit:
Erstellen Sie ein Bedrohungsmodell
Halten Sie das System und die Software auf dem neuesten Stand
softwareupdate
verwenden – für beides ist keine Registrierung eines Apple-Kontos erforderlich.Verschlüsseln Sie sensible Daten
Stellen Sie die Datenverfügbarkeit sicher
Klicken Sie vorsichtig
Der erste und wichtigste Schritt für Sicherheit und Datenschutz ist die Erstellung eines Bedrohungsmodells. Sie müssen Ihre Gegner verstehen, um sich gegen sie verteidigen zu können. Jeder Mensch hat seine eigenen Bedürfnisse, sodass das Bedrohungsmodell bei jedem anders ist. Bedrohungsmodelle neigen dazu, sich im Laufe der Zeit weiterzuentwickeln, wenn sich unsere Situation ändert. Stellen Sie daher sicher, dass Sie Ihr Bedrohungsmodell regelmäßig neu bewerten.
Dabei handelt es sich wahrscheinlich um viele Dinge: Ihr Telefon, Ihren Laptop, auf Ihren Geräten gespeicherte Passwörter, den Browserverlauf im Internet usw. Erstellen Sie eine Liste, beginnend mit den wichtigsten zu schützenden Vermögenswerten. Sie können sie je nach Wichtigkeit in Kategorien einteilen: öffentlich, sensibel oder geheim.
Definieren Sie, gegen wen Sie sich verteidigen. Definieren Sie zunächst die Motivation, die sie haben könnten, um Ihr Vermögen anzugreifen. Für viele Angreifer ist beispielsweise finanzieller Gewinn ein großer Beweggrund.
Um Ihren Gegnern entgegenzutreten, müssen Sie verstehen, wozu sie fähig sind und wozu sie nicht fähig sind. Ordnen Sie die Gegner von völlig unbedarft bis sehr fortgeschritten ein. Ein gewöhnlicher Dieb ist beispielsweise nicht sehr raffiniert; Sie werden wahrscheinlich durch einfache Dinge wie ein Passwort und eine Laufwerksverschlüsselung auf Ihrem Gerät gestoppt. Ein sehr fortgeschrittener Gegner wie ein staatlicher Akteur muss möglicherweise Ihr Gerät vollständig ausschalten, wenn es nicht verwendet wird, um die Schlüssel aus dem RAM zu löschen und ein langes Diceware-Passwort einzugeben.
Jetzt entscheiden Sie, wie Sie jeder Bedrohung am besten begegnen können. Sie könnten es vermeiden, Passwörter auf Papier aufzuschreiben, damit Ihr Mitbewohner sie nicht finden kann, oder Sie könnten das Laufwerk auf Ihrem Computer verschlüsseln, damit ein Dieb keine Daten davon erhalten kann. Es ist wichtig, Sicherheit und Benutzerfreundlichkeit in Einklang zu bringen. Jede Abschwächung sollte den Fähigkeiten Ihrer Gegner entgegenwirken, andernfalls könnten Sie Ihr Leben unbequem machen und dabei kaum oder gar keinen Gewinn erzielen. Wenn Ihnen keine weiteren Möglichkeiten einfallen, über die Ihre Gegner verfügen könnten, und Sie Abhilfemaßnahmen für alle implementiert haben, ist Ihre Arbeit erledigt.
Hier ist ein Beispiel für die Art der Tabelle, die Sie für jedes Asset erstellen sollten, das Sie schützen möchten:
Gegner | Motivation | Fähigkeiten | Schadensbegrenzung |
---|---|---|---|
Mitbewohner | Sehen Sie sich private Chats oder den Browserverlauf an | In unmittelbarer Nähe; Sie können den Bildschirm sehen oder das Passwort eingeben | Verwenden Sie biometrische Daten, verwenden Sie den Sichtschutz und halten Sie das Telefon gesperrt, wenn Sie es nicht verwenden |
Dieb | Entsperren Sie das Telefon, stehlen Sie persönliche Daten, leeren Sie Bankkonten und verkaufen Sie das Telefon für Geld | Surfen Sie mit der Schulter, um das Passwort zu sehen, und stehlen Sie das Gerät, wenn Sie nicht hinschauen, während es angemeldet ist | Behalten Sie das Telefon jederzeit in Sichtweite oder bei sich, halten Sie es gesperrt, wenn es nicht verwendet wird, verwenden Sie biometrische Daten, um die Eingabe von Passwörtern in der Öffentlichkeit zu vermeiden, verwenden Sie „Find My“ oder einen ähnlichen Dienst, um gestohlene Geräte zu verfolgen/aus der Ferne zu deaktivieren |
Kriminell | Finanziell | Social Engineering, leicht verfügbare Malware, Wiederverwendung von Passwörtern, Ausnutzung von Schwachstellen | Verwenden Sie Sandboxing, aktivieren Sie Sicherheitsfunktionen im Betriebssystem, halten Sie das Betriebssystem und die gesamte Software auf dem neuesten Stand und aktivieren Sie automatische Updates |
Gesellschaft | Marketing von Benutzerdaten | Telemetrie- und Verhaltensdatenerfassung | Blockieren Sie Netzwerkverbindungen, setzen Sie eindeutige Kennungen zurück und vermeiden Sie das Hinzufügen von Zahlungsdaten |
Nationalstaat/APT | Gezielte Überwachung | Passive Überwachung der Internet-Infrastruktur, fortschrittliche Computer zum Knacken der Verschlüsselung/Analyse von Paketen | Verwenden Sie Open Source E2ee, verwenden Sie starke Diceware-Passwörter für Geräte, verwenden Sie Hardware mit Secure Element für sichere Verschlüsselung, schalten Sie Geräte aus, wenn Sie sie nicht verwenden, Software Tripwire/Honeypot/Canary-Tokens |
Lesen Sie hier mehr über die Bedrohungsmodellierung.
macOS läuft am sichersten auf Apple-Hardware mit Apple-Chips. Je neuer der Mac, desto besser. Vermeiden Sie Hackintoshs und Macs, die das neueste macOS nicht unterstützen, da Apple nicht alle Schwachstellen in Versionen behebt, die nicht die aktuellste sind.
Wenn Sie Ihren Mac kaufen, möchten Sie möglicherweise vermeiden, dass er mit Ihnen verknüpft wird. Abhängig von Ihrem Bedrohungsmodell sollten Sie persönlich bar bezahlen, anstatt online zu bestellen oder mit einer Kredit-/Debitkarte einzukaufen, damit keine identifizierenden Informationen mit Ihrem Kauf verknüpft werden können.
Wenn Sie eine drahtlose Tastatur, Maus, Kopfhörer oder anderes Zubehör verwenden möchten, ist die sicherste Option die von Apple, da diese automatisch von Ihrem System aktualisiert wird. Sie unterstützen auch die neuesten Bluetooth-Funktionen wie BLE Privacy, das Ihre Bluetooth-Hardwareadresse zufällig anordnet, um Tracking zu verhindern. Bei Zubehör von Drittanbietern ist dies keine Garantie.
Es gibt mehrere Möglichkeiten, macOS zu installieren. Wählen Sie aus den verfügbaren Optionen Ihre bevorzugte Methode.
Sie sollten die neueste Version von macOS installieren, die mit Ihrem Mac kompatibel ist . Neuere Versionen verfügen über Sicherheitspatches und andere Verbesserungen, die in älteren Versionen fehlen.
Als Teil des Diebstahlschutzsystems von Apple müssen Apple-Silicon-Macs jedes Mal, wenn Sie macOS neu installieren, eine Aktivierung mit den Apple-Servern durchführen, um einen Abgleich mit der Datenbank gestohlener oder durch Aktivierung gesperrter Macs durchzuführen.
Wie dieser Prozess genau funktioniert, können Sie hier nachlesen.
Für die Nutzung von macOS ist die Erstellung eines Apple-Kontos nicht erforderlich. Für die Erstellung eines Apple-Kontos ist eine Telefonnummer erforderlich und standardmäßig werden viele Daten mit iCloud, dem Cloud-Speicherdienst von Apple, synchronisiert. Sie können die Synchronisierung später bei Bedarf deaktivieren oder eine Ende-zu-Ende-Verschlüsselung für Ihre iCloud-Daten aktivieren.
Sie können die mit Ihrem Apple-Konto verknüpften Daten kontrollieren oder vollständig löschen.
Für den Zugriff auf den App Store und die Nutzung der meisten Apple-Dienste wie iCloud, Apple Music usw. ist ein Apple-Konto erforderlich.
Der Mac App Store ist ein kuratiertes Repository mit Software, die für die Nutzung der App Sandbox und Hardened Runtime erforderlich ist und automatische Updates bietet, die sich in Ihr System integrieren lassen.
Der App Store bietet die größten Sicherheitsgarantien für Software auf macOS, erfordert jedoch die Anmeldung mit einem Apple-Konto und Apple kann Ihr Apple-Konto mit Ihren heruntergeladenen Apps verknüpfen.
Mit UTM können Sie macOS ganz einfach nativ in einer virtuellen Maschine ausführen. Es ist kostenlos auf der Website erhältlich, aber wenn Sie es im App Store kaufen, erhalten Sie automatische Updates.
Befolgen Sie die Dokumentation, um mit nur wenigen Klicks eine macOS-VM zu installieren.
Eine weitere Option ist VMware Fusion. In der Dokumentation erfahren Sie, wie Sie eine macOS-VM installieren.
Beim ersten Start von macOS werden Sie vom Setup-Assistenten begrüßt.
Verwenden Sie beim Erstellen des ersten Kontos ein sicheres Passwort ohne Hinweis.
Wenn Sie bei der Kontoeinrichtung Ihren richtigen Namen eingeben, beachten Sie, dass der Name Ihres Computers und der lokale Hostname diesen Namen umfassen (z. B. John Appleseeds MacBook ) und daher in lokalen Netzwerken und in verschiedenen Einstellungsdateien angezeigt werden.
Beide sollten nach der Installation unter Systemeinstellungen > Info oder mit den folgenden Befehlen überprüft und bei Bedarf aktualisiert werden:
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
Das erste Benutzerkonto ist immer ein Administratorkonto. Admin-Konten sind Mitglieder der Admin-Gruppe und haben Zugriff auf sudo
, wodurch sie andere Konten, insbesondere Root-Konten, an sich reißen können und eine effektive Kontrolle über das System haben. Jedes Programm, das der Administrator ausführt, kann möglicherweise denselben Zugriff erhalten, was ein Sicherheitsrisiko darstellt.
Dienstprogramme wie sudo
weisen Schwachstellen auf, die durch gleichzeitig ausgeführte Programme ausgenutzt werden können.
Es wird von Apple als Best Practice angesehen, für die tägliche Arbeit ein separates Standardkonto zu verwenden und für Installationen und Systemkonfigurationen das Administratorkonto zu verwenden.
Es ist nicht unbedingt erforderlich, sich jemals über den macOS-Anmeldebildschirm beim Administratorkonto anzumelden. Wenn für einen Terminalbefehl Administratorrechte erforderlich sind, fordert das System zur Authentifizierung auf und Terminal verwendet diese Rechte dann weiterhin. Zu diesem Zweck gibt Apple einige Empfehlungen zum Ausblenden des Administratorkontos und seines Home-Verzeichnisses. Dies kann eine elegante Lösung sein, um zu vermeiden, dass ein „Geisterkonto“ sichtbar ist.
/Applications
(lokales Verzeichnis) installieren. Finder und Installer werden einen Standardbenutzer mit einem Authentifizierungsdialog auffordern. Viele Anwendungen können stattdessen in ~/Applications
installiert werden (das Verzeichnis kann erstellt werden). Als Faustregel gilt: Anwendungen, die keinen Admin-Zugriff benötigen – oder sich nicht darüber beschweren, dass sie nicht in /Applications
installiert werden – sollten im Benutzerverzeichnis installiert werden, der Rest im lokalen Verzeichnis. Mac App Store-Anwendungen werden weiterhin in /Applications
installiert und erfordern keine zusätzliche Authentifizierung.sudo
ist in Shells des Standardbenutzers nicht verfügbar, was die Verwendung von su
oder login
erfordert, um eine Shell des Admin-Kontos aufzurufen. Dies kann einige Manöver schwieriger machen und erfordert einige grundlegende Erfahrungen mit Befehlszeilenschnittstellen.open
-Dienstprogramms ausgeführt werden.Konten können in den Systemeinstellungen erstellt und verwaltet werden. Auf etablierten Systemen ist es im Allgemeinen einfacher, ein zweites Administratorkonto zu erstellen und dann das erste Konto herabzustufen. Dadurch wird eine Datenmigration vermieden. Neu installierte Systeme können auch einfach ein Standardkonto hinzufügen.
Das Herabstufen eines Kontos kann entweder über das neue Administratorkonto in den Systemeinstellungen erfolgen – das andere Konto muss abgemeldet sein – oder durch Ausführen dieser Befehle (es ist möglicherweise nicht erforderlich, beides auszuführen, siehe Problem 179):
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
So finden Sie die GeneratedUID eines Kontos:
dscl . -read /Users/<username> GeneratedUID
Weitere Informationen darüber, wie macOS die Gruppenmitgliedschaft bestimmt, finden Sie auch in diesem Beitrag.
Sie sollten überprüfen, ob die Firmware-Sicherheitseinstellungen auf „Volle Sicherheit“ eingestellt sind, um Manipulationen an Ihrem Betriebssystem zu verhindern. Dies ist die Standardeinstellung.
Alle Mac-Modelle mit Apple-Chip sind standardmäßig verschlüsselt. Wenn Sie FileVault aktivieren, müssen Sie ein Passwort eingeben, um auf die Daten auf Ihrem Laufwerk zuzugreifen. Die EFF verfügt über einen Leitfaden zum Generieren sicherer, aber einprägsamer Passwörter.
Ihr FileVault-Passwort fungiert auch als Firmware-Passwort, das verhindert, dass Personen, die es nicht kennen, von etwas anderem als dem vorgesehenen Startvolume booten, auf die Wiederherstellung zugreifen und es im DFU-Modus wiederbeleben.
FileVault fordert Sie auf, einen Wiederherstellungsschlüssel festzulegen, falls Sie Ihr Passwort vergessen. Bewahren Sie diesen Schlüssel an einem sicheren Ort auf. Sie haben die Möglichkeit, Ihr iCloud-Konto zum Entsperren Ihrer Festplatte zu verwenden. Allerdings kann jeder, der Zugriff auf Ihr iCloud-Konto hat, es auch entsperren.
macOS bietet den Sperrmodus, eine Sicherheitsfunktion, die mehrere Funktionen im gesamten Betriebssystem deaktiviert und so die Angriffsfläche für Angreifer erheblich verringert, während das Betriebssystem weiterhin nutzbar bleibt. Sie können genau nachlesen, was deaktiviert ist, und selbst entscheiden, ob es für Sie akzeptabel ist.
Wenn der Sperrmodus aktiviert ist, können Sie ihn für jede Site in Safari auf vertrauenswürdigen Sites deaktivieren.
Für macOS stehen verschiedene Arten von Firewalls zur Verfügung.
Integrierte, einfache Firewall, die nur eingehende Verbindungen blockiert. Diese Firewall ist nicht in der Lage, ausgehende Verbindungen zu überwachen oder zu blockieren.
Es kann über die Registerkarte „Firewall“ unter „Netzwerk“ in den Systemeinstellungen oder mit den folgenden Befehlen gesteuert werden.
Aktivieren Sie die Firewall mit Protokollierung und Stealth-Modus:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Computerhacker scannen Netzwerke, um anzugreifende Computer zu identifizieren. Sie können verhindern, dass Ihr Computer auf einige dieser Scans reagiert, indem Sie den Stealth-Modus verwenden. Wenn der Stealth-Modus aktiviert ist, antwortet Ihr Computer nicht auf ICMP-Ping-Anfragen und antwortet nicht auf Verbindungsversuche von einem geschlossenen TCP- oder UDP-Port. Dadurch wird es für Angreifer schwieriger, Ihren Computer zu finden.
Um zu verhindern, dass integrierte Software sowie mit Code signierte, heruntergeladene Software automatisch auf die Whitelist gesetzt werden :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
Anwendungen, die von einer gültigen Zertifizierungsstelle signiert sind, werden automatisch zur Liste der zulässigen Apps hinzugefügt, ohne dass der Benutzer aufgefordert wird, sie zu autorisieren. In macOS enthaltene Apps sind von Apple signiert und dürfen eingehende Verbindungen empfangen, wenn diese Einstellung aktiviert ist. Da iTunes beispielsweise bereits von Apple signiert ist, wird es automatisch zugelassen, eingehende Verbindungen durch die Firewall zu empfangen.
Wenn Sie eine nicht signierte App ausführen, die nicht in der Firewall-Liste aufgeführt ist, wird ein Dialogfeld mit Optionen zum Zulassen oder Verweigern von Verbindungen für die App angezeigt. Wenn Sie „Zulassen“ wählen, signiert macOS die Anwendung und fügt sie automatisch zur Firewall-Liste hinzu. Wenn Sie „Verweigern“ wählen, fügt macOS die App zur Liste hinzu, verweigert jedoch eingehende Verbindungen, die für diese App bestimmt sind.
Nach der Interaktion mit socketfilterfw
starten Sie den Prozess neu, indem Sie ein Signal zum Auflegen der Leitung senden:
sudo pkill -HUP socketfilterfw
Programme wie Little Snitch, Radio Silence und LuLu bieten eine gute Balance zwischen Benutzerfreundlichkeit und Sicherheit.
Diese Programme sind in der Lage, ein- und ausgehende Netzwerkverbindungen zu überwachen und zu blockieren. Möglicherweise ist jedoch die Verwendung einer Closed-Source-Systemerweiterung erforderlich.
Wenn die Anzahl der Möglichkeiten zum Zulassen/Blockieren von Netzwerkverbindungen überwältigend ist, verwenden Sie den Silent-Modus mit erlaubten Verbindungen und überprüfen Sie dann regelmäßig die Konfiguration, um ein Verständnis für Anwendungen und deren Aktivitäten zu gewinnen.
Es ist erwähnenswert, dass diese Firewalls von Programmen umgangen werden können, die als Root ausgeführt werden, oder durch Schwachstellen des Betriebssystems (PDF), aber sie sind immer noch lohnenswert – nur erwarten Sie keinen absoluten Schutz. Manche Malware löscht sich jedoch selbst und wird nicht ausgeführt, wenn Little Snitch oder eine andere Sicherheitssoftware installiert ist.
Im Kernel existiert eine hochgradig anpassbare, leistungsstarke, aber auch höchst komplizierte Firewall. Es kann mit pfctl
und verschiedenen Konfigurationsdateien gesteuert werden.
pf kann auch mit einer GUI-Anwendung wie Murus gesteuert werden.
Es gibt viele Bücher und Artikel zum Thema PF-Firewall. Hier ist nur ein Beispiel für das Blockieren des Datenverkehrs anhand der IP-Adresse.
Fügen Sie Folgendes in eine Datei namens pf.rules
ein:
wifi = "en0"
ether = "en7"
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0
scrub in all no-df
table <blocklist> persist
block in log
block in log quick from no-route to any
block log on $wifi from { <blocklist> } to any
block log on $wifi from any to { <blocklist> }
antispoof quick for { $wifi $ether }
pass out proto tcp from { $wifi $ether } to any keep state
pass out proto udp from { $wifi $ether } to any keep state
pass out proto icmp from $wifi to any keep state
Verwenden Sie dann die folgenden Befehle, um die Firewall zu manipulieren:
sudo pfctl -e -f pf.rules
um die Firewall zu aktivieren und die Konfiguration zu ladensudo pfctl -d
um die Firewall zu deaktivierensudo pfctl -t blocklist -T add 1.2.3.4
um eine IP-Adresse zur Blockliste hinzuzufügensudo pfctl -t blocklist -T show
um die Blockliste anzuzeigensudo ifconfig pflog0 create
, um eine Schnittstelle für die Protokollierung zu erstellensudo tcpdump -ni pflog0
um gefilterte Pakete anzuzeigenSofern Sie nicht bereits mit der Paketfilterung vertraut sind, sollten Sie nicht zu viel Zeit in die Konfiguration von pf investieren. Es ist wahrscheinlich auch unnötig, wenn sich Ihr Mac hinter einem NAT in einem privaten Heimnetzwerk befindet.
Mit der pf-Firewall ist es möglich, den Netzwerkzugriff auf ganze Netzwerkadressenbereiche, beispielsweise auf eine ganze Organisation, zu blockieren:
Fragen Sie Merit RADb nach der Liste der Netzwerke ab, die von einem autonomen System wie Facebook verwendet werden:
whois -h whois.radb.net '!gAS32934'
Kopieren Sie die Liste der zurückgegebenen Netzwerke und fügen Sie sie in den Blocklist-Befehl ein:
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
Bestätigen Sie, dass die Adressen hinzugefügt wurden:
$ 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
Bestätigen Sie, dass der Netzwerkverkehr zu diesen Adressen blockiert ist (DNS-Anfragen funktionieren weiterhin):
$ dig a +short facebook.com
157.240.2.35
$ curl --connect-timeout 5 -I http://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.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.62771 > 157.240.2.35.80: tcp 0
IP 192.168.1.1.162771 > 157.240.2.35.80: tcp 0
Ausgehende TCP-SYN-Pakete werden blockiert, sodass keine TCP-Verbindung hergestellt wird und somit eine Website effektiv auf der IP-Ebene blockiert wird.
Weitere Inspiration finden Sie unter drduh/config/scripts/pf-blocklist.sh.
Dienste unter macOS werden von launchd verwaltet. Siehe launchd.info.
Sie können weitere Informationen zu Software, die bei der Anmeldung ausgeführt wird, in den Systemeinstellungen verwalten und anzeigen. Sie können installierte System-, Quick Look-, Finder- und andere Erweiterungen auch in den Systemeinstellungen sehen.
launchctl list
um laufende Benutzeragenten anzuzeigensudo launchctl list
um laufende Systemdämonen anzuzeigenlaunchctl list com.apple.Maps.mapspushd
defaults read
um Joblisten in /System/Library/LaunchDaemons
und /System/Library/LaunchAgents
zu untersuchenman
und strings
um mehr darüber herauszufinden, was ein Agent/Daemon tutUm beispielsweise zu erfahren, was ein Systemstart-Daemon oder -Agent tut, beginnen Sie mit:
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Sehen Sie sich den Abschnitt Program
oder ProgramArguments
an, um zu sehen, welche Binärdatei ausgeführt wird, in diesem Fall apsd
. Weitere Informationen hierzu finden Sie auf der Manpage mit man apsd
Hinweis: Systemdienste werden durch SIP geschützt. Deaktivieren Sie SIP nicht, nur um an den Systemdiensten herumzubasteln, da SIP ein wesentlicher Bestandteil der Sicherheit unter macOS ist. Das Deaktivieren von Systemdiensten könnte zu Störungen und instabilem Verhalten führen!
So zeigen Sie den Status von Diensten an:
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
In diesem Repository sind kommentierte Listen der Startdämonen und -agenten, des jeweils ausgeführten Programms und der Hashsummen der Programme enthalten.
Weitere Informationen zu launchd und wo Anmeldeelemente zu finden sind, finden Sie auf der Website von Apple.
Apple stellt für viele Siri-Funktionen auf die Verarbeitung auf dem Gerät um, einige Informationen werden jedoch weiterhin an Apple gesendet, wenn Sie Siri-Vorschläge oder Spotlight verwenden. Sie können die Datenschutzrichtlinie von Apple lesen, um genau zu erfahren, was gesendet wird und wie Sie es deaktivieren können.
Wenn Ihr Programm nicht im App Store verfügbar ist, können Sie Homebrew verwenden.
Wichtig! Homebrew fordert Sie auf, Ihrem Terminal die Berechtigung „App-Verwaltung“ (oder „Vollständiger Festplattenzugriff“) zu erteilen. Dies ist eine schlechte Idee, da Sie dadurch erneut anfällig für diese Angriffe werden würden: Jede Anwendung ohne Sandbox kann Code mit den TCC-Berechtigungen Ihres Terminals ausführen, indem sie einen böswilligen Befehl zu (z. B.) ~/.zshrc hinzufügt. Das Gewähren von „App Management“ oder „Full Disk Access“ für Ihr Terminal sollte als dasselbe betrachtet werden wie das vollständige Deaktivieren von TCC.
Denken Sie daran, brew upgrade
regelmäßig in vertrauenswürdigen und sicheren Netzwerken auszuführen, um Software-Updates herunterzuladen und zu installieren. Um vor der Installation Informationen zu einem Paket zu erhalten, führen Sie brew info <package>
aus und überprüfen Sie die Formel online. Möglicherweise möchten Sie auch zusätzliche Sicherheitsoptionen aktivieren, z. B. HOMEBREW_NO_INSECURE_REDIRECT=1
Laut Anonymous Analytics von Homebrew sammelt Homebrew anonyme Analysen und meldet diese an eine selbst gehostete InfluxDB-Instanz. Um die Analyse von Homebrew zu deaktivieren, können Sie export HOMEBREW_NO_ANALYTICS=1
in Ihrer Umgebung oder Shell-RC-Datei festlegen oder brew analytics off
Mit macOS 11 wurden „DNS-Konfigurationsprofile“ eingeführt, um verschlüsseltes DNS zu konfigurieren, Domänen zu filtern und DNSSEC zu verwenden.
DNS-Profile können von Anbietern wie Quad9, AdGuard und NextDNS erstellt oder bezogen werden.
Verwenden Sie die Hosts-Datei, um bekannte Malware, Werbung oder anderweitig unerwünschte Domänen zu blockieren.
Bearbeiten Sie die Hosts-Datei als Root, zum Beispiel mit sudo vi /etc/hosts
Um eine Domäne durch A
-Eintrag zu blockieren, hängen Sie eine der folgenden Zeilen an /etc/hosts
an:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
Hinweis: IPv6 verwendet den DNS-Eintragstyp AAAA
anstelle des Eintragstyps A
Daher können Sie diese Verbindungen auch blockieren, indem Sie auch ::1 example.com
Einträge einschließen, wie hier gezeigt.
Es gibt viele online verfügbare Domainlisten, die Sie einfügen können. Stellen Sie einfach sicher, dass jede Zeile mit 0
, 0.0.0.0
, 127.0.0.1
beginnt und die Zeile 127.0.0.1 localhost
enthalten ist.
Hier sind einige beliebte und nützliche Gastgeberlisten:
Hängen Sie eine Liste von Hosts mit tee
an:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
Wenn Sie eine Firewall wie Little Snitch verwenden, können Sie StevenBlack/hosts verwenden, um die Regeln aus dem Repository leohidalgo/little-snitch---rule-groups zu importieren. Diese Regeln werden alle 12 Stunden aus dem Repository StevenBlack/hosts aktualisiert.
Um den DNS-Verkehr zu verschlüsseln, sollten Sie die Verwendung von DNSCrypt/dnscrypt-proxy in Betracht ziehen. In Kombination mit dnsmasq und DNSSEC kann die Integrität des DNS-Verkehrs deutlich verbessert werden.
Installieren Sie DNSCrypt von Homebrew und befolgen Sie die Anweisungen zum Konfigurieren und Starten dnscrypt-proxy
:
brew install dnscrypt-proxy
Wenn Sie es in Kombination mit Dnsmasq verwenden, suchen Sie die Datei homebrew.mxcl.dnscrypt-proxy.plist
indem Sie es ausführen
brew info dnscrypt-proxy
Dadurch wird ein Speicherort wie /usr/local/etc/dnscrypt-proxy.toml
angezeigt
Öffnen Sie es in einem Texteditor, suchen Sie die Zeile, die mit listen_addresses =
beginnt, und bearbeiten Sie diese Zeile, um DNScrypt auf einem anderen Port als 53 zu verwenden, z. B. 5355:
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Starten Sie DNSCrypt:
sudo brew services restart dnscrypt-proxy
Bestätigen Sie, dass DNSCrypt ausgeführt wird:
$ 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
Standardmäßig wird dnscrypt-proxy auf localhost (127.0.0.1), Port 53, ausgeführt und verteilt den Datenverkehr über eine Reihe von Resolvern. Wenn Sie diese Einstellungen ändern möchten, müssen Sie die Konfigurationsdatei bearbeiten: $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
Hinweis Anwendungen und Programme können DNS mithilfe ihrer eigenen bereitgestellten Server auflösen. Wenn dnscrypt-proxy verwendet wird, ist es möglich, den gesamten anderen, nicht von dnscrypt stammenden DNS-Verkehr mit den folgenden PF-Regeln zu deaktivieren:
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
Siehe auch Was ist ein DNS-Leak und ipv6-test.com
Unter anderem ist dnsmasq in der Lage, Antworten zwischenzuspeichern, Upstream-Anfragen nach nicht qualifizierten Namen zu verhindern und ganze Top-Level-Domains zu blockieren.
In Kombination mit DNSCrypt verwenden, um den DNS-Verkehr zusätzlich zu verschlüsseln.
Wenn Sie DNSCrypt nicht verwenden möchten, sollten Sie zumindest DNS verwenden, das nicht von Ihrem ISP bereitgestellt wird. Zwei beliebte Alternativen sind Google DNS und OpenDNS.
Bei optionalem DNSSEC handelt es sich um eine Reihe von DNS-Erweiterungen, die DNS-Clients (Resolvern) eine Ursprungsauthentifizierung von DNS-Daten, eine authentifizierte Existenzverweigerung und Datenintegrität ermöglichen. Alle Antworten aus DNSSEC-geschützten Zonen sind digital signiert. Die signierten Datensätze werden über eine Vertrauenskette authentifiziert, beginnend mit einem Satz verifizierter öffentlicher Schlüssel für die DNS-Root-Zone. Die aktuellen Root-Zone-Trust-Anker können von der IANA-Website heruntergeladen werden. Es gibt eine Reihe von Ressourcen zu DNSSEC, aber die wahrscheinlich beste ist die Website dnssec.net.
Installieren Sie Dnsmasq:
brew install dnsmasq --with-dnssec
Laden Sie drduh/config/dnsmasq.conf oder die Standardkonfigurationsdatei herunter und bearbeiten Sie sie.
Anfügbare Beispiele zum Blockieren von Diensten durch Domänen finden Sie unter drduh/config/domains.
Installieren und starten Sie das Programm (für die Bindung an den privilegierten Port 53 ist sudo erforderlich):
sudo brew services start dnsmasq
Um dnsmasq als lokalen DNS-Server festzulegen, öffnen Sie Systemeinstellungen > Netzwerk und wählen Sie die aktive Schnittstelle, dann die Registerkarte DNS , wählen Sie + und fügen Sie 127.0.0.1
hinzu oder verwenden Sie:
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Bestätigen Sie, dass Dnsmasq konfiguriert ist:
$ 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
Hinweis Einige VPN-Software überschreibt die DNS-Einstellungen beim Herstellen einer Verbindung. Siehe Ausgabe 24 und drduh/config/scripts/macos-dns.sh.
Optionaler Test der DNSSEC-Validierung für signierte Zonen – die Antwort sollte den Status NOERROR
haben und das ad
enthalten:
$ dig +dnssec icann.org | head
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47039
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
Die DNSSEC-Testvalidierung schlägt für Zonen fehl, die nicht ordnungsgemäß signiert sind. Die Antwort sollte den Status SERVFAIL
haben:
$ dig www.dnssec-failed.org | head
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 15190
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
macOS wird mit über 100 installierten Root-Authority-Zertifikaten von Unternehmen wie Apple, Verisign, Thawte, Digicert und Regierungsbehörden aus China, Japan, den Niederlanden, den USA und anderen Ländern geliefert! Diese Zertifizierungsstellen (CAs) sind in der Lage, TLS-Zertifikate für jede Domäne, Code-Signing-Zertifikate usw. auszustellen. Apple blockiert diese Zertifikate, wenn sich eine CA als nicht vertrauenswürdig erweist. Sie haben auch strenge Anforderungen, die vertrauenswürdige Zertifizierungsstellen erfüllen müssen.
Weitere Informationen finden Sie auf der Website des CA/Browser-Forums.
Überprüfen Sie Systemstammzertifikate im Schlüsselbundzugriff , auf der Registerkarte „Systemstämme“ oder mithilfe des security
und der Datei /System/Library/Keychains/SystemRootCertificates.keychain
.
Sie können Zertifizierungsstellen über den Schlüsselbundzugriff manuell deaktivieren, indem Sie sie als „Niemals vertrauen“ markieren und das Fenster schließen:
Warnung: Dies führt dazu, dass Ihr Browser eine Warnung ausgibt, wenn Sie eine Website besuchen, die von diesen Zertifizierungsstellen signierte Zertifikate verwendet, und kann zu Störungen in anderer Software führen. Misstrauen Sie den Apple-Stammzertifikaten nicht, sonst führt dies zu vielen Fehlern in macOS!
Das Risiko eines Man-in-the-Middle-Angriffs, bei dem eine erzwungene oder kompromittierte Zertifizierungsstelle, der Ihr System vertraut, ein gefälschtes/unerlaubtes TLS-Zertifikat ausstellt, ist recht gering, aber dennoch möglich.
Erwägen Sie die Verwendung von Privoxy als lokalen Proxy zum Filtern des Webverkehrs.
Installieren und starten Sie Privoxy mit Homebrew:
brew install privoxy
brew services start privoxy
Alternativ ist ein signiertes Installationspaket für Privoxy auf der Website oder bei Sourceforge erhältlich. Das signierte Paket ist sicherer als die Homebrew-Version und wird vom Privoxy-Projekt unterstützt.
Standardmäßig lauscht Privoxy am lokalen TCP-Port 8118.
Legen Sie den System -HTTP- Proxy für die aktive Netzwerkschnittstelle 127.0.0.1
und 8118
fest:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Legen Sie den HTTPS- Proxy des Systems fest:
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
Dies kann auch über Systemeinstellungen > Netzwerk > Erweitert > Proxys erfolgen
Bestätigen Sie, dass der Proxy eingestellt ist:
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
Obwohl der Großteil des Webverkehrs heutzutage verschlüsselt ist, ist Privoxy immer noch nützlich zum Filtern nach Domänennamenmustern und zum Aktualisieren unsicherer HTTP-Anfragen.
Die folgenden Regeln blockieren beispielsweise den gesamten Datenverkehr mit Ausnahme von .net
und github.com
sowie allen apple
-Domänen:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
Oder um einfach Facebook-Domains zu blockieren, zum Beispiel:
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
Auch Platzhalter werden unterstützt.
Weitere Privoxy-Beispiele finden Sie unter drduh/config/privoxy/config und drduh/config/privoxy/user.action. Privoxy muss nach der Bearbeitung user.action
Filterregeln nicht neu gestartet werden.
Um zu überprüfen, ob der Datenverkehr blockiert oder umgeleitet wird, verwenden Sie Curl oder die unter http://pp verfügbare Privoxy-Schnittstelle im Browser:
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
server: GitHub.com
Hinweis: Die Proxy-Einstellungen von macOS sind nicht universell; Apps und Dienste berücksichtigen möglicherweise nicht die System-Proxy-Einstellungen. Stellen Sie sicher, dass die Anwendung, die Sie als Proxy verwenden möchten, korrekt konfiguriert ist, und stellen Sie sicher, dass keine Verbindungen verloren gehen. Darüber hinaus kann pf so konfiguriert werden, dass der Datenverkehr auf bestimmten Ports transparent weitergeleitet wird.
Der Webbrowser stellt wahrscheinlich das größte Sicherheits- und Datenschutzrisiko dar, da seine grundlegende Aufgabe darin besteht, nicht vertrauenswürdigen Code aus dem Internet herunterzuladen und auszuführen.
Eine wichtige Eigenschaft moderner Browser ist die Same Origin Policy (SOP), die verhindert, dass ein bösartiges Skript auf einer Seite über das Document Object Model (DOM) Zugriff auf sensible Daten auf einer anderen Webseite erhält. Wenn SOP kompromittiert wird, ist die Sicherheit des gesamten Browsers gefährdet.
Viele Browser-Exploits basieren auf Social Engineering als Mittel zur Persistenzgewinnung. Achten Sie immer darauf, nicht vertrauenswürdige Websites zu öffnen, und seien Sie besonders vorsichtig, wenn Sie neue Software herunterladen.
Ein weiterer wichtiger Aspekt zur Browsersicherheit sind Erweiterungen. Dies ist ein Problem, das sowohl Firefox als auch Chrome betrifft. Die Verwendung von Browsererweiterungen sollte auf unbedingt notwendige Erweiterungen beschränkt werden, die von vertrauenswürdigen Entwicklern veröffentlicht wurden.
Mozilla Firefox, Google Chrome, Safari und Tor Browser sind alle empfohlene Browser für ihre ganz eigenen, individuellen Zwecke.
Mozilla Firefox ist ein beliebter Open-Source-Browser. Firefox ersetzte im Rahmen der Projekte Quantum und Photon große Teile seiner Infrastruktur und Codebasis. Ein Teil des Quantum-Projekts besteht darin, C++-Code durch Rust zu ersetzen. Rust ist eine Systemprogrammiersprache mit Schwerpunkt auf Sicherheit und Thread-Sicherheit. Es wird erwartet, dass die Einführung von Rust die allgemeine Sicherheitslage von Firefox erheblich verbessern wird.
Firefox bietet ein ähnliches Sicherheitsmodell wie Chrome: Es verfügt über ein Bug-Bounty-Programm, das jedoch nicht so lukrativ ist. Firefox folgt einem vierwöchigen Veröffentlichungszyklus.
Firefox unterstützt vom Benutzer bereitgestellte Konfigurationsdateien. Empfohlene Einstellungen und Absicherungsmaßnahmen finden Sie unter drduh/config/firefox.user.js und arkenfox/user.js. Siehe auch NoScript, eine Erweiterung, die das selektive Blockieren von Skripten ermöglicht.
Firefox konzentriert sich auf die Privatsphäre der Benutzer. Es unterstützt den Tracking-Schutz im privaten Browsermodus. Der Tracking-Schutz kann für das Standardkonto aktiviert werden, obwohl er auf einigen Websites das Surferlebnis beeinträchtigen kann. Firefox im Modus „Strikter Tracking-Schutz“ ordnet Ihren Fingerabdruck zufällig zu, um grundlegende Tracking-Skripte zu verhindern. Firefox bietet separate Benutzerprofile. Mit Multi-Account-Containern können Sie Ihr Surfen innerhalb eines Profils trennen.
Firefox unterstützt Weberweiterungen nur über die Web Extension API, die Chrome sehr ähnlich ist. Die Übermittlung von Weberweiterungen in Firefox ist kostenlos. Weberweiterungen in Firefox sind meist Open Source, obwohl bestimmte Weberweiterungen proprietär sind.
Google Chrome basiert auf dem Open-Source-Chromium-Projekt mit bestimmten proprietären Komponenten:
Chrome bietet eine Kontosynchronisierung zwischen mehreren Geräten. Ein Teil der Synchronisierungsdaten umfasst Anmeldeinformationen zu Websites. Die Daten werden mit dem Kontokennwort verschlüsselt.
Der Webladen von Chrome for Extensions erfordert eine Lebensdauergebühr von 5 USD, um Erweiterungen einzureichen. Die niedrigen Kosten ermöglichen die Entwicklung vieler hochwertiger Open -Source -Web -Erweiterungen, die nicht darauf abzielen, durch die Verwendung zu monetarisieren.
Chrome hat den größten Anteil der globalen Nutzung und ist die bevorzugte Zielplattform für die Mehrheit der Entwickler. Die Haupttechnologien basieren auf den Open -Source -Komponenten von Chrom, wie z. B. Node.js, der Chroms V8 -Motor und das Elektronengerüst verwendet, das auf Chrom- und Node.js. Die riesige Benutzerbasis von Chrome ist das attraktivste Ziel für Bedrohungsakteure und Sicherheitsforscher. Trotz ständiger Angriffe hat Chrome im Laufe der Jahre eine beeindruckende Sicherheitsbilanz beibehalten. Dies ist keine kleine Leistung.
Chrome bietet separate Profile, robuste Sandboxen, häufige Updates und trägt beeindruckende Anmeldeinformationen. Darüber hinaus bietet Google ein sehr lukratives Bounty -Programm für die Berichterstattung über Schwachstellen sowie ein eigenes Projekt mit dem eigenen Projekt Zero -Team. Dies bedeutet, dass eine große Anzahl hochtalentierter und motivierter Menschen ständig Chromcode prüft und sichert.
Erstellen Sie separate Chromprofile, um das XSS -Risiko zu verringern und Cookies/Identitäten zu unterteilen. Deaktivieren Sie in jedem Profil entweder JavaScript in Chromeinstellungen und konfigurieren Sie zulässige Ursprünge. Sie sollten auch den V8 -Optimierer für Websites deaktivieren, an denen Sie JavaScript verwenden, um die Angriffsfläche weiter zu reduzieren. Gehen Sie zu Einstellungen -> Privatsphäre und Sicherheit -> Sicherheit -> V8 -Sicherheit verwalten -> Erlauben Sie keine Websites, den V8 -Optimierer zu verwenden
Lesen Sie mehr über die Vorteile, dies zu deaktivieren.
Sie können Tracker mit Ublock Origin Lite blockieren.
Ändern Sie die Standard -Suchmaschine von Google, um zusätzliche Verfolgung zu reduzieren.
Deaktivieren Sie das Vorabbau von DNS (siehe auch DNS -Vorabsteuerung und seine Datenschutzauswirkungen (PDF)). Beachten Sie, dass Chrome möglicherweise versuchen kann, DNS mithilfe von Googles 8.8.8.8
und 8.8.4.4
öffentlich -Namenservers zu beheben.
Weitere Informationen finden Sie in der Chromsicherheit und der Privatsphäre von Chromien. Lesen Sie die Datenschutzbestimmungen von Google, um zu verstehen, wie persönliche Informationen gesammelt und verwendet werden.
Safari ist der Standardbrowser auf macOS. Es ist auch der optimierteste Browser zur Reduzierung der Batterieverwendung. Safari hat wie Chrome sowohl Open Source- als auch proprietäre Komponenten. Safari basiert auf dem Open Source Web Engine Webkit, das im MacOS -Ökosystem allgegenwärtig ist. Webkit wird von Apple -Apps wie Mail, iTunes, iBooks und dem App Store verwendet. Chrome's Blink Engine ist eine Gabel von Webkit und beide Motoren teilen eine Reihe von Ähnlichkeiten.
Safari unterstützt bestimmte einzigartige Funktionen, die der Benutzersicherheit und der Privatsphäre zugute kommen. Inhaltsblocker ermöglichen die Erstellung von Inhaltssperrregeln ohne JavaScript. Dieser regelbasierte Ansatz verbessert den Speichergebrauch, die Sicherheit und die Privatsphäre erheblich. Safari 11 führte eine intelligente Tracking-Prävention ein, die nach einer Zeit der Nicht-Interaktion durch den Benutzer auf der Website des Tracker in Safari gespeichert wurde. Safari kann Ihren Fingerabdruck randomisieren, um die Verfolgung zu verringern. Safari unterstützt bestimmte Funktionen wie WebUSB oder die Batterie -API nicht absichtlich aus Sicherheits- und Datenschutzgründen. Private Registerkarten in Safari haben isolierte Cookies und Cache, die beim Schließen der Registerkarte zerstört werden. Safari unterstützt auch Profile, die den Multi-Account-Behältern von Firefox entsprechen, um Kekse und Browsen zu trennen. Safari kann mit dem Lockdown-Modus, der pro Ort deaktiviert werden kann, erheblich sicherer gemacht werden. Lesen Sie mehr über die Verfolgung der Prävention in Safari.
Safari bietet eine ausgewählte Anzahl von Sicherheitsforschern ein Bounty-Programm für die Fehlerberichterstattung für Fehler. Das Bounty -Programm wurde während der Präsentation von Apple bei Blackhat 2016 bekannt gegeben.
Weberweiterungen in Safari haben zusätzlich zu Web -Erweiterungs -APIs eine zusätzliche Option, um nativen Code in der Sandbox -Umgebung von Safari zu verwenden. Web -Erweiterungen in Safari werden auch im App Store von Apple verteilt. Die Einreichung von App Store bietet den zusätzlichen Vorteil des von Apple geprüften Web -Erweiterungscode. Andererseits wird die Einreichung von App Store mit hohen Kosten erhältlich. Jährliche Entwicklerabonnementgebühr kostet 100 USD (im Gegensatz zu Chrome's 5 USD Gebühr und Firefox -Einreichung). Die hohen Kosten sind für die Mehrheit der Open -Source -Entwickler unerschwinglich. Infolgedessen hat Safari nur sehr wenige Erweiterungen zur Auswahl. Sie sollten jedoch die hohen Kosten bei der Installation von Erweiterungen berücksichtigen. Es wird erwartet, dass die meisten Web -Erweiterungen eine Möglichkeit haben, die Verwendung zu monetarisieren, um die Entwicklerkosten zu decken. Seien Sie vorsichtig bei Web -Erweiterungen, deren Quellcode nicht geöffnet ist.
Safari synchronisiert Benutzereinstellungen und Kennwörter mit iCloud Keychain. Um im Klartext angezeigt zu werden, muss ein Benutzer das Kontokennwort des aktuellen Geräts eingeben. Dies bedeutet, dass Benutzer Daten mit zusätzlicher Sicherheit über Geräte hinweg synchronisieren können.
Safari folgt einem langsameren Freisetzungszyklus als Chrom und Firefox (3-4 Minor-Releases, 1 Hauptfreisetzung, pro Jahr). Neuere Funktionen sind langsamer, um in den stabilen Kanal übernommen zu werden. Sicherheitsaktualisierungen in Safari werden unabhängig vom stabilen Release -Zeitplan behandelt und über den App Store installiert.
Siehe auch EL1T/UBLOCK-SAFARI, um Hyperlink Auditing Beacons zu deaktivieren.
Viele aus Chrom abgeleitete Browser werden nicht empfohlen. Sie sind in der Regel geschlossen, schlecht gepflegt und erheben zweifelhafte Ansprüche zum Schutz der Privatsphäre.
Andere verschiedene Browser wie Brave werden in diesem Leitfaden nicht bewertet und werden weder empfohlen noch aktiv von der Verwendung entmutigt.
Webbrowser entdecken Informationen auf verschiedene Weise, beispielsweise über die Navigator -Schnittstelle, die Informationen wie die Browserversion, das Betriebssystem, die Site -Berechtigungen und die Batterieebene des Geräts enthalten können. Viele Websites verwenden auch Canvas -Fingerabdruck, um Benutzer über Sitzungen hinweg einzigartig zu identifizieren.
Weitere Informationen zum Sicherheitsbewusstsein und zu welchen Daten werden von Ihrem Browser gesendet. und EFF decken Ihre Tracks -Ressourcen ab.
Um Drittanbieter-Trackers zu behaupten, wird empfohlen , Kekse von Drittanbietern insgesamt zu deaktivieren . Safari, Firefox und Chrom blockieren standardmäßig Cookies Dritter. Ein Cookie von Drittanbietern ist ein Cookie, das einer von einer anderen Domäne angeforderten Datei zugeordnet ist als die, die der Benutzer derzeit anzeigt. Meistens werden Cookies von Drittanbietern verwendet, um Browsing-Profile zu erstellen, indem die Bewegung eines Benutzers im Web verfolgt wird. Das Deaktivieren von Cookies von Drittanbietern verhindert, dass HTTP-Antworten und Skripte von anderen Domänen das Einstellen von Cookies festlegen. Darüber hinaus werden Cookies von Anfragen an Domänen entfernt, die nicht die Dokumentenherkunftsdomäne sind, sodass Cookies nur an die aktuelle Site gesendet werden, die angezeigt wird.
Achten Sie auch auf Webrtc, das Ihre IP -Adresse (ES) (ES) (ES) (ES) (ES) aufzeigen kann. In Firefox und Chrom/Chrom kann dies mit Erweiterungen wie Ublock -Ursprung deaktiviert werden. Der Sperrmodus deaktiviert WEBRTC in Safari.
TOR ist ein anonymisierendes Netzwerk, das zum Durchsuchen des Webs mit zusätzlicher Privatsphäre verwendet werden kann. Der Torbrowser ist eine modifizierte Version von Firefox mit einem Proxy, um auf das Tor -Netzwerk zuzugreifen.
Laden Sie den Torbrowser von Tor Project herunter.
Versuchen Sie nicht , andere Browser oder Anwendungen so zu konfigurieren, dass Sie TOR verwenden, da Sie einen Fehler machen können, der die Anonymität beeinträchtigt.
Laden Sie sowohl die dmg
als auch asc
-Signaturdateien herunter und überprüfen Sie dann, dass das Festplattenbild von TOR -Entwicklern signiert wurde:
$ cd ~ /Downloads
$ file Tor *
TorBrowser-8.0.4-osx64_en-US.dmg: bzip2 compressed data, block size = 900k
TorBrowser-8.0.4-osx64_en-US.dmg.asc: PGP signature Signature (old)
$ gpg Tor * asc
[...]
gpg: Can't check signature: No public key
$ gpg --recv 0x4E2C6E8793298290
gpg: key 0x4E2C6E8793298290: public key "Tor Browser Developers (signing key) <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --verify Tor * asc
gpg: assuming signed data in 'TorBrowser-8.0.4-osx64_en-US.dmg'
gpg: Signature made Mon Dec 10 07:16:22 2018 PST
gpg: using RSA key 0xEB774491D9FF06E2
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: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
Stellen Sie sicher, dass in der Ausgabe Good signature from "Tor Browser Developers (signing key) <[email protected]>"
angezeigt wird. Die Warnung vor dem nicht zertifizierten Schlüssel ist gutartig, da ihm noch kein Vertrauen zugewiesen wurde.
Sehen Sie, wie kann ich die Signatur des Torbrowsers überprüfen? Weitere Informationen.
Öffnen Sie das Installieren von Torbrowser das Festplattenbild und ziehen Sie das IT in den Anwendungsordner oder mit:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Überprüfen Sie, ob die Codesignatur der TOR -Anwendung mit dem Apple Developer ID Madpsayn6t des TOR -Projekts unter Verwendung der spctl -a -v
und/oder pkgutil --check-signature
-Befehle vorgenommen wurde:
$ spctl -a -vv ~ /Applications/Tor Browser.app
/Users/drduh/Applications/Tor Browser.app: accepted
source=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 Mac OS X
Certificate Chain:
1. Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
SHA1 fingerprint: 95 80 54 F1 54 66 F3 9C C2 D8 27 7A 29 21 D9 61 11 93 B3 E8
-----------------------------------------------------------------------------
2. Developer ID Certification Authority
SHA1 fingerprint: 3B 16 6C 3B 7D C4 B7 51 C9 FE 2A FA B9 13 56 41 E3 88 E1 86
-----------------------------------------------------------------------------
3. Apple Root CA
SHA1 fingerprint: 61 1E 5B 66 2C 59 3A 08 FF 58 D1 4A E2 24 52 D1 98 DF 6C 60
Sie können auch den Befehl codesign
verwenden, um die Codesignatur einer Anwendung zu untersuchen:
$ codesign -dvv ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
Identifier=org.torproject.torbrowser
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=229 flags=0x0(none) hashes=4+3 location=embedded
Library validation warning=OS X SDK version before 10.9 does not support Library Validation
Signature size=4247
Authority=Developer ID Application: The Tor Project, Inc (MADPSAYN6T)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Signed Time=Dec 10, 2018 at 12:18:45 AM
Info.plist entries=24
TeamIdentifier=MADPSAYN6T
Sealed Resources version=2 rules=12 files=128
Internal requirements count=1 size=188
Um die vollständigen Zertifikatdetails für eine signierte Anwendung anzuzeigen, extrahieren Sie sie mit codesign
und dekodieren Sie sie mit openssl
:
$ codesign -d --extract-certificates ~ /Applications/Tor Browser.app
Executable=/Users/drduh/Applications/Tor Browser.app/Contents/MacOS/firefox
$ file codesign *
codesign0: data
codesign1: data
codesign2: data
$ 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=Apple Certification Authority/O=Apple Inc./C=US
notBefore=Apr 12 22:40:13 2016 GMT
notAfter=Apr 13 22:40:13 2021 GMT
$ openssl x509 -inform der -in codesign0 -fingerprint -noout
SHA1 Fingerprint=95:80:54:F1:54:66:F3:9C:C2:D8:27:7A:29:21:D9:61:11:93:B3:E8
$ openssl x509 -inform der -in codesign0 -fingerprint -sha256 -noout
SHA256 Fingerprint=B5:0D:47:F0:3E:CB:42:B6:68:1C:6F:38:06:2B:C2:9F:41:FA:D6:54:F1:29:D3:E4:DD:9C:C7:49:35:FF:F5:D9
Der TOR -Verkehr wird in den Exit -Knoten verschlüsselt (dh kann nicht von einem passiven Netzwerk -Abhören gelesen werden), aber die Verwendung von TOR kann identifiziert werden - beispielsweise werden TLS -Handshake "Hostnames" in Plaintext angezeigt:
$ sudo tcpdump -An " tcp " | grep " www "
listening on pktap, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
.............". ...www.odezz26nvv7jeqz1xghzs.com.........
.............#.!...www.bxbko3qi7vacgwyk4ggulh.com.........
.6....m.....>...:.........|../* Z....W....X=..6...C../....................................0...0..0.......'....F./0.. *.H........0%1#0!..U....www.b6zazzahl3h3faf4x2.com0...160402000000Z..170317000000Z0'1%0#..U....www.tm3ddrghe22wgqna5u8g.net0..0..
Weitere Informationen finden Sie unter der TOR -Protokollspezifikation und tor/tlshistory.
Möglicherweise möchten Sie zusätzlich den TOR -Verkehr mit einem steckbaren Transport verschleiern.
Dies kann durch die Einrichtung Ihres eigenen Tor -Relais oder die Suche nach einer vorhandenen privaten oder öffentlichen Brücke erfolgen, die als verschleiertes Einstiegsknoten dient.
Verwenden Sie für zusätzliche Sicherheit TOR in einer virtuellen oder vmware virtualisierten GNU/Linux- oder OpenBSD -Instanz.
Denken Sie schließlich daran, dass das Tor -Netzwerk Anonymität bietet, was nicht unbedingt gleichbedeutend mit Privatsphäre ist. Das TOR -Netzwerk garantiert keinen Schutz gegen einen globalen Beobachter, der zur Verkehrsanalyse und Korrelation in der Lage ist. Siehe auch Anonymität in einem Internet Panopticon (PDF) und Verkehrskorrelation von realistischen Gegnern (PDF).
Siehe auch Invisible Internet Project (I2P) und seinen TOR -Vergleich.
Stellen Sie bei der Auswahl eines VPN -Dienstes oder der Einrichtung Ihrer eigenen sicher, dass Sie die Protokolle, wichtige Austauschalgorithmen, Authentifizierungsmechanismen und Art der Verschlüsselung erforschen. Einige Protokolle wie PPTP sollten zugunsten von OpenVPN oder Linux-basiertem Drahtguard auf einem Linux-VM oder über eine Reihe von Cross-Plattform-Tools vermieden werden.
Einige Clients können den Datenverkehr über die nächste verfügbare Schnittstelle senden, wenn VPN unterbrochen oder getrennt wird. In einem Beispiel finden Sie SCY/8122924, wie der Datenverkehr nur über VPN zulässt.
Es gibt eine aktualisierte Anleitung zum Einrichten eines IPSec-VPN auf einer virtuellen Maschine (HWDSL2/Setup-IPSC-VPN) oder einem Docker-Container (HWDSL2/Docker-IPSC-VPN-Server).
Es kann sich lohnen, den geografischen Ort des VPN -Anbieters zu berücksichtigen. Siehe weitere Diskussion in Ausgabe 114.
Sehen Sie sich auch diesen technischen Überblick über den integrierten MACOS-integrierten VPN L2TP/IPSec und IKEV2-Client an.
PGP ist ein Standard für die Unterzeichnung und Verschlüsselung von Daten (insbesondere von E-Mail) von End-to-End, sodass nur der Absender und der Empfänger darauf zugreifen können.
GPG oder GNU Privacy Guard ist ein GPL-lizenziertes Open-Source-Programm, das dem PGP-Standard entspricht.
GPG wird verwendet, um die Signaturen der von Ihnen heruntergeladenen und installierten Software sowie symmetrisch oder asymmetrisch verschlüsseln Dateien und Text zu überprüfen.
Installieren Sie bei Homebrew mit brew install gnupg
.
Wenn Sie eine grafische Anwendung bevorzugen, laden Sie die GPG -Suite herunter und installieren Sie sie.
Laden Sie DRDUH/config/gpg.conf herunter, um empfohlene Einstellungen zu verwenden:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
Siehe DRDUH/Yubikey-Guide, um GPG-Tasten sicher zu generieren und zu speichern.
Lesen Sie Online -Anleitungen und üben Sie die Verschlüsselung und Entschlüsselung von E -Mails an sich und Ihre Freunde. Interessieren Sie sich für dieses Zeug!
XMPP ist ein offener Standard, der vom IETF entwickelt wurde und plattformübergreifende Messaging-Messaging ermöglicht. Es gibt viele Optionen für Kunden. Erwägen Sie, einen der browserbasierten Kunden zu verwenden, um die Sandbox Ihres Browsers zu nutzen.
Abhängig vom Anbieter benötigen Sie möglicherweise nichts anderes als einen Benutzernamen und ein Passwort, um Ihr Konto einzurichten.
XMPP ist nicht standardmäßig E2EE, Sie müssen Omemo -Verschlüsselung verwenden. Stellen Sie daher sicher, dass Ihr Kunde sie unterstützt.
Signal ist ein erweiterter E2EE-Messenger, dessen Doppel-Patchet-Protokoll von unzähligen anderen Messenger, einschließlich WhatsApp, Google-Nachrichten und Facebook Messenger, verwendet wird.
Signal erfordert eine Telefonnummer, um sich anzumelden, und Sie müssen es zuerst auf Ihrem Telefon installieren, bevor Sie sie auf dem Desktop verwenden können.
iMessage ist Apples erstes Party Messenger. Es erfordert ein Apple -Konto, um es zu verwenden.
Stellen Sie sicher, dass Sie die Überprüfung der Kontaktschlüssel aktivieren, und überprüfen Sie mit jedem, den Sie Nachricht haben, um sicherzustellen, dass Sie die richtige Person senden.
Sie können iMessage entweder mit einer Telefonnummer oder einer E -Mail verwenden. Wählen Sie also eine aus, die Sie mit Ihren Kontakten befriefen.
Hinweis: Standardmäßig ist die iCloud -Sicherung aktiviert, in der Kopien Ihrer Nachrichtenverschlüsselungsschlüssel auf Apple -Servern ohne E2EE gespeichert sind. Entweder deaktivieren Sie die iCloud -Sicherung oder aktivieren Sie erweiterten Datenschutz, um dies zu verhindern. Denken Sie auch daran, Ihren Messaging -Partnern zu sagen, dass sie dasselbe tun sollen!
In freier Wildbahn gibt es eine immer größere Menge Mac-Malware. MACs sind nicht immun gegen Viren und böswillige Software!
Einige Malware werden sowohl mit legitimer Software wie der Java Bündelung Ask -Symbolleiste als auch mit illegitimen Software wie Mac.backdoor gebündelt.
Siehe Methoden der Malware Persistenz auf Mac OS X (PDF) und Malware Persistenz unter OS X Yosemite, um zu erfahren, wie die Malware der Garten-Variety funktioniert.
Abonnieren Sie Updates im MalwareBytes -Blog für aktuelle Mac Security News.
Schauen Sie sich auch das Hacking -Team Malware für MacOS an: Root -Installation für macOS, unterstützen Sie den Treiber für ls
Agent und RCS Agent für Mac ps
Weitere Informationen finden Sie in einer kurzen Analyse eines RCS -Implantat -Installationsprogramms und Reverse.put.as
Das Ausführen von Programmen aus dem App Store oder die von Apple nicht notariellem Malware mildern. Apple führt einen automatisierten Scan für notariell notarielle Apps für Malware durch. App Store -Apps unterziehen sich einem Überprüfungsprozess, um Malware zu fangen.
Andernfalls erhalten Sie Programme aus vertrauenswürdigen Quellen wie direkt von der Website des Entwicklers oder Github. Stellen Sie immer sicher, dass Ihr Browser/Terminal beim Herunterladen eines Programms HTTPS verwendet.
Sie sollten auch Programme vermeiden, die viele Berechtigungen und geschlossene Quellenprogramme von Dritten verlangen. Mit Open Source Code können jeder den Code für Sicherheits-/Datenschutzprobleme prüfen und prüfen.
Überprüfen Sie, ob ein Programm die App Sandbox verwendet, bevor Sie es ausführen, indem Sie den folgenden Befehl ausführen:
codesign -dvvv --entitlements - <path to your app>
Wenn die App Sandbox aktiviert ist, sehen Sie
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
Alternativ können Sie überprüfen, ob die App ausgeführt wird, indem Sie den Aktivitätsmonitor öffnen und die Spalte "Sandbox" hinzufügen.
Alle App Store -Apps müssen die App Sandbox verwenden.
Hinweis: Browser wie Google Chrome verwenden ihre eigene Sandbox, damit sie die App Sandbox nicht verwenden.
Überprüfen Sie, ob ein Programm die gehärtete Laufzeit verwendet, bevor Sie es mit dem folgenden Befehl ausführen:
codesign --display --verbose /path/to/bundle.app
Wenn gehärtete Laufzeit aktiviert ist, sehen Sie flags=0x10000(runtime)
. Die "Laufzeit" bedeutet, dass die gehärtete Laufzeit aktiviert ist. Es mag andere Flaggen geben, aber die Laufzeitflagge ist das, wonach wir hier suchen.
Sie können eine Spalte im Aktivitätsmonitor aktivieren, das als "eingeschränkt" bezeichnet wird und ein Flag ist, das verhindert, dass Programme Code über den dynamischen Linker von MacOS injizieren. Im Idealfall sollte dies "Ja" sagen.
Notarielles Apps sind erforderlich, um die gehärtete Laufzeit zu verwenden.
Um eine Anwendung mit mehreren AV -Produkten zu scannen und ihr Verhalten zu untersuchen, laden Sie sie vor dem Ausführen in virustotal hoch.
MacOS verfügt über ein integriertes AV-Programm namens XProtect. XProtect wird automatisch im Hintergrund ausgeführt und aktualisiert seine Signaturen, mit denen Malware erfasst wird, ohne dass Sie etwas tun müssen. Wenn es Malware bereits ausgeführt wird, funktioniert es, es genau wie jedes andere AV -Programm zu entfernen und zu mildern.
Anwendungen wie BlockBlock oder maclaunch.sh können dazu beitragen, anhaltende Malware zu verhindern.
Lokal installierte Antivirenprogramme sind im Allgemeinen ein zweischneidiges Schwert: Sie können die "Gartenvielfalt" -Anware fangen, können aber auch die Angriffsfläche für hochentwickelte Gegner aufgrund ihres privilegierten Betriebsmodus erhöhen. Sie telefonieren normalerweise auch nach Hause, um Proben zu senden, um die neueste Malware zu fangen. Dies kann ein Privatsphäre sein.
Siehe Sophail: Angewandte Angriffe gegen Antivirus (PDF), Analyse und Ausbeutung einer ESET -Schwachstelle, beliebte Sicherheitssoftware wurde unerbittliche NSA- und GCHQ -Angriffe unterzogen und wie Israel russische Hacker erwischt, die die Welt für US -Geheimnisse durchsuchen.
Gatekeeper versucht, nicht-nicht-nicht-terotarisierte Apps zu verhindern.
Wenn Sie versuchen, eine App auszuführen, die nicht notariell notariell ist, wird Ihnen der Gatekeeper eine Warnung abgibt. Dies kann leicht umgangen werden, wenn Sie zur Privatsphäre und Sicherheit gehen, nach unten scrollen und in Ihrer App öffnen . Dann ermöglicht es bei Gatekeeper, es auszuführen.
Gatekeeper deckt nicht alle Binärdateien ab, sondern nur Apps. Achten Sie daher vorsichtig, wenn Sie andere Dateitypen ausführen.
Um zu überprüfen, ob SIP aktiviert ist, verwenden Sie den Befehl csrutil status
, der zurückgeben sollte: System Integrity Protection status: enabled.
Andernfalls aktivieren Sie SIP im Wiederherstellungsmodus.
MacOS richtet Metadaten (APFS Extended Attribute) an heruntergeladene Dateien an, die mit den Befehlen mdls
und xattr
angezeigt werden können:
$ ls -l@ ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
-rw-r--r--@ 1 drduh staff 63M Jan 1 12:00 TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms 46B
com.apple.quarantine 57B
$ mdls ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
kMDItemContentCreationDate = 2019-01-01 00:00:00 +0000
kMDItemContentCreationDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemContentModificationDate = 2019-01-01 00:00:00 +0000
kMDItemContentType = "com.apple.disk-image-udif"
kMDItemContentTypeTree = (
"public.archive",
"public.item",
"public.data",
"public.disk-image",
"com.apple.disk-image",
"com.apple.disk-image-udif"
)
kMDItemDateAdded = 2019-01-01 00:00:00 +0000
kMDItemDateAdded_Ranking = 2019-01-01 00:00:00 +0000
kMDItemDisplayName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSContentChangeDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreationDate = 2019-01-01 00:00:00 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = (null)
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = (null)
kMDItemFSLabel = 0
kMDItemFSName = "TorBrowser-8.0.4-osx64_en-US.dmg"
kMDItemFSNodeCount = (null)
kMDItemFSOwnerGroupID = 5000
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 65840402
kMDItemFSTypeCode = ""
kMDItemInterestingDate_Ranking = 2019-01-01 00:00:00 +0000
kMDItemKind = "Disk Image"
kMDItemWhereFroms = (
"https://dist.torproject.org/torbrowser/8.0.4/TorBrowser-8.0.4-osx64_en-US.dmg",
"https://www.torproject.org/projects/torbrowser.html.en"
)
$ xattr -l ~ /Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
com.apple.metadata:kMDItemWhereFroms:
00000000 62 70 6C 69 73 74 30 30 A2 01 02 5F 10 4D 68 74 |bplist00..._.Mht|
00000010 74 70 73 3A 2F 2F 64 69 73 74 2E 74 6F 72 70 72 |tps://dist.torpr|
00000020 6F 6A 65 63 74 2E 6F 72 67 2F 74 6F 72 62 72 6F |oject.org/torbro|
[...]
com.apple.quarantine: 0081;58519ffa;Google Chrome.app;1F032CAB-F5A1-4D92-84EB-CBECA971B7BC
Metadatenattribute können auch mit der FLAG -d
entfernt werden:
xattr -d com.apple.metadata:kMDItemWhereFroms ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -d com.apple.quarantine ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
xattr -l ~/Downloads/TorBrowser-8.0.4-osx64_en-US.dmg
Andere Metadaten und Artefakte finden sich in den Verzeichnissen, einschließlich, aber nicht beschränkt auf ~/Library/Preferences/
, ~/Library/Containers/<APP>/Data/Library/Preferences
, /Library/Preferences
, von denen einige detailliert sind unten.
~/Library/Preferences/com.apple.sidebarlists.plist
enthält eine historische Liste der angeschlossenen Volumina. Um es zu löschen, verwenden Sie den Befehl /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
enthält Bluetooth -Metadaten, einschließlich Geräteverlauf. Wenn nicht Bluetooth verwendet wird, kann die Metadaten gelöscht werden mit:
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist DeviceCache
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist IDSPairedDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANDevices
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist PANInterfaces
sudo defaults delete /Library/Preferences/com.apple.Bluetooth.plist SCOAudioDevices
/var/spool/cups
enthält den Cups -Druckerjob -Cache. Um es zu löschen, verwenden Sie die Befehle:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
Verwenden Sie, um die Liste der angeschlossenen iOS -Geräte zu löschen:
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Users/$USER/Library/Preferences/com.apple.iPod.plist Devices
sudo defaults delete /Library/Preferences/com.apple.iPod.plist "conn:128:Last Connect"
sudo defaults delete /Library/Preferences/com.apple.iPod.plist Devices
sudo rm -rfv /var/db/lockdown/*
QuickLook Thumbnail -Daten können mit dem Befehl qlmanage -r cache
gelöscht werden. Dies schreibt jedoch in den QuickLook -Verzeichnissen in die Datei resetreason
, und gibt an, dass der QuickLook -Cache manuell gelöscht wurde. Deaktivieren Sie den Vorschaubild -Cache mit qlmanage -r disablecache
Es kann auch gelöscht werden, indem die Verzeichnisnamen mit getconf DARWIN_USER_CACHE_DIR
und sudo getconf DARWIN_USER_CACHE_DIR
abgerufen werden und diese dann entfernt werden:
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
In ähnlicher Weise für den Root -Benutzer:
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/exclusive
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-shm
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/index.sqlite-wal
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/resetreason
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.data
sudo rm -rfv $(getconf DARWIN_USER_CACHE_DIR)/com.apple.QuickLook.thumbnailcache/thumbnails.fraghandler
Siehe auch 'QuickLook' Cache kann verschlüsselte Daten auslaufen.
Finderpräferenzen zu klären:
defaults delete ~/Library/Preferences/com.apple.finder.plist FXDesktopVolumePositions
defaults delete ~/Library/Preferences/com.apple.finder.plist FXRecentFolders
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentMoveAndCopyDestinations
defaults delete ~/Library/Preferences/com.apple.finder.plist RecentSearches
defaults delete ~/Library/Preferences/com.apple.finder.plist SGTRecentFileSearches
Weitere diagnostische Dateien finden Sie in den folgenden Verzeichnissen. Vor dem Entfernen sollten jedoch Vorsicht getroffen werden, da dies die Protokollierung durchbrechen oder andere Probleme verursachen kann:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MACOS gespeichert vor bevorzugten Wi-Fi-Daten (einschließlich Anmeldeinformationen) in NVRAM. Verwenden Sie die folgenden Befehle, um es zu löschen:
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count
MACOS kann vertrauliche Informationen über das, was Sie eingeben, sammeln, auch wenn Benutzerwörterbuch und Vorschläge ausgeschaltet sind. Um sie zu entfernen und zu verhindern, dass sie erneut erstellt werden, verwenden Sie die folgenden Befehle:
rm -rfv "~/Library/LanguageModeling/*" "~/Library/Spelling/*" "~/Library/Suggestions/*"
chmod -R 000 ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
chflags -R uchg ~/Library/LanguageModeling ~/Library/Spelling ~/Library/Suggestions
QuickLook Application Support Metadaten können mit den folgenden Befehlen gelöscht und gesperrt werden:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
Die Dokumentrevisionsmetadaten werden in /.DocumentRevisions-V100
gespeichert und können mit den folgenden Befehlen gelöscht und gesperrt werden - Vorsicht werden gewürdigt, da dies einige Kernanwendungen auflösen kann:
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
Gespeicherte Anwendungsstatusmetadaten können mit den folgenden Befehlen gelöscht und gesperrt werden:
rm -rfv ~/Library/Saved Application State/*
rm -rfv ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chmod -R 000 ~/Library/Saved Application State/
chmod -R 000 ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
chflags -R uchg ~/Library/Saved Application State/
chflags -R uchg ~/Library/Containers/<APPNAME>/Data/Library/Saved Application State
Autosave -Metadaten können mit den folgenden Befehlen gelöscht und gesperrt werden:
rm -rfv "~/Library/Containers/<APP>/Data/Library/Autosave Information"
rm -rfv "~/Library/Autosave Information"
chmod -R 000 "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chmod -R 000 "~/Library/Autosave Information"
chflags -R uchg "~/Library/Containers/<APP>/Data/Library/Autosave Information"
chflags -R uchg "~/Library/Autosave Information"
Die Siri Analytics -Datenbank, die auch dann erstellt wird, wenn der Siri -Startagent deaktiviert ist, kann mit den folgenden Befehlen gelöscht und gesperrt werden:
rm -rfv ~/Library/Assistant/SiriAnalytics.db
chmod -R 000 ~/Library/Assistant/SiriAnalytics.db
chflags -R uchg ~/Library/Assistant/SiriAnalytics.db
~/Library/Preferences/com.apple.iTunes.plist
enthält iTunes -Metadaten. Neuere iTunes -Suchdaten können mit dem folgenden Befehl gelöscht werden:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
Wenn Sie nicht von Apple-Konto verbundene Dienste verwenden, können auch die folgenden Tasten unter Verwendung der folgenden Befehle gelöscht werden:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
Alle Medien, die im QuickTime -Spieler gespielt werden, finden Sie in:
~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist
In den folgenden Dateien können zusätzliche Metadaten vorhanden sein:
~/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
Generieren Sie starke Passwörter mit urandom
und tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
Der Kennwortassistent im Keychain -Zugriff kann auch sichere Anmeldeinformationen generieren.
Erwägen Sie die Verwendung von Würflenware für unvergessliche Passwörter.
GNUPG kann auch zum Verwalten von Kennwörtern und anderen verschlüsselten Dateien verwendet werden (siehe DRDUH/PUTSE und DRDUH/PWD.SH).
Stellen Sie sicher, dass alle förderfähigen Online-Konten eine Multi-Faktor-Authentifizierung aktiviert sind. Die stärkste Form der Multi-Faktor-Authentifizierung ist WebAuthn, gefolgt von App-basierten Authentikatoren, und SMS-basierte Codes sind am schwächsten.
Yubikey ist ein erschwingliches Hardware -Token mit WebAuthn -Support. Es kann auch verwendet werden, um kryptografische Schlüssel für die GNUPG -Verschlüsselung und die SSH -Authentifizierung zu speichern - siehe DRDUH/YUBIKEY -GUIDE.
Verschlüsseln Sie Dateien lokal, bevor Sie sie auf externe Medien oder Online -Dienste unterstützen.
Wenn Ihr Bedrohungsmodell dies zulässt, sollten Sie das von CISA beschriebene 3-2-1-Sicherungsmodell befolgen. Halten Sie 3 Kopien: das Original und zwei Backups. Halten Sie Sicherungen auf 2 verschiedenen Medientypen, z. B. auf einem lokalen Laufwerk und Cloud -Speicher. 1 kopieren 1 Offsite.
Time Machine ist das integrierte Werkzeug zum Umgang mit Backups auf MacOS. Holen Sie sich ein externes Laufwerk oder ein Netzwerk -Laufwerk, um Ihre Backups zu sichern und zu verschlüsseln.
GNUPG kann mit einem statischen Passwort oder öffentlichen Schlüssel verwendet werden (mit dem auf Yubikey gespeicherten privaten Schlüssel).
Komprimieren und verschlüsseln ein Verzeichnis mit einem Passwort:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
Entschlüsseln und dekomprimieren das Verzeichnis:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
Verschlüsselte Volumina können auch mit dem Disk -Dienstprogramm oder hdiutil
erstellt werden:
hdiutil create ~/Desktop/encrypted.dmg -encryption -size 50M -volname "secretStuff"
hdiutil mount ~/Desktop/encrypted.dmg
cp -v ~/Documents/passwords.txt /Volumes/secretStuff
hdiutil eject /Volumes/secretStuff
Weitere Anwendungen und Dienste, die Backups anbieten, umfassen:
MacOS erinnert sich an Zugangspunkte, an die es sich angeschlossen hat. Wie alle drahtlosen Geräte übertragen der Mac alle Zugriffspunkte, die er sich erinnert (z. B. Myhomenetwork ), jedes Mal, wenn es nach einem Netzwerk sucht, z. B. beim Aufwachen aus dem Schlaf.
Dies ist ein Datenschutzrisiko. Entfernen Sie also Netzwerke aus der Liste in Systemeinstellungen > Netzwerk > Fortgeschritten, wenn sie nicht mehr benötigt werden.
Sehen Sie auch Signale von der Menge: Aufdecken sozialer Beziehungen durch Smartphone -Sonden (PDF).
Sparen Wi-Fi-Informationen (SSID, letzte Verbindung usw.) finden Sie in /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
Sie können eine andere, zufällige MAC -Adresse für jedes Netzwerk haben, das sich im Laufe der Zeit dreht. Dies hilft Ihnen, im Laufe der Zeit über Netzwerke und im selben Netzwerk verfolgt zu werden.
MacOS speichert Wi-Fi-SSIDs und Passwörter in NVRAM, damit der Wiederherstellungsmodus auf das Internet zugreift. Stellen Sie sicher, dass Sie Ihren MAC entweder NVRAM löschen oder aus Ihrem Apple-Konto entfernen, wodurch das NVRAM gelöscht wird, bevor Sie einen Mac weitergeben. Das Zurücksetzen des SMC wird einige der NVRAM, aber nicht alle, löschen.
Schließlich ist der WEP -Schutz in drahtlosen Netzwerken nicht sicher und Sie sollten nach Möglichkeit nur eine Verbindung zu WPA3 -geschützten Netzwerken herstellen.
Verwenden Sie für ausgehende SSH-Verbindungen Hardware- oder Kennwort-geschützte Schlüssel, richten Sie Remote-Hosts ein und in Betracht, sie für zusätzliche Privatsphäre zu haben. Empfohlene Client -Optionen finden Sie unter DRDuh/config/ssh_config.
Sie können auch SSH verwenden, um einen verschlüsselten Tunnel zu erstellen, um den Verkehr durch zu senden, ähnlich wie ein VPN.
Zum Beispiel, um Privatniveau zu verwenden, das auf einem Remote -Host -Port 8118 ausgeführt wird:
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
Oder um eine SSH -Verbindung als Socken -Proxy zu verwenden:
ssh -NCD 3000 [email protected]
Standardmäßig verfügt MacOS nicht mit SSHD oder Remote -Login .
So aktivieren Sie SSHD und ermöglichen eingehenden SSH -Verbindungen:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Oder verwenden Sie das Menü "Systemeinstellungen" > "Freigabemenü ."
Wenn Sie SSHD aktivieren, deaktivieren Sie unbedingt die Authentifizierung der Kennwort und erwägen Sie, Ihre Konfiguration weiter zu verhärten. Empfohlene Optionen finden Sie unter DRDuh/config/sshd_config.
Bestätigen Sie, ob SSHD ausgeführt wird:
sudo lsof -Pni TCP:22
Halten Sie Ihren Mac jederzeit physisch sicher und lassen Sie ihn nicht in der Öffentlichkeit unbeaufsichtigt.
Ein erfahrener Angreifer mit unbeaufsichtigtem physischem Zugriff kann einen Hardware -Keylogger installieren, um alle Ihre Tastenanschläge aufzunehmen. Wenn Sie einen Mac mit einer eingebauten Tastatur oder einer Bluetooth-Tastatur verwenden, wird dies schwieriger, da viele Off-the-Shelf-Versionen dieses Angriffs so ausgelegt sind, dass sie zwischen einer USB-Tastatur und Ihrem Computer eingesteckt werden.
Um während des Gebrauchs vor physischen Diebstahl zu schützen, können Sie ein anti-forensisches Tool wie Buskill oder Swiftguard (aktualisiert USBKill mit grafischer Benutzeroberfläche) verwenden. Alle reagieren auf USB -Ereignisse und können Ihren Computer sofort herunterfahren, wenn Ihr Gerät physisch von Ihnen getrennt ist oder ein nicht autorisiertes Gerät angeschlossen ist.
Erwägen Sie, einen Datenschutzbildschirm/Filter für die Verwendung in der Öffentlichkeit zu kaufen.
Nagellack- und Manipulden-Dichtungen können auf Komponenten aufgetragen werden, um Manipulationen zu erkennen.
MacOS verfügt über eine leistungsstarke OpenBSM -Prüfungsfähigkeit (Basic Security Modul). Sie können es verwenden, um die Prozessausführung, die Netzwerkaktivität und vieles mehr zu überwachen.
Verwenden Sie das praudit
-Dienstprogramm, um zu prüfen. Audit -Protokolle:
$ sudo praudit -l /dev/auditpipe
header,201,11,execve(2),0,Thu Sep 1 12:00:00 2015, + 195 msec,exec arg,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,path,/Applications/.evilapp/rootkit,attribute,100755,root,wheel,16777220,986535,0,subject,drduh,root,wheel,root,wheel,412,100005,50511731,0.0.0.0,return,success,0,trailer,201,
header,88,11,connect(2),0,Thu Sep 1 12:00:00 2015, + 238 msec,argument,1,0x5,fd,socket-inet,2,443,173.194.74.104,subject,drduh,root,wheel,root,wheel,326,100005,50331650,0.0.0.0,return,failure : Operation now in progress,4354967105,trailer,88
header,111,11,OpenSSH login,0,Thu Sep 1 12:00:00 2015, + 16 msec,subject_ex,drduh,drduh,staff,drduh,staff,404,404,49271,::1,text,successful login drduh,return,success,0,trailer,111,
Die Handbuchseiten für audit
, praudit
, audit_control
und andere Dateien in /etc/security
finden Sie
Hinweis Obwohl man audit
sagt, dass das Flag -s
-Flag die Audit -Konfiguration synchronisiert, erscheint es erforderlich, für Änderungen zu starten, die wirksam werden.
Weitere Informationen finden Sie unter ilostmynotes.blogspot.com und derflounder.wordpress.com.
Hinweis der Systemintegritätsschutz beeinträchtigt DTRACE, sodass es nicht möglich ist, ihn in neueren MacOS -Versionen zu verwenden, ohne SIP zu deaktivieren.
iosnoop
überwacht die Festplatte i/oopensnoop
-Monitore -Datei öffnet sichexecsnoop
überwacht die Ausführung von Prozessenerrinfo
-Monitore fehlten Systemaufrufe ausdtruss
überwacht alle Systemaufrufe Weitere Informationen finden Sie unter man -k dtrace
.
ps -ef
listet Informationen zu allen laufenden Prozessen auf.
Sie können auch Prozesse mit dem Aktivitätsmonitor anzeigen.
launchctl list
UND sudo launchctl list
LOLTEDLADED UND LAUFEN UMSER- UND SYSTEM LERTIGE DAEMONEN UND AGENTEN.
Listen Sie offene Netzwerkdateien auf:
sudo lsof -Pni
Listen Sie die Inhalte verschiedener netzwerkbezogener Datenstrukturen auf:
sudo netstat -atln
Wireshark kann von der Befehlszeile mit tshark
verwendet werden.
Überwachen Sie DNS -Abfragen und Antworten:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
Überwachen Sie HTTP -Anforderungen und Antworten:
tshark -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
Überwachen Sie X509 (SSL/TLS) Zertifikate:
tshark -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
Google/Santa ist eine Sicherheitssoftware, die für die Macintosh -Flotte von Google entwickelt wurde und Open Source.
Santa ist ein Binär- und Dateizugriffsgenehmigungssystem für macOS. Es besteht aus einer Systemerweiterung, die Ausführungen überwacht, ein Daemon, das Ausführungsentscheidungen auf der Grundlage des Inhalts einer lokalen Datenbank, eines GUI-Agenten, der den Benutzer im Falle einer Blockentscheidung und eines Befehlszeilendienstprogramms für die Verwaltung des Systems und der Verwaltung des Systems und zur Bekämpfung des Systems trifft, überwacht Synchronisierung der Datenbank mit einem Server.
Der Weihnachtsmann verwendet die Kernel -Autorisierungs -API, um Binärdateien im Kernel zu überwachen und zu verhindern. Binärdateien können durch ein einzigartiges Hash oder das Signierentwicklerzertifikat weiß oder schwarz gelistet werden. Der Weihnachtsmann kann verwendet werden, um eine vertrauenswürdige Code -Ausführung nur zuzulassen, oder es ist eine schwarze Liste bekannter Malware, auf einem Mac auszuführen, ähnlich wie Bit9 -Software für Windows.
Hinweis Santa hat derzeit keine grafische Benutzeroberfläche zum Verwalten von Regeln. Die folgenden Anweisungen gelten nur für erweiterte Benutzer!
Um den Weihnachtsmann zu installieren, besuchen Sie die Releases -Seite und laden Sie das neueste Festplattenbild herunter, montieren Sie es und installieren Sie das enthaltene Paket:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
Standardmäßig installiert der Weihnachtsmann im "Monitor" -Modus (dh nichts wird blockiert, nur protokolliert) und wird mit zwei Regeln geliefert: eines für Apple -Binärdateien und eine für die Santa -Software selbst.
Überprüfen Sie, ob der Weihnachtsmann ausgeführt wird und sein Kernel -Modul geladen wird:
$ santactl status
>>> Daemon Info
Mode | Monitor
File Logging | No
Watchdog CPU Events | 0 (Peak: 0.00%)
Watchdog RAM Events | 0 (Peak: 0.00MB)
>>> Kernel Info
Kernel cache count | 0
>>> Database Info
Binary Rules | 0
Certificate Rules | 2
Events Pending Upload | 0
$ ps -ef | grep " [s]anta "
0 786 1 0 10:01AM ?? 0:00.39 /Library/Extensions/santa-driver.kext/Contents/MacOS/santad --syslog
$ kextstat | grep santa
119 0 0xffffff7f822ff000 0x6000 0x6000 com.google.santa-driver (0.9.14) 693D8E4D-3161-30E0-B83D-66A273CAE026 <5 4 3 1>
Erstellen Sie eine Blacklist -Regel, um zu verhindern, dass iTunes ausgeführt werden:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Versuchen Sie, iTunes zu starten - es wird blockiert.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
Um die Regel zu entfernen:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Öffnen iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
Erstellen Sie ein neues Beispiel für C -Programm:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
Kompilieren Sie das Programm mit GCC (erfordert die Installation von Xcode- oder Befehlszeilen-Tools):
$ gcc -o foo foo.c
$ file foo
foo: Mach-O 64-bit executable x86_64
$ codesign -d foo
foo: code object is not signed at all
Führen Sie es aus:
$ ./foo
Hello World
Schalten Sie den Santa in den "Sperren" -Modus ein, in dem nur autorisierte Binärdateien ausgeführt werden können:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
Versuchen Sie, die nicht signierte Binärin zu betreiben:
$ ./foo
bash: ./foo: Operation not permitted
Santa
The following application has been blocked from executing
because its trustworthiness cannot be determined.
Path: /Users/demouser/foo
Identifier: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Parent: bash (701)
Um eine Binärdatei zu genehmigen, bestimmen Sie seine SHA-256-Summe:
$ santactl fileinfo /Users/demouser/foo
Path : /Users/demouser/foo
SHA-256 : 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
SHA-1 : 4506f3a8c0a5abe4cacb98e6267549a4d8734d82
Type : Executable (x86-64)
Code-signed : No
Rule : Blacklisted (Unknown)
Fügen Sie eine neue Regel hinzu:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
Führen Sie es aus:
$ ./foo
Hello World
Es ist erlaubt und funktioniert!
Anwendungen können auch vom Entwicklerzertifikat zulässig sein. Download und führen Sie Google Chrome herunter und führen Sie sie im "Lockdown" -Modus vom Santa blockiert:
$ curl -sO https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
$ hdiutil mount googlechrome.dmg
$ cp -r /Volumes/Google Chrome/Google Chrome.app /Applications/
$ open /Applications/Google Chrome.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Google Chrome.app.
Autorisieren Sie die Bewerbung durch das Entwicklerzertifikat (erster Artikel in der Unterzeichnungskette):
$ santactl fileinfo /Applications/Google Chrome.app/
Path : /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
SHA-256 : 0eb08224d427fb1d87d2276d911bbb6c4326ec9f74448a4d9a3cfce0c3413810
SHA-1 : 9213cbc7dfaaf7580f3936a915faa56d40479f6a
Bundle Name : Google Chrome
Bundle Version : 2883.87
Bundle Version Str : 55.0.2883.87
Type : Executable (x86-64)
Code-signed : Yes
Rule : Blacklisted (Unknown)
Signing Chain:
1. SHA-256 : 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
SHA-1 : 85cee8254216185620ddc8851c7a9fc4dfe120ef
Common Name : Developer ID Application: Google Inc.
Organization : Google Inc.
Organizational Unit : EQHXZ8M8AV
Valid From : 2012/04/26 07:10:10 -0700
Valid Until : 2017/04/27 07:10:10 -0700
2. SHA-256 : 7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f
SHA-1 : 3b166c3b7dc4b751c9fe2afab9135641e388e186
Common Name : Developer ID Certification Authority
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2012/02/01 14:12:15 -0800
Valid Until : 2027/02/01 14:12:15 -0800
3. SHA-256 : b0b1730ecbc7ff4505142c49f1295e6eda6bcaed7e2c68c5be91b5a11001f024
SHA-1 : 611e5b662c593a08ff58d14ae22452d198df6c60
Common Name : Apple Root CA
Organization : Apple Inc.
Organizational Unit : Apple Certification Authority
Valid From : 2006/04/25 14:40:36 -0700
Valid Until : 2035/02/09 13:40:36 -0800
In diesem Fall 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
IST DAS SHA -256 des Apple -Entwicklerzertifikats von Google (Team ID EQHXZ8M8AV) - Autorisieren Sie IT:
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
Google Chrome sollte nun starten, und nachfolgende Aktualisierungen der Anwendung funktionieren weiterhin, solange sich das Codessignierzertifikat nicht ändert oder nicht ändert.
So deaktivieren Sie den "Lockdown" -Modus:
sudo defaults delete /var/db/santa/config.plist ClientMode
Siehe /var/log/santa.log
um die Ausführungsentscheidungen zu überwachen und zu verweigern.
Ein Protokoll- und Konfigurationsserver für den Weihnachtsmann ist in Zentral, einer Open -Source -Ereignisüberwachungslösung und TLS -Server für OSQuery und Santa verfügbar.
Zentral unterstützt den Weihnachtsmann sowohl im Überwachungs- als auch im Sperrbetriebsmodus. Kunden müssen mit einer TLS -Verbindung zu Synchronisationssa -Regeln eingeschrieben sein. Alle Santa -Ereignisse von Endpunkten werden aggregiert und in Zentral wieder angemeldet. Santa -Ereignisse können Aktionen und Benachrichtigungen aus dem Zentral -Framework auslösen.
Beachten Sie, dass Python, Bash und andere Dolmetscher autorisiert sind (da sie vom Entwicklerzertifikat von Apple signiert sind), sodass der Weihnachtsmann solche Skripte nicht von der Ausführung blockieren kann. Ein potenzielles nicht-binäres Programm, das den Weihnachtsmann deaktiviert, ist daher eine Schwäche (nicht die Anfälligkeit, da es durch Design so ist).
Deaktivieren Sie Diagnostik- und Nutzungsdaten.
Wenn Sie Musik abspielen oder Videos ansehen möchten, verwenden Sie QuickTime Player, den integrierten Media Player in MacOS. Es verwendet die App Sandbox, die gehärtete Laufzeit und profitiert vom signierten Systemvolumen als Teil des Basissystems.
Wenn Sie Torrents verwenden möchten, verwenden Sie Übertragung, das kostenlos und open Source ist (Hinweis: Wie bei allen Software, auch Open -Source -Projekten, finden Malware möglicherweise immer noch in den Weg). Möglicherweise möchten Sie auch eine Blockliste verwenden, um ein Blick mit bekannten schlechten Hosts zu vermeiden - siehe die beste Blockliste für die Übertragung und Johntyree/3331662.
Verwalten Sie Standarddateihandler.
Überwachen Sie Systemprotokolle mit der Konsolenanwendung oder syslog -w
oder /usr/bin/log stream
-Befehl.
Stellen Sie Ihren Bildschirm so ein, dass der Bildschirmschoner beginnt:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Entdecken Sie versteckte Dateien und Bibliotheksordner im Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Zeigen Sie alle Dateiname -Erweiterungen (so dass "Evil.jpg.App" nicht leicht maskieren kann).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Standardmäßig zum Speichern von Dokumenten in iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Aktivieren Sie einen sicheren Tastatureintrag in Terminal (es sei denn, Sie verwenden Yubikey oder Anwendungen wie Textexpander).
Deaktivieren Sie den Crash -Reporter (der Dialog, der nach dem Absturz einer Anwendung angezeigt wird und auffordert, das Problem Apple zu melden):
defaults write com.apple.CrashReporter DialogType none
Deaktivieren Sie Bonjour -Multicast -Anzeigen:
Warnung: Dies führt zu Problemen mit Airplay und AirPrint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
Deaktivieren Sie Handoff- und Bluetooth -Funktionen, wenn diese nicht erforderlich sind.
Überprüfen Sie, ob Ihre Apps im Aktivitätsmonitor Sandboxen sind.
MacOS kommt mit dieser Linie in /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
Dies hindert Sudo daran, die Home -Variable zu wechseln, wenn Sie die Privilegien erhöhen. Dies bedeutet, dass es als root die ZSH-Dotfiles im Heimverzeichnis des Nicht-Root-Benutzers ausführen wird, wenn Sie "sudo zsh" ausführen. Es ist ratsam, diese Zeile zu kommentieren, um eine potenziell einfache Möglichkeit für Malware oder einen lokalen Angreifer zu vermeiden, die Privilegien zur Wurzel zu eskalieren.
Wenn Sie die Bequemlichkeit des Root-Benutzers beibehalten möchten, das ein Home-Verzeichnis eines Nicht-Root-Benutzers hat, können Sie eine Exportlinie an /var/root/.zshrc, z. B.:
export HOME=/Users/blah
Setzen Sie eine benutzerdefinierte Ummask:
sudo launchctl config user umask 077
Starten Sie neu, erstellen Sie eine Datei im Finder und überprüfen Sie deren Berechtigungen (MacOS -Standard ermöglicht "Gruppen-/andere" Lesezugriff):
$ ls -ld umask *
drwx------ 2 kevin staff 64 Dec 4 12:27 umask_testing_dir
-rw-------@ 1 kevin staff 2026566 Dec 4 12:28 umask_testing_file