24.11.2011

Программные уязвимости Voice Over IP в Skype (Часть I)

image

Техники и методы использования уязвимостей нулевого дня, 2011г.

1. Авторы документации по безопасности Skype

1.1. Пим Дж. Ф. Кемперс работал в сфере ИТ около пяти лет. Сначала ИТ было лишь хобби, но после средней школы, Пим решил работать в сфере информационной безопасности. Его специализация – проверка безопасности web-приложений, серверных и клиентских частей приложений, противодействие подпольной экономике, обход/взлом фильтров, а также анализ угроз и рисков. В настоящее время Пим активно сотрудничает с научным сообществом и высококлассными производителями программного обеспечения.

Пим является членом исследовательской команды «Global Evolution». С 2010 по 2011 он и Бенджамин Межри обнаружили свыше 300 уязвимостей нулевого дня в продуктах таких фирм, как DELL, Mozilla, Kaspersky, McAfee, Google, Cyberoam, Safari, Bitdefender, Asterisk, Telecom, PBX и Sonic Wall. В 2010 году Кемперсом совместно с Межри была основана компания «Evolution Security». В скором времени после этого возникла лаборатория по исследованию уязвимостей (легальное европейское сообщество исследователей уязвимостей, аналитиков, пен-тестеров и некоторых хакерских групп). Кроме этого, Пим является соруководителем европейской Wargaming и исследовательской команды лаборатории по исследованию уязвимостей. В том числе и по его инициативе регулярно проводятся различные события и соревнования, например, ePost SecCup, SCS2, EH2008, HAR2009, Da-op3n, а также презентации по использованию уязвимостей нулевого дня.

1.2. Бенджамин Кунц Межри  – пен-тестер и аналитик безопасности для частных и общественных фирм, занимающихся защитой информации, хостеров, банков и т.д. Его специализацией являются проверки безопасности (пен-тестирование) предоставляемых услуг, программного обеспечения, приложений, анализ вредоносного ПО, противодействие подпольной экономике, военная разведка, кибер-войны, обратная инженерия, лекции и семинары по ИТ-безопасности. За время его работы в качестве пен-тестера и исследователя уязвимостей многие приложения (как с открытым, так и с закрытым исходным кодом) стали безопаснее. В 1997 им была основана некоммерческая, независимая группа по исследованию безопасности «Global Evolution – Security Research Group», действующая и по сей день. С 2010 по 2011 годы Бенджамин Межри вместе с Пимом Кемперсом (исследовательская группа) обнаружили свыше 300 уязвимостей нулевого дня в продуктах таких компаний, как DELL, Barracuda, Mozilla, Kaspersky, McAfee, Google, Cyberoam, Safari, Bitdefender, Asterisk, Telecom, PBX и SonicWall. В 2010 году Межри выступил в роли основателя компании «Evolution Security». В скором времени после этого возникла лаборатория по исследованию уязвимостей (легальное европейское сообщество исследователей уязвимостей, аналитиков, пен-тестеров и некоторых хакерских групп). Бен также является соруководителем европейской Wargaming и исследовательской команды лаборатории по исследованию уязвимостей. По его инициативе регулярно проводятся различные события соревнования, например, ePost SecCup, SCS2, EH2008, HAR2009, Da-op3n, а также презентации по использованию уязвимостей нулевого дня.

2.Общая информация о Skype

Skype – приложение, позволяющее пользователям совершать голосовые и видео-звонки, а также переписываться через интернет. Звонки внутри сервиса Skype бесплатны, в то время как звонки на стационарные и мобильные телефоны осуществляются за деньги (система дебетовых аккаунтов пользователей). Skype также популярен благодаря своим дополнительным возможностям, в том числе возможности отправки текстовых сообщений, передачи файлов, а также возможности видеоконференции. На 2010 год в Skype зарегистрировано 663 миллиона пользователей. Пользовательская сеть поддерживается Skype Limited, штаб-квартира которой расположена в Люксембурге. Большая часть команды разработчиков и, в целом, 44% всех сотрудников Skype находятся в городах Таллинн и Тарту (Эстония). В 2011 компания Microsoft купила Skype.

В Skype есть своя команда, обеспечивающая безопасность продукта. Vulnerability-lab.com не является частью Skype и не работает со Skype. Информация обо всех уязвимостях должна направляться в Skype в соответствие с процедурой, описанной на их web-сайте.

3. Обзор известных уязвимостей Skype.

Давайте рассмотрим уязвимости последнего релиза Skype от Microsoft. Чтобы провести обзор более ранних уязвимостей, мы разбили их на 4 класса: уязвимости обработчика URI, создание и устранение ошибок в конфигурации, отказ в обслуживании и переполнение буфера.

3.1. Ошибки обработчика URI в Skype

