16
Час 4 Reversing Mac OS X Esage Lab @dukebarman

Безопасность без антивирусов 4

Embed Size (px)

Citation preview

Page 1: Безопасность без антивирусов 4

Час 4Reversing Mac OS X

Esage Lab @dukebarman

Page 2: Безопасность без антивирусов 4

• дизайн и принципы системы в целом от Unix

• межпроцессорное взаимодействие от Mach• Сетевой стек от BSD

Особенности ОС

Esage Lab @dukebarman

Page 3: Безопасность без антивирусов 4

Сообщает ОС:• как работает динамический загрузчик,• как загружать разделяемые библиотеки,• как организовать адресное пространство

процесса,• где искать точку входа,• и т.д.

Mach-o формат

Esage Lab @dukebarman

Page 4: Безопасность без антивирусов 4

• Заголовок• Команды загрузки• Сегменты

«Грубое» разделение формата

Esage Lab @dukebarman

Page 5: Безопасность без антивирусов 4

Определяет:• magic number для файла (32- или 64-

разрядный)• Порядок байт для CPU• Архитектуру

Заголовок

Esage Lab @dukebarman

Page 6: Безопасность без антивирусов 4

• Сообщают ядру, как загрузить различные сегменты файла

• Описывают:– как каждый сегмент выровнен в памяти– какие имеет права доступа– где располагается в памяти

Команды загрузки

Esage Lab @dukebarman

Page 7: Безопасность без антивирусов 4

• __PAGEZERO. Расположен по нулевому виртуальному адресу и не имеет никаких защит. Этот сегмент не имеет области в файле на диске.

• __TEXT. Содержит данные с доступом только на чтение и исполнение.

• __DATA. Содержит данные, доступные для записи. Эта секция отмечена как copy-on-write.

• __OBJC. Содержит данные, используемые для Objective-C среды исполнения.

• __LINKEDIT. Содержит данные, используемые для установки динамических связей.

Сегменты и секции

Esage Lab @dukebarman

Page 8: Безопасность без антивирусов 4

Утилиты для анализа

Esage Lab @dukebarman

Page 9: Безопасность без антивирусов 4

• fs_usage — предоставляет информацию о системных вызовах относительно активности по отношению к файловой системе;

• heap — перечисляет все блоки памяти, выделенные в динамической памяти отдельным процессом;

• lsof — отображает файлы, открытые в различных процессах;• top — отображает статистику использования различных ресурсов в системе;• vm_stat — отображает статистику использования системой виртуальной памяти;• gdb — отладчик, позволяет отлаживать программы удаленно;• ddb — отладчик ядра, требует подключения через последовательный порт;• ktrace — служит для отслеживания информации о системных событиях на

уровне ядра для указанного процесса;• kdump — отображает информацию, сгенерированную программой ktrace;• sc_usage — отображает статистику указанного процесса, такую как

использование процессорного времени, использование системных вызовов и т.д.

Динамический анализ

Esage Lab @dukebarman

Page 10: Безопасность без антивирусов 4

• file — определяет тип файла;• otool — служит для анализа macho-файлов;• xxd — позволяет осуществить

преобразование бинарного файла в шестнадцатеричное представление и обратно;

• IDAPro — дизассемблер.

Статический анализ

Esage Lab @dukebarman

Page 12: Безопасность без антивирусов 4

Flashback/Flashfake

Esage Lab @dukebarman

Page 13: Безопасность без антивирусов 4

Географическое распределение заражений

Esage Lab @dukebarman

Page 14: Безопасность без антивирусов 4

• CVE2008-5353 ("deserializing Calendar objects")• CVE2011-3544• CVE2012-0507

Используемые CVE

Esage Lab @dukebarman

Page 15: Безопасность без антивирусов 4

Проверяет наличие:• /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