среда, 21 июля 2010 г.

Новая багофича от MS (CVE-2010-2568) или LNKpokalipsis

Буквально недавно была обнаружена уязвимость в обработке LNK-файлов и их отображением. Но самой уязвимости уделяется мало внимания, в основном весь шум вокруг Win32/Stuxnet и использованных валидных сертификатов для подписи компонентов этого зловреда. А тем временем эта уязвимость уже появилась в публичном доступе. Сначала в виде PoC, а потом и в виде модуля для Metasploit. MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа. А для WinXP SP2 патча вообще не будет, хотя как не странно на ней еще есть пользователи и их не так мало, как хотелось бы. Подтверждение тому распределение угрозы по оконным версиям от Symantec, где именно WinXP SP2 имеет большую долю зафиксированных инцидентов.  
В качестве векторов использования этой уязвимости могут быть не только USB-накопитили, но и сетевые ресурсы. Например, в Metasploit эксплуатация происходит через WebDAV. Работает уязвимость примерно так:



Речь идет не о банальном переполеннии или неразименованном указателе, все гораздо хуже, т.к. уязвимость by design так сказать (уязвимы все версии винды). Т.е. разработчики прохлопали ушами, что такой путь могут использовать злоумышленники для установки всякого вредоносного. Хотя может все гораздо хуже и это просто очередной бэкдор оставленный в системе по просьбе NSA? Боюсь правды мы не узнаем никогда. Давайте теперь поговорим непосредственно о технических деталях работы этой уязвимости.
CVE-2010-2568 – уязвимость находится в обработчике LNK-файлов, о точнее связана с процессом отображения Control Panel shortcuts, когда происходит их загрузка в память процессом Explorer.exe. Уязвимой являться библиотека shell32.dll в которой происходит некорректная обработка. Ниже приведенная схема иллюстрирует потоки данных между вызываемыми функциями в процессе работы эксплойта (подсмотренно здесь). Успешным выполнением эксплойта является загрузка сторонней динамической библиотеки при помощи WinAPI функции LoadLibraryW.
Собственно именно ниже приведенный код и заставляет выполниться вредоносную DLL, этот код находиться в функции _LoadCPLModule, которыя вызывается из CPL_LoadCPLModule.
В эксплойте в составе Metasploit для эксплуатации уязвимости генерируется URL следующего вида "{webdav}{exploit_base}\\{exploit_dll}", такой подход к эксплуатации этой уязвимости сильно расширяет границы ее использования за пределы USB-накопителей.

понедельник, 12 июля 2010 г.

Top-10 наиболее уязвимых вендоров ПО

Интересный отчет обнародовала Secunia, в котором приводится срез самых крупных вендоров ПО по числу найденных уязвимостей. Интересный факт, что в этом году по числу найденных уязвимостей лидирует компания Apple, которая пришла на смену прошлогоднему лидеру Oracle. По графику можно отследить явный тренд увеличения числа найденных уязвимостей, видимо с ростом популярности эта платформа привлекает к себе все больше внимания со стороны исследователей по всему миру.

Судя по графику у MS стагнация начиная с 2006 года, т.е. уязвимости находят регулярно и много. А вот Adobe, как ни странно находиться только на пятом месте.

IDA + Bochs: нафига оно надо?

