Обеспечение безопасности телефонии

Начнём с мотива, потому что без него меры защиты кажутся избыточными.

Зачем взламывают телефонию Не ради записей разговоров и не ради бесплатных звонков по городу — это никому не интересно. Схема другая: злоумышленник регистрирует платный номер, чем дороже минута, тем лучше. Затем сканирует случайные IP-адреса в поисках любого отклика от IP-АТС. Найдя её, начинает подбор пары логин-пароль. При успехе подключается как IP-телефон, подбирает комбинацию выхода на городские линии и за короткое время «наговаривает» на свой платный номер сумму, которую вам выставит оператор связи в конце месяца.

В Октелл есть сильные механизмы защиты, но существенная часть безопасности зависит от интегратора и администратора.

Шесть типовых способов взлома

  1. Доступ к серверу Октелл. Добавив свою учётную запись администратора, злоумышленник получает всю телефонию компании.
  2. Доступ к SQL-серверу. Фактически равносилен доступу к серверу: несколькими запросами создаётся пользователь с ролью администратора.
  3. Учётная запись пользователя или устройства. С учётной записью устройства злоумышленник регистрирует свой телефон на вашем SIP-сервере; с учётной записью пользователя — входит в клиентское приложение.
  4. Небрежная маршрутизация. Атака идёт не через подбор паролей, а через попытку совершить прямой вызов из входящего звонка.
  5. Доступ к периферийному оборудованию. Сделав бэкап конфигурации шлюза или роутера, злоумышленник получает все хранящиеся там пароли доступа к серверу. Чаще всего причина банальна — оставленная пара admin/admin.
  6. DDoS. Цель — не деньги, а остановка работы: находится любой отвечающий порт, интервал между запросами сокращается до миллисекунд, и ресурсы сервера уходят на ответы вместо телефонии.
Побочный эффект зацикленных сценариев Автоматические боты не умеют самостоятельно разрывать соединение. Если в логике сценария есть зацикленность, это может парализовать телефонию даже без злого умысла.

Брандмауэр и антивирус на сервере

  • Ограничьте доступ по RDP (порт 3389 по умолчанию) списком разрешённых IP-адресов.
  • Запретите приём запросов от неизвестных адресов по открытым портам. Учтите, что сотрудники, работающие через веб-клиент, расширяют список допустимых адресов.
  • Выключите службы, не нужные для работы Октелл: каждая служба на открытом порту — потенциальная цель DDoS.
  • Если SQL-сервер удалённый, закройте удалённый доступ для всех адресов, кроме разрешённых.

Проверить, кто слушает порты:

netstat -anop udp
netstat -anop tcp
Стандартные учётные данные базы Смените имя входа и пароль в базу данных, установленные по умолчанию: sa и AutelService. Они известны всем.

Виртуальные частные сети

Подключение IP-телефонов и клиентских приложений через VPN отсекает всех, у кого нет доступа к сети, и защищает трафик от перехвата в открытых сетях. Ограничение: настройка VPN на смартфонах не всегда возможна, и мобильные софтфоны могут не заработать.

Дополнительная рекомендация — разделить сеть на три: для SIP-телефонии, для клиентских приложений и для провайдеров связи. Тогда с компьютеров пользователей нельзя будет повлиять на настройки телефонов.

Настройки серверного конфигурационного файла

Сменить SIP-порт

Большинство атак перебором нацелено именно на стандартный порт 5060. Смена, например, на 5090 снимает бо́льшую часть проблем:

<add key="START_SERVER_XX" value="SIP Server;oktell.HALSipSrv.dll;SIP;sip:*:5090" />

Заблокировать встроенного администратора

Учётная запись с логином «Администратор» и пустым паролем блокируется автоматически после создания хотя бы одного пользователя с ролью администратора. Убедитесь, что ключ выставлен в ноль:

<add key="EnableEmptyAdmin" value="0" />

Автоматическая блокировка адресов

Октелл умеет банить адреса, с которых идёт подбор. Логика такая:

  • более 20 регистрационных пакетов с неверной авторизацией за 10 секунд — адрес целиком попадает в бан-лист;
  • по истечении срока давности адрес удаляется из списка автоматически;
  • при повторной неверной авторизации после разблокировки бан наступает уже со второго пакета.

Записи о внесении адресов в бан-лист с указанием причины появляются в серверном журнале Exception. Управление режимом:

<add key="EnableSipTransportFilter" value="1" />

0   — выключено
1   — включено, бан до перезагрузки сервера
NN  — период в минутах до автоматической разблокировки

По умолчанию режим включён без автоматического исключения из бан-листа.

Про friendly-scanner Большинство атак подбором идёт от имени User-Agent «friendly-scanner». Начиная с версии 121212 пакеты от него игнорируются встроенной защитой. Фильтр можно настроить и на другие произвольные User-Agent через конфигурационный файл сервера.

Настройки сервера

Сложные пароли. Более восьми символов в верхнем и нижнем регистре с цифрами — и для пользователей, и для подключения устройств. Типичная катастрофа: администратор завёл тестовые аккаунты с простыми паролями в локальной сети, а потом сервер переехал на реальный IP-адрес. Такие пароли скан-машины подбирают почти наверняка. Пользуйтесь генерацией пароля средствами Октелл при создании каждой учётной записи для IP-телефона.

