VoIP и возможные атаки Грабарник М.С. Группа 416 2008-04-28 VoIP (англ. Voice-over-IP — IP-телефония) — система связи, обеспечивающая передачу речевого сигнала по сети Интернет или по любым другим IP-сетям. Сигнал по каналу связи передается в цифровом виде и, как правило, перед передачей преобразовывается (сжимается) с тем, чтобы удалить избыточность, свойственную человеческой речи. VoIP Возможность передачи голосовых сообщений через сеть с пакетной коммутацией впервые была реализована в 1993 году. Данная технология получила название VoIP (Voice over IP). Одним из частных приложений данной технологии является IP-телефония — услуга по передаче телефонных разговоров абонентов по протоколу IP. Основными преимуществами технологии VoIP является сокращение требуемой полосы пропускания, что обеспечивается учётом статистических характеристик речевого трафика: блокировкой передачи пауз (диалоговых, слоговых, смысловых и др.), которые могут составлять до 40-50 % времени занятия канала передачи; высокой избыточностью речевого сигнала и его сжатием (без потери качества при восстановлении) до уровня 20-40 % исходного сигнала. Трафик VoIP критичен к задержкам пакетов в сети, но обладает толерантностью (устойчивостью) к потерям отдельных пакетов. Так, потеря до 5 % пакетов не приводит к ухудшению разборчивости речи. При передаче телефонного трафика по технологии VoIP должны учитываться жёсткие требования стандарта ISO 9000 к качеству услуг, характеризующие: 1. качество установления соединения, определяемое в основном быстротой установления соединения, 2. качество соединения, показателем которого являются сквозные (воспринимаемые пользователем) задержки и качество воспринимаемой речи. Протоколы IP телефонии Протоколы обеспечивают регистрацию IP устройства (шлюз, терминал или IP телефон) на сервере или гейткипере провайдера, вызов и/или переадресацию вызова, установление голосового соединения, передачу имени и/или номера абонента. В настоящее время широкое распространение получили следующие VoIP протоколы: SIP - обеспечивает передачу голоса и для сигнализации обычно использует порт 5060 UDP H.323 - протокол, более привязанный к системам традиционной телефонии, чем SIP, сигнализация по порту 1720 TCP IAX2 - через 4569 UDP порт и сигнализация, и медиа трафик MGCP SIGTRAN SCTP SGCP Skinny/SCCP Unistim - закрытый протокол передачи сигнального трафика в продуктах компании Nortel Атаки на 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. Таким образом перехват работает так: 1. Устраняем пользовательскую регистрацию. Этого можно добиться: - DoS атакой - устранением записи (эта атака не рассматривается в этой статье) - генерацией повторяющихся REGISTER запросов с коротким промежутком (например, каждые 15 секунд) для перезаписи легитимных пользовательских запросов (в том случае, если регистрация происходит через интервалы времени, нужно будет перерегистрироваться всякий раз после регистрации, уязвимого клиента) 2. Посылаем REGISTER запрос с нашим адресом. На этом рисунке приведен пример такого нападения: 0 - DoS атака 1 - регистрация пользователя 2 - запрос на начало сессии 3 - прокси - запрос домена и роутинг 4 - прокси - запрос пользователя (SIP прокси получает IP адрес хакера) 5 - прокси-прокси - соединение пользователей 6 - ответ абонента 7 - прокси форвардит ответ - соединение создано, и медийные данные передаются между телефонами Вывод Атака возможна из-за следующих причин: Сообщения посылаются в открытом виде, что позволяет хакеру перехватывать их, изменять и отвечать на них. Текущая реализация сообщений SIP не поддерживает контроля содержания, что позволяет его модификацию и невозможность обнаружения этого. Прослушивание Перехват данных VoIP несколько отличается от традиционного захвата данных в сети, но общая концепция остается той же самой. Прослушивание требует перехвата пакетов установления связи и ассоциированного медийного потока. Сигнальные сообщения используют другой сетевой протокол (UDP или TCP) и порт, отличный от самой передачи данных. Медиа поток обычно передается через UDP с использованием RTP (Real Time Protocol). Для перехвата потока данных можно использовать любой снифер, например все тот же Ethereal. Система выглядит таким образом: Перехватить и декодировать RTP пакеты (опция Analyze -> RTP-> Show all streams) Проанализировать сессию - собрать пакеты (просто выбрав поток) Сохранить поток (сохранить адуио файл (.au), содержащий голос, ) Встряв между звонящим пользователем А и принимающим звонок пользователем Б хакер и получает возможность сохранить все общение себе на диск, естественно существуют утилиты, которые совмещает в себе все возможности - это, например, снифер Cain&Abel (http://www.oxid.it/cain.html). Вывод Эта атака так же возможна из-за передачи данных по сети в незашифрованном виде пакеты установления связи передаются открытым текстом, а медийный поток может восстановить любой перехвативший. В качестве защиты можно посоветовать использовать TLS (Transport Layer Security) для защиты SIP сигналов и SRTP (Secure Real Time Protocol) для защиты голоса. К сожалению, провайдеры VoiP пока не спешат с внедрением такой защиты, уповая на волю случая. Источники 1. http://ru.wikipedia.org/wiki/VoIP 2. http://www.securityfocus.com/infocus/1862 3. http://www.xakep.ru/post/30939/default.asp