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 — оптимальное место для телефонных функций, которые нецелесообразно реализовать на защищаемой АТС.
SBC может защищать от различных видов DoS, DDoS или TDoS (Telephony Denial of Service). Защиту от сетевых DoS/DDoS обычно обеспечивает сетевой фаервол между SBC и интернетом. Сам SBC отвечает за защиту от TDoS-атак и информирование администратора о попытках.
SBC может анализировать структуру SIP-пакетов (наличие обязательных элементов SIP и SDP), проверять их полноту, валидность и правильность последовательности. Некорректные SIP-пакеты могут свидетельствовать о TDoS-атаках. SBC должен блокировать ошибочные сигналы, чтобы не привести АТС в некорректные состояния, и сигнализировать оператору.
SBC способен дублировать SIP-пакеты с частной стороны в интернет; с внешней — наоборот, фильтровать повторяющиеся сообщения и передавать их на АТС только единожды. Повторная отправка SIP-пакетов характерна для некоторых АТС.
SBC может создавать собственные CDR-записи входящих и исходящих вызовов (Call Detail Record — запись детализации звонка), а также вести логи сигнализации и состояния звонков. Это облегчает тарификацию, аудит и диагностику проблем.
SBC является оптимальной точкой для анализа и предотвращения телефонного мошенничества. Это может быть анализ CDR-записей или SIP-запросов INVITE. Часто SBC сочетается с SIP-антифрод-модулями для блокировки подозрительных звонков и ведения статистики по направлениям трафика и времени.
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 публичного телефонного оператора. То же справедливо и для межоператорских соединений.


