OS X Auditor

OS X Auditor est un outil gratuit de criminalistique informatique pour Mac OS X.
OS X Auditor analyse et hache les artefacts suivants sur le système en cours d'exécution ou une copie d'un système que vous souhaitez analyser :
- les extensions du noyau
- les agents et démons système
- les agents et démons tiers
- les anciens et obsolètes éléments de démarrage système et tiers
- les agents des utilisateurs
- les fichiers téléchargés par les utilisateurs
- les applications installées
Il extrait :
- les fichiers mis en quarantaine des utilisateurs
- l'historique Safari des utilisateurs, les téléchargements, les topsites, LastSession, les bases de données HTML5 et le stockage local
- les cookies, téléchargements, formhistory, permissions, places et signons Firefox des utilisateurs
- l'historique Chrome et l'historique archivé, les cookies, les données de connexion, les sites les plus visités, les données web, les bases de données HTML5 et le stockage local Chrome des utilisateurs
- les comptes sociaux et email des utilisateurs
- les points d'accès WiFi auxquels le système audité s'est connecté (et tente de les géolocaliser)
Il recherche également des mots-clés suspects dans les .plist eux-mêmes.
Il peut vérifier la réputation de chaque fichier sur :
- MHR de Team Cymru
- VirusTotal
- votre propre base de données locale
Il peut regrouper tous les journaux des répertoires suivants dans une archive zip :
- /var/log (-> /private/var/log)
- /Library/logs
- le ~/Library/logs de l'utilisateur
Enfin, les résultats peuvent être :
- rendus sous forme d'un simple fichier journal texte (pour que vous puissiez les cat-pipe-grep… ou simplement les grep)
- rendus sous forme d'un fichier journal HTML
- envoyés à un serveur Syslog
Auteur
Jean-Philippe Teissier - @Jipe_ & al.
État du développement
OS X AUDITOR N'EST PLUS MAINTENU - VOUS NE DEVRIEZ PAS L'UTILISER
Support
OS X Auditor a commencé comme un projet de week-end et n'est plus maintenu. Il a été forké par les supers gars de @ Yelp qui ont créé osxcollector.
Je vous recommande d'utiliser osxcollector (https://github.com/Yelp/osxcollector)
Copiez simplement tous les fichiers depuis GitHub.
Dépendances
Si vous prévoyez d'exécuter OS X Auditor sur un Mac, vous obtiendrez un support complet de l'analyse des plist avec OS X Foundation via pyobjc :
Si vous ne pouvez pas installer pyobjc ou si vous prévoyez d'exécuter OS X Auditor sur un autre OS que Mac OS X, vous pourriez rencontrer des problèmes avec l'analyse des plist :
pip install biplist
pip install plist
Ces dépendances seront supprimées lorsqu'un module plist natif fonctionnel sera disponible en python
- OS X Auditor fonctionne bien avec python >= 2.7.2 (2.7.9 est OK). Il ne fonctionne pas encore avec une version différente de python (à cause du cauchemar des plist)
- OS X Auditor est maintenu pour fonctionner sur la dernière version d'OS X. Il fera de son mieux sur les versions plus anciennes d'OS X.
- Vous devez l'exécuter en tant que root (ou via sudo) si vous voulez l'utiliser sur un système en cours d'exécution, sinon il ne pourra pas accéder à certains fichiers système et d'autres utilisateurs
- Si vous utilisez des clés API à partir de variables d'environnement (voir ci-dessous), vous devez utiliser
sudo -E pour utiliser les variables d'environnement de l'utilisateur
Tapez osxauditor.py -h pour obtenir toutes les options disponibles, puis exécutez-le avec les options sélectionnées
ex. [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
Configuration des variables d'environnement
API VirusTotal:
export VT_API_KEY=aaaabbbbccccddddeeee
Journal des modifications
0.4.3
0.4.2
- MODIFICATION : Déplacement des clés API du code vers les variables d'environnement
0.4.1
- MODIFICATION : Recherche de portes dérobées génériques dans LaunchAgentPlist
0.4
- NOUVEAU : extrait les événements (démarrage/arrêt, hibernation entrée/sortie, commandes sudo, périphériques USB, ttys ouverts/fermés, à partir des journaux système et crée une chronologie (pas encore lisible) (-e/eventlogs)
- NOUVEAU : extrait les LoginItems des utilisateurs
- NOUVEAU : extrait les RecentItems des utilisateurs
- NOUVEAU : extrait la LastSession des artefacts Safari
- NOUVEAU : extrait les détails des groupes et utilisateurs système
- CORRECTIF : appels os.path.join() incorrects
- CORRECTIF : bogue dans la fonction récursive ParsePackagesDir()
0.3.1
- NOUVEAU : fournit le nom, la version et le build du système audité
- NOUVEAU : possibilité d'analyser les applications installées (-i/--installedapps)
- NOUVEAU : extrait l'Historique Archivé des artefacts Google Chrome
- NOUVEAU : un rapport HTML lisible :)
- CORRECTIF : HTMLLog() et SYSLOGLog() gèrent désormais les exceptions
- CORRECTIF : ParsePackagesDir() est maintenant récursive et ne tente d'analyser que les applications ou les extensions du noyau. Quelques sorties DEBUG ajoutées également
- CORRECTIF : énorme amélioration UTF-8/UNICODE
- CORRECTIF : les fichiers .DS_Store et .localized sont ignorés dans ParsePackagesDir()
0.3
- NOUVEAU : possibilité d'analyser les artefacts Google Chrome (Historique et historique archivé, Cookies, Données de connexion, Sites les plus visités, Données web, bases de données HTML5 et stockage local) avec -b/--browsers
- NOUVEAU : possibilité d'extraire les points d'accès Wi-Fi auxquels le système audité s'est connecté à partir des préférences Airport et tente de les géolocaliser en utilisant Geomena (-A/--airportprefs). Vous devez utiliser -g/--wifiapgeolocate pour activer la géolocalisation (ou définir GEOLOCATE_WIFI_AP sur True dans le code).
- NOUVEAU : possibilité d'extraire les comptes sociaux et email des utilisateurs (-U/--usersaccounts)
- CORRECTIF : capacité à gérer les bases de données sqlite verrouillées, surtout lors de l'audit d'un système en direct
- CORRECTIF : doublons de hachages supprimés
- CORRECTIF : meilleure identification du md5 dans la sortie HTML
- MODIFICATION : indique si une section (Éléments de démarrage, Répertoire Packages, Tables de base de données, etc.) est vide pour clarifier la sortie
- MODIFICATION : les artefacts de téléchargement (-d/--downloads) incluent les répertoires de téléchargement par défaut des versions ancienne et nouvelle de Mail.app
0.2.1
- MODIFICATION/CORRECTIF : implémentation d'une fonction BigFileMd5() pour hacher les très gros fichiers, éviter les exceptions MemoryError et réduire l'empreinte mémoire
- CORRECTIF : entrées UTF-8 de LSQuarantineEvent dans ParseQuarantines()