id: Гость   вход   регистрация
текущее время 12:40 29/03/2024
создать
просмотр
редакции
ссылки

Уязвимости Skype


Skype – это набирающая популярность децентрализованная пиринговая сеть интернет-телефонии, поддерживающая сервисы VoIP и IM. Иными словами, это нечто среднее между KaZaa и ICQ, только вместо текстовых сообщений или музыкальных файлов сеть осуществляет передачу телефонных звонков между компьютерами её пользователей. Учитывая объёмы рекламных кампаний Skype по всему миру, мне видится необходимым осветить некоторые тёмные углы в протоколе системы, о которых намеренно умалчивают разработчики.


В начале января Симсон Гарфинкель опубликовал fileподробное исследование системы безопасности Skype. Поскольку протокол и клиентские приложения Skype являются проприетарными и закрытыми, анализ в основной части основан на эмпирических наблюдениях. Не все из сделанных выводов точны и обоснованы, но к сегодняшнему дню это лучшая работа по данной теме. Впоследствии к ней был высказан ряд замечаний и уточнений.


Разработчики Skype заявляют об абсолютной защищённости всех передаваемых сообщений, благодаря их шифрованию алгоритмом AES. Хотя информация об использовании AES, по-видимому, справедлива (передаваемые данные проявляют свойство псевдослучайности), Skype обладает рядом недостатков, ставящих под угрозу компрометации всю его сеть. Чтобы понять, что является причиной, попробуем в общих чертах рассмотреть, как функционирует Skype.


В отличие от "классических" VoIP-систем, потоки данных между абонентами передаются не через центральные коммутаторы телефонной службы, а проходят напрямую через интернет от одного компьютера к другому (peer-to-peer) либо производятся через специальные узлы. Эти узлы, осуществляющие координацию, адресацию и маршрутизацию потоков, а также трансляцию запросов пользователей к серверу аутентификации, называются "супер-узлами" (super-nodes), при этом каждый пользователь может по своему желанию выполнять функции супер-узла, отметив в своём клиенте соответствующую опцию.


Надёжность любой распределённой сети строится на доверии участников (узлов) друг другу. Для обеспечения доверия обычно применяются протоколы криптографической аутентификации и авторизации, и именно здесь в Skype находится зияющая дыра. Поскольку клиенты не могут определить, функционирует ли супер-узел на оригинальном немодифицированном ПО, оппонент, который способен произвести реверс-инженеринг клиентского приложения, может создать такой супер-узел, который будет "чуть более функционален", чем должен быть. Подумаем, к каким это может привести последствиям.


  • Поскольку именно супер-узлы отвечают за переадресацию запросов пользователей к серверу авторизации, оппонент, контролирующий модифицированный супер-узел, может перенаправлять эти запросы на такой же подконтрольный сервер и блокировать определённым пользователям доступ к системе (атака на отказ в обслуживании). Помимо этого, с помощью такого подконтрольного сервера оппонент может перехватывать логины/пароли пользователей.
  • Как было отмечено, супер-узлы осуществляют адресацию абонентов, т.е. выполняют поисковые запросы и связывают абонентов между собой. Допустим пользователь Анна желает найти пользователя Бориса, чтобы провести разговор. Её клиент направляет поисковый запрос нескольким супер-узлам, которые должны указать адрес Бориса. Поскольку в Skype отсутствует криптографическая авторизация участников обмена, супер-узел оппонента может ответить, что он и есть Борис либо перенаправить Анну на иной подконтрольный узел. У Анны нет способа проверить правдивость ответа, поскольку её клиент безоговорочно доверяет супер-узлу, а механизмом авторизации Борис не располагает.
  • Кроме того, чтобы выдавать себя непосредственно за Бориса, оппонент может соединить Анну с настоящим Борисом, а поскольку супер-узлы выполняют и функции релеев, если абоненты по тем или иным причинам не могут установить прямого соединения (например, находясь за NAT), оппонент получает возможность записать их разговор. Да, трафик будет зашифрован, но если супер-узлы участвуют и в протоколе согласования шифровальных ключей, это не будет играть никакой роли.
  • Несмотря на то, что установить, участвуют ли они в согласовании ключей, без декомпиляции приложения невозможно, нужно принимать во внимание правило, что если обмен ключом производится с неизвестным (недоверенным) узлом, зашифрованный трафик всё равно не может считаться защищённым. Так, получив поисковый запрос от Анны оппонент может ответить, что он – Борис и произвести согласование ключа, а с противоположной стороны установить такой же шифрованный канал с Борисом от имени Анны. Теперь он может пассивно прослушивать трафик, оставаясь необнаруженным. Это классическая атака "человек посередине".

