Цель этой статьи - обсудить две самые распространенные атаки на VoIP. Первая демонстрирует возможность перехвата VoIP соединения и последующего общения
вместо жертвы, вторая - возможность подслушивания. По мнению экспертов такие виды нападения станут наиболее распространенными с дальнейшим развитием VoIP.
SIP
Session Initiation Protocol (RFC 3261) - стандарт, используемый в VoIP для установления и разрыва связи (в данном примере используется именно он, хотя есть еще и другие сигнальные протоколы - RAS (Registration, Admission, Status), SCTP). На рисунке показаны сообщения, которыми обмениваются пользователи в процессе звонка.
В первом шаге устройство пользователя (User Agent) регистрируется в доменном
регистраторе, ответственном за содержание базы данных всех подписчиков домена.
Регистрация в VoIP обязательна так как обеспечивает поиск и контакт с удаленным клиентом. Когда пользователь Б хочет соединиться с пользователем А, он посылает INVITE запрос прокси-серверу. Прокси-сервер в данном случае отвечает за роутинг SIP сообщений и обнаружение участников. Когда прокси сервер получает INVITE запрос от клиента, он пытается
определить местонахождение другого участника
и выполняет ряд других шагов, докладывая всю информацию (типа DNS запросов и SIP сообщений) звонящему. Как мы увидим дальше, перехват регистрации возможен именно в ходе регистрации устройства в первом шаге.
Перехват регистрации
Перехваченный пакет показывает правильную регистрацию и ответ от SIP регистратора, который сообщает о готовности пользователя к
контакту.
Session Initiation Protocol
Request-Line: REGISTER sup: atlas4.voipprovider.net:5061
SIP/2.0
Method: REGISTER
Resent Packet: False
Message Header
Via: SIP/2.0/UDP 192.168.94.70:5061;branch=z9hG4bK-49897e4e
From: 201-853-0102 <sip:12018530102@atlas4.voipprovider.net:5061>;tag=802030536f050c56o0
SIP Display info: 201-853-0102
SIP from adress: sip:12018530102@atlas4.voipprovider.net:5061
SIP tag: 802030536f050c56o0
To: 201-853-0102 <sip:12018530103@atlas4.voipprovider.net:5061>
SIP Display info: 201-853-0102
SIP to adress: sip:12018530102@atlas4.voipprovider.net:5061
Call-ID: e4bb5007-b7335032@67.83.94.70
CSeq: 3 REGISTER
Max-Forward: 70
Contact: 201-853-0102 <sip:12018530102@192.168.10.5:5061>;expires=60
User-Agent: 001217E57E31 linksys/RT31P2-2.0.12(LIVd)
Content-Length: 0
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER
Supported: x-sipura
В запросе типа REGISTER поля From и To должны
совпадать, из запроса так же видно, что
регистрация истекает через 60 секунд, а в
поле Contact так же указывается SIPS URI, который
указывает на прямой путь к устройству,
обычно составляемый из имени пользователя
из FQDN (fully qualified domain name).
Запрос REGISTER содержит заголовок Contact, показывающий IP адрес пользовательского устройства (будь то железный телефон или программа). Когда прокси получает запрос на обработку входящего звонка (INVITE), он выполняет lookup запрос для идентификации где целевой пользователь может быть обнаружен. В данном случае пользователь с номером 201-853-0102 может быть найден на IP адресе 192.168.94.70. Прокси форвардит INVITE запрос на этот адрес, как видно - на порт 5061. Этот порт зарезервирован за SIPS и в данном случае это нарушение стандарта, описанного в RFC 32610.
Дальше мы показываем модифицированный REGISTER запрос, посылаемый атакующим. Очевидно, что все поля заголовка остались теми же самыми, за исключением поля Contact, который теперь указывает на адрес атакующего (192.168.1.3).
Contact: 201-853-0102 <sip:12018530102@192.168.1.3:5061>;expires=60
REGISTER запрос посылается на SIP службу регистрации по адресу 192.168.1.2. Для этого используется утилита SiVuS, скриншот ее можно видеть ниже, а саму ее легко скачать отсюда:
http://www.vopsecurity.org/html/tools.html.
Таким образом перехват работает так:
- Устраняем пользовательскую регистрацию. Этого можно добиться:
- DoS атакой
- устранением записи (эта атака не рассматривается в этой статье)
- генерацией повторяющихся REGISTER запросов с коротким промежутком (например, каждые 15 секунд) для перезаписи легитимных пользовательских запросов (в том случае, если регистрация происходит через интервалы времени, ты должен будешь перерегистрироваться всякий раз после регистрации уязвимого клиента) - Посылаем REGISTER запрос с нашим адресом.
На этом рисунке приведен пример такого нападения:
0 - DoS атака
1 - регистрация пользователя
2 - запрос на начало сессии
3 - прокси - запрос домена и роутинг
4 - прокси - запрос пользователя (SIP прокси получает IP адрес хакера)
5 - прокси-прокси - соединение пользователей
6 - ответ абонента
7 - прокси форвардит ответ - соединение создано и поток медийные данные передаются между телефонами
Атака возможна из-за следующих причин:
- Сообщения посылаются в открытом виде, что позволяет хакеру перехватывать их, изменять и отвечать на них.
- Текущая реализация сообщений SIP не поддерживает контроля содержания, что позволяет его модификацию и невозможность
обнаружения этого.