Атака на VoIP: перехват

Discussion in '"Железо"' started by novichok, 24 Apr 2006.

  1. novichok

    novichok Banned

    Joined:
    3 Dec 2005
    Messages:
    395
    Likes Received:
    184
    Reputations:
    27
    Цель этой статьи - обсудить две самые распространенные атаки на VoIP. Первая демонстрирует возможность перехвата VoIP соединения и последующего общения вместо жертвы, вторая - возможность подслушивания. По мнению экспертов такие виды нападения станут наиболее распространенными с дальнейшим развитием VoIP.

    SIP

    Session Initiation Protocol (RFC 3261) - стандарт, используемый в VoIP для установления и разрыва связи (в данном примере используется именно он, хотя есть еще и другие сигнальные протоколы - RAS (Registration, Admission, Status), SCTP). На рисунке показаны сообщения, которыми обмениваются пользователи в процессе звонка.

    [​IMG]

    В первом шаге устройство пользователя (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:[email protected]:5061>;tag=802030536f050c56o0
    SIP Display info: 201-853-0102
    SIP from adress: sip:[email protected]:5061
    SIP tag: 802030536f050c56o0
    To: 201-853-0102 <sip:[email protected]:5061>
    SIP Display info: 201-853-0102
    SIP to adress: sip:[email protected]:5061
    Call-ID: [email protected]
    CSeq: 3 REGISTER
    Max-Forward: 70
    Contact: 201-853-0102 <sip:[email protected]: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:[email protected]:5061>;expires=60

    REGISTER запрос посылается на SIP службу регистрации по адресу 192.168.1.2. Для этого используется утилита SiVuS, скриншот ее можно видеть ниже, а саму ее легко скачать отсюда: http://www.vopsecurity.org/html/tools.html.

    [​IMG]

    Таким образом перехват работает так:

    1. Устраняем пользовательскую регистрацию. Этого можно добиться:
    - DoS атакой
    - устранением записи (эта атака не рассматривается в этой статье)
    - генерацией повторяющихся REGISTER запросов с коротким промежутком (например, каждые 15 секунд) для перезаписи легитимных пользовательских запросов (в том случае, если регистрация происходит через интервалы времени, ты должен будешь перерегистрироваться всякий раз после регистрации уязвимого клиента)
    2. Посылаем REGISTER запрос с нашим адресом.

    На этом рисунке приведен пример такого нападения:

    [​IMG]

    0 - DoS атака
    1 - регистрация пользователя
    2 - запрос на начало сессии
    3 - прокси - запрос домена и роутинг
    4 - прокси - запрос пользователя (SIP прокси получает IP адрес хакера)
    5 - прокси-прокси - соединение пользователей
    6 - ответ абонента
    7 - прокси форвардит ответ - соединение создано и поток медийные данные передаются между телефонами

    Атака возможна из-за следующих причин:

    * Сообщения посылаются в открытом виде, что позволяет хакеру перехватывать их, изменять и отвечать на них.
    * Текущая реализация сообщений SIP не поддерживает контроля содержания, что позволяет его модификацию и невозможность обнаружения этого.

    Источник: http://www.securityfocus.com