Я как-то уже писал об эмуляторе x86emu для IDA, но сегодня я хочу рассказать о гораздо более мощном эмуляторе Bochs. Bochs представляет собой полный эмулятор системы, на базе которого вы можете загрузить любую ОС (если только нужное для загрузки этой ОС железо поддерживается эмулятором).
В эмуляторе есть встроенный отладчик, который позволяет отлаживать загрузку операционной системы еще на раннем этапе. Но самое интересное другое, а точнее то, что начиная с версии IDA Pro 5.4 появилась возможность подключаться к отладчику Bochs из стандартного интерфейса IDA. Работает эта связка достаточно быстро, в отличии, если вы попытаетесь загрузить винду под эмулятором и выполнить какие-то осмысленные действия. А том, как подключить отладчик Bochs из IDA уже есть хороший мануал, а я постараюсь рассказать собственно зачем это делать. На самом деле эту возможность почему то многие упускают из виду, хотя порой эта фича оказывается крайне полезной. Например, при отладке шелл-кода, обфусцированного кода или когда просто нужно быстро выполнить произвольный участок исполняемого файла. IDA поддерживает несколько режимов отладки в связке с Bochs:
- отладка ранней стадии загрузки (Disk Image), что позволяет отлаживать boot record
- отладка произвольного участка кода (IDB), позволяет выполнить на эмуляторе любой выделенный участок кода. Этот режим полезен при отладке шелл-кода и обфусцтрованных участков кода
- отладка исполняемого файла (PE), стандартный режим отладки
Отладка загрузочной записи бывает очень полезна при анализе зловредов, которые ее модифицируют (mebroot, gootkit ...).
Использование связки IDA + Bochs значительно эффективнее, нежели x86emu, т.к. здесь происходит эмуляция не выборочного набора вызовов API, а работы всей ОС целиком.

понедельник, 5 июля 2010 г.

Обновление IDA и Hex-Rays


Как-то неожиданно обновились на прошлой неделе сразу и IDA до версии 5.7, и Hex-Rays до версии 1.3 (еще обновился ARM Decompiler, но я его пока не использовал почти, только из любопытства немного покрутил). Hex-Rays, причем уже обновлялся относительно недавно до версии 1.2, где одним из главных нововведений была поддержка декомпиляции операций с плавающей точкой. Этот релиз больше похож на большой bugfix, где поправили много всяких недочетов и навели немного гламура на внешний вид декомпилированного листинга. Все гламурные рюшки версии 1.3 можно увидеть на сomparison Page. А changelog с багфиксами здесь.
Из важных нововведений для IDA, наконец-то сделали поддержку MMX/XMM регистров во строенном отладчике. Появилась возможность подгрузить отладочные символы и автоматически делать анализ кода для выбранного модуля в процессе отладки. Сильно обновился IDAPython до версии 1.4, там случился тоже большой багфикс и улучшалась скорость работы. А самое главное, теперь появилась нормальная дока по всем методам и классам поддерживаемым в IDAPython. Полный changelog здесь. Я уже давно перешел на использование IDAPython, ибо меньше времени и удобнее нежели IDC, думаю, что дальше развивать IDC нет смысла.
Еще интересно, что началось тестирование нового интерфейса написанного на QT и дающего возможность нормального GUI под все поддерживаемые платформы. Наконец-то у меня будет нормальная IDA на моем маке и без использования ВМ, а не это консольное убожество.
В этом году вообще чувствуется активная разработка и желание улучшить свои продукты со стороны разработчиков IDA, а ведь такими темпами и 6.0 не за горами. Интересно, когда они начнут нам анонсировать вкусности шестерки :)

четверг, 1 июля 2010 г.

CVE-2010-1885 в цифрах

Интересную аналитику выкатила MS сегодня у себя в блоге.
Предыстория такова, что 10 июня небезызвестный гуглоинженер Tavis Ormandy aka taviso обнародовал уязвимость в механизме проверки обращений (hcp://) к Microsoft Windows Help Centre. Собственно он не просто обнародовал уязвимость, но и открыл исходный код эксплойта. MS жаловалась на этого товарища, что он мало им дал времени для закрытия уязвимости и вообще зря затеял выкладывать такое на паблик, но обсуждать здесь сторону морали мне совсем не хочется.
Так вот MS сегодня обнародовала цифры по количеству зафиксированных ими атак с использованием этой уязвимости, и они получились очень забавные:

Так как уязвимость нацелена на пользователей Windows XP, то соответственно под ударом оказались по большей части регионы в которых процент пользователей этой операционки высокий. Мы на втором месте после Португалии, забавно :)
Интересно также посмотреть и на динамику роста количества атак с использованием этого сплойта:

Видно, что спустя уже несколько дней после публичного раскрытия уязвимости вместе с сорцами сплойта, начались целенаправленные атаки на эту уязвимость. Без публикации готового эксплойта, это временное окно немного больше, точнее процент числа атак растет не так быстро.

Update:
Финальная версия статистики от MS перед выпуском патча.