Что появилось в версии 130130 Проверка сложности паролей учётных записей пользователей, SIP-телефонов и шлюзов — включена по умолчанию, сохранить запись с простым паролем штатным способом невозможно. Там же появилась автоматическая блокировка исходящих звонков на несанкционированные внешние номера: даже не отфильтрованный в сценарии вызов не пройдёт, если не удовлетворяет разрешённым условиям. Задаются запрещённые номера и маски либо разрешённые маски.

Обновляйте версию: механизмы защиты дорабатываются от выпуска к выпуску.

Сценарии маршрутизации — самое важное

Даже при успешно подобранной паре логин-пароль злоумышленник не причинит ущерба, если сценарии не выпустят его на платные направления.

Где проверять

Обратите внимание на пять мест:

  • сценарий IVR маршрутизации исходящих звонков;
  • сценарий IVR маршрутизации при переводе звонка;
  • служебный сценарий набора внешних и быстрых номеров;
  • служебный сценарий автодозвона;
  • любой другой IVR с переключением на внешние линии.
Как не проверять одно и то же в пяти местах Сценариев с выходом на линии операторов в системе может быть много. Логичнее сделать один сценарий проверки набираемого номера, а из остальных вместо компонента выхода на линии переходить в него.

Пин-код и время суток

Введите пин-код для международных звонков либо маршрутизируйте в зависимости от пользователя — его роли, внутреннего номера. При неверном пин-коде администратор должен получать оповещение: по e-mail или всплывающим уведомлением. Пока код подбирают, у вас есть время среагировать.

Второй фильтр — время. Если офис работает с 9 до 18, исходящие вызовы вне этого интервала, тем более международные, сценарий пропускать не должен.

Маршрутизация по длине номера

Здесь главная содержательная рекомендация статьи. В большинстве российских организаций АТС настроена привычным образом: набор через 8, через 0 или другой символ выводит на городские линии, всё остальное считается внутренним номером. Именно это и ищут атакующие — символ, открывающий выход в город.

Правильнее разделять внутренние и внешние номера по длине, а не по префиксу:

  • все трёх- и четырёхзначные вызовы отправлять только во внутренний номерной план;
  • одиннадцатизначные — на федеральные направления;
  • остальные — отклонять.

Не забудьте исключение для экстренных служб: 01, 02, 03, 04, 112.

Отсечение по маске

Перед выходом на линии оператора отсеките всё, кроме разрешённого. Если вы работаете только по России, отклоняйте номер, когда его длина не равна 11 цифрам, первая цифра отличается от 7 или 8 в зависимости от условий провайдера, либо первые четыре цифры попадают в маску платных и служебных номеров.

Коды доступа к услугам электросвязи определены Приказом Министерства информационных технологий и связи РФ от 17 ноября 2006 г. № 142 «Об утверждении и введении в действие Российской системы и плана нумерации», таблица № 4:

КодУслуга
800Бесплатный вызов (Freephone)
801Вызов с автоматической альтернативной оплатой
802Вызов по кредитной карте
803Телеголосование
804Универсальный номер доступа
805Вызов по предоплаченной карте
806Вызов по расчётной карте
807Виртуальная частная сеть
808Универсальная персональная связь
809Услуга за дополнительную оплату (Premium rate)
881–899Перспективные коды услуг
970Доступ к услугам связи по передаче данных
971Доступ к телематическим услугам связи

Именно эти коды и нужно закрыть — в том числе от «своих мошенников».

Периферийное оборудование

Относится прежде всего к тому, до чего можно дотянуться из внешней сети.

  • Не оставляйте стандартные пароли на роутерах, NAT-устройствах, файрволах.
  • Большинство устройств, в отличие от Октелл, не считает неудачные попытки входа в веб-интерфейс — перебор паролей ничем не ограничен. Пароль длиннее 15 знаков существенно снижает шансы взлома.
  • Ограничьте доступ к веб-интерфейсам внешним файрволом.
  • Выведите устройства в отдельную VPN-сеть — тогда в их настройки не попадёт никто.
  • После настройки веб-интерфейс можно вовсе отключить, включив обратно только через меню самого устройства.
IP-телефоны на открытых адресах Смените стандартный порт 5060 на другой, например 5090. Отвечая на SIP-запрос, телефон в большинстве случаев подставляет название своей прошивки в поле Contact — по нему злоумышленник найдёт известные уязвимости именно этой прошивки.

Административные меры

Самый недооценённый уровень защиты — он на стороне оператора связи, ничего не стоит и работает даже при полностью взломанной системе:

  • узнайте, чем оператор может помочь в защите от звонков на международные направления;
  • если международные и другие платные направления вам не нужны — запретите их на уровне оператора;
  • попросите ограничить список IP-адресов, с которых принимаются звонки, — например только адресом вашего сервера;
  • установите лимит расходов или перейдите на авансовую оплату: при взломе вас просто заблокируют по превышении баланса, вместо того чтобы выставить счёт в конце месяца.
Почему это работает лучше всего Все остальные меры уменьшают вероятность взлома. Лимит расходов у оператора ограничивает ущерб — то есть работает даже тогда, когда всё остальное не сработало.