В то же время, распределённая структура Skype в некоторой мере сглаживает отмеченные недостатки. Поскольку клиент самостоятельно выбирает топологически разнесённые друг от друга супер-узлы (чтобы покрывать меньшим числом запросов большую часть сети), нет гарантии, что тот или иной запрос попадёт на узел оппонента. Чтобы иметь возможно эффективно прослушивать любого целевого (а не случайного) абонента, оппонент должен организовать сивиллову атаку и наводнить сеть множеством подконтрольных узлов. Высказывалось мнение, что при нынешнем размере сети будет гарантированно достаточно нескольких сотен скомпрометированных супер-узлов. Если бюджет оппонента может позволить аренду сотни коллокейшн-серверов в разных частях света, что обойдётся приблизительно в 100-150 тыс. долларов в год, что более, чем реально, для любой крупной компании или государственной разведслужбы, оппонент фактически получает полный контроль над сетью. Это особенно вероятно и опасно в свете того, что многие западные компании переходят на Skype в качестве основного VoIP-провайдера, делая его привлекательной мишенью. Если же оппонент способен провести реверс-инженеринг клиентского приложения и протокола Skype, он с вероятностью может определить алгоритм выбора супер-узлов, что позволит проводить атаку на конкретного пользователя существенно меньшими усилиями.


Из сказанного можно сделать два основных вывода. Хотя распределённая структура Skype повышает планку затрат на "вхождение" оппонента (трудно, не обладая крупным бюджетом, перехватить или не доставить звонок целевого абонента), его децентрализованность делает сеть слишком подверженной сивилловым атакам и тотальному мониторингу заинтересованными организациями.


© 2005 SATtva

 
На страницу: 1, 2 След.
Комментарии [скрыть комментарии/форму]
— Гость (03/09/2009 15:39)   <#>
Однако, напоминают "Ведомости", с IP-телефонией связана и проблемы безопасности. Правоохранительные органы разных стран не раз сетовали на невозможность прослушивания Skype-разговоров. Участники заседания комиссии в РСПП заявляли, что рост неподконтрольного государству голосового трафика неминуемо спровоцирует озабоченность проблемами безопасности.

Российские силовые ведомства также сталкиваются с технической проблемой прослушивания переговоров по Skype, если они ведутся между двумя клиентами Skype, а не между клиентом Skype и телефоном — мобильным или обычным. Эта проблема пока не решена, утверждает собеседник газеты из правоохранитеьных органов, чем активно пользуются преступники. Представитель ФСБ не смог это прокомментировать.

Связь напрямую

Клиентские программы Skype соединяются друг с другом напрямую, без участия сервера, что затрудняет перехват разговора. При этом используется шифрование с 256-битным ключом. Технически перехватить переговоры по Skype можно, если есть доступ системы СОРМ в определенных точках, уверяет гендиректор компании фиксированной связи: чем ближе они будут к участнику разговора, тем выше шанс контролировать эти разговоры.

Инженерное решение проблемы существует, подтверждает замминистра связи Наум Мардер, но о попытках силовых ведомств осуществить это на законодательном уровне ему не известно. Официально вопрос о введении СОРМ на IP-сетях в министерстве не обсуждается, сообщила журналистам представитель Минкомсвязи Елена Лашкина.

Из новостей. Местами журналистский бред.
— SATtva (03/09/2009 15:47)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Технически перехватить переговоры по Skype можно, если есть доступ системы СОРМ в определенных точках, уверяет гендиректор компании фиксированной связи: чем ближе они будут к участнику разговора, тем выше шанс контролировать эти разговоры.

Лучше всего, конечно, если на компьютерах пользователей.

А Щёголев вчера заявил, что никаких планов по ограничению Скайпа у Минсвязи нет.
— Гость (03/09/2009 16:22)   <#>
чем ближе они будут к участнику разговора, тем выше шанс контролировать эти разговоры.

