Asterisk™: будущее телефонии Второе издание
Шрифт:
Шифрование звука с помощью безопасного RTP
Если можно перехватывать пакеты, исходящие из системы Asterisk, значит, можно извлекать аудиоданные из RTP-потоков. Эти данные могут поставляться в автономном режиме в систему обработки речи, которая будет слушать ключевые слова, такие как «номер кредитной карты» или «пин», и предоставлять эти данные тому, кто заинтересован в них. Поток также может быть проанализирован на предмет встроенных DTMF-тонов, что представляет опасность, потому что многие сервисы запрашивают ввод пароля и информации кредитной карты через номеронабиратель. Также и в деловой сфере, имея возможность сбора и анализа аудиоданных, можно выведать стратегически важную информацию.
Использование безопасного RTP (Secure RTP, SRTP)
Спуфинг
В традиционной телефонной сети очень сложно действовать от лица кого-либо. Ваша деятельность может быть (и будет) отслежена, и полномочные органы быстро положат конец забавам. В мире IP намного проще сохранять анонимность. Поэтому несложно догадаться, что орды предприимчивых злоумышленников станут охотно звонить в компанию по выдаче кредитных карт или в банк от вашего имени. Если не будет придуман надежный механизм борьбы со спуфинг-мошенничес- твом [98] , мы быстро поймем, что не можем доверять звонкам по VoIP.
98
Спуфинг - мошенничество с использованием реквизитов солидных компаний, направленное на получение конфиденциальной информации с целью хищения денег. Как правило, с помощью компьютерных технологий имитируется реально существующий банковский сайт или он размещается на поддельном сайте; таким образом, вводимые обманутыми пользователями данные поступают на поддельный сайт.
– Примеч. науч.ред.
Что можно сделать
Первое, что надо помнить при рассмотрении вопросов безопасности в VoIP-системе, - VoIP основывается на сетевых протоколах, то есть анализ необходимо проводить с данной точки зрения. Мы не хотим
сказать, что должны игнорироваться традиционные меры защиты, используемые в телекоммуникациях, но необходимо обратить внимание на сеть, лежащую в основе.
Базовая безопасность сети
Самое эффективное, что можно сделать, - обеспечить защищенный доступ к сети телефонной связи. Применение межсетевых экранов и виртуальных локальных сетей (VLAN) - примеры того, как это можно реализовать. По умолчанию сеть телефонной связи должна быть доступной только для того, в чем есть необходимость. Например, если программные телефоны не используются, клиентские ПК не должны иметь доступа к сети телефонной связи.
Разделение речевого трафика и трафика данных. Если нет необходимости в передаче речи и данных по одной сети, возможно, будет выгодно разделить их (это может иметь также и другие преимущества, такие как упрощение конфигурации QoS). Не является чем-то из ряда вон выходящим полная реализация сети телефонной связи в абсолютно изолированной локальной сети, использующей существующую кабельную разводку CAT3 и заканчивающейся недорогими сетевыми коммутаторами. Это также может быть дешевле.
Демилитаризованная зона (DMZ). Размещение системы VoIP в демилитаризованной зоне может обеспечить дополнительный уровень защиты локальной сети, предоставляя при этом возможность соединения для соответствующих приложений. Если система VoIP будет подвергнута несанкционированному доступу, будет намного сложнее использовать ее для распространения атаки на остальную сеть, поскольку она не является доверенной. Но даже если развертывание системы выполняется в демилитаризованной зоне, любой необычный трафик, исходящий из системы, должен находиться под подозрением. Укрепление сервера. Укрепление сервера Asterisk является критически важным. Это обеспечивает не только преимущества по производительности (выполнение
Запуск Asterisk под учетной записью, не принадлежащей администратору, - важнейшая составляющая укрепления системы. Подробнее этот вопрос рассматривается в главе 11.
Шифрование
Даже несмотря на то что Asterisk до сих пор не обеспечивает полной поддержки SRTP, трафик VoIP можно шифровать. Например, между узлами связи может использоваться VPN. В этом случае необходимо исходить из затрат на обеспечение необходимой производительности,
но, как правило, это очень эффективный и относительно простой в реализации способ защиты трафика VoIP.
Физическая безопасность
Нельзя пренебрегать и физической безопасностью. Все оконечное оборудование (такое, как коммутаторы, маршрутизаторы и сама офисная АТС) должно размещаться в безопасном месте с возможностью доступа к нему только людей, имеющих на то специальное разрешение. На стороне пользователя (например, под столом) довольно сложно обеспечить физическую безопасность, но, если сеть отвечает только знакомым устройствам (например, если в DHCP все выдаваемые IP-адреса жестко привязаны к, MAC-адресам устройств, которые известны), риск неавторизованного вторжения можно несколько снизить.
Заключение
Если верить слухам, распространяемым в телекоммуникационной отрасли, можно подумать, что VoIP - это будущее телефонии. Но для Asterisk VoIP из области «это мы уже проходили». Для Asterisk будущее телефонии намного более захватывающее. Но мы обратимся к этому несколько позднее, в главе 15. В следующей главе мы собираемся углубиться в одну более революционную и мощную концепцию Asterisk: AGI (Asterisk Gateway Interface) - шлюзовой интерфейс Asterisk.
9
Шлюзовой интерфейс Asterisk (AGI)
Даже он, кому большинство из того, что другим людям кажется достаточно разумным, представляется довольно бестолковыми, полагал, что это было достаточно разумным.
– Дуглас Адамс «Лосось сомнений»
Шлюзовой интерфейс Asterisk, или AGI, предоставляет стандартный интерфейс, посредством которого внешние программы могут управлять диалпланом Asterisk. Как правило, сценарии AGI используются для реализации расширенной логики, соединения с реляционными базами данных (такими, как PostgreSQL или MySQL) и доступа к другим внешним ресурсам. Передача управления диалпланом внешнему сценарию AGI позволяет Asterisk без труда реализовывать задачи, выполнение которых в противном случае было бы сложным или невозможным. В данной главе рассматриваются основы использования AGI. Она не научит вас программировать, напротив, здесь предполагается, что читатель уже является достаточно квалифицированным разработчиком, чтобы понимать, как создаются AGI-программы. Если вы не знаете, как писать компьютерные программы, вероятно, эта глава не для вас. Пропустите ее и переходите к следующей.
По ходу данной главы будет написана AGI-программа с использованием разных языков программирования: Perl, PHP и Python. Однако обратите внимание, что, поскольку Asterisk предоставляет стандартный интерфейс для AGI-сценариев, эти сценарии могут быть написаны практически на любом современном языке программирования. Мы решили остановиться на Perl, PHP и Python, потому что эти языки чаще всего используются для программирования AGI.
Основы обмена информацией с AGI
AGI не реализует API для программирования. AGI-сценарии взаимодействуют с Asterisk по каналам связи (посредством описателей файла, выражаясь на языке программистов), которые известны как STDIN, STDOUT и STDERR. Большинство программистов знают эти каналы, но все- таки, на случай если вы не знакомы с ними, они будут рассмотрены здесь.