Session Border Controller

Session Border Controller (англ. Session Border Controller, также SBC; букв. «контроллер границы сеанса») — специализированное устройство или программное обеспечение, обеспечивающее разграничение между приватным и публичным сегментами сетей передачи голоса по протоколу VoIP[1][2] и существенно повышающее безопасность VoIP-телефонии[3][4][5][6][7][8]. Иногда его называют также голосовым фаерволом или VoIP-фаерволом. Session Border Controller играет важную роль в защите от VoIP-мошенничества. Крупные телекоммуникационные операторы последовательно используют SBC: CETIN-O2 использует SBC Oracle, T-Mobile — SBC Mavenir, Vodafone — SBC Oracle. Однако альтернативные VoIP-провайдеры, а также администраторы корпоративных VoIP-АТС, внедряют такие устройства значительно реже.

Session Border Controller выпускается в различных конфигурациях и ценовых категориях. Обычно представляют собой специализированное VoIP-оборудование, выпускаемое такими производителями, как Nokia, Oracle, Cisco, Alcatel, Avaya, Mavenir, AudioCodes, Genband, Sonus, Acme, Mediant, Edgewater, Frafos, Squire и Dinstar. Менее ёмкие SBC могут быть реализованы в виде программных решений, таких как OpenSBC, Hexan Hexan SBC. Дата обращения: 26 июня 2024. Архивировано 6 декабря 2019 года., а также Hixtel.

Основные свойства

Главная задача Session Border Controller — скрытие топологии и структуры SIP-технологии[1]. Обычная АТС, выступающая в роли SIP-прокси, передаёт в SIP-сигналах IP-адреса как вызывающего, так и вызываемого SIP-телефона, а также адреса SIP-устройств, задействованных в обработке вызова (например, в полях Via и Contact). Потенциальный злоумышленник, ведя коммуникацию с SIP-прокси, может получить сведения об адресах SIP-устройств и попытаться их атаковать — отправлять мошеннические SIP-запросы, злоупотреблять интерфейсами REST, HTTP или CTI, чтобы инициировать мошенничество.

SIP-АТС и телефоны без защиты Session Border Controller[1]

Session Border Controller работает по принципу B2BUA (Back to Back User Agent), соединяя публичный и приватный сегменты VoIP-сети. При этом в SIP-пакетах на каждой стороне SBC не содержатся IP-адреса с противоположной стороны устройства. То же справедливо и для RTP-пакетов: Session Border Controller ретранслирует их между сегментами, обеспечивая прозрачность. Обычно SBC устанавливается между сетевым фаерволом и SIP-АТС. Потенциальные атакующие не имеют возможности через SBC узнать адреса прочих устройств за ним.

SIP-АТС и телефоны, защищённые Session Border Controller[1]

Внедрение Session Border Controller важно для предотвращения VoIP-мошенничества:

  • между двумя SIP-АТС, соединёнными по SIP-транку (между VoIP-операторами, между оператором и PBX, между двумя PBX);
  • между SIP-АТС и подключёнными к ней SIP-телефонами (особенно если телефоны подключаются к АТС через публичный интернет).

SIP-транк, работающий через интернет, должен быть защищён SBC на обеих сторонах.

Технические принципы

