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()
0.2
- NOUVEAU : possibilité d'envoyer les résultats à un serveur syslogd distant (-S)
- NOUVEAU : possibilité de créer une archive zip de tous les fichiers journaux trouvés sur le système audité (-z)
- MODIFICATION : l'analyse des artefacts de démarrage inclut les StartupItems anciens et obsolètes
- MODIFICATION : l'analyse des artefacts de démarrage inclut les ScriptingAdditions
- MODIFICATION : l'analyse des artefacts mis en quarantaine inclut les anciens QuarantineEvents pour les systèmes Mac OS X <= 10.6
- MODIFICATION : grande amélioration de la gestion des plist en utilisant le pont Python ⟷ Objective-C (PyObjC) et OS X Foundation
- MODIFICATION : quelques changements dans les paramètres d'options (-t, -l)
- MODIFICATION : licence changée de CC à GPL
- MODIFICATION : les niveaux de debug sont désormais plus cohérents dans les journaux de sortie
- MODIFICATION : un petit changement avec le CSS Bootstrap
- MODIFICATION : la recherche VirusTotal est désormais effectuée en mode groupé
- CORRECTIF : un bogue dans ParseLaunchAgents() sur les fichiers plist contenant à la fois les clés Program et ProgramArguments
0.1
Conception et capacités

Artefacts
Utilisateurs
-
Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
-
Library/Preferences/com.apple.LaunchServices.QuarantineEvents
-
Library/Preferences/com.apple.loginitems.plist
-
Library/Mail Downloads/
-
Library/Containers/com.apple.mail/Data/Library/Mail Downloads
-
Library/Accounts/Accounts3.sqlite
-
Library/Containers/com.apple.mail/Data/Library/Mail/V2/MailData/Accounts.plist
-
Library/Preferences/com.apple.recentitems.plist
-
Firefox
- Library/Application Support/Firefox/Profiles/
- cookies.sqlite
- downloads.sqlite
- formhistory.sqlite
- places.sqlite
- signons.sqlite
- permissions.sqlite
- addons.sqlite
- extensions.sqlite
- content-prefs.sqlite
- healthreport.sqlite
- webappsstore.sqlite
- Library/Safari/
- Downloads.plist
- History.plist
- TopSites.plist
- LastSession.plist
- Databases
- LocalStorage
- Library/Application Support/Google/Chrome/Default/
- History
- Archived History
- Cookies
- Login Data
- Top Sites
- Web Data
- databases
- Local Storage
Système
- /System/Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /System/Library/ScriptingAdditions/
- /System/Library/StartupItems/Library/ScriptingAdditions/
- /System/Library/Extensions/
- /System/Library/CoreServices/SystemVersion.plist
- /Library/LaunchAgents/
- /Library/LaunchDaemons/
- /Library/StartupItems/
- /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
- /Library/logs
- /var/log
- /etc/localtime
- StartupParameters.plist
- /private/var/db/dslocal/nodes/Default/groups/admin.plist
- /private/var/db/dslocal/nodes/Default/users
À FAIRE
- extraire les informations utilisateur de /private/var/db/dslocal/nodes/Default/users
Travaux connexes
Disk Arbitrator
Disk Arbitrator est un utilitaire de criminalistique Mac OS X conçu pour aider l'utilisateur à garantir le respect des procédures médico-légales lors de l'imagerie d'un disque. Disk Arbitrator est essentiellement une interface utilisateur vers le framework Disk Arbitration, qui permet à un programme de participer à la gestion des périphériques de stockage par blocs, y compris le montage automatique des systèmes de fichiers. Lorsqu'il est activé, Disk Arbitrator bloque le montage des systèmes de fichiers pour éviter un montage en lecture-écriture et violer l'intégrité des preuves.
https://github.com/aburgh/Disk-Arbitrator
Volafox
volafox, également connu sous le nom de 'Mac OS X Memory Analysis Toolkit', est développé en python 2.x
https://code.google.com/p/volafox/
Mandiant Memoryze(tm) pour Mac
Memoryze pour Mac est un logiciel gratuit de criminalistique mémoire qui aide les intervenants en cas d'incident à trouver les éléments malveillants en mémoire… sur Mac.
Memoryze pour Mac peut acquérir et/ou analyser des images mémoire. L'analyse peut être effectuée sur des images mémoire hors ligne ou sur des systèmes en direct.
http://www.mandiant.com/resources/download/mac-memoryze
Volatility MacMemoryForensics
https://code.google.com/p/volatility/wiki/MacMemoryForensics
Licence
OS X Auditor
Copyright (C) 2013-2015 Jean-Philippe Teissier
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la Licence, soit (à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la Licence Publique Générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la Licence Publique Générale GNU avec ce programme. Sinon, consultez http://www.gnu.org/licenses/.
Bootstrap et JQuery ont leurs propres licences compatibles GPL.