OS X Auditor

OS X Auditor — это бесплатный инструмент компьютерной криминалистики для Mac OS X.
OS X Auditor анализирует и вычисляет хэши следующих артефактов на работающей системе или копии анализируемой системы:
- расширения ядра
- системные агенты и демоны
- агенты и демоны сторонних разработчиков
- старые и устаревшие системные и сторонние элементы автозагрузки
- пользовательские агенты
- загруженные пользователями файлы
- установленные приложения
Он извлекает:
- помещённые в карантин файлы пользователей
- историю Safari, загрузки, избранные сайты, LastSession, базы данных HTML5 и локальное хранилище пользователей
- файлы cookie Firefox, загрузки, историю форм, разрешения, закладки и пароли пользователей
- историю Chrome и архивную историю, файлы cookie, данные для входа, избранные сайты, веб-данные, базы данных HTML5 и локальное хранилище пользователей
- учётные записи социальных сетей и электронной почты пользователей
- точки доступа Wi-Fi, к которым подключалась проверяемая система (и пытается определить их географическое местоположение)
Также ищет подозрительные ключевые слова в самих файлах .plist.
Может проверять репутацию каждого файла в:
- MHR от Team Cymru
- VirusTotal
- вашей собственной локальной базе данных
Может собирать все журналы из следующих каталогов в zip-архив:
- /var/log (-> /private/var/log)
- /Library/logs
- ~/Library/logs пользователя
Наконец, результаты могут быть:
- представлены в виде простого текстового лог-файла (чтобы вы могли cat-pipe-grep в них… или просто grep)
- представлены в виде HTML-лог-файла
- отправлены на сервер Syslog
Автор
Jean-Philippe Teissier - @Jipe_ & al.
Статус разработки
OS X Auditor БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ - НЕ ИСПОЛЬЗУЙТЕ ЕГО
Поддержка
OS X Auditor начинался как проект выходного дня и больше не поддерживается. Он был форкнут отличными ребятами из @ Yelp, которые создали osxcollector.
Я рекомендую использовать osxcollector (https://github.com/Yelp/osxcollector)
Как установить
Просто скопируйте все файлы из GitHub.
Зависимости
Если вы планируете запускать OS X Auditor на Mac, вы получите полную поддержку разбора plist с помощью OS X Foundation через pyobjc:
Если вы не можете установить pyobjc или планируете запускать OS X Auditor на другой ОС, отличной от Mac OS X, у вас могут возникнуть проблемы с разбором plist:
pip install biplist
pip install plist
Эти зависимости будут удалены, когда в python появится работающий нативный модуль plist
Как запустить
- OS X Auditor хорошо работает с python >= 2.7.2 (2.7.9 подходит). Он пока не работает с другой версией python (из-за plist-кошмара)
- OS X Auditor поддерживается для работы на последней версии OS X. Он будет стараться работать на более старых версиях OS X.
- Вы должны запускать его от root (или через sudo), если хотите использовать его на работающей системе, иначе он не сможет получить доступ к некоторым системным файлам и файлам других пользователей
- Если вы используете ключи API из переменных окружения (см. ниже), вам нужно использовать
sudo -E для использования переменных окружения пользователя
Введите osxauditor.py -h, чтобы получить все доступные параметры, затем запустите его с выбранными параметрами
например [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
Установка переменных окружения
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
Журнал изменений
0.4.3
0.4.2
- ИЗМЕНЕНИЕ: Ключи API перенесены из кода в переменные окружения
0.4.1
- ИЗМЕНЕНИЕ: Поиск типовых бэкдоров в LaunchAgentPlist
0.4
- НОВОЕ: извлекает события (загрузка/выключение, вход/выход из спящего режима, команды sudo, USB-устройства, открытие/закрытие tty, из системных журналов и создает временную шкалу (пока не читаемую) (-e/eventlogs)
- НОВОЕ: извлекает LoginItems пользователей
- НОВОЕ: извлекает RecentItems пользователей
- НОВОЕ: извлекает LastSession из артефактов Safari
- НОВОЕ: извлекает сведения о системных группах и пользователях
- ИСПРАВЛЕНИЕ: неверные вызовы os.path.join()
- ИСПРАВЛЕНИЕ: ошибка в рекурсивном ParsePackagesDir()
0.3.1
- НОВОЕ: предоставляет имя, версию и сборку проверяемой системы
- НОВОЕ: возможность анализировать установленные приложения (-i/--installedapps)
- НОВОЕ: извлекает архивную историю из артефактов Google Chrome
- НОВОЕ: читаемый HTML-лог-отчёт :)
- ИСПРАВЛЕНИЕ: HTMLLog() и SYSLOGLog() теперь обрабатывают исключения
- ИСПРАВЛЕНИЕ: ParsePackagesDir() теперь рекурсивен и пытается разобрать только приложения или расширения ядра. Добавлен также некоторый вывод DEBUG
- ИСПРАВЛЕНИЕ: ОГРОМНОЕ улучшение UTF-8/UNICODE
- ИСПРАВЛЕНИЕ: файлы .DS_Store и .localized игнорируются в ParsePackagesDir()
0.3
- НОВОЕ: возможность разбора артефактов Google Chrome (история и архивная история, файлы cookie, данные для входа, избранные сайты, веб-данные, базы данных HTML5 и локальное хранилище) с помощью -b/--browsers
- НОВОЕ: возможность извлечения точек доступа Wi-Fi, к которым подключалась проверяемая система, из настроек Airport и попытка их геолокации с помощью Geomena (-A/--airportprefs). Вы должны использовать -g/--wifiapgeolocate для включения геолокации (или установить GEOLOCATE_WIFI_AP в True в коде).
- НОВОЕ: возможность извлечения учётных записей социальных сетей и электронной почты пользователей (-U/--usersaccounts)
- ИСПРАВЛЕНИЕ: возможность обработки заблокированных баз данных sqlite, особенно при аудите работающей системы
- ИСПРАВЛЕНИЕ: удалены дубликаты хэшей
- ИСПРАВЛЕНИЕ: улучшена идентификация md5 в HTML-выводе
- ИЗМЕНЕНИЕ: указывает, если раздел (элементы автозагрузки, каталог пакетов, таблицы БД и т.д.) пуст, чтобы уточнить вывод
- ИЗМЕНЕНИЕ: артефакты загрузок (-d/--downloads) включают старые и новые каталоги загрузок по умолчанию Mail.app
0.2.1
- ИЗМЕНЕНИЕ/ИСПРАВЛЕНИЕ: реализована функция BigFileMd5() для хэширования очень больших файлов, избегания исключений MemoryError и уменьшения потребления памяти
- ИСПРАВЛЕНИЕ: записи UTF-8 из LSQuarantineEvent в ParseQuarantines()
0.2
- НОВОЕ: возможность отправки результатов на удаленный сервер syslogd (-S)
- НОВОЕ: возможность создания zip-архива всех лог-файлов, найденных на проверяемой системе (-z)
- ИЗМЕНЕНИЕ: анализ артефактов автозагрузки включает старые и устаревшие StartupItems
- ИЗМЕНЕНИЕ: анализ артефактов автозагрузки включает ScriptingAdditions
- ИЗМЕНЕНИЕ: анализ помещённых в карантин артефактов включает старые QuarantineEvents для систем Mac OS X <= 10.6
- ИЗМЕНЕНИЕ: значительное улучшение обработки plist с использованием моста Python ⟷ Objective-C (PyObjC) и OS X Foundation
- ИЗМЕНЕНИЕ: некоторые изменения в параметрах опций (-t, -l)
- ИЗМЕНЕНИЕ: лицензия изменена с CC на GPL
- ИЗМЕНЕНИЕ: уровни отладки теперь более согласованы в выходных логах
- ИЗМЕНЕНИЕ: небольшое изменение в Bootstrap CSS
- ИЗМЕНЕНИЕ: поиск в VirusTotal теперь выполняется в пакетном режиме
- ИСПРАВЛЕНИЕ: ошибка в ParseLaunchAgents() в файлах plist, содержащих одновременно ключи Program и ProgramArguments
0.1
Дизайн и возможности

Артефакты