Эту фразу я и имел в виду под журналистским бредом. "Ближе" – это в смысле ступенчатой функции Хевисайда? Сколь бы близко не находился СОРМ, он ничего сделать не сможет, не имея доступа к самой машине пользователя. Вопросы удалённого протроянивания и оруткичивания по умолчанию выводятся за обсуждаемые рамки по понятным причинам.
— Гость (03/09/2009 17:22)   <#>
Причины понятны не всем )
— Гость (03/09/2009 17:41)   <#>
Причины стандартные: если вы не хозяин на своей собственной машине, и там уже есть руткит или троян, то любая система защиты концептуальна бессильна, а потому степень прослушки методом установки трояна сроди тому, что вам к рубашке жучок прицепили.
— Гость (03/09/2009 18:42)   <#>
если вы не хозяин на своей собственной машине, и там уже есть руткит или троян, то любая система защиты концептуальна бессильна
Против ядерного оружия любая система защиты бессильна, однако это почему-то не мешает торговать бронежилетами.
Например, можно было бы вести разговор о защите от неспециализированных руткитах (а только такие и могут иметь широкое распространение)
— Гость (03/09/2009 18:51)   <#>
s/руткитах/руткитов/
— spinore (03/09/2009 18:57)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786
Например, можно было бы вести разговор о защите от неспециализированных руткитах (а только такие и могут иметь широкое распространение)

Можно, но проблема в том, что нет продуманной модели и научной базы под такой моделью угрозы. Общепринято считается, что без этого над серьёзной защитой можно не думать, а слабая защита легко обходится и не имеет под собой никакой серьёзной почвы: это скорее суеверие и поверие, чем защита, т.е. не наш уровень :-)
— Гость (03/09/2009 19:38)   <#>
нет продуманной модели и научной базы под такой моделью угрозы
Да почему же нет? Если троян массовый, становится известно его устройство, а значит его можно нейтрализовать. Пока способ нейтрализации не станет массовым и сормовцы не сделают новую версию )
Думаю, это не столь отдалённое будущее для нежелающих попадания в места, не столь отдалённые )
— SATtva (03/09/2009 19:38)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Есть такая вещь, как анализ рисков и модель угрозы. Если нет оснований ожидать высокий риск атаки со стороны высоко компетентного противника с солидным бюджетом, способного написать специализированный руткит, то какой смысл городить огород? С другой стороны, если затраты на защиту от такого специализированного руткита невысоки (или эта защита достаётся задаром при обеспечении защиты от менее значительных угроз, исходящих от потенциального противника), то почему бы и нет?
— _owl (23/10/2009 22:11)   профиль/связь   <#>
комментариев: 105   документов: 20   редакций: 3
Исследователи скайпа, в частности, указывают что сам исполняемый код скайпа хранится в шифрованном виде и расшифровывается по ходу исполнения программы с помощью "зашитых" ключей. Не могу догнать, как это организуется. чтобы код начал исполняться, нужен не шифрованный загрузчик. Чтобы загрузчик расшифровал следующую порцию кода, он должен знать ключ, т.е. ключ хранится в теле не шифрованного сегмента кода. Значит он может быть прочитан, а дальнейший код – расшифрован "вручную".

Объясните пожалуйста, как достигается обратное.
— SATtva (23/10/2009 22:25)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
"Эшелонированная обфускация", если можно так сказать, и специальные антиотладочные приёмы. Смотрите работу "Vanilla Skype" (легко найти в гугле), там всё очень наглядно показано.
— _owl (24/10/2009 01:19)   профиль/связь   <#>
комментариев: 105   документов: 20   редакций: 3
спасибо, работа конечно интересная. Но вопрос остается. В презентации говорится, буквально, "инициализируется ключ", блок данных/кода расшифровывается, затем процесс повторяется.

Что значит "инициализируется ключ"? Он читается откуда-то? Или как-то вычисляется? Как?
— Мухтар (24/10/2009 01:45, исправлен 24/10/2009 01:47)   профиль/связь   <#>
комментариев: 155   документов: 20   редакций: 5
вся защищенность от промежуточных узлов целиком и полностью возложена на защиту маршрутизации и обмена ключами с помощью авторизации через централизованный сервер. разве это не очевидно?
— _owl (24/10/2009 11:31)   профиль/связь   <#>
комментариев: 105   документов: 20   редакций: 3
не очевидно. Vanilla Skype, на сколько я понял, утверждает что сам исполняемый код программы зашифрован, за исключением малого фрагмента – загрузчика. При запуске программы загрузчик последовательно расшифровывает и распаковывает блоки кода, и собирает полнофункциональную программу.

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

Так вот мой вопрос – как задаются ключи для расшифровки фрагментов исполняемого кода? Точнее, первый ключ? Он не может приходить по сети, т.к. на нулевой фазе "сети еще нет". тривиальное доказательство – попробуйте запустить скайп на ПК без сети. если бы ВСЕ ключи приходили по сети, скайп просто не смог бы запуститься, однако на практике он стартует и работает. Значит все, что нужно для сборки хранится (или вычисляется) локально.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3