Обычный SIP-прокси при получении SIP-пакета только корректирует или удаляет строки Via, Record-Route или Route, после чего пересылает его далее практически без изменений. Адреса цепочки прохождения сигнала легко определить. В отличие от этого B2BUA (Session Border Controller) после получения SIP-пакета подменяет IP-адрес отправителя на свой. Аналогично действуют SBC для RTP-пакетов. Также рекомендуется маскировать типичные идентификаторы защищаемой SIP-АТС — в полях User-Agent и Server, а также в атрибутах «o» (origin, инициатор сессии) и «s» (session name) в SDP (Session Description Protocol). SBC не должен ни в коем случае ретранслировать множественные записи Via, Record-Route или Route; в соответствующих полях допускается только собственный адрес. В результате во всём SIP-пакете остаются лишь IP-адреса SBC и ближайшего к нему с той или иной стороны устройства. Таким образом скрываются промежуточные элементы SIP-сигнализации и адреса устройств за SBC. Следует отметить, что подобная схема в то же время не совместима с классической (устаревшей) SIP-сигнализацией, которая теперь применяется редко.

 private     Session Border Controller       public
   PBX              (SIP B2BUA)               VoIP
    |                    | |                    |  
    |      INVITE     F1 | |                    |
    |------------------->| |                    |
    |    100 Trying   F2 | |                    |
    |<-------------------| |       INVITE    F3 |                     Session Border Controller
    |                    | |------------------->|                            (SIP B2BUA)
    |                    | |    100 Trying   F4 |                        +-----------------+
    |                    | |<-------------------|                        |                 |
    |                    | |    180 Ringing  F5 |           SIP signals  |  +-----------+  |  SIP signals
    |   180 Ringing   F6 | |<-------------------|           <------------|->| signaling |<-|------------>
    |<-------------------| |                    |           private      |  +-----------+  |       public
    |                    | |       200 OK    F7 |           PBX          |        |        |         VoIP
    |      200 OK     F8 | |<-------------------|           system       |  +-----------+  |       system
    |<-------------------| |        ACK      F9 |           <------------|->|   media   |<-|------------>
    |        ACK     F10 | |------------------->|           RTP pakets   |  +-----------+  |   RTP pakets                
    |------------------->| |                    |                        |                 |
    |     RTP Stream     | |     RTP Stream     |                        +-----------------+
    |<==================>| |<==================>|
    |        BYE     F11 | |                    |
    |------------------->| |        BYE     F12 |
    |      200 OK    F13 | |------------------->|
    |<-------------------| |       200 OK   F14 |
    |                    | |<-------------------|
    |                    | |                    |

Пример SIP-сигнала «200 OK», отправленного АТС (IP 180.66.160.5) к SBC (IP 217.101.29.108) и далее на публичную VoIP-станцию (IP 77.5.190.110). Сторона-источник ожидает RTP на защищённом порту 10610, а SBC — на своём публичном порту 7530:

                                      private   -->   Session Border Controller   -->   public
                                        PBX                  (SIP B2BUA)                 VoIP
                                                                  ||
SIP/2.0 200 OK                                                    ||  SIP/2.0 200 OK
Via: SIP/2.0/UDP 180.66.160.5:5060;branch=z9hG4bK5eae145d;rport   ||  Via: SIP/2.0/UDP 217.101.29.108:5060;branch=z9hG4bK5eae145d;rport
From: "505686611" <sip:505686611@180.66.160.5>;tag=as71c9dffd     ||  From: "505686611" <sip:505686611@217.101.29.108>;tag=as71c9dffd
To: "505639883" <sip:505639883@217.101.29.108>;tag=a09c02a09c04   ||  To: "505639883" <sip:505639883@77.5.190.110>;tag=a09c02a09c04
Call-ID: dvScftN8-RK4eMsuT-S5nYiZBO-8GQMJK1l-94Hv8n3w-t2cV        ||  Call-ID: b1a93daa-4d8f641a-0ce7e75a-800a048d
CSeq: 102 INVITE                                                  ||  CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.8.13.1                                 ||  User-Agent: Hexan
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE        ||  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE
Supported: replaces, timer                                        ||  Supported: replaces, timer
Contact: <sip:505686611@180.66.160.5:5060>                        ||  Contact: <sip:505686611@217.101.29.108:5060>
Content-Type: application/sdp                                     ||  Content-Type: application/sdp
Content-Length: 232                                               ||  Content-Length: 217
                                                                  ||
v=0                                                               ||  v=0
o=root 1147220652 1147220652 IN IP4 180.66.160.5                  ||  o=Hexan 1147220652 1147220652 IN IP4 217.101.29.108
s=Asterisk PBX 1.8.13.1                                           ||  s=Hexan
c=IN IP4 180.66.160.5                                             ||  c=IN IP4 217.101.29.108
t=0 0                                                             ||  t=0 0
m=audio 10610 RTP/AVP 8 101                                       ||  m=audio 7530 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000                                              ||  a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000                                 ||  a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16                                                   ||  a=fmtp:101 0-16
a=ptime:20                                                        ||  a=ptime:20
a=sendrecv                                                        ||  a=sendrecv

Применение B2BUA также предотвращает отправку некоторых SIP-сигналов (ACK, BYE и проч.) напрямую между SIP-телефонами (то есть не по RFC3261, раздел 12.2). Благодаря этому SBC контролирует весь процесс телефонии, включая начало и завершение вызова, что важно для корректной тарификации. Технические требования к Session Border Controller описаны в RFC 5853.

Виды Session Border Controller

