Защита ip телефона от прослушки
IP-телефонию все чаще начинают применять в компаниях. Она повышает эффективность ведения бизнеса, позволяет осуществить многие прежде невозможные операции (например, интеграцию с CRM и другими бизнес-приложениями, создание эффективных call-центров и т. п.), а также снизить издержки на построение и эксплуатацию телекоммуникационной инфраструктуры и совокупную стоимость владения системой.
Более того, ведущие производители рынка телефонии перестали вкладывать деньги в исследования традиционной телефонии - только в IP-телефонию. Однако ее активное развитие сдерживается слухами об ее низкой безопасности. Попробуем развенчать некоторые сложившиеся мифы о незащищенности IP-телефонии.
- IP-телефоны, подключаемые к локальной сети и предоставляющие помимо самих звонков широкий спектр дополнительных сервисных возможностей. Например, с телефона на своем рабочем месте я могу принять одновременно несколько звонков, получить доступ к корпоративному и персональному телефонному справочнику, узнать расписание поездов и самолетов или прогноз погоды, уточнить персональное расписание встреч, а также просмотреть электронную и прослушать голосовую почту. Надо отметить, что IP-телефоны могут быть выполнены и в виде программного решения, устанавливаемого на компьютер пользователя (например, на ноутбук);
- сервер управления, отвечающий за установление телефонных соединений и обеспечивающий ряд дополнительных административных функций;
- голосовой шлюз, решающий задачу интеграции инфраструктуры IP-телефонии с имеющимися в компании системами традиционной телефонии и выход в телефонные сети общего пользования (ТфОП);
- голосовые приложения, облегчающие пользователям решение бизнес-задач, - голосовая почта, голосовые меню, система управления звонками для секретарей и операторов, персональная система управления звонками, связанная с личным расписанием сотрудника, система проведения аудиоконференций, интеллектуальные центры обработки вызовов и т. п.
Каждый из этих компонентов может стать мишенью для хакеров, и поэтому каждый из компонентов должен содержать в себе развитые механизмы защиты. Учитывая, что разные производители по-разному подходят к решению этого вопроса, я
остановлюсь на подходе только одного из них - компании Cisco Systems и ее архитектуры AVVID (Architecture for Voice, Video and Integrated Data). И этот выбор не случаен. По данным отчета "WorldWide Enterprise Voice Market: Q2 CY2004" консалтинговой фирмы Synergy Research Group, компания Cisco захватила четыре первых места по продаже различных компонентов IP-телефонии.
Итак, начнем развенчание мифов.
Миф 1. IP-телефония не защищает от подслушивания
"Продвинутые" решения IP-телефонии используют несколько технологий и механизмов, обеспечивающих конфиденциальность телефонных разговоров. Во-первых, это направление голосового трафика в выделенный сегмент сети и разграничение доступа к голосовому потоку путем использования правил контроля доступа на маршрутизаторах и межсетевых экранах. Во-вторых, весь голосовой трафик может быть защищен от несанкционированного прослушивания с помощью технологии построения виртуальных частных сетей (VPN). Протокол IPSec позволяет обезопасить телефонный разговор, осуществляемый даже через сети открытого доступа, например Интернет.
И наконец, некоторые компании реализовали в своих IP-телефонах специально разработанный для обеспечения конфиденциальности голосового потока протокол SecureRTP (SRTP), не позволяющий посторонним проникнуть в тайну телефонных переговоров.
Миф 2. IP-телефония подвержена заражению червями, вирусами и троянцами
Для защиты инфраструктуры IP-телефонии от заражения различными вредоносными программами используется целый ряд защитных мер, позволяющих построить эшелонированную оборону, препятствующую не только внедрению, но и распространению червей, вирусов, троянских коней и других типов вредоносной "фауны".
Первой линией обороны является применение наряду с антивирусами межсетевых экранов и систем обнаружения и предотвращения атак, разграничивающих доступ к инфраструктуре IP-телефонии. Вторая линия обороны строится на использовании систем предотвращения атак и антивирусов на оконечных узлах, участвующих в инфраструктуре IP-телефонии.
Последняя по счету, но не последняя по важности линия обороны - инициатива Network Admission Control. В рамках этой инициативы все не соответствующие политике безопасности (в том числе с неустановленными или неактуальными антивирусным ПО, "заплатками" и т. п.) рабочие станции и серверы не смогут получить доступ к корпоративной сети и, в частности, к сегменту IP-телефонии и нанести ущерб ее ресурсам.
Для незащищенных узлов будет доступен только специально выделенный карантинный сегмент сети, в котором они смогут получить последние обновления для своего антивируса, "заплатки" для ОС и т. п.
Миф 3. IP-телефония не защищает от подмены телефонов и серверов управления
Для защиты от устройств, пытающихся замаскироваться под авторизованные IP-телефоны или несанкционированно подключенных к сетевой инфраструктуре, можно и нужно использовать не только уже упомянутые выше правила контроля доступа на маршрутизаторах и межсетевых экранах, но и развитые средства строгой аутентификации всех абонентов инфраструктуры IP-телефонии (включая сервер управления телефонными соединениями), для подтверждения подлинности которых используются различные стандартные протоколы, включая 802.1x, RADIUS, сертификаты PKI X.509 и т. д.
Миф 4. Злоумышленник с административными правами может нарушить функционирование инфраструктуры IP-телефонии
В "серьезных" серверах управления предусмотрены расширенные возможности по наделению системных администраторов только теми правами, которые им нужны для выполнения своих обязанностей. К таким правам могут быть отнесены: доступ к конкретным настройкам только на чтение, полное отсутствие доступа к ним, доступ на изменение и т. д.
Кроме того, все производимые администратором действия должны фиксироваться в специальном журнале регистрации и могут быть проанализированы в любой момент в поисках следов несанкционированной активности.
Поскольку инфраструктура IP-телефонии является достаточно разветвленной, то управление конфигурацией IP-телефонов и взаимодействие их с сервером управления должно осуществляться по защищенному от несанкционированного доступа каналу, позволяющему предотвратить любые попытки прочтения или модификации управляющих команд. Для защиты канала управления могут использоваться различные протоколы - IPSec, SSL, TLS и т. д.
Миф 5. IP-телефонию легко вывести из строя
- разделение корпоративной сети на непересекающиеся сегменты передачи голоса и данных, что предотвращает появление в "голосовом" участке распространенных атак, в том числе и DoS;
- специальные правила контроля доступа на маршрутизаторах и межсетевых экранах, защищающих периметр корпоративной сети и отдельные ее сегменты;
- системы предотвращения атак на узлах;
- специализированные системы защиты от DoS- и DDoS-атак;
- специальные настройки на сетевом оборудовании, предотвращающие подмену адреса, часто используемую при DoS-атаках, и ограничивающие полосу пропускания, не позволяющую вывести из строя атакуемые ресурсы большим потоком бесполезного трафика.
Миф 6. К IP-телефонам можно осуществить несанкционированный доступ
Сами IP-телефоны содержат целый ряд специальных настроек, препятствующих несанкционированному доступу к ним. К таким настройкам можно отнести, в частности, доступ к функциям телефона только после предъявления идентификатора и пароля или запрет локального изменения настроек и т. д.
С целью предотвращения загрузки на IP-телефон несанкционированно модифицированного ПО и конфигурационных файлов их целостность контролируется электронной цифровой подписью и сертификатами X.509.
Миф 7. Сервер управления можно перегрузить большим числом звонков
Максимальное число звонков в час на один сервер управления составляет от 100 000 (в зависимости от конфигурации) до 250 000 при использовании кластера управляющих серверов. При этом администратор может использовать специальные настройки, ограничивающие число входящих звонков необходимым значением.
И наконец, в случае потери связи с одним из серверов управления возможна автоматическая перерегистрация IP-телефона на резервном сервере.
Миф 8. В IP-телефонии легко совершить мошенничество
- заблокировать звонки на определенные группы номеров и с них;
- заблокировать возможность переадресации звонков на различные типы номеров - городские, мобильные, междугородные, международные и т. д.;
- отфильтровывать звонки по различным параметрам и т. д.
Все эти действия осуществляются независимо от того, с какого телефонного аппарата абонент звонит. Это реализуется путем аутентификации каждого абонента, получающего доступ к IP-телефону. Если пользователь не проходит процесс подтверждения своей подлинности, то он может звонить только по заранее определенному списку телефонных номеров, например в скорую помощь, милицию или внутренний отдел поддержки.
Миф 9. Традиционная телефония более защищена, чем IP-телефония
Это самый распространенный миф в области телефонии. Традиционная телефония, разработанная десятилетия назад, обеспечивает более низкий уровень защищенности, чем новая и более совершенная технология IP-телефонии.
В традиционной телефонии гораздо легче подключиться к чужому разговору, подменить номер, "наводнить" звонками и произвести множество других угроз, даже не имеющих аналогов в IP-телефонии (например, war dialing). Защита традиционной телефонии обеспечивается гораздо более дорогими средствами и механизмами, чем в IP-телефонии, в которой эти средства встроены в сами компоненты этой технологии.
Например, для защиты от прослушивания традиционная телефония использует специальные устройства - скремблеры, централизованное управление которыми невозможно; не говоря уже о дороговизне их приобретения и установки перед каждым телефонным аппаратом.
Вопросы безопасности новых информационных технологий (а к ним относится и IP-телефония) сейчас находятся в центре внимания многих. Никто не хочет, внедряя у себя новомодное решение, помогающее бизнесу, привносить в компанию и новые угрозы. Поэтому сейчас информационная безопасность становится во главу угла при выборе новых ИТ-систем. Этой теме посвящаются и различные публикации.
Например, совсем недавно известный журнал NetworkWorld совместно с независимой тестовой лабораторией Miercom провели полномасштабное исследование защищенности ряда известных решений для построения сетей IP-телефонии. С его результатами можно ознакомиться на сайте NetworkWorld. В заключение хочу отметить, что, несмотря на слухи, циркулирующие в среде ИТ-специалистов, насчет низкой защищенности IP-телефонии, на самом деле эта технология гораздо более защищена, чем ее традиционная "сестра". При этом стоимость защиты существенно ниже, а управление намного удобнее и эффективнее, чем в привычной нам телефонии.
Отсюда можно сделать вывод: переход к IP-телефонии, предоставляющей гораздо более привлекательные для бизнеса услуги и функции, - всего лишь вопрос времени. И первый, кто поймет это и осуществит его, станет лидером в своем сегменте рынка.
В современном мире информация является одним из ценнейших ресурсов, поэтому ее защита – важная задача. Немалую роль в работе организации любого уровня играют телефонные переговоры. В силу возрастающей популярности IP-телефонии, все острее встает вопрос обеспечения ее безопасности в общем и конфиденциальности разговоров в частности.
Знание основных источников опасности для сетей IP-телефонии, а также понимание методов устранения этих угроз поможет сохранить репутацию и финансовые ресурсы компании. Не смотря на то, что в статье описаны решения под бесплатную платформу Asterisk, проблематика актуальна для любых других платформ IP-телефонии.
Основные виды угроз для VoIP-сетей:
- Перехват и манипулирование данными
Наиболее часто встречаемая уязвимость телефонных сетей, особенно опасная для IP-телефонии. В случае применения IP-телефонии злоумышленнику не нужен физический доступ к линии передачи данных. Находящееся внутри корпоративной сети устройство перехвата, скорее всего, может быть обнаружено, внешнее прослушивание отследить практически невозможно. Кроме того, перехваченные данные или голос могут быть переданы далее с изменениями. В таких условиях весь незашифрованный голосовой поток необходимо считать небезопасным.
- Подмена и взлом пользовательских данных
Отказ от использования или упрощение механизмов аутентификации и авторизации в IP-телефонии открывает для злоумышленника возможность не санкционированно получить доступ к системе, подменив данные о пользователе своими. Возможен также взлом учетных данных пользователей посредством перебора или прослушивания незащищенных каналов связи. Подобная уязвимость может быть использована для совершения дорогостоящих звонков за счет жертвы, сводя на нет всю возможную выгоду от использования IP-телефонии. Также эта брешь в безопасности может применяться для приема звонков, предназначенных взломанной либо записи перехваченных звонков на носители злоумышленника с целью применения данной информации в корыстных целях.
Одной из разновидностей атак является «отказ в обслуживании» (Denial of Service, DoS). Эта атака нацелена на превышение предельной нагрузки на систему большим количеством коротких звонков или информационного мусора. Без постоянного отслеживания признаков подобных атак и применения пассивных средств защиты, это приводит к тому, что серверы IP-телефонии не справляются с возросшей нагрузкой и не в состоянии обслуживать подключенных абонентов.
Безопасность IP-телефонии – комплексный подход!
При проектировании любой коммуникационной системы важно понимать, что ни одно из самостоятельных технических решений безопасности не в состоянии обеспечить абсолютную защиту от всех возможных угроз.
Проанализировав основные источники угроз безопасности IP-телефонии, можно выделить ключевые критерии защищенности:
Необходимость обеспечения защиты траффика IP-телефонии для предотвращения перехвата или прослушивания телефонных звонков, внесения изменений в передаваемую информацию, кражи учетных данных пользователей.
Обеспечение уверенности, что передаваемая информация не подвергается правке со стороны неавторизованных пользователей, что запросы на выполнение определенных задач или функций (например, совершение звонка или внесение изменений в настройки системы IP-телефонии) инициированы авторизованными пользователями или приложениями.
Бесперебойное функционирование корпоративной системы IP-телефонии в условиях DoS-атак, различных «червей», «вирусов» и т.п.
Как защитить IP-телефонию?
Рассмотрим наименее защищенный и, при этом, один из самых распространенных примеров реализации IP-телефонии.
Сервер телефонии на базе IP-АТС Asterisk имеет прямой выход в сеть интернет для обслуживания удаленных филиалов и связи с SIP-провайдером, предоставляющим доступ к внешним линиям связи. Аутентификация пользователей происходит по IP-адресам.
Решение задач информационной безопасности должно быть комплексным, поскольку каждый способ защиты не только закрывает свою часть информационного периметра, но и дополняет другие решения.
Настройка сервера телефонии
Последним рубежом защиты является сам сервер IP-телефонии. Существует несколько классических методов защиты сервера от атак.
Получение учетных данных методом перебора (bruteforce) требует значительных затрат времени и вычислительных ресурсов, усложнение паролей позволит сделать данный метод атак нецелесообразным Разрешение на совершение исходящих звонков имеют только пользователи системы. Этой настройкой можно отсечь попытки позвонить извне без предварительной авторизации По умолчанию Asterisk выдает одну ошибку о неверном пароле для существующего аккаунта и другую для несуществующего аккаунта. Существует множество программ для подбора паролей, поэтому злоумышленнику не составит труда проверить все короткие номера и собирать пароли лишь к существующим аккаунтам, которые ответили «неверный пароль» Использование систем блокировки доступа после неудачных попыток регистрации Просмотр отчетов системы на предмет обнаружения попыток взлома позволят выделить и блокировать IP-адрес атакующего. Таким образом, можно сократить количество мусорного SIP трафика и защититься от множественных попыток взлома Ограничение направлений звонков, доступных абонентам, применение схемы «запрещено все, кроме разрешенного» В случае получения злоумышленником учетных данных пользователя системы, он сможет совершать звонки только по определенным направлениям. Это позволит избежать несанкционированного совершения дорогостоящих международных звонков Регулярные проверки системы на предмет попыток взлома, контроль параметров Организация системы мониторинга состояния системы позволит улучшить качество IP-телефонии и отметить типовые для данной конфигурации параметры. Отклонения этих параметров от полученных типовых значений поможет выявить проблемы с оборудованием, каналами связи и выявить попытки вторжения злоумышленниковПрименение межсетевых экранов
Межсетевой экран пропускает исходящий трафик от сервера телефонии к SIP-провайдеру и фильтрует входящий по определенным правилам. Рациональным решением можно считать закрытие на межсетевом экране всех сетевых портов для IP-телефонии, кроме необходимых для ее корректной работы и администрирования. Этот же метод защиты целесообразно применять на самом сервере телефонии, чтобы защитить его от внутренних атак.
Таким образом, сервер телефонии доступен из внешних сетей только по определенным служебным портам, подключение к которым, из соображений безопасности, будет выполняться с применением шифрования.
Шифрование телефонных разговоров
Для защиты конфиденциальных переговоров и минимизации возможности попадания конфиденциальной или коммерческой информации в руки злоумышленника необходимо защитить передаваемые по открытым каналам связи данные от перехвата и прослушивания.
Поскольку для совершения звонка клиент и сервер предварительно обмениваются служебными данными для установления соединения, данную проблему можно разделить на две составляющих – защиту служебных данных IP-телефонии и защиту голосового трафика. В качестве средства защиты могут быть использованы протокол TLS (Transport Layer Security) для защиты SIP сигналов и протокол SRTP (Secure Real Time Protocol) для защиты голосового трафика.
TLS — криптографический протокол, обеспечивающий защищённую передачу данных между узлами в сети, является стандартным методом для шифрования SIP-протокола. TLS обеспечивает конфиденциальность и целостность передаваемой информации, осуществляет аутентификацию.
После установления защищенного соединения начинается передача голосовых данных, обезопасить которые позволяет применение протокола SRTP.
Протокол SRTP считается одним из лучших способов защиты IP телефонии на базе IP-АТС Asterisk. Основное преимущество этого протокола – отсутствие какого-либо влияния на качество связи. Схема работы протокола SRTP выглядит так: каждому совершаемому вами звонку присваивается уникальный код, который делает подслушивание разговоров неавторизированными в системе пользователями практически невозможным. Благодаря этому протокол SRTP выбирают как для обычных, так и для конфиденциальных звонков.
Не следует забывать о необходимости защиты подключения сервера телефонии к внешним каналам связи (мобильная связь, телефонные сети общего пользования).
Применение шифрованных туннелей VPN
В случае необходимости организации систем с повышенными требованиями к защите IP-телефонии, возможно подключение удаленных пользователей посредством виртуальных частных сетей (VPN). Содержание перехваченных пакетов, отправленных по шифрованным VPN туннелям понятно только владельцам ключа шифрования. Этот же метод применим для защиты подключений к поставщикам услуг IP-телефонии. На текущий момент многие VoIP провайдеры предлагают возможность VPN-подключения.
Однако технология VPN имеет ряд недостатков, ограничивающих ее применение:
- снижение качества связи из-за задержек, создаваемых шифрованием;
- повышенная нагрузка на каналы связи и оборудование, вызванная необходимостью шифрования;
- усложнение сетевой структуры.
Применение перечисленных методов защиты сервера позволит свести к минимуму вероятность взлома, а при успешном обходе системы безопасности минимизировать ущерб.
Абсолютную гарантию безопасности, к сожалению, не сможет дать ни один комплекс мер. Рассмотренные выше аспекты лишь частично решают задачу построения защищенной коммуникационной системы. На практике следует рассматривать всю инфраструктуру корпоративной сети, проводить глубокий анализ требуемого уровня защиты. Необходимо учитывать не только необходимость обеспечения безопасности IP-телефонии, но и выходов на внешние каналы связи (мобильная связь, телефонные сети общего пользования). Только такой подход, вместе с постоянным совершенствованием систем информационной безопасности, позволит создать надежную и защищенную систему.
Немного теории
Любой VoIP вызов состоит из 2-х основных составляющих: обмена сигнальной информацией и передачи между пользователями media потоков с голосом и/или видео.
На первом этапе, в процессе обмена сигнальной информацией, клиенты напрямую либо посредством сервера договариваются между собой о параметрах устанавливаемого вызова. Если связь устанавливается с помощью сервера, на основе сигнальной информации сервер авторизует клиента, устанавливает кто и кому звонит, проводит маршрутизацию и коммутацию. Благодаря данным сигнального протокола клиенты и сервер согласуют метод шифрования, используемые media кодеки, обмениваются ip адресами и номерами портов, где ожидается приём media и тд. Происходит это по таким протоколам как SIP, XMPP и прочим.
Непосредственно «разговор», то есть обмен между клиентами голосовыми данными, как правило происходит по протоколу RTP. Данные внутри передаются в том виде, о котором договорились клиенты и сервер на «сигнальном» этапе. Обмен голосом возможен как напрямую между клиентами, так и через сервер — посредник. Во втором случае сервер может помочь клиентам с прохождением NAT и в выборе кодеков.
Итак, что же собой представляет шифрованный VoIP вызов? Дальше речь пойдёт о SIP протоколе как наиболее популярном.
Как мы уже выяснили, звонок состоит из сигнальной и media частей, каждая из которых может быть зашифрована отдельно с применением специальных методов-протоколов. Для шифрования сигнальной информации применяется SIP\TLS, для шифрования «голоса» ZRTP и SRTP протоколы.
SRTP и ZRTP — это два разных способа шифровать RTP потоки. Принципиальное отличие между ними в том, что обмен ключами для SRTP происходит в сигнализации (на первой сигнальной стадии установки вызова). А для ZRTP непосредственно в начале обмена RTP пакетами (во второй, «медийной» части) по специальному протоколу, основанному на методе криптографии Диффи — Хеллмана.
Важно то, что для SRTP обязательным условием надёжности шифрования звонка является одновременное использование SIP\TLS + SRTP, иначе злоумышленнику не составит труда получить ключи (которые будут переданы по не шифрованному SIP) и прослушать разговор. В то время как для ZRTP это не важно, RTP поток будет надёжно зашифрован не зависимо от того, шифруется сигнализация или нет. Более того протокол умеет определять наличие «man in the middle» (в том числе серверов услуг!) между непосредственно говорящими клиентами. Это позволяет быть уверенным в том, что разговор невозможно прослушать, по крайней мере с точки зрения прослушивания сети/среды передачи данных.
Схема подключения SIP клиентов с различными настройками шифрования:
Можно выделить следующие схемы установки шифрованного звонка:
-
Оба пользователя используют SIP\TLS и SRTP. В этом случае обмен ключами для шифрования media происходят по защищенному сигнальному протоколу. Предполагается доверие к серверу, участвующему в установке связи. Посторонние не могут получить доступ ни к сигнальной информации, ни к голосовым данным. Недостаток в том, что пользователь не уведомлен на уровне протокола (клиента) и не убежден, что второй пользователь также использует шифрованное подключение к серверу.
Настройка сервера
Дальше необходимо настроить используемые кодеки и методы шифрования. Для этого нужно нажать значок с шестерёнкой слева от SIP идентификатора. Я планирую использовать SIP клиент (CSipSimple) на смартфоне и хочу использовать метод шифрования ZRTP поэтому в "basic" вкладке настроек выбираю кодеки G729 и SILK, а во вкладке "protection" ZRTP метод.
Вы можете выбрать другие параметры. Важно только заметить, что настройки для SIP аккаунта в интерфейсе услуги должны соответствовать настройкам в SIP клиенте. Это необходимо для обеспечения корректной связи между клиентами с разными настройками кодеков и шифрования. Так же не забываем сохранять созданную конфигурацию.
В целом, для настройки простейшей конфигурации этого достаточно. Можно настраивать SIP клиенты и звонить между ними, набирая их номера 1000, 1001, 1002, 1003. При желании к этому можно добавить общий SIP шлюз для звонков в телефонную сеть и настроить соответствующую маршрутизацию звонков. Но, в таком случае, это уже несколько иная схема использования услуги, которая требует скорее другого рода мер безопасности, нежели шифрование трафика до шлюза.
Перейдём к настройке SIP клиентов
Как я уже сказал, я планирую использовать CSipSimple на андроид смартфонах. Первым делом нужно установить клиент, используя стандартный Play Market, либо скачать на сайте производителя, который кстати открывает исходники своего клиента, что в отдельных случаях может иметь едва ли не сакральное значение. Установить нужно сам клиент и дополнительно кодеки. У меня установлены «CSipSimple», «Codec Pack for CSipSimple» и «G729 codec for CSipSimple». Последний платный и использовать его не обязательно, бесплатные SILK и OPUS обеспечивают достойное качество звонков по 3G сетям.
Запускаем CSipSimple и переходим в интерфейс настройки. Выбираем мастер «Вasic» и настраиваем, используя данные из веб интерфейса. Должно получиться так:
Далее в общих настройках CSipSimple в разделе "Медиа -> Аудиокодеки" нужно выбрать предпочитаемые кодеки. Для звонков через 3G я рекомендую использовать SILK, OPUS, iLBC, G729. Поскольку настройки в интерфейсе сервера и в интерфейсе клиента должны совпадать, а на сервере я выбрал SILK и G729, то в списке аудиокодеков CSipSimple я ставлю галочки только напротив этих кодеков, а остальные снимаю.
В разделе клиента "Сеть -> Безопасный протокол" нужно выбрать желаемые параметры шифрования. Я включаю только ZRTP. Остальное оставляю выключенным. При желании можно использовать SIP\TLS — нужно учитывать что сервер ожидает TLS соединения на 443-м порту. Это сделано специально для слишком умных операторов мобильной связи, блокирующих стандартные для VoIP порты.
Так же нужно учитывать, что SRTP и ZRTP не всегда совместимы и крайне желательно выбирать в клиенте только один из них.
Совершение звонков с использованием ZRTP
После того, как все настройки выполнены, совершим несколько звонков для того чтоб продемонстрировать работу CSipSimple в звонках между пользователями с различными настройками безопасности.
Сразу после выполнения инструкции звонок SIP пользователя 1001 пользователю 1000 будет выглядит таким образом.
CSipSimple показывает, что в звонке участвует MitM сервер, к которому подключены оба клиента. Параметр EC25 означает, что используется протокол Диффи-Хеллмана на эллиптических кривых с параметром 256 бит. AES-256 — алгоритм симметричного шифрования, который применяется. Статус ZRTP — Verifyed означает, что контрольная строка SAS подтверждена пользователем.
Изменим режим передачи медиа в настройках ppbbxx для обоих клиентов. Установка direct media = yes позволит передавать голос напрямую. В этом случае стороны видят одинаковые строки SAS, используется алгоритм симметричного шифрования Twofish-256. Использование ZRTP в этом режиме требует от клиентов намного большей свместимости и менее надежно с точки зрения установки связи, поскольку сервер не участвует в передаче данных. Обязательно использование одинаковых аудиокодеков на всех клиентах и корректная работа NAT.
Если у SIP пользователя 1001 шифрование не установлено, тогда как 1000 использует ZRTP, то второй клиент покажет, что зашифрованная передача голоса происходит только до сервера (End at MitM).
Корпоративная АТС на базе Asterisk предоставляет широкие возможности по обеспечению переговоров в IP-сетях, позволяет более эффективно управлять организацией и существенно экономить на звонках. Но из-за слабой защищенности или неправильной настройки VoIP-сервис может стать причиной серьезных финансовых потерь. В этой статье мы рассмотрим, как этого не допустить.
Как и любое сетевое приложение, VoIP-сервис подвержен «классическим» атакам, но есть своя специфика. Например, в случае DDoS не обязательно «заваливать» сервер SYN-запросами. Можно «вмешаться» в разговор, отправляя пустые пакеты, на обработку которых сервис будет затрачивать ресурсы, это приведет к задержкам, и разговор вести станет невозможно (атака Call tampering).
Причем взлом VoIP является одним из самых удобных способов монетизации. Так, найдя ошибку в сервисе, злоумышленник может совершать звонки на платные сервисы, «продавать линию» или рассылать аудиоспам. В разное время уязвимости приходилось срочно закрывать безопасникам из Cisco, разработчикам Skype и Asterisk, и таких примеров очень много. Еще одна специфическая проблема — голосовой фишинг и спам (SPIT — spam over Internet telephony или VAM — voice/VoIP spam). В первом случае пользователь вместо того, чтобы работать, слушает рекламу, во втором — абонент получает предложение позвонить на «сервисный» номер (вроде PayPal) для уточнения некоторых вопросов. В итоге он оплачивает разговор по увеличенному тарифу или раскрывает персональные данные. Спит и фишинг еще не стали массовым явлением, но уже замечены, и объемы увеличиваются. Их реализация сама по себе не сложна, требуется всего лишь подготовленный файл и программа дозвона (Asterisk + Spitter).
Еще один частый способ атаки — подбор логинов и паролей, а также перехват данных VoIP. Чтобы реализовать MITM, не обязательно находиться в той же сети, достаточно изменить DNS-запись или перехватить сеанс (SIP registration hijacking). Так как SIP использует UDP, это упрощает атаку. Злоумышленник вклинивается в процесс подключения к серверу, отправляя ложные сведения о клиенте в пакете SIP REGISTER, и регистрируется от имени пользователя. В последующем он пропускает через себя весь трафик. Дальнейшая обработка также не вызывает проблем — снифер Cain & Abel умеет извлекать аудио и сохранять в формат WAV.
Увы, защита VoIP не включается одной кнопкой и должна планомерно строиться на всех уровнях, начиная с сетевого уровня (iptables, IPS) и заканчивая правильной настройкой плана набора.
Традиционные межсетевые экраны не могут полностью противостоять специфическим атакам, поскольку они работают на транспортном уровне и не умеют «смотреть» внутрь пакета. Здесь нужны специализированные решения, относящиеся к классу NGFW (Next-Generation Firewall). Сегодня они представлены такими вендорами, как Check Point, Certes Networks, SonicWall. Хотя, например, свободно распространяемые IPS Snort/Suricata уже имеют ряд правил, позволяющих распознать атаки на VoIP.
Могут быть эффективными традиционные мероприятия по борьбе с DoS — регулировка трафика на маршрутизаторе, использование пограничных контроллеров сессий (SBC, session border controllers), правильная настройка сервера и приложения. Так, контроллеры SBC, являясь единой точкой входа и анализируя пакеты в реальном времени, способны предотвращать DDoS-атаки, распространение спама и вирусные эпидемии. Плюс некоторые реализации SBC умеют шифровать трафик, обеспечивая защиту от перехвата в WAN. Под VoIP рекомендуется выделять отдельные сети (физические или VLAN), это позволит скрыть голосовой трафик от пользователей сети и лучше контролировать QoS для VoIP. Хотя не следует считать эту меру панацеей, так как сниферы без проблем найдут трафик VoIP VLAN.
Что касается атаки MITM, то защита от нее давно уже отлажена. Это проверка МАС-адреса на файрволе, использование протокола контроля доступа и аутентификации IEEE 802.1x, шифрование потока. Шифрование, наряду с продвинутыми методами аутентификации и правильной парольной политикой, позволяет защититься от подбора пароля.
В настоящее время реализовано несколько вариантов: VPN, TLS/SSL, SRTP (Secure Real Time Protocol) или ZRTP (Z and Real-time Transport Protocol). Виртуальные сети наиболее популярны у провайдеров услуг, но VPN, увеличивая накладные расходы на передачу пакетов, нередко сами становятся причиной задержек. Да и не с каждым протоколом VPN можно обеспечить соединение удаленному пользователю в конкретных условиях. Кроме того, обычно шифруется канал только между VPN-серверами, а внутри конкретного сегмента сети сотрудники ведут переговоры по незащищенному каналу.
Теперь рассмотрим реализацию этих методов на примере Asterisk.
Оптимальным с точки зрения производительности является SRTP (RFC 3711), позволяющий шифровать (AES) медиапоток и обеспечивать проверку подлинности (HMAC-SHA-1) информации. Однако этот протокол не обеспечивает защиту процесса аутентификации, и необходимо дополнительно использовать сторонние инструменты вроде TLS/SSL. Связку SRTP + TLS/SSL можно легко организовать на Asterisk (с 1.8), FreeSWITCH, SIP-коммутаторе OpenSIPS и других подобных решениях. Кроме того, Asterisk и FreeSWITCH поддерживают протокол ZRTP, который специально разработан для VoIP Филиппом Циммерманном, создателем PGP (отсюда и первая буква Z в названии). Протокол обеспечивает безопасную аутентификацию и обмен данными, стандартизирован в RFC 6189. Во время инициализации ZRTP-звонка используется метод обмена ключами Диффи — Хеллмана, для аутентификации применяется SAS (Short Authentication String). Весь разговор шифруется, причем пара ключей генерируется для каждого сеанса автоматически, что очень удобно, так как позволяет легко встроить этот механизм в уже существующие продукты и не требуется инфраструктура PKI.
В дополнение к SRTP, в канальном драйвере chan_sip из состава Asterisk 11 реализована поддержка безопасного транспортного протокола DTLS-SRTP, предназначенного для передачи мультимедийных RTP-потоков c использованием шифрования, которая может быть задействована для абонентов, использующих WebRTC и SIP.
Конечно, с SRTP и ZRTP должны уметь работать и клиенты (софтофоны и аппаратные): Linphone (TLS, SRTP, ZRTP), Jitsi (TLS, SRTP, ZRTP), Blink (TLS, SRTP), MicroSIP (TLS, SRTP). Некоторая информация доступна на страничке. Сам Циммерманн предложил собственный софтофон Zfone, работающий по ZRTP (есть версии для Windows, Linux и OS X). В настоящее время Zfone находится в состоянии бета, но уже два года по техническим причинам его нельзя скачать с официального сайта.
Сервер Asterisk поддерживает TLS между серверами и сценарий клиент — сервер. Для активации TLS достаточно прописать в настройках ( sip.conf ) всего несколько команд:
В настройках клиента ставим transport=tls.
RSA-ключи, используемые для шифрования, можно сгенерировать при помощи команды openssl genrsa и специальных скриптов astgenkey ( astgenkey -n keyname ) или asttlscert (копируют ключи в /var/lib/asterisk/keys ). Последние не всегда доступны в пакетах или специальных дистрибутивах вроде Elastix, взять их можно на SVN-сервере.
Теперь подключение безопасно и подсмотреть регистрационные данные нельзя, хотя сами переговоры не шифруются. Штатный для Asterisk протокол IAX2, как и SIP, можно настроить на поддержку шифрования SRTP (AES128). Для этого необходимо добавить всего одну строку в конфиг iax.conf или sip.conf :
Перезапускаем настройки sip reload/iax2 reload , затем проверяем, загружен ли модуль:
Команда iax show peers должна показать метку (E) напротив подключенных клиентов, означающую, что шифрование активно. В журналах появится запись вида encrypt_frame: Encoding.
Настраиваем TLS
Попытки подбора паролей к SIP-аккаунтам давно уже не редкость, тем более что готовые инструменты лежат в свободном доступе, а простой скрипт пишется за день. Например, комплект утилит SIPVicious позволяет получить списки SIP в указанном диапазоне IP, рабочие расширения (extensions) и подобрать к ним пароль.
Все это приводит к необходимости использовать только устойчивые к взлому пароли, обязательно отключать демоаккаунты и расширения. Имя пользователя, прописываемое в user, не должно быть простым (вроде 101, 102. ) и совпадать с названием расширения.
И конечно, надо использовать TLS/SSL, как показано выше, поскольку большинство скриптов просто не поддерживают такую возможность. Гостевые вызовы отключаются в sip.conf одной строкой:
Хотя надо иметь в виду, что некоторые SIP-устройства не смогут устанавливать соединения при такой настройке.
Отключение анонимного вызова в Elastix
- 401 Unauthorized — несанкционированный доступ (только серверы регистрации);
- 404 Not Found — пользователь не найден;
- 404 Unknown user account — неизвестный логин и пароль;
- 407 Proxy Authentication Required — требуется авторизация для прокси-сервера.
Сканеры, определяющие расширения, анализируют эти ответы и таким образом выясняют, какие расширения доступны, впоследствии взломщик может попробовать подобрать к ним пароль, что, кстати, может заметно нагрузить сервер.
Но можно усложнить ему задачу, заставив сервер выдавать одну и ту же ошибку (401 Unauthorized) во всех случаях, для этого нужно внести запись:
По умолчанию сервер выдает полную информацию об используемой версии ПО, поэтому установим в sip.conf произвольные значения:
Сразу после установки в Asterisk доступно большое количество модулей (в Elastix, например, их 229), некоторые из них никогда не используются. Лишние следует убрать. Проверяем по команде module show и выгружаем — module unload chan_gtalk.so или, если постоянно, прописываем в modules.conf :
После установки Asterisk использует большое количество модулей
Следует ограничить возможность регистрации внутренних абонентов только с доверенных IP-адресов, задав для каждого экстеншна допустимый IP или диапазон, и задать МАС-адрес, если клиентское устройство стационарно.
Теперь подключение клиента будет приниматься только с 192.168.1.10. Аналогичные ограничения следует предусмотреть для AMI-интерфейса (Asterisk Manager Interface) в manager.conf .
Более сложные параметры доступа задаются при помощи ACL. В Asterisk 11 стали доступны именованные ACL (Named ACL), которые, в отличие от обычных ACL, не привязаны к определенным конфигурациям модуля, поэтому их можно использовать одновременно в нескольких модулях. Настройка NACL производится при помощи тех же Deny/Permit в acl.conf , затем нужный ACL просто подключается в расширении директивой acl.
Именованные ACL позволяют более тонко управлять доступом Настраиваем разрешенные IP-адреса
Желательно «заставить» сервер слушать только определенный интерфейс и изменить используемый порт по умолчанию, прописав в sip.conf следующие записи:
Для IAX настройки в iax.conf аналогичны (по умолчанию порт 4569). Изменение порта, конечно, при серьезном исследовании сети не спасет, но потребует дополнительной перестройки всех клиентов. Чтобы не возиться с этим, в некоторых ситуациях можно пробросить порт:
Хотя многие специализированные и самописные скрипты просто тестируют подключение на 5060 и, если он закрыт, игнорируют узел. А сканирование легко заблокировать при помощи IPS. И конечно же, файрволом следует прикрыть SIP-порты 5060/5061, чтобы они не светились наружу.
Что же делать сотрудникам, которые находятся вне LAN? Самые, наверное, простые и проверенные временем рекомендации: VPN или размещение VoIP-сервера с ограниченными возможностями в DMZ. Другой способ — организовать нечто вроде Captive-портала. Например, Travelin Man позволяет автоматически реконфигурировать Asterisk и iptables при подключении пользователя на специальную веб-страницу, после чего он может соединяться с SIP с указанными параметрами.
Еще один вариант — DISA (Direct Inward System Access), предоставляющий возможность через городской номер совершить дозвон до внутренних или внешних абонентов, хотя он подходит не для всех случаев.
Более экзотический способ — техника Port Knocking, позволяющая открыть нужный порт после выполнения определенной последовательности попыток подключения к закрытым портам. В Elastix, например, такая функциональность настраивается через веб-интерфейс.
Активация Port Knocking в Elastix
Это может привести к тому, что сотрудник или злоумышленник может позвонить куда угодно. Поэтому следует жестко прописывать все цифры международных кодов, городов или мобильных операторов, четко указывая, куда можно звонить:
Вложенные контексты или специальные конструкции позволяют ограничить звонки в определенных направлениях в нерабочее время. Вариантов здесь несколько:
Чтобы увидеть в журнале IP абонента, можно добавить в диал-план Noop(SIP packet from $) и далее автоматизировать бан таких хостов с помощью фильтра в fail2ban.
Если сервис все-таки взломали, перед детальным разбором инцидента можно ограничить абонента количеством одновременных соединений, добавив в расширение параметр call-limit=1.
Используемую систему биллинга лучше сразу настроить на резкое возрастание количества междугородних звонков и установить лимит по расходам на абонента.
В поставке специальных дистрибутивов можно найти аддоны, позволяющие автоматически обнаруживать и блокировать попытки мошенничества, защищать от атак, определять аномалии в вызовах. Например, в Elastix доступны Humbug Analytics, Mango Analytics и Anti-Hacker.
Полезные скрипты для настройки Asterisk: bit.ly/HzOcQ8
Повышаем безопасность всеми доступными средствами
В Asterisk используется специальный SIP Security Event Framework, позволяющий в том числе собирать информацию о проблемах безопасности. Подключив соответствующий журнал в MARKDOWN_HASH225a5355dbea6e4872626e2101b5ea79MARKDOWN_HASH директивой security_log => security, мы можем блокировать все попытки перебора пароля при помощи fail2ban.
Сервис VoIP — это сложное решение, и для его защиты следует применять комплексный подход, блокируя возможные угрозы на всех уровнях. Кроме прочего, следует побеспокоиться и о стандартных мероприятиях, таких как поддержание версии ПО и ОС сервера в актуальном состоянии, обновление прошивки и настройка безопасности оконечного оборудования.
Читайте также: