Цель этой статьи обсудить две наиболее распространенных уязвимости, которые присутствуют в текущих реализациях VoIP.
Две уязвимости VoIP
"Наша связь безопаснее обычной телефонной линии"
Технология VoIP прочно вошла в нашу жизнь. Многие действующие операторы связи начали предоставлять услуги VoIP; появились новые провайдеры VoIP. Помимо проблем с качеством предоставляемых услуг, проблема безопасности (как и её отсутствие) недопонимается многими поставщиками услуг VoIP.
Цель этой статьи обсудить две наиболее распространенных уязвимости, которые присутствуют в текущих реализациях VoIP. Первая уязвимость позволяет перехватить пользовательскую подпись (Subscription) и соответствующие соединения. Вторая уязвимость позволяет прослушивать VoIP-соединения. Хотя VoIP реализован с помощью нескольких протоколов, эта статья фокусируется на уязвимостях, связанных с протоколом SIP (Session Initiation Protocol – протокол инициации соединения), являющимся стандартом IETF (RFC 3261). Эти два вида атак (помимо других атак, типа DoS) уже обсуждались в различных исследовательских статьях, но не признавались в качестве реально действующих.
Эксперты считают, что эти виды атак станут более очевидными с дальнейшим развитием и пониманием VoIP. В следующем разделе мы кратко рассмотрим протокол SIP, который используется для создания и уничтожения мультимедийных соединений (включая VoIP).
Кратко о SIP
Протокол инициации соединений (SIP, IETF RFC 3261) широко используемый стандарт, который используется в VoIP для установления и разрывания телефонных звонков. На Рис. 1 с высокого уровня показаны сообщения SIP во время телефонного разговора. Пояснение следует ниже.
Рис. 1: Установление и разрывание связи.
Шаг 1, устройство пользователя (User Agent в терминологии SIP) регистрируется у регистратора доменов, который отвечает за содержание базы данных со всеми пользователями для соответствующего домена. Регистрация пользователя необходима для связи с удаленной стороной. Когда Bob хочет позвонить Alice, он посылает запрос INVITE прокси-серверу. Прокси-серверы отвечают за маршрутизацию SIP-сообщений и определение местоположения пользователей. Когда прокси получает запрос INVITE, он пытается найти вызываемую сторону и ретранслирует соединение вызывающему, проходя при этом несколько шагов, типа DNS-lookup. Атака на перехват регистрационной подписи происходит как раз на первом шаге.
Перехват регистрации
На Рис. 2 показано типичное регистрационное сообщение и ответ от регистратора, используемый для анонсирования точки связи. Это показывает, что устройство пользователя принимает звонки.
Рис. 2: Запрос REGISTER.
Запрос REGISTER содержит заголовок Contact, указывающий IP-адрес устройства пользователя. Когда прокси получает запрос на входящий звонок (INVITE), он произведет поиск, чтобы узнать, как связаться с соответствующим пользователем. В нашем случае пользователь с телефоном 210-853-010 доступен по адресу 192.168.94.70. Прокси перенаправит запрос INVITE на этот адрес.
На Рис. 3 показан измененный запрос REGISTER, который отправил хакер.
Рис. 3: измененный вариант запроса REGISTER
В этом случае все заголовки и параметры остаются неизменными, кроме заголовка Contact. В этом заголовке был изменен IP-адрес (192.168.1.3), который теперь указывает на устройство хакера. Этот запрос отправляется SIP регистратору по адресу 192.168.1.2. Хакер легко может генерировать подобный запросы, используя программу SiVus, показанную на Рис. 4:
Рис. 4: Подмена регистрации SIP с помощью SiVUS.
Атака перехвата работает следующим образом:
Рис. 5 показывает подход к осуществлению этой атаки:
Рис. 5: Обзор атаки перехвата регистрации
Сама возможность этой атаки обусловлена следующими причинами:
Эта атака может быть реализована даже в том случае, если SIP-прокси при регистрации требует авторизацию, т.к. сообщения отправляются в открытом виде. Под угрозой могут оказаться как компьютеры корпоративных сетей, так и домашние ПК. К примеру, домашняя сеть с плохо настроенной точкой беспроводного доступа, может быть скомпрометирована хакером, перехватывающим и модифицирующим сообщения (даже если используются WEP и WPA). В случае успеха хакер может производить звонки за счет пользователя или переадресовывать соединения. В корпоративной сети хакер может переадресовывать звонки неавторизованной стороне. Например, звонки акционеров могут быть направлены агенту, не авторизованному для проведения определенных транзакций с клиентами. Естественно, звонки могут перенаправляться и в злонамеренных целях, которые зависят только от фантазии хакера. В некоторых случаях эта атака может оказаться полезной для сотрудников, которые не желают быть потревоженными и направляют звонки на автоответчик.
Эта атака может быть предотвращена с помощью SIPS (SIP поверх TLS) и авторизации SIP-запросов и ответов (что может включать проверку целостности). Фактически, использование SIPS и авторизации может предотвратить другие виды атак, включая прослушивание.
Прослушивание
Прослушивание в VoIP немного отличается от прослушивания данных в обычных сетях, но принцип тот же. Прослушивание в VoIP подразумевает перехват служебных сообщений и соответствующих потоков мультимедийных данных. Служебные сообщения используют протоколы и порты, отличные от мультимедийных данных. Мультимедийные потоки обычно передаются по UDP, используя протокол RTP (Real Time Protocol – протокол реального времени).
На Рис. 6 показаны действия, необходимые для прослушивания с помощью Ethereal:
Рис. 6: Перехват мультимедийных данных с помощью Ethereal.
Некоторые из вас скажут, что прослушивание можно подавить, используя свитчи, которые запрещают трансляцию трафика на всю сеть, таким образом ограничивая доступ к трафику.
Можно отбросить этот аргумент, если использовать ARP-спуфинг для осуществления атаки man-in-the-middle. Мы не будем рассматривать ARP-спуфинг в этой статье, на эту тему уже написано много статей. Основная суть в том, что хакер вещает подмененные MAC-адреса, заставляя соответствующие пакеты проходить через свой компьютер. Это позволяет прослушивать данные между двумя пользователями. На Рис. 7 показан пример атаки подмены таблиц ARP:
Рис. 7: Атака ARP-спуфинг.
С помощью подмены ARP-таблиц хакер может перехватывать, анализировать и прослушивать VoIP-соединения.
На Рис. 8 показано использование программы Cain для осуществления атаки man-in-the-middle и перехвата VoIP-трафика.
Рис. 8: Использование Cain для осуществления man-in-the-middle.
Заключение
Ожидается, что описанные выше уязвимости будут использованы в ближайшем будущем в личных и финансовых целях (например, мошенничество).
Инвестиции в производство и исследования, а также широкое распространение услуг VoIP за последние три года показывает, что VoIP прочно вошла в нашу жизнь. В то же время вопросы безопасности становятся более очевидными с ростом количества пользователей. IETF внесло несколько улучшений в стандарты VoIP, которые должны обеспечить защиту VoIP-трафика. Самыми очевидными являются использование TLS поверх SIP для защиты служебных данных и SRTP (Secure Real Time Protocol) для защиты мультимедийных данных. Основная проблема в том, что большинство провайдеров медленно адоптируют эти протоколы и иногда путают безопасность в пакетных сетях с безопасностью телефонных сетей.
Ваша приватность умирает красиво, но мы можем спасти её. Присоединяйтесь к нам!