По назначению Session Border Controller классифицируют на:

  • для защиты SIP-транков, соединяющих корпоративную АТС с VoIP-оператором либо связывающих операторов между собой;
  • для защиты SIP-телефонов, подключённых к корпоративной АТС или к АТС публичного VoIP-оператора;
  • комбинированные, обеспечивающие обе функции.

По ёмкости Session Border Controller бывают:

  • для сектора SOHO (Small Office/Home Office) — вместимость десятки вызовов;
  • для сегмента SMB/SME (малый и средний бизнес/предприятия) — вместимость сотни вызовов;
  • для корпоративного сектора — рассчитаны на тысячи звонков, используются крупнейшими операторами;
  • модульные или масштабируемые.

По функционалу Session Border Controller делятся на:

  • простые — только базовая схема B2BUA;
  • комбинированные — например, с встроенным SIP-антифродом;
  • сложные и комплексные, реализующие дополнительные VoIP-функции.

Дополнительные функции

Session Border Controller — оптимальное место для телефонных функций, которые нецелесообразно реализовать на защищаемой АТС.

Защита от DoS-атак

SBC может защищать от различных видов DoS, DDoS или TDoS (Telephony Denial of Service). Защиту от сетевых DoS/DDoS обычно обеспечивает сетевой фаервол между SBC и интернетом. Сам SBC отвечает за защиту от TDoS-атак и информирование администратора о попытках.

Контроль сигнализации

SBC может анализировать структуру SIP-пакетов (наличие обязательных элементов SIP и SDP), проверять их полноту, валидность и правильность последовательности. Некорректные SIP-пакеты могут свидетельствовать о TDoS-атаках. SBC должен блокировать ошибочные сигналы, чтобы не привести АТС в некорректные состояния, и сигнализировать оператору.

Повышение надёжности сигнализации

SBC способен дублировать SIP-пакеты с частной стороны в интернет; с внешней — наоборот, фильтровать повторяющиеся сообщения и передавать их на АТС только единожды. Повторная отправка SIP-пакетов характерна для некоторых АТС.

Формирование CDR и журналов

SBC может создавать собственные CDR-записи входящих и исходящих вызовов (Call Detail Record — запись детализации звонка), а также вести логи сигнализации и состояния звонков. Это облегчает тарификацию, аудит и диагностику проблем.

Контроль телефонных мошенничеств

SBC является оптимальной точкой для анализа и предотвращения телефонного мошенничества. Это может быть анализ CDR-записей или SIP-запросов INVITE. Часто SBC сочетается с SIP-антифрод-модулями для блокировки подозрительных звонков и ведения статистики по направлениям трафика и времени.

Контроль качества VoIP-телефонии

SBC позволяет собирать параметры качества (успешность вызовов, пропускную способность, потерю и джиттер RTP-пакетов, оценку MOS, причины отказа, ошибки сигнализации и пр.), а также своевременно информировать оператора о снижении качества.

Запись вызовов

SBC может обеспечивать запись разговоров по определённым номерам или для всех VoIP-звонков, в том числе в рамках требований законодательства.

Конвертация кодеков и сигналов

SBC может выступать мостом между разными голосовыми кодеками (PCMA, PCMU, G.729, G.722, и др.), менять длину RTP-пакетов и методы передачи DTMF-сигналов, а также производить преобразования методов факсимильной передачи и сигнализации удержания.

Шифрование сигнализации и трафика

SBC способен шифровать и дешифровать SIP-пакеты (например, при помощи TLS, DTLS, IPsec), а также аудио (RTСP, SRTP, ZRTP). Для работы с шифрованием обе стороны линии должны иметь совместимые SBC.

Дополнительные голосовые функции

SBC может воспроизводить приветствия, информационные аудиосообщения (уведомления о записи, о занятости, ошибках номера), реализовывать простейший IVR (автоответчик/разделитель по направлениям).

Размещение Session Border Controller

  • Как приватная LAN-сеть подключается к другим по сетевому фаерволу, так и приватная или публичная VoIP-инфраструктура должна подключаться к другим телефонным сетям только через Session Border Controller.
  • Как сетевая связность на обеих сторонах защищается фаерволами каждого сегмента, так и SIP-транк через интернет должен быть защищён SBC с обеих сторон.
  • Оператор локальной сети не может полагаться на фаервол своего провайдера — аналогично, оператор корпоративной АТС не должен рассчитывать на SBC публичного телефонного оператора. То же справедливо и для межоператорских соединений.

Примечания