Upload
positive-hack-days
View
1.424
Download
5
Embed Size (px)
Citation preview
Час 4Reversing Mac OS X
Esage Lab @dukebarman
• дизайн и принципы системы в целом от Unix
• межпроцессорное взаимодействие от Mach• Сетевой стек от BSD
Особенности ОС
Esage Lab @dukebarman
Сообщает ОС:• как работает динамический загрузчик,• как загружать разделяемые библиотеки,• как организовать адресное пространство
процесса,• где искать точку входа,• и т.д.
Mach-o формат
Esage Lab @dukebarman
• Заголовок• Команды загрузки• Сегменты
«Грубое» разделение формата
Esage Lab @dukebarman
Определяет:• magic number для файла (32- или 64-
разрядный)• Порядок байт для CPU• Архитектуру
Заголовок
Esage Lab @dukebarman
• Сообщают ядру, как загрузить различные сегменты файла
• Описывают:– как каждый сегмент выровнен в памяти– какие имеет права доступа– где располагается в памяти
Команды загрузки
Esage Lab @dukebarman
• __PAGEZERO. Расположен по нулевому виртуальному адресу и не имеет никаких защит. Этот сегмент не имеет области в файле на диске.
• __TEXT. Содержит данные с доступом только на чтение и исполнение.
• __DATA. Содержит данные, доступные для записи. Эта секция отмечена как copy-on-write.
• __OBJC. Содержит данные, используемые для Objective-C среды исполнения.
• __LINKEDIT. Содержит данные, используемые для установки динамических связей.
Сегменты и секции
Esage Lab @dukebarman
Утилиты для анализа
Esage Lab @dukebarman
• fs_usage — предоставляет информацию о системных вызовах относительно активности по отношению к файловой системе;
• heap — перечисляет все блоки памяти, выделенные в динамической памяти отдельным процессом;
• lsof — отображает файлы, открытые в различных процессах;• top — отображает статистику использования различных ресурсов в системе;• vm_stat — отображает статистику использования системой виртуальной памяти;• gdb — отладчик, позволяет отлаживать программы удаленно;• ddb — отладчик ядра, требует подключения через последовательный порт;• ktrace — служит для отслеживания информации о системных событиях на
уровне ядра для указанного процесса;• kdump — отображает информацию, сгенерированную программой ktrace;• sc_usage — отображает статистику указанного процесса, такую как
использование процессорного времени, использование системных вызовов и т.д.
Динамический анализ
Esage Lab @dukebarman
• file — определяет тип файла;• otool — служит для анализа macho-файлов;• xxd — позволяет осуществить
преобразование бинарного файла в шестнадцатеричное представление и обратно;
• IDAPro — дизассемблер.
Статический анализ
Esage Lab @dukebarman
• OSX/Flashback.K sample + Mac OS malware study set (30+ older samples)
• Исследование программ в Mac OS X• SANS Mac OS X Malware Analysis• Reverse Engineering Mac Defender (OS X) mal
ware analysis for beginners
Полезные ссылки
Esage Lab @dukebarman
Flashback/Flashfake
Esage Lab @dukebarman
Географическое распределение заражений
Esage Lab @dukebarman
• CVE2008-5353 ("deserializing Calendar objects")• CVE2011-3544• CVE2012-0507
Используемые CVE
Esage Lab @dukebarman
Проверяет наличие:• /Library/Little Snitch• /Developer/Applications/Xcode.app/Contents/MacOS/Xcode• /Applications/VirusBarrier X6.app• /Applications/iAntiVirus/iAntiVirus.app• /Applications/avast!.app• /Applications/ClamXav.app• /Applications/HTTPScoop.app• /Applications/Packet Peeper.app
Встроенная защита
Esage Lab @dukebarman
• «Доктор Веб» обнаружил ботнет из более чем 550 000 «маков»
• Анатомия Flashfake:– Часть I– Часть II
Полезные ссылки
Esage Lab @dukebarman