Некорректная проверка входных параметров обработчиком URI (http://www.securiteam.com/securitynews/5LP3J151FO.html) – 2010

Обход защиты при передаче файлов с выполняемым кодом (http://www.securiteam.com/windowsntfocus/5QP022KOKE.html) – 2008

Уязвимость повреждения динамической памяти через обработчик URI (http://www.securiteam.com/windowsntfocus/6W00D00KKU.html) – 2007

Переполнение буфера обработчика URI (http://www.securiteam.com/windowsntfocus/6C00G1PBPM.html) – 2004

Пример:

<a href=skype:A"0x01/secondary0x01/username:"test”0x01/password:”test>HACK</a>

Описание: Позволяет нарушителю с помощью одного клика в чате Skype выполнить необходимые ему действия.

Пример:

http:/www.example.com/?foo="><script>document.='http://11.133.0.7';</script>

Описание: XSS атака на стороне клиента. Она позволяет нарушителю перенаправить пользователя MacOS через окно мессенджера.

Пример обхода:

%20%20%20%20%20%20%20?foo=%22%3E%22%3C%69%66%72%61%6D
%65%20%73%72%63%3D%68%74%74%70%3A%2F%2F%76%75%6C%6E%2D%6C%61%62%2E
%63%6F%6D%3E

Описание: XSS атака на стороне клиента. Позволяет обойти защиту предыдущих релизов через представление необходимого значения в 16-ричном виде.

Пример:

<"callto:"><script>document.='http://11.133.0.7';</script>

Описание: атака подмены ссылки у клиента. Позволяет перенаправлять жертву на необходимые сайты, внедрять вредоносное ПО и код скриптов.

3.2. Отказ в обслуживании

Отказ в обслуживании при использовании Unicode на клиентской части для MacOS (http://www.securiteam.com/unixfocus/5WP361520Q.html) 2010.

Пример:

математические буквенно-цифровые символы (1D400-1D7FF)

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

3.3. Уязвимости создания/устранения ошибок в конфигурации

Удаление случайного XML-файла при обработке URI (http://www.securiteam.com/securitynews/5OP3C200UE.html) – 2009

Небезопасное создание временного файла в Linux (http://www.securiteam.com/unixfocus/5IP0F2AGAA.html) – 2005

Пример создания:

strace -e trace=open skype
open("/home/vulnerability-lab/image.jpg", O_RDONLY|O_LARGEFILE) = 21 // Picture by User
open("/tmp/skype_profile.jpg", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 23 // небезопасное создание временного файла (необходимо использовать флаг O_EXCL или O_NOFOLLOW)
Log: ln -s file_to_overwrite /tmp/skype_profile.jpg

Описание: уязвимость проявляется в многопользовательской среде, потому что, как правило, права на запись в директорию /tmp имеют все.

Пример удаления:

Описание: недокументированная команда ‘save_pxml’ при выполнении вызывает удаление указанного нарушителем XML-файла.

3.4. Переполнение буфера

Переполнение буфера при разборе целого числа (http://www.securiteam.com/securitynews/6O01100EAO.html) – 2005

Пример:

| Счетчик объектов* | Mобъектов

| M (VLD) | (VLD)

*Первое число в пакете – количество отправленных объектов.

Описание:

Переполнение происходит, когда M больше 0x40000000, то есть когда M=0x40000010, вызывается HeapAlloc(0x40), но в память помещается 0x40000010 объектов.

4. Как определить и использовать?

В данном разделе мы объясним, как взломать приложение. Всем известно, что найти уязвимость в Skype не так-то просто… ну или просто никто не делится этой информацией. Как вы можете видеть в списке, если пройдете по ссылке http://www.securiteam.com/products/S/Skype.html, известных уязвимостей не так уж и много.

4.1. Как самостоятельно найти уязвимость нулевого дня в Skype?

Как уже упоминалось ранее, Skype не так легко взломать. После исследования VoIP и прочих модулей Skype нами было найдено 6 новых уязвимостей. Большинство из них относятся к внутренним модулям и общим формам. Чтобы определить подобные уязвимости (что не так-то просто), нарушитель должен найти определенные узлы программного обеспечения, где выполняются скрипты или команды. После определения бага, нарушитель должен проверить, может ли этот баг использоваться удаленно (множество из подобных уязвимостей могут быть использованы только локально).

  1. Найти/определить уязвимость
  2. Проанализировать уязвимость
  3. Проверить уязвимость (удаленно выполнимая/локально выполнимая)
  4. Использовать уязвимость

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

4.2. Как (нестандартно!) использовать уязвимость нулевого дня?

Представленная ниже модель атаки описывает атаку на клиентскую часть Skype.

4.2.1.

4.2.2.

4.2.3.

4.2.4.

4.2.5.

4.2.6.

Во второй части статьи будет представлена презентация новой уязвимости нулевого дня в Skype и рассказано о защите Skype.

или введите имя

CAPTCHA