# Audit SUID GUID Linux ## Version Shell ### Installation Copier audit-suid.sh Exemple: ``` cp audit-suid.sh /usr/local/bin/audit-suid.sh chmod +x /usr/local/bin/audit-suid.sh ``` ### Exécution ``` # Exécuter avec les droits root sudo /usr/local/bin/audit-suid.sh ``` ### Planification avec cron ``` # Audit quotidien à 2h du matin sudo crontab -e # Ajouter la ligne : 0 2 * * * /usr/local/bin/audit-suid.sh ``` ### Personalisation Modifier le fichier ```/etc/audit/suid_whitelist.conf``` pour ajouter vos propres binaires légitimes. Ce script vous aidera à maintenir la sécurité de vos serveurs Linux en identifiant rapidement les risques potentiels liés aux permissions SUID/SGID. ## Version Python ### Installation Copier ```audit-suid.py``` Exemple: ``` # Sauvegarde du script sudo mkdir -p /usr/local/bin/ sudo cp suid_audit.py /usr/local/bin/audit-suid.py sudo chmod +x /usr/local/bin/audit-suid.py # Création des répertoires sudo mkdir -p /etc/audit /var/log/audit ``` ### Utilisation ``` # Exécution simple sudo python3 audit-suid.py # Avec options sudo python3 audit-suid.py --max-depth 15 --no-temp # Aide python3 audit-suid.py --help # Exécution avec droits root (obligatoire) sudo /usr/local/bin/audit-suid.py ``` ### Options disponibles Option Description - **--no-temp**: Ne pas vérifier /tmp, /var/tmp, /dev/shm - **--no-orphan**: Ne pas vérifier les fichiers orphelins - **--no-hash**: Ne pas calculer les hashs MD5 (plus rapide) - **--max-depth N**: Profondeur maximale de recherche (défaut: 20) - **--log-dir PATH**: Répertoire des logs (défaut: /var/log/audit) - **--whitelist PATH**: Fichier JSON de whitelist ### Cron ``` # Éditer crontab sudo crontab -e # Ajouter pour une exécution quotidienne à 2h 0 2 * * * /usr/local/bin/audit-suid.py --no-hash # Exécution hebdomadaire avec tous les contrôles 0 3 * * 0 /usr/local/bin/audit-suid.py ``` ### Format du fichier de whitelist (JSON) ```json { "SUID": [ "/bin/su", "/usr/bin/sudo", "/usr/bin/passwd" ], "SGID": [ "/usr/bin/wall", "/usr/bin/write" ] } ``` ### Exemple d'execution ``` root@bv01:~# /usr/local/bin/audit-suid.py ================================================================================ SUID/SGID Security Audit Tool - Linux Privilege Scanner Début de l'audit: 2026-04-20 13:55:09 ================================================================================ 2026-04-20 13:55:09,631 - INFO - Liste blanche chargée: 20 SUID, 8 SGID 2026-04-20 13:55:09,631 - INFO - Début de l'audit depuis / 2026-04-20 13:55:09,686 - INFO - Progression: 10000 fichiers parcourus... 2026-04-20 13:55:09,736 - INFO - Progression: 20000 fichiers parcourus... 2026-04-20 13:55:09,786 - INFO - Progression: 30000 fichiers parcourus... 2026-04-20 13:55:09,858 - INFO - Progression: 40000 fichiers parcourus... 2026-04-20 13:55:09,919 - INFO - Progression: 50000 fichiers parcourus... 2026-04-20 13:55:09,981 - INFO - Progression: 60000 fichiers parcourus... 2026-04-20 13:55:10,036 - WARNING - [ALERTE SUID] /usr/libexec/spice-client-glib-usb-acl-helper (propriétaire: root, groupe: root) 2026-04-20 13:55:10,038 - WARNING - [ALERTE SUID] /usr/sbin/mount.cifs (propriétaire: root, groupe: root) 2026-04-20 13:55:10,039 - WARNING - [ALERTE SGID] /usr/sbin/pam_extrausers_chkpwd (propriétaire: root, groupe: shadow) 2026-04-20 13:55:10,039 - WARNING - [ALERTE SGID] /usr/sbin/unix_chkpwd (propriétaire: root, groupe: shadow) 2026-04-20 13:55:10,041 - WARNING - [ALERTE SUID] /usr/sbin/pppd (propriétaire: root, groupe: dip) 2026-04-20 13:55:10,042 - INFO - Progression: 70000 fichiers parcourus... 2026-04-20 13:55:10,056 - INFO - [OK SGID] /usr/bin/chage 2026-04-20 13:55:10,057 - WARNING - [ALERTE SUID] /usr/bin/fusermount3 (propriétaire: root, groupe: root) 2026-04-20 13:55:10,057 - INFO - [OK SGID] /usr/bin/expiry 2026-04-20 13:55:10,058 - INFO - [OK SGID] /usr/bin/ssh-agent 2026-04-20 13:55:10,058 - INFO - [OK SUID] /usr/bin/chfn 2026-04-20 13:55:10,059 - INFO - [OK SUID] /usr/bin/passwd 2026-04-20 13:55:10,059 - INFO - [OK SUID] /usr/bin/gpasswd 2026-04-20 13:55:10,059 - INFO - [OK SUID] /usr/bin/umount 2026-04-20 13:55:10,060 - INFO - [OK SUID] /usr/bin/chsh 2026-04-20 13:55:10,060 - INFO - [OK SUID] /usr/bin/pkexec 2026-04-20 13:55:10,060 - WARNING - [ALERTE SUID] /usr/bin/su (propriétaire: root, groupe: root) 2026-04-20 13:55:10,061 - WARNING - [ALERTE SUID] /usr/bin/newgidmap (propriétaire: root, groupe: root) 2026-04-20 13:55:10,061 - WARNING - [ALERTE SGID] /usr/bin/crontab (propriétaire: root, groupe: crontab) 2026-04-20 13:55:10,061 - WARNING - [ALERTE SUID] /usr/bin/newuidmap (propriétaire: root, groupe: root) 2026-04-20 13:55:10,062 - INFO - [OK SUID] /usr/bin/sudo 2026-04-20 13:55:10,062 - INFO - [OK SUID] /usr/bin/newgrp 2026-04-20 13:55:10,063 - INFO - [OK SUID] /usr/bin/mount 2026-04-20 13:55:10,066 - INFO - [OK SUID] /usr/lib/dbus-1.0/dbus-daemon-launch-helper 2026-04-20 13:55:10,069 - WARNING - [ALERTE SUID] /usr/lib/cockpit/cockpit-session (propriétaire: root, groupe: cockpit-wsinstance) 2026-04-20 13:55:10,102 - INFO - Progression: 80000 fichiers parcourus... 2026-04-20 13:55:10,108 - WARNING - [ALERTE SUID] /usr/lib/polkit-1/polkit-agent-helper-1 (propriétaire: root, groupe: root) 2026-04-20 13:55:10,125 - WARNING - [ALERTE SGID] /usr/lib/x86_64-linux-gnu/utempter/utempter (propriétaire: root, groupe: utmp) 2026-04-20 13:55:10,136 - INFO - [OK SUID] /usr/lib/openssh/ssh-keysign 2026-04-20 13:55:10,164 - INFO - Progression: 90000 fichiers parcourus... 2026-04-20 13:55:10,231 - INFO - Progression: 100000 fichiers parcourus... 2026-04-20 13:55:10,295 - INFO - Progression: 110000 fichiers parcourus... 2026-04-20 13:55:10,358 - INFO - Progression: 120000 fichiers parcourus... 2026-04-20 13:55:10,425 - INFO - Progression: 130000 fichiers parcourus... 2026-04-20 13:55:10,492 - INFO - Progression: 140000 fichiers parcourus... 2026-04-20 13:55:10,548 - INFO - Progression: 150000 fichiers parcourus... 2026-04-20 13:55:10,592 - INFO - Progression: 160000 fichiers parcourus... 2026-04-20 13:55:10,661 - INFO - Progression: 170000 fichiers parcourus... 2026-04-20 13:55:10,719 - INFO - Progression: 180000 fichiers parcourus... 2026-04-20 13:55:10,803 - INFO - Progression: 190000 fichiers parcourus... 2026-04-20 13:55:10,844 - WARNING - [ALERTE SUID] /home/stef/fake_malware (propriétaire: root, groupe: root) 2026-04-20 13:55:10,844 - WARNING - [ALERTE SGID] /home/stef/fake_malware (propriétaire: root, groupe: root) 2026-04-20 13:55:10,879 - INFO - Progression: 200000 fichiers parcourus... 2026-04-20 13:55:10,965 - INFO - Progression: 210000 fichiers parcourus... 2026-04-20 13:55:11,032 - INFO - Progression: 220000 fichiers parcourus... 2026-04-20 13:55:11,103 - INFO - Progression: 230000 fichiers parcourus... 2026-04-20 13:55:11,194 - INFO - Progression: 240000 fichiers parcourus... 2026-04-20 13:55:11,278 - INFO - Progression: 250000 fichiers parcourus... 2026-04-20 13:55:11,360 - INFO - Progression: 260000 fichiers parcourus... 2026-04-20 13:55:11,419 - INFO - Progression: 270000 fichiers parcourus... 2026-04-20 13:55:13,947 - INFO - Progression: 280000 fichiers parcourus... 2026-04-20 13:55:24,686 - INFO - Progression: 290000 fichiers parcourus... 2026-04-20 13:55:30,602 - INFO - Audit terminé. 296764 fichiers parcourus. 2026-04-20 13:55:30,602 - INFO - Vérification des répertoires temporaires... 2026-04-20 13:55:30,603 - INFO - Recherche des fichiers orphelins... 2026-04-20 13:55:51,232 - INFO - Rapport texte généré: /var/log/audit/report_20260420_135509.txt 2026-04-20 13:55:51,232 - INFO - Rapport JSON généré: /var/log/audit/audit_20260420_135509.json 2026-04-20 13:55:51,232 - INFO - Rapport CSV généré: /var/log/audit/audit_20260420_135509.csv 2026-04-20 13:55:51,232 - INFO - Alertes sauvegardées: /var/log/audit/alerts_20260420_135509.txt ================================================================================ RÉSUMÉ DE L'AUDIT ================================================================================ Log complet: /var/log/audit/audit_20260420_135509.log Rapport détaillé: /var/log/audit/report_20260420_135509.txt Rapport JSON: /var/log/audit/audit_20260420_135509.json Rapport CSV: /var/log/audit/audit_20260420_135509.csv Alertes: /var/log/audit/alerts_20260420_135509.txt Whitelist: /etc/audit/suid_whitelist.json ⚠️ ATTENTION: 15 anomalie(s) détectée(s) ! - SUID suspects: 10 - SGID suspects: 5 - Orphelins: 0 Consultez les rapports pour plus de détails ``` Extrait du fichier d'audit en json: ```json { "metadata": { "timestamp": "2026-04-20T13:55:51.230720", "hostname": "bv01", "system": "Linux 6.8.0-110-generic", "total_files_audited": 29, "total_alerts": 15 }, "alerts": [ { "path": "/usr/libexec/spice-client-glib-usb-acl-helper", "type": "SUID", "permissions": "-rwsr-xr-x", "owner": "root", "group": "root", "size": 22680, "size_human": "22.15 KB", "mtime": "2024-04-01 04:49:34", "hash_md5": "a26efa9f0fc6fe4b5a8f117c5aa4293b", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/sbin/mount.cifs", "type": "SUID", "permissions": "-rwsr-xr-x", "owner": "root", "group": "root", "size": 52296, "size_human": "51.07 KB", "mtime": "2025-06-11 04:07:20", "hash_md5": "8ee15c6c7135adc98ee4002b1ba3553e", "is_whitelisted": false, "alert_level": "WARNING" }, ... ... { "path": "/home/stef/fake_malware", "type": "SGID", "permissions": "-rwSr-Sr--", "owner": "root", "group": "root", "size": 0, "size_human": "0 B", "mtime": "2026-04-20 09:12:39", "hash_md5": "d41d8cd98f00b204e9800998ecf8427e", "is_whitelisted": false, "alert_level": "WARNING" } ], "all_files": [ { "path": "/usr/libexec/spice-client-glib-usb-acl-helper", "type": "SUID", "permissions": "-rwsr-xr-x", "owner": "root", "group": "root", "size": 22680, "size_human": "22.15 KB", "mtime": "2024-04-01 04:49:34", "hash_md5": "a26efa9f0fc6fe4b5a8f117c5aa4293b", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/sbin/mount.cifs", "type": "SUID", "permissions": "-rwsr-xr-x", "owner": "root", "group": "root", "size": 52296, "size_human": "51.07 KB", "mtime": "2025-06-11 04:07:20", "hash_md5": "8ee15c6c7135adc98ee4002b1ba3553e", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/sbin/pam_extrausers_chkpwd", "type": "SGID", "permissions": "-rwxr-sr-x", "owner": "root", "group": "shadow", "size": 26944, "size_human": "26.31 KB", "mtime": "2025-09-15 12:37:15", "hash_md5": "c1259cf8990be810f3cfc0d56b914e74", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/sbin/unix_chkpwd", "type": "SGID", "permissions": "-rwxr-sr-x", "owner": "root", "group": "shadow", "size": 31040, "size_human": "30.31 KB", "mtime": "2025-09-15 12:37:15", "hash_md5": "25a6c140f22aa0a844f94b864d8a7c38", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/sbin/pppd", "type": "SUID", "permissions": "-rwsr-xr--", "owner": "root", "group": "dip", "size": 420416, "size_human": "410.56 KB", "mtime": "2024-04-03 17:56:59", "hash_md5": "0b977dc339d7b04e1e2d6cfa6c290da7", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/bin/chage", "type": "SGID", "permissions": "-rwxr-sr-x", "owner": "root", "group": "shadow", "size": 72184, "size_human": "70.49 KB", "mtime": "2024-05-30 14:52:35", "hash_md5": "", "is_whitelisted": true, "alert_level": "INFO" }, { "path": "/usr/bin/fusermount3", "type": "SUID", "permissions": "-rwsr-xr-x", "owner": "root", "group": "root", "size": 39296, "size_human": "38.38 KB", "mtime": "2024-04-08 15:57:57", "hash_md5": "3498b3d1d373f876ff0d6a4551e01c21", "is_whitelisted": false, "alert_level": "WARNING" }, { "path": "/usr/bin/expiry", "type": "SGID", "permissions": "-rwxr-sr-x", "owner": "root", "group": "shadow", "size": 27152, "size_human": "26.52 KB", "mtime": "2024-05-30 14:52:35", "hash_md5": "", "is_whitelisted": true, "alert_level": "INFO" }, { "path": "/usr/bin/ssh-agent", "type": "SGID", "permissions": "-rwxr-sr-x", "owner": "root", "group": "_ssh", "size": 309688, "size_human": "302.43 KB", "mtime": "2026-03-04 17:55:04", "hash_md5": "", "is_whitelisted": true, "alert_level": "INFO" }, ... ... { "path": "/home/stef/fake_malware", "type": "SGID", "permissions": "-rwSr-Sr--", "owner": "root", "group": "root", "size": 0, "size_human": "0 B", "mtime": "2026-04-20 09:12:39", "hash_md5": "d41d8cd98f00b204e9800998ecf8427e", "is_whitelisted": false, "alert_level": "WARNING" } ] } ```