Защита IP АТС от внешних атак — различия между версиями
Peter (обсуждение | вклад) |
|||
(не показана одна промежуточная версия ещё одного участника) | |||
Строка 1: | Строка 1: | ||
− | + | [[Практики|Наверх]] | |
− | + | ||
__TOC__ | __TOC__ | ||
+ | |||
+ | В данной статье будут разбираться практики атак IP АТС и способы противодействия. Следует иметь в виду, что методики атакующих постоянно совершенствуются, однако мы в рамках данной статьи постараемся отслеживать новые способы атак и давать свои рекомендации. Oktell является очень мощным и гибким инструментом, и с его помощью вы будете надежно защищены при выполнении наших рекомендаций. | ||
Строка 130: | Строка 131: | ||
Можно держать сервер на внешнем IP-адресе, можно реализовывать на нем произвольные сервисы, обслуживать все неизвестные звонки, но при этом следует помнить о возможных типах атак и предпринимать ограничения, с ними связанные. Мы рекомендуем выстраивать систему безопасности вокруг АТС по возможности в соответствии с принципом: "разрешить тем, кому можно", а не "запретить тем, кому нельзя". | Можно держать сервер на внешнем IP-адресе, можно реализовывать на нем произвольные сервисы, обслуживать все неизвестные звонки, но при этом следует помнить о возможных типах атак и предпринимать ограничения, с ними связанные. Мы рекомендуем выстраивать систему безопасности вокруг АТС по возможности в соответствии с принципом: "разрешить тем, кому можно", а не "запретить тем, кому нельзя". | ||
− | |||
− | |||
В версиях Oktell начиная с 130130 реализована возможность включения [[Параметры_АТС#PaidNumbers|автоматической блокировки исходящих звонков на несанкционированные внешние номера]]. Используя ее даже неотфильтрованный в сценарии исходящий вызов не будет пропущен системой, если не удовлетворяет разрешенным условиям. Возможны варианты внесения запрещенных номеров и масок, а также указания разрешенных масок. | В версиях Oktell начиная с 130130 реализована возможность включения [[Параметры_АТС#PaidNumbers|автоматической блокировки исходящих звонков на несанкционированные внешние номера]]. Используя ее даже неотфильтрованный в сценарии исходящий вызов не будет пропущен системой, если не удовлетворяет разрешенным условиям. Возможны варианты внесения запрещенных номеров и масок, а также указания разрешенных масок. |
Текущая версия на 11:59, 24 марта 2014
Содержание
В данной статье будут разбираться практики атак IP АТС и способы противодействия. Следует иметь в виду, что методики атакующих постоянно совершенствуются, однако мы в рамках данной статьи постараемся отслеживать новые способы атак и давать свои рекомендации. Oktell является очень мощным и гибким инструментом, и с его помощью вы будете надежно защищены при выполнении наших рекомендаций.
Подключение под видом IP телефона с целью совершения звонков на платные номера
Цель и методика атаки
Атака производится с целью финансового обогащения. За рубежом или в России регистрируется номер телефона, звонок на который является платным. Чем выше стоимость минуты - тем прибыльнее бизнес. Затем специальным оборудованием атакующие сканируют случайные IP адреса в интернете с целью установить любой ответ от IP PBX. После нахождения IP адреса с установленной на нем IP АТС начинается подбор пары логин-пароль. Сканирование ведется очень интенсивно и в случае успешного подбора атакующие подключаются к IP АТС как IP телефон и получают возможность совершения исходящих звонков. Путем подбора различных вариантов набора номера атакующие совершают звонок на свой платный номер и за короткое время "наговаривают" вполне приличную сумму, которая будет выставлена вам оператором за услуги связи в конце месяца.
Противодействие
На всех телефонах и клиентских приложениях Oktell необходимо устанавливать сложные криптостойкие пароли, состоящие из заглавных и строчных букв и цифр. Небрежность администратора, прописавшего тестовые аккаунты с простыми паролями, или не убравшего простые пароли при переносе сервера из локальной сети на реальный IP адрес приведет к тому, что такой пароль с высокой степенью вероятности будет подобран скан-машинами. Рекомендуется использовать генерацию пароля средствами Oktell при создании каждого аккаунта для подключения IP телефона.
Программный код Oktell содержит возможность автоматической блокировки IP адреса, с которого осуществляется несколько неудачных попыток регистраций. Принцип действия режима автоматической блокировки следующий: При поступлении за 10 секунд более 20 регистрационных пакетов с неверной авторизационной информацией - IP адрес целиком записывается в бан-лист. По истечении срока давности в соответствии с параметром конфигурации происходит автоматическое удаление из бан-листа. При повторном получении неверной авторизационной информации после разбана размещение в бан-листе происходит уже сразу по второму пакету. В серверном лог журнале Exception при этом появляются записи, фиксирующие внесение адресов в бан-лист с указанием причины и адреса. Управление этим режимом производится в конфигурационном файле сервера строчкой:
<add key="EnableSipTransportFilter" value="1" /> 0 - выключено 1 - включено и банит до перезагрузки сервера NN - период в минутах, после которого производится автоматический разбан
По умолчанию режим включен без автоматического исключения из бан-листа.
На момент написания статьи (декабрь 2012 г) большинство атак по подбору авторизационных данных совершаются от имени User-Agent "friendly-scanner". В версиях Oktell начиная с 121212 встроена дополнительная защита и пакеты от friendly-scanner игнорируются. Также существует возможность устанавливать фильтр и для других произвольных User-Agent с помощью конфигурационного файла сервера Oktell.
В версиях Oktell начиная с 130130 реализована и по умолчанию включена проверка сложности паролей учетных записей пользователей, а также SIP-телефонов и шлюзов, регистрирующихся на сервере. Система делает невозможным сохранение стандартным способом учетной записи с простым паролем.
Для того, чтобы даже при успешном подборе пары логин-пароль защититься от ущерба, необходимо внести соответствующие изменения в настройки сценариев маршрутизации. Часто АТС в организациях настроены таким образом, чтобы звонок совершаемый через 8, через 0 или через какой-то другой символ, выходил на городские линии, в противном случае номер считается внутренним и маршрутизируется во внутренний номерной план. Такая настройка является типовой и привычной для большинства пользователей России. Именно это и дает возможность атакующим подобрать символ, открывающий выход на городские линии, чтобы потом совершать звонки на короткие и платные номера, международные номера, сервисные номера. Для того, чтобы закрыть атакующим такую возможность, необходимо использовать другой принцип разделения номеров внутреннего номерного плана и номеров, набираемых по линиям операторов связи, а именно маршрутизацию по длине номера. Это позволит исключить возможность выходить на линии операторов связи с короткими номерами, а также с номерами маска которых не соответствует нумерации вашей страны или стран, в которые вы совершаете звонки. Все трехзначные или четырехзначные вызовы должны отправляться только во внутренний номерной план. Принцип разделения маршрутизации вызова на основании длины номера внутренний номерной план и на линии операторов показан на рисунке. В компоненте Меню2 в выражении вычисляется длина номера и в зависимости от её соответствия указанным значениям маршрутизируется на компоненты Уведомление2 (для трехзначных внутренних номеров), на Уведомление 3 (для одиннадцатизначных федеральных номеров) и на Уведомление 4 (для всех остальных номеров). При необходимости стоит сделать исключение для номеров экстренных служб, например 01, 02, 03, 04, 112.
Перед выходом на линии операторов связи полезно по маске отрезать возможность набора любых номеров, кроме тех, на которые разрешено совершать звонки. Например если вы работаете только по России, на городские номера то нужно отклонить номер, если он содержит длину не равную 11 цифрам, если первая цифра отличается от 7 или 8 (по условиям вашего провайдера), а также если первые 4 цифры соответствуют принятой в России маске платных и служебных номеров. В помощь нам нормативный документ Приказ Министерства информационных технологий и связи РФ от 17 ноября 2006г. N 142 "Об утверждении и введении в действие Российской системы и плана нумерации" (с изменениями от 29 декабря 2008 г.) Согласно нему определены коды и принцип нумерации, действующие в Российской Федерации. Нас в первую очередь в этом документе интересует таблица № 4.
Таблица N 4. Перечень назначенных кодов доступа к услуге электросвязи (КДУ) Наименование услуги электросвязи 1. 800 Бесплатный вызов (FPH - Freephone) 2. 801 Вызов с автоматической альтернативной оплатой (ААВ - Automatic alternative billing) 3. 802 Вызов по кредитной карте (ССС - Credit card calling) 4. 803 Телеголосование (VOT - Televoting) 5. 804 Универсальный номер доступа (UAN - Universal access number) 6. 805 Вызов по предоплаченной карте (РСС - Prepaid card calling) 7. 806 Вызов по расчетной карте (АСС - Account card calling) 8. 807 Виртуальная частная сеть (VPN - Virtual private network) 9. 808 Универсальная персональная связь (UPT - Universal personal Telecommunication) 10. 809 Услуга за дополнительную оплату (PRM - Premium rate) 11. 881 - 899 Перспективные коды услуг 12. 970 Доступ к услугам связи по передаче данных 13. 971 Доступ к телематическим услугам связи
Эта таблица показывает какие коды необходимо закрыть, для того чтобы защититься от "своих мошенников" В приведенном примере показан принцип исключения номеров из набора по маске. Так в компоненте Меню 3 организовано определение второй, третьей и четвертой цифры набираемого федерального номера, соответствующих коду города, коду мобильного оператора или коду доступа к услуге электросвязи. Возможные значения, набор которых надо ограничить, маршрутизируются на компонент Обрыв связи. Остальные значения маршрутизируются на компонент выхода на внешние городские линии.
Следует иметь в виду, что система Oktell может иметь множество сценариев, каждый из которых может содержать компонент, обеспечивающий выход на линии операторов связи. В этом случае логично организовать один сценарий и осуществлять необходимые проверки в нем. При этом из остальных сценариев вместо компонента выхода на линии операторов необходимо организовывать переход в сценарий, осуществляющий проверку набираемого номера на безопасность.
Звонок на ваш внешний номер с целью нахождения комбинации для переключения на свой платный номер
Зафиксирован следующий случай. Операторы колцентра стали получать на свои SIP телефоны звонки, у которых CallerName "unknown". Звонки вдруг начали иметь массовый характер. Сбой длился до перезагрузки сервера минут через 20 после начала.
В TRN логе сервера были обнаружены входящие INVITE запросы, содержащие в качестве callername тот самый "unknown". Таких запросов за 20 минут насчиталось не так много - порядка 40 штук. Вот пример этого запроса (без SDP)
13:43:53:233 2828 READ -- Transport READ: RCV: 994 bytes from 91.217.178.194:5060: UDP interface 192.168.0.8:5060 INVITE sip:84793392818980@89.222.248.82 SIP/2.0 Via: SIP/2.0/UDP 91.217.178.194;branch=z9hG4bKjgd1d1NPa60j From: "unknown" <sip:unknown@91.217.178.194>;tag=Cr2EwJ5d2l To: <sip:84793392818980@89.222.248.82> CSeq: 101 INVITE Call-ID: aJf946e55db4dKcjt7PGlLfolhxFba0o@91.217.178.194 Contact: <sip:unknown@91.217.178.194> User-Agent: mErPefSzRrt0b5XWLjuw Max-Forwards: 70 Allow: INVITE, ACK, CANCEL, BYE Content-Type: application/sdp Content-Length: 524
Благодаря лог-журналу и сервису geo-ip было зафиксировано, что точка отправки - IP-адрес: 91.217.178.194, Страна: Сейшельские острова (SC).
Обратите внимание на User-Agent. Все запросы имеют разные случайные комбинации символов в качестве User-Agent - это прямым текстом указывает на своеобразную атаку.
- User-Agent: yLEscQtEtQIv447WgsnO
- User-Agent: Fpu9pgg6BziUJSi4Rffz
- User-Agent: vB612yYtKknxm5Xe2gkh
Цель атаки - пробить сервер на предмет обнаружения дыр в сценариях маршрутизации и найти выход наружу. Несуразные номера - суть комбинации DTMF, отправляемые в сценарий на последовательный разбор:
- 84793392818980
- +442034119816
- +00442034119816
- 000442034119808
- 001100442034119745
- 011*442034119812
- 9999442034119820
Поскольку данный вид атаки строится не на подборе регистрационных данных к аккаунтам внутренних sip-телефонов, а прямыми вызовами снаружи через входящие внешние звонки, необходимо просто выполнить одно или несколько из действий:
- Настроить firewall, запретив звонки с неизвестных адресов (в соответствии с используемой политикой маршрутизации).
- Не использовать без необходимости шлюз "без регистрации", принимающий все неизвестные входящие. В случае же необходимости, оставлять на нем 1-2 транка (в соответствии с ожидаемым количеством корректных неизвестных звонков).
- Поставить в главном сценарии IVR входящей маршрутизации проверку на запрашиваемые внешние номера (CalledID), и рубить левые соединения.
- Убедиться, что "неизвестные" звонки снаружи через IVR не могут автоматически попасть наружу на провайдера и предоставить злоумышленникам доступ к ТФОП, минуя операторов.
- По возможности не организовывать бесконечный цикл ожидания при переключениях внешних звонков. Автоматические системы атак не разорвут соединение самостоятельно и будут ждать до упора, занимая транк. Во всяком случае можно оценить кому это нужно, а кто под подозрением.
- Убедиться, что все телефоны имеют сложные пароли (на случай, если вдруг начнется атака подбора регистрационных данных).
В данном случае система не поддалась взлому, так как все звонки снаружи были замкнуты на секретарей. Но то, что все транки были заняты и сервер лишился возможности производить полезную работу - результат неполной защиты. Ограниченное количество транков привело к тому, что число звонков явилось небольшим. Остальные отбивались из-за нехватки транков в шлюзе для неизвестных входящих. Если бы шлюз для приема неизвестных входящих не использовался, атака бы не состоялась вовсе. Если бы в шлюзе для приема неизвестных входящих использовалось 2 транка вместо 40, и шлюз был бы обособленной единицей в карте сети, то работа бы не парализовалась.
Можно держать сервер на внешнем IP-адресе, можно реализовывать на нем произвольные сервисы, обслуживать все неизвестные звонки, но при этом следует помнить о возможных типах атак и предпринимать ограничения, с ними связанные. Мы рекомендуем выстраивать систему безопасности вокруг АТС по возможности в соответствии с принципом: "разрешить тем, кому можно", а не "запретить тем, кому нельзя".
В версиях Oktell начиная с 130130 реализована возможность включения автоматической блокировки исходящих звонков на несанкционированные внешние номера. Используя ее даже неотфильтрованный в сценарии исходящий вызов не будет пропущен системой, если не удовлетворяет разрешенным условиям. Возможны варианты внесения запрещенных номеров и масок, а также указания разрешенных масок.
Помните, что любая уязвимость будет рано или поздно найдена атакующей стороной!