Ce guide est un ensemble de techniques permettant d'améliorer la sécurité et la confidentialité des ordinateurs Apple Silicon Mac exécutant une version actuellement prise en charge de macOS. L'utilisation de Mac équipés de processeurs Intel vous expose à des vulnérabilités de sécurité au niveau matériel qu'Apple ne peut pas corriger . Les Mac Apple Silicon constituent la recommandation minimale, mais en règle générale, les puces les plus récentes sont toujours plus sécurisées.
Ce guide s'adresse aux utilisateurs expérimentés qui souhaitent adopter une sécurité standard d'entreprise, mais convient également aux utilisateurs novices souhaitant améliorer leur confidentialité et leur sécurité sur un Mac.
Si vous sécurisez des ordinateurs pour une organisation, utilisez les directives officielles du NIST pour macOS.
Un système n’est sécurisé que dans la mesure où son administrateur est capable de le garantir. Il n’existe pas de technologie, de logiciel ou de technique unique pour garantir une sécurité informatique parfaite ; un système d'exploitation et un ordinateur modernes sont très complexes et nécessitent de nombreux changements progressifs pour améliorer de manière significative la sécurité et la confidentialité.
Ce guide est fourni « tel quel », sans aucune garantie d'aucune sorte. Vous seul êtes responsable si vous cassez quelque chose ou si vous rencontrez des problèmes en suivant ce guide.
Pour suggérer une amélioration, envoyez une pull request ou ouvrez un ticket.
Les bonnes pratiques générales de sécurité s’appliquent :
Créer un modèle de menace
Maintenir le système et les logiciels à jour
softwareupdate
- aucun des deux ne nécessite l'enregistrement d'un compte Apple.Chiffrer les données sensibles
Assurer la disponibilité des données
Cliquez soigneusement
La première et la plus importante étape en matière de sécurité et de confidentialité consiste à créer un modèle de menace. Vous devez comprendre vos adversaires afin de vous défendre contre eux. Chaque personne aura ses propres besoins, donc le modèle de menace de chacun sera différent. Les modèles de menace ont tendance à évoluer au fil du temps, à mesure que notre situation évolue, alors assurez-vous de réévaluer périodiquement votre modèle de menace.
Il s'agit probablement de beaucoup de choses : votre téléphone, votre ordinateur portable, les mots de passe stockés sur vos appareils, l'historique de navigation Internet, etc. Faites une liste en commençant par les actifs les plus importants à protéger. Vous pouvez les classer en catégories en fonction de leur importance : publique, sensible ou secrète.
Définissez contre qui vous vous défendez. Commencez par définir la motivation qu’ils pourraient avoir pour attaquer vos actifs. Le gain financier est par exemple un facteur de motivation important pour de nombreux attaquants.
Afin de contrer vos adversaires, vous devrez comprendre de quoi ils sont capables et de quoi ils ne sont pas capables. Classez les adversaires de totalement simples à très avancés. Par exemple, un voleur ordinaire n’est pas très sophistiqué ; ils seront probablement arrêtés par des éléments de base comme le simple fait d'avoir un mot de passe et le cryptage du lecteur sur votre appareil. Un adversaire très avancé, tel qu'un acteur étatique, peut nécessiter d'éteindre complètement votre appareil lorsqu'il n'est pas utilisé pour effacer les clés de la RAM et un long mot de passe du logiciel.
C’est maintenant que vous décidez de la meilleure façon de contrer chaque menace. Vous pouvez éviter d'écrire vos mots de passe sur papier afin que votre colocataire ne puisse pas les trouver ou vous pouvez crypter le lecteur de votre ordinateur afin qu'un voleur ne puisse pas en extraire de données. Il est important d'équilibrer la sécurité et la convivialité ; chaque atténuation devrait contrecarrer certaines capacités de vos adversaires, sinon vous pourriez vous rendre la vie gênante pour peu ou pas de gain. Si vous ne pouvez imaginer d’autres capacités dont pourraient disposer vos adversaires et que vous avez mis en œuvre des mesures d’atténuation pour tous, votre travail est terminé.
Voici un exemple du type de tableau que vous devez créer pour chaque actif que vous souhaitez protéger :
Adversaire | Motivation | Capacités | Atténuation |
---|---|---|---|
Colocataire | Voir les discussions privées ou l'historique de navigation | Proximité; peut voir l'écran ou la montre, tapez le mot de passe | Utilisez la biométrie, utilisez l'écran de confidentialité, gardez le téléphone verrouillé lorsque vous ne l'utilisez pas |
Voleur | Déverrouillez le téléphone, volez des informations personnelles, videz les comptes bancaires, vendez le téléphone contre de l'argent | Surfez sur l'épaule pour voir le mot de passe, volez l'appareil lorsque vous ne le regardez pas pendant qu'il est connecté | Gardez le téléphone en vue ou sur personne à tout moment, gardez-le verrouillé lorsqu'il n'est pas utilisé, utilisez la biométrie pour éviter de saisir un mot de passe en public, utilisez Find My ou un service similaire pour suivre/désactiver à distance l'appareil volé. |
Criminel | Financier | Ingénierie sociale, logiciels malveillants facilement disponibles, réutilisation des mots de passe, exploitation des vulnérabilités | Utilisez le sandboxing, activez les fonctionnalités de sécurité dans le système d'exploitation, maintenez le système d'exploitation et tous les logiciels à jour et activez les mises à jour automatiques |
Corporation | Marketing des données utilisateur | Télémétrie et collecte de données comportementales | Bloquez les connexions réseau, réinitialisez les identifiants uniques, évitez d'ajouter des données de paiement |
État-nation/APT | Surveillance ciblée | Surveillance passive de l'infrastructure Internet, ordinateurs avancés pour déchiffrer le cryptage/analyse des paquets | Utilisez e2ee open source, utilisez des mots de passe forts pour les appareils, utilisez du matériel avec un élément sécurisé pour un cryptage sécurisé, éteignez les appareils lorsque vous ne les utilisez pas, des logiciels tripwire/honeypot/canary tokens |
En savoir plus sur la modélisation des menaces ici.
macOS est le plus sécurisé fonctionnant sur du matériel Apple avec du silicium Apple. Plus le Mac est récent, mieux c'est. Évitez les hackintoshes et les Mac qui ne prennent pas en charge la dernière version de macOS, car Apple ne corrige pas toutes les vulnérabilités dans les versions qui ne sont pas les plus récentes.
Lorsque vous achetez votre Mac, vous souhaiterez peut-être éviter qu'il ne soit lié à vous. En fonction de votre modèle de menace, vous devriez payer en espèces en personne plutôt que de commander en ligne ou d'acheter avec une carte de crédit/débit, de cette façon aucune information d'identification ne peut être liée à votre achat.
Si vous souhaitez utiliser un clavier, une souris, des écouteurs ou tout autre accessoire sans fil, l'option la plus sécurisée est celle d'Apple puisqu'ils seront automatiquement mis à jour par votre système. Ils prennent également en charge les dernières fonctionnalités Bluetooth telles que BLE Privacy, qui randomise votre adresse matérielle Bluetooth pour empêcher le suivi. Avec les accessoires tiers, ce n’est pas une garantie.
Il existe plusieurs façons d'installer macOS. Choisissez votre méthode préférée parmi les options disponibles.
Vous devez installer la dernière version de macOS compatible avec votre Mac . Les versions plus récentes comportent des correctifs de sécurité et d’autres améliorations qui manquent aux anciennes versions.
Dans le cadre du système de prévention du vol d'Apple, les Mac Apple Silicon devront s'activer auprès des serveurs Apple chaque fois que vous réinstallerez macOS pour vérifier la base de données des Mac volés ou verrouillés par activation.
Vous pouvez lire exactement comment ce processus fonctionne ici.
La création d'un compte Apple n'est pas nécessaire pour utiliser macOS. Créer un compte Apple nécessite un numéro de téléphone et synchronisera par défaut de nombreuses données avec iCloud, le service de stockage cloud d'Apple. Vous pouvez désactiver la synchronisation plus tard si vous le souhaitez ou activer le cryptage de bout en bout pour vos données iCloud.
Vous pouvez contrôler les données associées à votre compte Apple ou les supprimer complètement.
Un compte Apple est requis pour accéder à l'App Store et utiliser la plupart des services Apple comme iCloud, Apple Music, etc.
Le Mac App Store est un référentiel organisé de logiciels requis pour utiliser App Sandbox et Hardened Runtime, ainsi que pour proposer des mises à jour automatiques qui s'intègrent à votre système.
L'App Store offre les plus grandes garanties de sécurité pour les logiciels sur macOS, mais il nécessite que vous vous connectiez avec un compte Apple et Apple pourra lier votre compte Apple à vos applications téléchargées.
Vous pouvez facilement exécuter macOS de manière native sur une machine virtuelle à l’aide d’UTM. C'est gratuit sur leur site mais si vous l'achetez sur l'App Store, vous obtiendrez des mises à jour automatiques.
Suivez leur documentation pour installer une VM macOS en quelques clics.
Une autre option est VMware Fusion. Vous pouvez lire leur documentation pour voir comment installer une VM macOS.
Lorsque macOS démarre pour la première fois, vous serez accueilli par l'Assistant de configuration .
Lors de la création du premier compte, utilisez un mot de passe fort sans indice.
Si vous entrez votre vrai nom lors du processus de configuration du compte, sachez que le nom de votre ordinateur et le nom d'hôte local comprendront ce nom (par exemple, le MacBook de John Appleseed ) et apparaîtront donc sur les réseaux locaux et dans divers fichiers de préférences.
Les deux doivent être vérifiés et mis à jour si nécessaire dans Paramètres système > À propos ou avec les commandes suivantes après l'installation :
sudo scutil --set ComputerName MacBook
sudo scutil --set LocalHostName MacBook
Le premier compte utilisateur est toujours un compte administrateur. Les comptes admin sont membres du groupe admin et ont accès à sudo
, ce qui leur permet d'usurper d'autres comptes, notamment root, et leur donne un contrôle efficace sur le système. Tout programme exécuté par l'administrateur peut potentiellement obtenir le même accès, ce qui constitue un risque pour la sécurité.
Les utilitaires comme sudo
présentent des faiblesses qui peuvent être exploitées par des programmes exécutés simultanément.
Apple considère comme une bonne pratique d'utiliser un compte standard distinct pour le travail quotidien et d'utiliser le compte administrateur pour les installations et la configuration du système.
Il n'est pas strictement nécessaire de se connecter au compte administrateur via l'écran de connexion macOS. Lorsqu'une commande Terminal nécessite des privilèges d'administrateur, le système demandera une authentification et Terminal continuera ensuite à utiliser ces privilèges. À cette fin, Apple propose quelques recommandations pour masquer le compte administrateur et son répertoire personnel. Cela peut être une solution élégante pour éviter d'avoir un compte « fantôme » visible.
/Applications
(répertoire local). Le Finder et le programme d'installation inviteront un utilisateur standard avec une boîte de dialogue d'authentification. De nombreuses applications peuvent être installées dans ~/Applications
à la place (le répertoire peut être créé). En règle générale : les applications qui ne nécessitent pas d'accès administrateur – ou qui ne se plaignent pas de ne pas être installées dans /Applications
– doivent être installées dans le répertoire utilisateur, le reste dans le répertoire local. Les applications du Mac App Store sont toujours installées dans /Applications
et ne nécessitent aucune authentification supplémentaire.sudo
n'est pas disponible dans les shells de l'utilisateur standard, ce qui nécessite d'utiliser su
ou login
pour entrer dans un shell du compte administrateur. Cela peut rendre certaines manœuvres plus délicates et nécessite une certaine expérience de base avec les interfaces de ligne de commande.open
.Les comptes peuvent être créés et gérés dans les Préférences Système. Sur les systèmes installés, il est généralement plus facile de créer un deuxième compte administrateur puis de rétrograder le premier compte. Cela évite la migration des données. Les systèmes nouvellement installés peuvent également simplement ajouter un compte standard.
La rétrogradation d'un compte peut être effectuée soit à partir du nouveau compte administrateur dans les Préférences Système – l'autre compte doit être déconnecté – soit en exécutant ces commandes (il n'est peut-être pas nécessaire d'exécuter les deux, voir numéro 179) :
sudo dscl . -delete /Groups/admin GroupMembership <username>
sudo dscl . -delete /Groups/admin GroupMembers <GeneratedUID>
Pour trouver le GeneratedUID d'un compte :
dscl . -read /Users/<username> GeneratedUID
Consultez également cet article pour plus d'informations sur la manière dont macOS détermine l'appartenance à un groupe.
Vous devez vérifier que les paramètres de sécurité du micrologiciel sont définis sur Sécurité totale pour éviter toute altération de votre système d'exploitation. Il s'agit du paramètre par défaut.
Tous les modèles de Mac équipés de silicium Apple sont cryptés par défaut. L'activation de FileVault fait que vous devez saisir un mot de passe pour accéder aux données de votre lecteur. L'EFF propose un guide sur la génération de mots de passe forts mais mémorables.
Votre mot de passe FileVault agit également comme un mot de passe du micrologiciel qui empêchera les personnes qui ne le connaissent pas de démarrer à partir d'autre chose que le disque de démarrage désigné, d'accéder à la récupération et de le relancer avec le mode DFU.
FileVault vous demandera de définir une clé de récupération au cas où vous oublieriez votre mot de passe. Conservez cette clé dans un endroit sûr. Vous aurez la possibilité d'utiliser votre compte iCloud pour déverrouiller votre disque ; cependant, toute personne ayant accès à votre compte iCloud pourra également le déverrouiller.
macOS propose le mode verrouillage, une fonctionnalité de sécurité qui désactive plusieurs fonctionnalités du système d'exploitation, réduisant considérablement la surface d'attaque des attaquants tout en gardant le système d'exploitation utilisable. Vous pouvez lire exactement ce qui est désactivé et décider vous-même si cela vous convient.
Lorsque le mode de verrouillage est activé, vous pouvez le désactiver par site dans Safari sur les sites de confiance.
Il existe plusieurs types de pare-feu disponibles pour macOS.
Pare-feu de base intégré qui bloque uniquement les connexions entrantes . Ce pare-feu n'a pas la capacité de surveiller ni de bloquer les connexions sortantes .
Il peut être contrôlé par l'onglet Pare-feu de Réseau dans Paramètres système ou avec les commandes suivantes.
Activez le pare-feu avec la journalisation et le mode furtif :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setloggingmode on
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode on
Les pirates informatiques analysent les réseaux afin de tenter d'identifier les ordinateurs à attaquer. Vous pouvez empêcher votre ordinateur de répondre à certaines de ces analyses en utilisant le mode furtif . Lorsque le mode furtif est activé, votre ordinateur ne répond pas aux requêtes ping ICMP et ne répond pas aux tentatives de connexion depuis un port TCP ou UDP fermé. Cela rend plus difficile aux attaquants de trouver votre ordinateur.
Pour empêcher les logiciels intégrés ainsi que les logiciels téléchargés signés par code d'être automatiquement ajoutés à la liste blanche :
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsigned off
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setallowsignedapp off
Les applications signées par une autorité de certification valide sont automatiquement ajoutées à la liste des applications autorisées, plutôt que d'inviter l'utilisateur à les autoriser. Les applications incluses dans macOS sont signées par Apple et sont autorisées à recevoir des connexions entrantes lorsque ce paramètre est activé. Par exemple, étant donné qu'iTunes est déjà signé par Apple, il est automatiquement autorisé à recevoir des connexions entrantes via le pare-feu.
Si vous exécutez une application non signée qui n'est pas répertoriée dans la liste des pare-feu, une boîte de dialogue apparaît avec les options Autoriser ou Refuser les connexions pour l'application. Si vous choisissez « Autoriser », macOS signe l'application et l'ajoute automatiquement à la liste des pare-feu. Si vous choisissez « Refuser », macOS l'ajoute à la liste mais refuse les connexions entrantes destinées à cette application.
Après avoir interagi avec socketfilterfw
, redémarrez le processus en envoyant un signal de raccrochage de ligne :
sudo pkill -HUP socketfilterfw
Des programmes tels que Little Snitch, Radio Silence et LuLu offrent un bon équilibre entre convivialité et sécurité.
Ces programmes sont capables de surveiller et de bloquer les connexions réseau entrantes et sortantes . Cependant, ils peuvent nécessiter l’utilisation d’une extension système fermée.
Si le nombre de choix d'autorisation/blocage des connexions réseau est écrasant, utilisez le mode silencieux avec les connexions autorisées, puis vérifiez périodiquement la configuration pour mieux comprendre les applications et ce qu'elles font.
Il convient de noter que ces pare-feu peuvent être contournés par des programmes exécutés en tant que root ou via des vulnérabilités du système d'exploitation (pdf), mais ils valent toujours la peine d'être utilisés - mais ne vous attendez pas à une protection absolue. Cependant, certains logiciels malveillants se suppriment eux-mêmes et ne s'exécutent pas si Little Snitch, ou un autre logiciel de sécurité, est installé.
Un pare-feu hautement personnalisable, puissant, mais aussi très compliqué, existe dans le noyau. Il peut être contrôlé avec pfctl
et divers fichiers de configuration.
pf peut également être contrôlé avec une application GUI telle que Murus.
Il existe de nombreux livres et articles sur le sujet du pare-feu pf. Voici juste un exemple de blocage du trafic par adresse IP.
Ajoutez ce qui suit dans un fichier appelé pf.rules
:
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
Utilisez ensuite les commandes suivantes pour manipuler le pare-feu :
sudo pfctl -e -f pf.rules
pour activer le pare-feu et charger la configurationsudo pfctl -d
pour désactiver le pare-feusudo pfctl -t blocklist -T add 1.2.3.4
pour ajouter une adresse IP à la liste de blocagesudo pfctl -t blocklist -T show
pour afficher la liste de blocagesudo ifconfig pflog0 create
pour créer une interface de journalisationsudo tcpdump -ni pflog0
pour afficher les paquets filtrésÀ moins que vous ne soyez déjà familier avec le filtrage de paquets, il n'est pas recommandé de passer trop de temps à configurer pf. Cela est également probablement inutile si votre Mac se trouve derrière un NAT sur un réseau domestique privé.
Il est possible d'utiliser le pare-feu pf pour bloquer l'accès réseau à des plages entières d'adresses réseau, par exemple à toute une organisation :
Interrogez Merit RADb pour connaître la liste des réseaux utilisés par un système autonome, comme Facebook :
whois -h whois.radb.net '!gAS32934'
Copiez et collez la liste des réseaux renvoyée dans la commande blocklist :
sudo pfctl -t blocklist -T add 31.13.24.0/21 31.13.64.0/24 157.240.0.0/16
Confirmez que les adresses ont été ajoutées :
$ 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
Confirmez que le trafic réseau est bloqué vers ces adresses (les requêtes DNS fonctionneront toujours) :
$ 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
Les paquets TCP SYN sortants sont bloqués, donc une connexion TCP n'est pas établie et donc un site Web est effectivement bloqué au niveau de la couche IP.
Voir drduh/config/scripts/pf-blocklist.sh pour plus d'inspiration.
Les services sur macOS sont gérés par launchd . Voir launchd.info.
Vous pouvez gérer et afficher plus d'informations sur les logiciels qui s'exécutent lors de la connexion dans les paramètres système. Vous pouvez également voir le système installé, Quick Look, Finder et d'autres extensions dans les paramètres système.
launchctl list
pour afficher les agents utilisateurs en cours d'exécutionsudo launchctl list
pour afficher les démons système en cours d'exécutionlaunchctl list com.apple.Maps.mapspushd
defaults read
pour examiner les listes de tâches dans /System/Library/LaunchDaemons
et /System/Library/LaunchAgents
man
et strings
pour en savoir plus sur ce que fait un agent/démonPar exemple, pour savoir ce que fait un démon ou un agent de lancement de système, commencez par :
defaults read /System/Library/LaunchDaemons/com.apple.apsd.plist
Regardez la section Program
ou ProgramArguments
pour voir quel binaire est exécuté, dans ce cas apsd
. Pour trouver plus d'informations à ce sujet, consultez la page de manuel avec man apsd
Remarque Les services système sont protégés par SIP, ne désactivez pas SIP uniquement pour bricoler les services système, car SIP fait partie intégrante de la sécurité sur macOS. La désactivation des services système pourrait provoquer des pannes et un comportement instable !
Pour afficher l'état des services :
find /var/db/com.apple.xpc.launchd/ -type f -print -exec defaults read {} ; 2>/dev/null
Des listes annotées des démons et agents de lancement, des programmes respectifs exécutés et des sommes de hachage des programmes sont incluses dans ce référentiel.
En savoir plus sur launchd et où trouver les éléments de connexion sur le site Web d'Apple.
Apple passe au traitement sur l'appareil pour de nombreuses fonctions Siri, mais certaines informations sont toujours envoyées à Apple lorsque vous utilisez les suggestions Siri ou Spotlight. Vous pouvez lire la politique de confidentialité d'Apple pour voir exactement ce qui est envoyé et comment le désactiver.
Si votre programme n'est pas disponible sur l'App Store, vous pouvez envisager d'utiliser Homebrew.
Important! Homebrew vous demande d'accorder l'autorisation « Gestion des applications » (ou « Accès complet au disque ») à votre terminal. C'est une mauvaise idée, car cela vous rendrait à nouveau vulnérable à ces attaques : toute application non-sandbox peut exécuter du code avec les autorisations TCC de votre terminal en ajoutant une commande malveillante à (par exemple) ~/.zshrc. Accorder « Gestion des applications » ou « Accès complet au disque » à votre terminal doit être considéré comme la même chose que désactiver complètement TCC.
N'oubliez pas d'exécuter périodiquement brew upgrade
sur des réseaux fiables et sécurisés pour télécharger et installer les mises à jour logicielles. Pour obtenir des informations sur un package avant l'installation, exécutez brew info <package>
et vérifiez sa formule en ligne. Vous souhaiterez peut-être également activer des options de sécurité supplémentaires, telles que HOMEBREW_NO_INSECURE_REDIRECT=1
Selon Anonymous Analytics de Homebrew, Homebrew rassemble des analyses anonymes et les rapporte à une instance InfluxDB auto-hébergée. Pour vous désinscrire des analyses d'Homebrew, vous pouvez définir export HOMEBREW_NO_ANALYTICS=1
dans votre environnement ou dans votre fichier shell rc, ou brew analytics off
macOS 11 a introduit des « profils de configuration DNS » pour configurer le DNS crypté, filtrer les domaines et utiliser DNSSEC.
Les profils DNS peuvent être créés ou obtenus auprès de fournisseurs tels que Quad9, AdGuard et NextDNS.
Utilisez le fichier hosts pour bloquer les logiciels malveillants connus, les publicités ou les domaines indésirables.
Editez le fichier hosts en tant que root, par exemple avec sudo vi /etc/hosts
Pour bloquer un domaine par enregistrement A
, ajoutez l'une des lignes suivantes à /etc/hosts
:
0 example.com
0.0.0.0 example.com
127.0.0.1 example.com
Remarque IPv6 utilise le type d'enregistrement DNS AAAA
, plutôt que le type d'enregistrement A
, vous pouvez donc également bloquer ces connexions en incluant également les entrées ::1 example.com
, comme indiqué ici.
Il existe de nombreuses listes de domaines disponibles en ligne que vous pouvez coller, assurez-vous simplement que chaque ligne commence par 0
, 0.0.0.0
, 127.0.0.1
et que la ligne 127.0.0.1 localhost
est incluse.
Voici quelques listes d'hôtes populaires et utiles :
Ajoutez une liste d'hôtes avec tee
:
curl https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sudo tee -a /etc/hosts
Si vous utilisez un pare-feu comme Little Snitch, vous pouvez utiliser StevenBlack/hosts pour importer les règles du référentiel leohidalgo/little-snitch ---rule-groups, ces règles sont mises à jour toutes les 12 heures à partir du référentiel StevenBlack/hosts.
Pour chiffrer le trafic DNS, pensez à utiliser DNSCrypt/dnscrypt-proxy. Utilisé en combinaison avec dnsmasq et DNSSEC, l'intégrité du trafic DNS peut être considérablement améliorée.
Installez DNSCrypt depuis Homebrew et suivez les instructions pour configurer et démarrer dnscrypt-proxy
:
brew install dnscrypt-proxy
Si vous l'utilisez en combinaison avec Dnsmasq, recherchez le fichier homebrew.mxcl.dnscrypt-proxy.plist
en exécutant
brew info dnscrypt-proxy
qui affichera un emplacement comme /usr/local/etc/dnscrypt-proxy.toml
Ouvrez-le dans un éditeur de texte, recherchez la ligne commençant par listen_addresses =
et modifiez cette ligne pour utiliser DNScrypt sur un port autre que 53, comme 5355 :
listen_addresses = ['127.0.0.1:5355', '[::1]:5355']
Démarrez DNSCrypt :
sudo brew services restart dnscrypt-proxy
Vérifiez que DNSCrypt est en cours d'exécution :
$ 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
Par défaut, dnscrypt-proxy s'exécute sur localhost (127.0.0.1), port 53, équilibrant le trafic sur un ensemble de résolveurs. Si vous souhaitez modifier ces paramètres, vous devrez éditer le fichier de configuration : $HOMEBREW_PREFIX/etc/dnscrypt-proxy.toml
Remarque Les applications et les programmes peuvent résoudre le DNS à l'aide de leurs propres serveurs fournis. Si dnscrypt-proxy est utilisé, il est possible de désactiver tout autre trafic DNS non-dnscrypt avec les règles pf suivantes :
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
Voir aussi Qu'est-ce qu'une fuite DNS et ipv6-test.com
Entre autres fonctionnalités, dnsmasq est capable de mettre en cache les réponses, d'empêcher les requêtes en amont pour des noms non qualifiés et de bloquer des domaines de premier niveau entiers.
À utiliser en combinaison avec DNSCrypt pour chiffrer davantage le trafic DNS.
Si vous ne souhaitez pas utiliser DNSCrypt, vous devez au moins utiliser un DNS non fourni par votre FAI. Deux alternatives populaires sont Google DNS et OpenDNS.
DNSSEC facultatif est un ensemble d'extensions du DNS qui fournissent aux clients DNS (résolveurs) l'authentification de l'origine des données DNS, le déni d'existence authentifié et l'intégrité des données. Toutes les réponses des zones protégées DNSSEC sont signées numériquement. Les enregistrements signés sont authentifiés via une chaîne de confiance, en commençant par un ensemble de clés publiques vérifiées pour la zone racine du DNS. Les ancres de confiance actuelles de la zone racine peuvent être téléchargées à partir du site Web de l'IANA. Il existe un certain nombre de ressources sur DNSSEC, mais la meilleure est probablement le site Web dnssec.net.
Installez Dnsmasq :
brew install dnsmasq --with-dnssec
Téléchargez et modifiez drduh/config/dnsmasq.conf ou le fichier de configuration par défaut.
Voir drduh/config/domains pour des exemples annexables sur le blocage des services par domaines.
Installez et démarrez le programme (sudo est requis pour se lier au port privilégié 53) :
sudo brew services start dnsmasq
Pour définir dnsmasq comme serveur DNS local, ouvrez Préférences Système > Réseau et sélectionnez l'interface active, puis l'onglet DNS , sélectionnez + et ajoutez 127.0.0.1
, ou utilisez :
sudo networksetup -setdnsservers "Wi-Fi" 127.0.0.1
Confirmez que Dnsmasq est configuré :
$ 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
Remarque Certains logiciels VPN remplacent les paramètres DNS lors de la connexion. Voir le numéro 24 et drduh/config/scripts/macos-dns.sh.
Test facultatif de la validation DNSSEC pour les zones signées : la réponse doit avoir le statut NOERROR
et contenir un indicateur ad
:
$ 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
Le test de validation DNSSEC échoue pour les zones qui ne sont pas signées correctement : la réponse doit avoir le statut SERVFAIL
:
$ 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 est livré avec plus de 100 certificats d'autorité racine installés par des sociétés comme Apple, Verisign, Thawte, Digicert et des agences gouvernementales de Chine, du Japon, des Pays-Bas, des États-Unis et bien plus encore ! Ces autorités de certification (AC) sont capables de délivrer des certificats TLS pour n'importe quel domaine, des certificats de signature de code, etc. Apple bloque ces certificats lorsqu'une autorité de certification s'avère non fiable. Ils ont également des exigences strictes auxquelles les autorités de certification de confiance doivent répondre.
Pour plus d’informations, consultez le site Web du CA/Browser Forum.
Inspectez les certificats racine du système dans Trousseau Access , sous l'onglet System Roots ou à l'aide de l'outil de ligne de commande security
et du fichier /System/Library/Keychains/SystemRootCertificates.keychain
.
Vous pouvez désactiver manuellement les autorités de certification via Keychain Access en les marquant comme Never Trust et en fermant la fenêtre :
Avertissement : votre navigateur émettra un avertissement lorsque vous visitez un site utilisant des certificats signés par ces autorités de certification et pourrait entraîner des pannes dans d'autres logiciels. Ne vous méfiez pas des certificats racine Apple, sinon cela entraînera de nombreux dysfonctionnements dans macOS !
Le risque d’une attaque de type intermédiaire dans laquelle une autorité de certification contrainte ou compromise, approuvée par votre système, émet un certificat TLS faux/voyous est assez faible, mais toujours possible.
Pensez à utiliser Privoxy comme proxy local pour filtrer le trafic Web.
Installez et démarrez privoxy en utilisant Homebrew :
brew install privoxy
brew services start privoxy
Alternativement, un package d'installation signé pour Privoxy est disponible sur leur site Web ou Sourceforge. Le package signé est plus sécurisé que la version Homebrew et bénéficie du support du projet Privoxy.
Par défaut, Privoxy écoute sur le port TCP local 8118.
Définissez le proxy HTTP système pour l'interface réseau active 127.0.0.1
et 8118
:
sudo networksetup -setwebproxy "Wi-Fi" 127.0.0.1 8118
Définissez le proxy HTTPS du système :
sudo networksetup -setsecurewebproxy "Wi-Fi" 127.0.0.1 8118
Cela peut également être fait via Préférences Système > Réseau > Avancé > Proxy
Confirmez que le proxy est défini :
$ scutil --proxy
<dictionary> {
ExceptionsList : <array> {
0 : *.local
1 : 169.254/16
}
FTPPassive : 1
HTTPEnable : 1
HTTPPort : 8118
HTTPProxy : 127.0.0.1
}
Bien que la plupart du trafic Web soit aujourd'hui crypté, Privoxy reste utile pour filtrer par modèles de nom de domaine et pour mettre à niveau les requêtes HTTP non sécurisées.
Par exemple, les règles suivantes bloquent tout le trafic, sauf vers .net
et github.com
et tous les domaines apple
:
{ +block{all} }
.
{ -block }
.apple.
.github.com
.net
Ou pour simplement bloquer des domaines Facebook, par exemple :
{ +block{facebook} }
.facebook*.
.fb.
.fbcdn*.
.fbinfra.
.fbsbx.
.fbsv.
.fburl.
.tfbnw.
.thefacebook.
fb*.akamaihd.net
Les caractères génériques sont également pris en charge.
Voir drduh/config/privoxy/config et drduh/config/privoxy/user.action pour des exemples Privoxy supplémentaires. Privoxy n'a pas besoin d'être redémarré après avoir modifié les règles de filtre user.action
.
Pour vérifier que le trafic est bloqué ou redirigé, utilisez curl ou l'interface Privoxy disponible sur http://pp dans le navigateur :
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
Notez que les paramètres de proxy macOS ne sont pas universels ; les applications et les services peuvent ne pas respecter les paramètres de proxy du système. Assurez-vous que l'application que vous souhaitez proxy est correctement configurée et vérifiez que les connexions ne fuient pas. De plus, pf peut être configuré pour proxy de manière transparente le trafic sur certains ports.
Le navigateur Web présente probablement le plus grand risque en matière de sécurité et de confidentialité, car sa tâche fondamentale consiste à télécharger et à exécuter du code non fiable à partir d'Internet.
Une propriété importante des navigateurs modernes est la politique de même origine (SOP) qui empêche un script malveillant sur une page d'accéder aux données sensibles sur une autre page Web via le modèle d'objet de document (DOM). Si SOP est compromis, la sécurité de l’ensemble du navigateur est compromise.
De nombreux exploits de navigateurs sont basés sur l’ingénierie sociale comme moyen de gagner en persistance. Soyez toujours attentif à l’ouverture de sites non fiables et particulièrement prudent lorsque vous téléchargez de nouveaux logiciels.
Une autre considération importante concernant la sécurité du navigateur concerne les extensions. Il s'agit d'un problème affectant Firefox et Chrome. L'utilisation d'extensions de navigateur doit être limitée à celles qui sont absolument nécessaires et publiées par des développeurs dignes de confiance.
Mozilla Firefox, Google Chrome, Safari et Tor Browser sont tous des navigateurs recommandés pour leurs propres objectifs, uniques et individuels.
Mozilla Firefox est un navigateur open source populaire. Firefox a remplacé une grande partie de son infrastructure et de sa base de code dans le cadre des projets Quantum et Photon. Une partie du projet Quantum consiste à remplacer le code C++ par Rust. Rust est un langage de programmation système axé sur la sécurité et la sécurité des threads. On s’attend à ce que l’adoption de Rust améliore considérablement la sécurité globale de Firefox.
Firefox propose un modèle de sécurité similaire à Chrome : il dispose d'un programme de bug bounty, bien qu'il ne soit pas aussi lucratif. Firefox suit un cycle de publication de quatre semaines.
Firefox prend en charge les fichiers de configuration fournis par l'utilisateur. Voir drduh/config/firefox.user.js et arkenfox/user.js pour les préférences recommandées et les mesures de renforcement. Voir également NoScript, une extension qui permet le blocage sélectif des scripts.
Firefox se concentre sur la confidentialité des utilisateurs. Il prend en charge la protection contre le suivi en mode navigation privée. La protection contre le suivi peut être activée pour le compte par défaut, même si elle peut interrompre l'expérience de navigation sur certains sites Web. Firefox en mode de protection stricte contre le suivi randomisera votre empreinte digitale pour déjouer les scripts de suivi de base. Firefox propose des profils utilisateur distincts. Vous pouvez séparer votre navigation au sein d'un profil avec des conteneurs multi-comptes.
Firefox ne prend en charge les extensions Web que via l'API Web Extension, qui est très similaire à Chrome. La soumission d’extensions Web dans Firefox est gratuite. Les extensions Web de Firefox sont la plupart du temps open source, bien que certaines extensions Web soient propriétaires.
Google Chrome est basé sur le projet open source Chromium avec certains composants propriétaires :
Chrome offre une synchronisation de compte entre plusieurs appareils. Une partie des données de synchronisation comprend des informations d'identification sur les sites Web. Les données sont chiffrées avec le mot de passe du compte.
La boutique en ligne de Chrome pour les extensions nécessite des frais à vie de 5 USD afin de soumettre des extensions. Le faible coût permet le développement de nombreuses extensions Web open source de qualité qui ne visent pas à monétiser par utilisation.
Chrome a la plus grande part de l'utilisation mondiale et est la plate-forme cible préférée pour la majorité des développeurs. Les principales technologies sont basées sur les composants open source de Chrome, tels que Node.js qui utilise le moteur V8 de Chrome et le cadre Electron, qui est basé sur Chromium et Node.js. La vaste base d'utilisateurs de Chrome en fait la cible la plus attrayante pour les acteurs de la menace et les chercheurs en sécurité. Malgré des attaques constantes, Chrome a conservé un bilan de sécurité impressionnant au fil des ans. Ce n'est pas un petit exploit.
Chrome propose des profils séparés, un sable robuste, des mises à jour fréquentes et transporte des informations d'identification impressionnantes. De plus, Google propose un programme de primes très lucratif pour signaler les vulnérabilités, ainsi que sa propre équipe Project Zero. Cela signifie qu'un grand nombre de personnes très talentueuses et motivées audit constamment et assurent le code Chrome.
Créez des profils chromés séparés pour réduire le risque XSS et compartimenter les cookies / identités. Dans chaque profil, soit désactiver JavaScript dans les paramètres chromés et configurer les origines autorisées. Vous devez également désactiver l'optimiseur V8 pour les sites où vous utilisez JavaScript pour réduire davantage la surface d'attaque. Accédez à Paramètres -> Confidentialité et sécurité -> Sécurité -> Gérer la sécurité V8 -> Ne permettez pas aux sites d'utiliser l'optimiseur V8
En savoir plus sur les avantages de la désactivation ici.
Vous pouvez bloquer les trackers avec UBlock Origin Lite.
Modifiez le moteur de recherche par défaut de Google pour réduire le suivi supplémentaire.
Désactiver la pré-échantillon DNS (voir également la pré-lutte DNS et ses implications de confidentialité (PDF)). Notez que Chrome peut tenter de résoudre DNS en utilisant les serveurs de noms publics 8.8.8.8
et 8.8.4.4
de Google.
Lisez la sécurité du chrome et la confidentialité du chrome pour plus d'informations. Lisez la politique de confidentialité de Google pour comprendre comment les informations personnelles sont collectées et utilisées.
Safari est le navigateur par défaut sur macOS. Il s'agit également du navigateur le plus optimisé pour réduire l'utilisation de la batterie. Safari, comme Chrome, a à la fois des composants open source et propriétaires. Safari est basé sur le moteur Web Open Source Webkit, qui est omniprésent parmi l'écosystème macOS. WebKit est utilisé par des applications Apple telles que Mail, iTunes, IBooks et l'App Store. Le moteur Blink de Chrome est une fourche de webkit et les deux moteurs partagent un certain nombre de similitudes.
Safari prend en charge certaines fonctionnalités uniques qui profitent à la sécurité et à la confidentialité des utilisateurs. Les bloqueurs de contenu permettent la création de règles de blocage de contenu sans utiliser JavaScript. Cette approche basée sur des règles améliore considérablement l'utilisation de la mémoire, la sécurité et la confidentialité. Safari 11 a introduit la prévention du suivi intelligent, qui supprime les données de suivi stockées dans Safari après une période de non-interaction par l'utilisateur du site Web du tracker. Safari peut randomiser votre empreinte digitale pour réduire le suivi. Safari ne prend pas en charge certaines fonctionnalités telles que WebUSB ou l'API de batterie intentionnellement pour des raisons de sécurité et de confidentialité. Les onglets privés de Safari ont des cookies et un cache isolés qui sont détruits lorsque vous fermez l'onglet. Safari prend également en charge les profils qui sont équivalents aux conteneurs multi-comptes de Firefox pour séparer les cookies et la navigation. Safari peut être rendu beaucoup plus sécurisé avec le mode de verrouillage, qui peut être désactivé par site. En savoir plus sur le suivi de la prévention à Safari.
Safari propose un programme de primes uniquement sur invitation pour la signalement des bogues à un nombre sélectionné de chercheurs en sécurité. Le programme Bounty a été annoncé lors de la présentation d'Apple à Blackhat 2016.
Les extensions Web dans Safari ont une option supplémentaire pour utiliser le code natif dans l'environnement Sandbox de Safari, en plus des API d'extension Web. Les extensions Web dans Safari sont également distribuées via l'App Store d'Apple. La soumission de l'App Store est livrée avec l'avantage supplémentaire du code d'extension Web audité par Apple. D'un autre côté, la soumission de l'App Store a un coût élevé. Les frais d'abonnement annuels du développeur coûtent 100 USD (contrairement aux frais de 5 USD de Chrome et à la soumission gratuite de Firefox). Le coût élevé est prohibitif pour la majorité des développeurs open source. En conséquence, Safari a très peu d'extensions à choisir. Cependant, vous devez garder à l'esprit le coût élevé lors de l'installation d'extensions. Il est prévu que la plupart des extensions Web auront un moyen de monétiser l'utilisation afin de couvrir les coûts des développeurs. Méfiez-vous des extensions Web dont le code source n'est pas ouvert.
Safari synchronise les préférences et les mots de passe des utilisateurs avec iCloud Keychain. Pour être consulté en texte brut, un utilisateur doit saisir le mot de passe du compte de l'appareil actuel. Cela signifie que les utilisateurs peuvent synchroniser les données sur les appareils avec une sécurité supplémentaire.
Safari suit un cycle de libération plus lent que Chrome et Firefox (3-4 versions mineures, 1 libération majeure, par an). Les fonctionnalités plus récentes sont plus lentes à adopter sur le canal stable. Les mises à jour de sécurité dans Safari sont gérées indépendamment du calendrier de version stable et sont installées via l'App Store.
Voir aussi EL1T / UBLOCK-SAFARI pour désactiver les balises d'audit de l'hyperlien.
De nombreux navigateurs dérivés du chrome ne sont pas recommandés. Ils sont généralement des sources fermées, mal entretenues et font des allégations douteuses pour protéger la vie privée.
D'autres navigateurs divers, tels que courageux, ne sont pas évalués dans ce guide, ils ne sont donc ni recommandés ni activement découragés de l'utilisation.
Les navigateurs Web révèlent des informations de plusieurs manières, par exemple via l'interface Navigator, qui peut inclure des informations telles que la version du navigateur, le système d'exploitation, les autorisations de site et le niveau de la batterie de l'appareil. De nombreux sites Web utilisent également les empreintes digitales en toile pour identifier de manière unique les utilisateurs à travers les sessions.
Pour plus d'informations sur la navigation soucieuse de la sécurité et quelles données sont envoyées par votre navigateur, voir Howto: la navigation soucieuse de la confidentialité et de la sécurité, Browserleaks.com, suis-je unique? Et EFF couvre vos ressources de pistes.
Pour entraver les trackers tiers, il est recommandé de désactiver complètement les cookies tiers . Safari, Firefox et Chrome bloquent tous les cookies tiers par défaut. Un cookie tiers est un cookie associé à un fichier demandé par un domaine différent de celui que l'utilisateur affiche actuellement. La plupart du temps, les cookies tiers sont utilisés pour créer des profils de navigation en suivant le mouvement d'un utilisateur sur le Web. La désactivation des cookies tiers empêche les réponses et scripts HTTP d'autres domaines de définir des cookies. De plus, les cookies sont supprimés des demandes aux domaines qui ne sont pas le domaine d'origine du document, donc les cookies ne sont envoyés qu'au site actuel qui est consulté.
Soyez également conscient de WebBrTC, qui peut révéler votre ouvrage IP local ou public (si vous êtes connecté à VPN). Dans Firefox et Chrome / Chromium, cela peut être désactivé avec des extensions telles que l'origine ublock. Le mode de verrouillage désactive WeBrTC dans Safari.
TOR est un réseau d'anonymisation qui peut être utilisé pour parcourir le Web avec une confidentialité supplémentaire. Tor Browser est une version modifiée de Firefox avec un proxy pour accéder au réseau Tor.
Téléchargez le navigateur Tor à partir du projet Tor.
N'essayez pas de configurer d'autres navigateurs ou applications pour utiliser TOR comme vous pouvez faire une erreur qui comprometra l'anonymat.
Téléchargez les fichiers dmg
et asc
Signature, puis vérifiez que l'image du disque a été signée par les développeurs Tor:
$ 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
Assurez-vous que Good signature from "Tor Browser Developers (signing key) <[email protected]>"
apparaît dans la sortie. L'avertissement concernant la clé de non-certification est bénin, car il n'a pas encore été affecté à la confiance.
Voyez comment puis-je vérifier la signature du navigateur Tor? pour plus d'informations.
Pour terminer l'installation du navigateur TOR, ouvrez l'image disque et faites glisser le dossier IT dans le dossier Applications, ou avec:
hdiutil mount TorBrowser-8.0.4-osx64_en-US.dmg
cp -r /Volumes/Tor Browser/Tor Browser.app/ ~/Applications/
Vérifiez que la signature de code de l'application TOR a été réalisée par l'ID du développeur Apple du projet TOR MADPSAYN6T , en utilisant les commandes spctl -a -v
et / ou pkgutil --check-signature
:
$ 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
Vous pouvez également utiliser la commande codesign
pour examiner la signature de code d'une application:
$ 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
Pour afficher les détails complets du certificat pour une application signée, extraire avec codesign
et décoder avec 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
Le trafic TOR est chiffré vers le nœud de sortie (c'est-à-dire ne peut pas être lu par un réseau d'écoute de réseau passif), mais l'utilisation de Tor peut être identifiée - par exemple, les "noms d'hôte" TLS de la poignée de main s'affichent en texte en clair:
$ 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..
Voir Spécification du protocole Tor et Tor / Tlshistory pour plus d'informations.
Vous pouvez en outre obscurcir le trafic pour un transport enfichable.
Cela peut être fait en configurant votre propre relais Tor ou en trouvant un pont privé ou public existant pour servir de nœud d'entrée par obscurcissement.
Pour plus de sécurité, utilisez Tor dans une instance VirtualBox ou VMware virtualisée GNU / Linux ou OpenBSD.
Enfin, n'oubliez pas que le réseau TOR fournit l'anonymat, qui n'est pas nécessairement synonyme de confidentialité. Le réseau TOR ne garantit pas la protection contre un observateur mondial capable d'analyser le trafic et de corrélation. Voir également la recherche d'anonymat dans un panopticon sur Internet (PDF) et la corrélation du trafic sur TOR par des adversaires réalistes (PDF).
Voir également Invisible Internet Project (I2P) et sa comparaison TOR.
Lors du choix d'un service VPN ou de la configuration de la vôtre, assurez-vous de rechercher les protocoles, les algorithmes d'échange de clés, les mécanismes d'authentification et le type de chiffrement utilisé. Certains protocoles, tels que PPTP, devraient être évités en faveur de l'OpenVPN ou de Wireguard à base de Linux sur une machine virtuelle Linux ou via un ensemble d'outils transformataires.
Certains clients peuvent envoyer du trafic sur la prochaine interface disponible lorsque VPN est interrompu ou déconnecté. Voir SCY / 8122924 pour un exemple sur la façon d'autoriser le trafic uniquement sur VPN.
Il existe un guide mis à jour pour configurer un IPSec VPN sur une machine virtuelle (HWDSL2 / SETUP-IPSEC-VPN) ou un conteneur Docker (HWDSL2 / Docker-IPSec-VPN-Server).
Il peut être utile de considérer l'emplacement géographique du fournisseur VPN. Voir une discussion plus approfondie dans le numéro 114.
Voir également cet aperçu technique du client VPN L2TP / IPSec et IKEV2 intégré MacOS.
PGP est une norme pour la signature et le chiffrement des données (en particulier les e-mails) de bout en bout, donc seul l'expéditeur et le destinataire peuvent y accéder.
GPG, ou GNU Privacy Guard , est un programme open source sous licence GPL conforme à la norme PGP.
GPG est utilisé pour vérifier les signatures des logiciels que vous téléchargez et installez, ainsi que de chiffrer les fichiers et le texte symétriquement ou asymétriquement.
Installez à partir de Homebrew avec brew install gnupg
.
Si vous préférez une application graphique, téléchargez et installez la suite GPG.
Téléchargez Drduh / Config / gpg.conf pour utiliser les paramètres recommandés:
curl -o ~/.gnupg/gpg.conf https://raw.githubusercontent.com/drduh/config/master/gpg.conf
Voir Drduh / Yubikey-Guide pour générer et stocker solidement les clés GPG.
Lisez des guides en ligne et entraînez-vous à crypter et décrypter les e-mails à vous-même et à vos amis. Les intéresser à ce genre de choses!
XMPP est une norme ouverte développée par l'IETF qui permet une messagerie fédérée multiplateforme. Il existe de nombreuses options pour les clients. Pensez à utiliser l'un des clients basés sur le navigateur pour profiter du bac à sable de votre navigateur.
Selon le fournisseur, vous n'aurez peut-être besoin de rien d'autre qu'un nom d'utilisateur et un mot de passe pour configurer votre compte.
XMPP n'est pas E2EE par défaut, vous devrez utiliser le chiffrement Omemo, alors assurez-vous que votre client le prend en charge.
Le signal est un messager E2EE avancé dont le protocole à double rayont est utilisé par d'innombrables autres messagers, y compris WhatsApp, Google Messages et Facebook Messenger.
Le signal nécessite un numéro de téléphone pour vous inscrire et vous devrez l'installer sur votre téléphone avant de pouvoir l'utiliser sur le bureau.
iMessage est le premier messager d'Apple. Il nécessite un compte Apple pour l'utiliser.
Assurez-vous d'activer la vérification de la clé de contact et de vérifier avec toute personne que vous envoyez un message pour vous assurer que vous envoyez une messagerie à la bonne personne.
Vous pouvez utiliser iMessage avec un numéro de téléphone ou un e-mail, alors choisissez un que vous êtes à l'aise avec vos contacts.
Remarque: Par défaut, la sauvegarde iCloud est activée qui stocke des copies de vos clés de chiffrement de message sur les serveurs d'Apple sans E2EE. Désactivez la sauvegarde iCloud ou activez la protection avancée des données pour éviter cela. N'oubliez pas non plus de dire à vos partenaires de messagerie pour faire de même!
Il y a une quantité de logiciels malveillants Mac toujours croissante à l'état sauvage. Les Mac ne sont pas à l'abri des virus et des logiciels malveillants!
Certains logiciels malveillants sont livrés à la fois avec des logiciels légitimes, tels que la barre d'outils Java Bunling, et certains avec des logiciels illégitimes, tels que mac.backdoor.iworm groupé avec des programmes piratés.
Voir Méthodes de persistance de logiciels malveillants sur Mac OS X (PDF) et la persistance des logiciels malveillants sur OS X Yosemite pour savoir comment fonctionne les logiciels malveillants du jardin.
Abonnez-vous aux mises à jour sur le blog MalwareBytes pour les nouvelles actuelles de sécurité Mac.
Consultez également le piratage de logiciels malveillants pour l'équipe pour macOS: Root Installation pour macOS, support Driver pour Mac Agent et RCS Agent pour Mac, qui est un bon exemple de logiciels malveillants avancés avec des capacités à masquer à Userland (par exemple, ps
, ls
). Pour en savoir plus, consultez une brève analyse d'un installateur d'implant RCS et inverse.
Seul les programmes de l'App Store ou qui sont notariés par Apple aideront à atténuer les logiciels malveillants. Apple effectue une analyse automatisée sur les applications notariées pour les logiciels malveillants. Les applications d'App Store subissent un processus de révision pour attraper des logiciels malveillants.
Sinon, obtenez des programmes de sources de confiance comme directement du site Web du développeur ou du github. Assurez-vous toujours que votre navigateur / terminal utilise HTTPS lors du téléchargement de n'importe quel programme.
Vous devez également éviter les programmes qui demandent de nombreuses autorisations et des programmes à source fermée tiers. Le code open source permet à quiconque d'auditer et d'examiner le code pour les problèmes de sécurité / confidentialité.
Vérifiez si un programme utilise le sandbox de l'application avant de l'exécuter en exécutant la commande suivante:
codesign -dvvv --entitlements - <path to your app>
Si le sandbox de l'application est activé, vous verrez
[Key] com.apple.security.app-sandbox
[Value]
[Bool] true
Alternativement, vous pouvez vérifier pendant l'exécution de l'application en ouvrant le moniteur d'activité et en ajoutant la colonne "Sandbox".
Toutes les applications App Store sont nécessaires pour utiliser le sandbox de l'application.
Remarque: les navigateurs comme Google Chrome utilisent leur propre bac à sable afin qu'ils n'utilisent pas le bac à sable de l'application.
Vérifiez si un programme utilise l'exécution durcie avant de l'exécuter à l'aide de la commande suivante:
codesign --display --verbose /path/to/bundle.app
Si le temps d'exécution durci est activé, vous verrez flags=0x10000(runtime)
. Le "runtime" signifie que le temps d'exécution durci est activé. Il peut y avoir d'autres drapeaux, mais le drapeau d'exécution est ce que nous recherchons ici.
Vous pouvez activer une colonne dans un moniteur d'activité appelé "restreint" qui est un drapeau qui empêche les programmes d'injecter du code via le linker dynamique de MacOS. Idéalement, cela devrait dire "oui".
Les applications notariées sont nécessaires pour utiliser l'exécution durcie.
Pour scanner une application avec plusieurs produits AV et examiner son comportement, téléchargez-le sur Virustotal avant de l'exécuter.
MacOS est livré avec un programme AV intégré appelé XProtect. XProtect s'exécute automatiquement en arrière-plan et met à jour ses signatures qu'il utilise pour détecter les logiciels malveillants sans que vous ayez à faire quoi que ce soit. S'il détecte les logiciels malveillants déjà en cours d'exécution, il fonctionnera pour supprimer et l'atténuer comme tout autre programme AV.
Des applications telles que BlockBlock ou Maclaunch.sh peuvent aider à prévenir les logiciels malveillants persistants.
Les programmes antivirus installés localement sont généralement une épée à double tranchant: ils peuvent attraper des logiciels malveillants de "variété de jardin", mais peuvent également augmenter la surface d'attaque pour les adversaires sophistiqués en raison de leur mode de fonctionnement privilégié. Ils téléphonent également à la maison pour envoyer des échantillons afin d'attraper les nouveaux logiciels malveillants. Cela peut être un problème de confidentialité.
Voir Sophail: Attaques appliquées contre l'antivirus (PDF), analyse et exploitation d'une vulnérabilité ESET, un logiciel de sécurité populaire a fait l'objet d'attaques incessantes de la NSA et du GCHQ, et comment Israël a attrapé des pirates russes à parcourir le monde pour les secrets américains.
Gatekeeper essaie d'empêcher les applications non notarisées de s'exécuter.
Si vous essayez d'exécuter une application qui n'est pas notariée, Gatekeeper vous donnera un avertissement. Cela peut être facilement contourné si vous allez dans la confidentialité et la sécurité , faites défiler vers le bas et cliquez sur votre application. Ensuite, Gatekeeper vous permettra de l'exécuter.
Gatekeeper ne couvre pas tous les binaires, seulement les applications, alors soyez prudent lorsque vous exécutez d'autres types de fichiers.
Pour vérifier que SIP est activé, utilisez l' csrutil status
, qui doit retourner: System Integrity Protection status: enabled.
Sinon, activez SIP via le mode de récupération.
MacOS attache les métadonnées (APFS Attributs étendus) aux fichiers téléchargés, qui peuvent être affichés avec les commandes mdls
et xattr
:
$ 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
Les attributs de métadonnées peuvent également être supprimés avec le drapeau -d
:
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
D'autres métadonnées et artefacts peuvent être trouvés dans les répertoires, y compris, mais sans s'y limiter, ~/Library/Preferences/
, ~/Library/Containers/<APP>/Data/Library/Preferences
, /Library/Preferences
, dont certains sont détaillés ci-dessous.
~/Library/Preferences/com.apple.sidebarlists.plist
contient la liste historique des volumes attachés. Pour l'effacer, utilisez la commande /usr/libexec/PlistBuddy -c "delete :systemitems:VolumesList" ~/Library/Preferences/com.apple.sidebarlists.plist
/Library/Preferences/com.apple.Bluetooth.plist
contient des métadonnées Bluetooth, y compris l'historique de l'appareil. Si Bluetooth n'est pas utilisé, les métadonnées peuvent être effacées avec:
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
contient le cache de travail d'imprimante de tasses. Pour l'effacer, utilisez les commandes:
sudo rm -rfv /var/spool/cups/c0*
sudo rm -rfv /var/spool/cups/tmp/*
sudo rm -rfv /var/spool/cups/cache/job.cache*
Pour effacer la liste des appareils iOS connectés, utilisez:
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/*
Les données de vignettes Quicklook peuvent être effacées à l'aide de la commande qlmanage -r cache
, mais cela écrit dans la resetreason
de fichiers dans les répertoires Quicklook, et indique que le cache Quicklook a été effacé manuellement. Désactivez le cache de vignettes avec qlmanage -r disablecache
Il peut également être effacé en obtenant les noms de répertoire avec getconf DARWIN_USER_CACHE_DIR
et sudo getconf DARWIN_USER_CACHE_DIR
, puis en les supprimant:
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
De même, pour l'utilisateur racine:
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
Voir également le cache «Quicklook» peut fuir les données cryptées.
Pour effacer les préférences du chercheur:
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
Des fichiers de diagnostic supplémentaires peuvent être trouvés dans les répertoires suivants - mais la prudence doit être prise avant d'en retirer tout, car elle peut casser la journalisation ou causer d'autres problèmes:
/var/db/CoreDuet/
/var/db/diagnostics/
/var/db/systemstats/
/var/db/uuidtext/
/var/log/DiagnosticMessages/
MacOS stocké les données Wi-Fi préférées (y compris les informations d'identification) dans NVRAM. Pour l'effacer, utilisez les commandes suivantes:
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 peut collecter des informations sensibles sur ce que vous tapez, même si le dictionnaire utilisateur et les suggestions sont désactivés. Pour les supprimer et empêcher de les créer à nouveau, utilisez les commandes suivantes:
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
Les métadonnées de la prise en charge de l'application QuickLook peuvent être effacées et verrouillées avec les commandes suivantes:
rm -rfv "~/Library/Application Support/Quick Look/*"
chmod -R 000 "~/Library/Application Support/Quick Look"
chflags -R uchg "~/Library/Application Support/Quick Look"
Les métadonnées de révision des documents sont stockées dans /.DocumentRevisions-V100
et peuvent être effacées et verrouillées avec les commandes suivantes - la prudence doit être prise car cela peut casser certaines applications de base Apple:
sudo rm -rfv /.DocumentRevisions-V100/*
sudo chmod -R 000 /.DocumentRevisions-V100
sudo chflags -R uchg /.DocumentRevisions-V100
Les métadonnées de l'état d'application enregistrées peuvent être effacées et verrouillées avec les commandes suivantes:
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
Les métadonnées de voile automatique peuvent être effacées et verrouillées avec les commandes suivantes:
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"
La base de données Siri Analytics, qui est créée même si l'agent de lancement Siri désactivé, peut être effacé et verrouillé avec les commandes suivantes:
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
contient des métadonnées iTunes. Les données de recherche iTunes récentes peuvent être effacées avec la commande suivante:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist recentSearches
Si vous n'utilisez pas de services liés au compte Apple, les clés suivantes peuvent également être effacées en utilisant les commandes suivantes:
defaults delete ~/Library/Preferences/com.apple.iTunes.plist StoreUserInfo
defaults delete ~/Library/Preferences/com.apple.iTunes.plist WirelessBuddyID
Tous les médias joués dans Quicktime Player peuvent être trouvés dans:
~/Library/Containers/com.apple.QuickTimePlayerX/Data/Library/Preferences/com.apple.QuickTimePlayerX.plist
Des métadonnées supplémentaires peuvent exister dans les fichiers suivants:
~/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
Générez des mots de passe solides en utilisant urandom
et tr
:
tr -dc '[:graph:]' < /dev/urandom | fold -w 20 | head -1
L'assistant de mot de passe dans l'accès à Keychain peut également générer des informations d'identification sécurisées.
Envisagez d'utiliser des dicents pour des mots de passe mémorables.
GNUPG peut également être utilisé pour gérer les mots de passe et autres fichiers cryptés (voir drduh / bourse et drduh / pwd.sh).
Assurez-vous que tous les comptes en ligne éligibles ont une authentification multi-facteurs activée. La forme la plus forte d'authentification multi-facteurs est WebAuthn, suivie des authentificateurs basés sur des applications, et les codes basés sur SMS sont les plus faibles.
Yubikey est un jeton matériel abordable avec support WebAuthn. Il peut également être utilisé pour stocker les clés cryptographiques pour le chiffrement GNUPG et l'authentification SSH - voir Drduh / Yubikey-Guide.
Crypt les fichiers localement avant de les sauvegarder à des médias externes ou des services en ligne.
Si votre modèle de menace le permet, vous devez suivre le modèle de sauvegarde 3-2-1 comme indiqué par CISA. Gardez 3 exemplaires: l'original et les deux sauvegardes. Gardez les sauvegardes sur 2 types de supports différents, par exemple sur un lecteur local et un stockage cloud. Stockez 1 copie hors site.
Time Machine est l'outil intégré pour gérer les sauvegardes sur macOS. Obtenez un lecteur externe ou un lecteur réseau pour sauvegarder et crypter vos sauvegardes.
GNUPG peut être utilisé avec un mot de passe statique ou une clé publique (avec la clé privée stockée sur Yubikey).
Comprimer et crypter un répertoire en utilisant avec un mot de passe:
tar zcvf - ~/Downloads | gpg -c > ~/Desktop/backup-$(date +%F-%H%M).tar.gz.gpg
Décrypter et décompresser le répertoire:
gpg -o ~/Desktop/decrypted-backup.tar.gz -d ~/Desktop/backup-*.tar.gz.gpg
tar zxvf ~/Desktop/decrypted-backup.tar.gz
Les volumes cryptés peuvent également être créés à l'aide de l'utilitaire de disque ou hdiutil
:
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
Les applications et services supplémentaires qui offrent des sauvegardes comprennent:
MacOS se souvient des points d'accès auxquels il s'est connecté. Comme tous les appareils sans fil, le Mac diffusera tous les noms de points d'accès dont il se souvient (par exemple, MyHomeNetwork ) chaque fois qu'il recherche un réseau, comme lors du réveil du sommeil.
Il s'agit d'un risque de confidentialité, alors supprimez les réseaux de la liste des préférences système > Réseau > Avancé lorsqu'ils ne sont plus nécessaires.
Voir également les signaux de la foule: découvrir les relations sociales via des sondes pour smartphones (PDF).
Les informations Wi-Fi enregistrées (SSID, dernière connexion, etc.) peuvent être trouvées dans /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
Vous pouvez avoir une adresse MAC aléatoire différente pour chaque réseau qui tourne dans le temps. Cela vous aidera à empêcher d'être suivi sur les réseaux et sur le même réseau au fil du temps.
MacOS stocke les SSID Wi-Fi et les mots de passe dans NVRAM afin que le mode de récupération accéde à Internet. Assurez-vous d'effacer NVRAM ou de désauthentifier votre Mac à partir de votre compte Apple, qui effacera le NVRAM, avant de passer un Mac. La réinitialisation du SMC effacera une partie du NVRAM, mais pas toutes.
Enfin, la protection WEP sur les réseaux sans fil n'est pas sécurisée et vous ne devez vous connecter qu'aux réseaux protégés WPA3 lorsque cela est possible.
Pour les connexions SSH sortantes, utilisez des clés matérielles ou protégées par mot de passe, configurez des hôtes distants et envisagez de les hachant pour plus de confidentialité. Voir drduh / config / ssh_config pour les options du client recommandé.
Vous pouvez également utiliser SSH pour créer un tunnel chiffré pour envoyer du trafic, similaire à un VPN.
Par exemple, pour utiliser Privoxy en cours d'exécution sur un port hôte distant 8118:
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
Ou pour utiliser une connexion SSH comme proxy de chaussettes:
ssh -NCD 3000 [email protected]
Par défaut, MacOS n'a pas de SSHD ou de connexion à distance activées.
Pour activer SSHD et permettre des connexions SSH entrantes:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
Ou utilisez le menu Préférences système > Partage .
Si vous activez SSHD, assurez-vous de désactiver l'authentification du mot de passe et envisagez de durcir davantage votre configuration. Voir drduh / config / sshd_config pour les options recommandées.
Confirmez si SSHD est en cours d'exécution:
sudo lsof -Pni TCP:22
Gardez votre Mac physiquement en sécurité à tout moment et ne le laissez pas sans surveillance en public.
Un attaquant qualifié avec un accès physique non supervisé pourrait installer un Keylogger matériel pour enregistrer toutes vos touches. L'utilisation d'un Mac avec un clavier intégré ou un clavier Bluetooth rend cela plus difficile, car de nombreuses versions standard de cette attaque sont conçues pour être branchées entre un clavier USB et votre ordinateur.
Pour protéger contre le vol physique lors de l'utilisation, vous pouvez utiliser un outil anti-Forensic comme Buskill ou SwiftGuard (USBKill mis à jour, avec interface utilisateur graphique). Tous répondent aux événements USB et peuvent immédiatement arrêter votre ordinateur si votre appareil est physiquement séparé de vous ou qu'un appareil non autorisé est connecté.
Envisagez d'acheter un écran / filtre de confidentialité pour une utilisation en public.
Le vernis à ongles et les joints de relevé-preuve peuvent être appliqués aux composants pour détecter la falsification.
MacOS possède une puissante capacité d'audit OpenBSM (MODULE DE SÉCURITÉ DE BASIC). Vous pouvez l'utiliser pour surveiller l'exécution des processus, l'activité du réseau et bien plus encore.
Pour les journaux d'audit de la queue, utilisez l'utilitaire praudit
:
$ 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,
Voir les pages manuelles pour audit
, praudit
, audit_control
et d'autres fichiers dans /etc/security
Remarque Bien que man audit
indique que l'indicateur -s
synchronisera la configuration d'audit, il semble nécessaire de redémarrer les modifications à prendre effet.
Voir des articles sur ilostmynotes.blogspot.com et derflouner.wordpress.com pour plus d'informations.
Remarque La protection de l'intégrité du système interfère avec DTrace, il n'est donc pas possible de l'utiliser dans les versions MacOS récentes sans désactiver SIP.
iosnoop
surveille les E / S disqueopensnoop
Monitors File Openexecsnoop
surveille l'exécution des processuserrinfo
surveille les appels système échouésdtruss
surveille tous les appels du système Voir man -k dtrace
pour plus d'informations.
ps -ef
répertorie les informations sur tous les processus en cours d'exécution.
Vous pouvez également afficher les processus avec un moniteur d'activité .
launchctl list
et sudo launchctl list
List chargé et exécutant les démons et agents de lancement des utilisateurs et systèmes.
Liste des fichiers réseau ouvrir:
sudo lsof -Pni
Énumérez le contenu de diverses structures de données liées au réseau:
sudo netstat -atln
Wireshark peut être utilisé à partir de la ligne de commande avec tshark
.
Surveiller les requêtes et les réponses DNS:
tshark -Y "dns.flags.response == 1" -Tfields
-e frame.time_delta
-e dns.qry.name
-e dns.a
-Eseparator=,
Surveiller les demandes et les réponses HTTP:
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
Certificats de surveillance X509 (SSL / TLS):
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 est un logiciel de sécurité développé pour la flotte d'entreprise Macintosh de Google et Open Sourced.
Le Père Noël est un système d'autorisation d'accès binaire et de fichiers pour MacOS. Il se compose d'une extension du système qui surveille les exécutions, un démon qui prend des décisions d'exécution basées sur le contenu d'une base de données locale, un agent d'interface graphique qui informe l'utilisateur en cas de décision de bloc et un utilitaire de ligne de commande pour gérer le système et Synchronisation de la base de données avec un serveur.
Le Père Noël utilise l'API d'autorisation du noyau pour surveiller et permettre / interdire les binaires de l'exécution dans le noyau. Les binaires peuvent être classés en blanc ou en noir par un certificat de développeur de hachage ou de signature unique. Le Père Noël peut être utilisé pour permettre l'exécution de code de confiance uniquement, ou pour les logiciels malveillants connus noirs de l'exécution sur un Mac, similaire au logiciel Bit9 pour Windows.
Remarque Santa n'a pas actuellement d'interface utilisateur graphique pour gérer les règles. Les instructions suivantes concernent uniquement les utilisateurs avancés!
Pour installer le Père Noël, visitez la page des versions et téléchargez la dernière image de disque, le montez-le et installez le package contenu:
hdiutil mount ~/Downloads/santa-0.9.20.dmg
sudo installer -pkg /Volumes/santa-0.9.20/santa-0.9.20.pkg -tgt /
Par défaut, le Père Noël installe en mode "Monitor" (ce qui signifie que rien n'est bloqué, uniquement enregistré) et est livré avec deux règles: une pour les binaires Apple et un autre pour le logiciel Santa lui-même.
Vérifiez que le Père Noël est en cours d'exécution et son module de noyau est chargé:
$ 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>
Créez une règle de liste noire pour empêcher iTunes d'exécuter:
$ sudo santactl rule --blacklist --path /Applications/iTunes.app/
Added rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Essayez de lancer iTunes - il sera bloqué.
$ open /Applications/iTunes.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/iTunes.app.
Pour supprimer la règle:
$ sudo santactl rule --remove --path /Applications/iTunes.app/
Removed rule for SHA-256: e1365b51d2cb2c8562e7f1de36bfb3d5248de586f40b23a2ed641af2072225b3.
Ouvrez iTunes:
$ open /Applications/iTunes.app/
[iTunes will open successfully]
Créez un nouveau programme C. Exemple:
$ cat << EOF > foo.c
> # include <stdio.h>
> main () { printf( " Hello Worldn”); }
> EOF
Compilez le programme avec GCC (nécessite l'installation d'outils Xcode ou de ligne de commande):
$ 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
Exécutez-le:
$ ./foo
Hello World
Basculez le Père Noël en mode "Lockdown", qui permet uniquement aux binaires autorisés de fonctionner:
$ sudo defaults write /var/db/santa/config.plist ClientMode -int 2
Essayez d'exécuter le binaire non signé:
$ ./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)
Autoriser un binaire, déterminer sa somme SHA-256:
$ 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)
Ajoutez une nouvelle règle:
$ sudo santactl rule --whitelist --sha256 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed
Added rule for SHA-256: 4e11da26feb48231d6e90b10c169b0f8ae1080f36c168ffe53b1616f7505baed.
Exécutez-le:
$ ./foo
Hello World
Il est autorisé et fonctionne!
Les demandes peuvent également être autorisées par le certificat du développeur. Par exemple, téléchargez et exécutez Google Chrome - il sera bloqué par le Père Noël en mode "Lockdown":
$ 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.
Autoriser l'application par le certificat du développeur (premier élément de la chaîne de signature):
$ 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
Dans ce cas, 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
est le SHA-256 du certificat Apple Developer de Google (Team ID EQHXZ8M8AV) - Autoriser It:
$ sudo santactl rule --whitelist --certificate --sha256 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153
Added rule for SHA-256: 15b8ce88e10f04c88a5542234fbdfc1487e9c2f64058a05027c7c34fc4201153.
Google Chrome devrait maintenant être lancé et les mises à jour ultérieures de l'application continueront de fonctionner tant que le certificat de signature de code ne change pas ou ne s'expirera pas.
Pour désactiver le mode "verrouillage":
sudo defaults delete /var/db/santa/config.plist ClientMode
Voir /var/log/santa.log
pour surveiller et refuser les décisions d'exécution.
Un serveur de journal et de configuration pour le Père Noël est disponible dans Zentral, une solution de surveillance des événements open source et le serveur TLS pour OsQuery et le Père Noël.
Zentral soutiendra le Santa en mode de surveillance et de verrouillage. Les clients doivent être inscrits avec une connexion TLS avec Sync Santa Rules, tous les événements du Père Noël à partir de points de terminaison sont agrégés et enregistrés à Zentral. Les événements du Père Noël peuvent déclencher des actions et des notifications à l'intérieur du cadre zentral.
Remarque Python, Bash et d'autres interprètes sont autorisés (car ils sont signés par le certificat du développeur d'Apple), le Père Noël ne pourra donc pas empêcher ces scripts d'exécuter. Ainsi, un programme potentiel non binaire qui désactive le Père Noël est une faiblesse (pas une vulnérabilité, car il est ainsi par conception) à noter.
Désactiver les données de diagnostic et d'utilisation.
Si vous souhaitez lire de la musique ou regarder des vidéos , utilisez Quicktime Player, le lecteur multimédia intégré dans MacOS. Il utilise le bac à sable de l'application, l'exécution durcie et bénéficie du volume du système signé dans le cadre du système de base.
Si vous souhaitez utiliser des torrents , utilisez la transmission qui est gratuite et open source (Remarque: Comme tous les logiciels, même les projets open source, les logiciels malveillants peuvent toujours trouver son chemin). Vous pouvez également utiliser une liste de blocs pour éviter de regarder avec les mauvais hôtes connus - voir quelle est la meilleure liste de blocs pour la transmission et JohnTyree / 3331662.
Gérer les gestionnaires de fichiers par défaut.
Surveillez les journaux système avec l'application de la console ou les commandes syslog -w
ou /usr/bin/log stream
.
Réglez votre écran sur verrouiller dès que l'économiseur d'écran commence:
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
Exposer les fichiers cachés et le dossier de bibliothèque dans Finder:
defaults write com.apple.finder AppleShowAllFiles -bool true
chflags nohidden ~/Library
Affichez toutes les extensions de nom de fichier (afin que "Evil.jpg.app" ne peut pas se masquer facilement).
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Ne faites pas défaut d'enregistrer des documents à iCloud:
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Activez l'entrée du clavier sécurisé dans le terminal (sauf si vous utilisez Yubikey ou des applications telles que Textexpander).
Désactiver Crash Reporter (la boîte de dialogue qui apparaît après une application se bloque et invite à signaler le problème à Apple):
defaults write com.apple.CrashReporter DialogType none
Désactiver les publicités de multidiffusion de bonjour:
AVERTISSEMENT: Cela entraînera des problèmes avec AirPlay et AirPrint!
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist NoMulticastAdvertisements -bool YES
Désactivez les fonctionnalités de transfert et de Bluetooth, si elles ne sont pas nécessaires.
Vérifiez que vos applications sont en bac à sable dans le moniteur d'activité.
MacOS est livré avec cette ligne dans /etc/sudoers
:
Defaults env_keep += "HOME MAIL"
Ce qui empêche Sudo de modifier la variable d'accueil lorsque vous élevez les privilèges. Cela signifie qu'il s'exécutera en tant que root The Zsh DotFiles dans le répertoire domestique de l'utilisateur non racine lorsque vous exécutez "Sudo Zsh". Il est conseillé de commenter cette ligne pour éviter un moyen potentiellement facile pour les logiciels malveillants ou un attaquant local de dégénérer les privilèges à rooter.
Si vous souhaitez conserver la commodité de l'utilisateur racine ayant un répertoire domestique d'un utilisateur non racine, vous pouvez ajouter une ligne d'exportation vers /var/root/.zshrc, par exemple:
export HOME=/Users/blah
Définissez un umask personnalisé:
sudo launchctl config user umask 077
Redémarrez, créez un fichier dans Finder et vérifiez ses autorisations (la par défaut de MacOS permet «Groupe / autre» Access):
$ 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