
script macOS pour l'audit
Un kit d'audit de sécurité basé sur Bash pour macOS qui vérifie les paramètres de durcissement du système par rapport aux recommandations CIS Benchmark et génère des rapports JSON/HTML.
Créé par Bartłomiej Pogwizd · https://www.youtube.com/@pTech-pl
Ce kit comprend deux scripts :
auditMAC.sh — exécute l'audit de sécurité complet et affiche les résultats dans le terminal ainsi que dans un fichier de données TSVgenerate_reports.sh — convertit le fichier de données TSV en un rapport JSON et un rapport HTML stylisé
sudo (requis pour plusieurs vérifications)chmod +x auditMAC.sh
./auditMAC.sh
Le script va :
sudo (utilisé localement uniquement, jamais enregistré)Placez les fichiers ( auditMAC.sh et generate_reports.sh ) dans le même dossier
Les fichiers json et html apparaîtront dans le dossier, ils sont générés automatiquement
Cela produit deux fichiers dans le répertoire courant :
macos_security_report.jsonmacos_security_report.html========================================
Rapport d'audit de sécurité macOS
Auteur: Bartłomiej Pogwizd / youtube.com/pTech
Version: 2.5
========================================
Sécurité du système
----------------------------------------
Firewall OK Activé
SIP OK Activé
FileVault FAIL Désactivé
Gatekeeper OK Activé
...
Score de sécurité 72/100
Niveau de risque : Moyen
Réussis 31
Avertissements 4
Échecs 8
Légende des statuts :
| Statut | Signification |
|---|---|
OK | Le paramètre correspond à la valeur recommandée |
WARN |
Le score est calculé comme suit :
score = (passed × 100 + warnings × 50) / total_checks
| Score | Niveau de risque |
|---|---|
| 80–100 | 🟢 Faible |
| 50–79 | 🟡 Moyen |
| 0–49 | 🔴 Élevé |
Chaque vérification dans le rapport HTML/JSON est étiquetée avec un identifiant CIS macOS Benchmark (par exemple 2.1.1 pour le pare-feu, 2.2.1 pour FileVault). Cela permet de recouper facilement la documentation officielle du CIS pour obtenir des conseils de correction.
sudo est utilisé uniquement pour les commandes nécessitant des privilèges élevés (par exemple fdesetup, systemsetup, launchctl)/tmp avec umask 077 et sont toujours nettoyés à la sortie, même en cas d'erreur ou de Ctrl+CINFO avec des instructions pour vérifier manuellementMIT — libre à vous d'utiliser, modifier et partager.
Les pull requests et les signalements de problèmes sont les bienvenus. Si une vérification produit des résultats incorrects sur votre version de macOS, veuillez ouvrir un problème et inclure la sortie de sw_vers.
| Catégorie | Vérifications |
|---|
| Sécurité du système | Firewall, SIP, Secure Boot, Gatekeeper, FileVault, Firmware Password, Authenticated Root |
| Confidentialité | Envoi de diagnostics, Partage des données Siri, Services de localisation, Récepteur AirPlay, Verrouillage d'écran, Compte invité, Connexion automatique |
| Mises à jour et heure | Mises à jour en attente, Téléchargement automatique, Mises à jour critiques, Temps réseau, Réveil sur réseau |
| Partage et accès à distance | Partage d'écran, SMB, Partage d'imprimante, Connexion à distance, Gestion à distance, AirDrop, Handoff |
| Services système | tftpd, nfsd, httpd, uucp, sshd |
| Utilisateurs et privilèges | Comptes administrateur, rôle de l'utilisateur actuel, état du compte root |
| Réseau et ports | Ports d'écoute ouverts (IPv4/IPv6) |
| Éléments de démarrage | LaunchAgents et LaunchDaemons (système et utilisateur) |
| Durcissement SSH | PermitRootLogin, PasswordAuthentication, PubkeyAuthentication, AllowUsers |
| Extensions système | Extensions noyau actives/en attente/terminées |
| Le paramètre n'a pas pu être déterminé ou est une zone grise |
FAIL | Le paramètre ne correspond pas à la recommandation |
INFO | Uniquement informatif, pas de jugement réussite/échec |