Интернет — прекрасная среда для общения. Общения при помощи писем, чата, голоса или видео. Если видеосвязь это достаточно ново, то телефоном люди пользуются уже сто лет. С прокладкой новых интернет-магистралей и развитием программ вроде интернета с воздушных шаров доступ в сеть будет в скором времени даже у пингвинов в Антарктиде. А раз есть такое покрытие, зачем использовать телефонные линии? Почему бы не пускать голос по интернет-каналам?
Одним из решений этой задачи является протокол SIP (Session Initiation Protocol). Это протокол с интересной историей, но сейчас мы коснемся только некоторых его особенностей. SIP — это протокол установления сеанса для последующей передачи данных; передает информацию в открытом виде. Среди данных могут присутствовать учетные данные абонента — логин, домен, пароль (в открытом или хешированном виде), а также многие другие интересные поля. Отметим, что в некоторых случаях аутентификация может отсутствовать вовсе (соединение настраивается на обоих сторонах как пара IP:port). Рассмотрим несколько угроз, возникающих при использовании протокола SIP, и способы эти угрозы реализовать.
Угрозы
Перейдем к анализу нехороших штук, которые можно делать с помощью протокола. Отметим, что для реализации некоторых атак злоумышленник должен находиться на пути трафика от клиента до сервера (или организовать MITM-атаку).
Кража учетных данных
Поскольку протокол передает данные в открытом виде, любой, кто имеет возможность «слушать» идущий от нас трафик, может узнать много всего интересного. К примеру, возьмем процесс аутентификации. Пароль в SIP хэшируется с использованием MD5, который, во-первых, уже давно настоятельно не рекомендуется к использованию вообще нигде, а во-вторых, может быть подобран (например, с помощью SIPcrack). Выглядит это примерно вот так:
Полученные учетные данные могут использоваться в различных интересных схемах. Если жертва является клиентом услуг Triple Play, злоумышленник может получить доступ ко всем сервисам, на которые подписан абонент. Что намного опаснее — полученный SIP-аккаунт может использоваться в мошеннических схемах с PRS-номерами, а также для прогона большого количества звонков по дорогим направлениям (суммы, которые абоненту придется заплатить за чужие разговоры, могут быть весьма и весьма значительными).
Поподробнее о подборе SIP-пароля: www.sipsorcery.com/mainsite/Help/SIPPasswordSecurity
Прослушка
Сам по себе SIP звук не передает. Для передачи полезной нагрузки (например, аудиопотока) используется протокол RTP (Real-time Transport Protocol). Протокол дружелюбен и не шифрует передаваемые данные. Тут немедленно возникает вопрос: не может ли человек, который сидит посередине и «по-дружески» прослушивает наш трафик, — прослушать и наш разговор? Вполне. Например, используя популярный в народе Cain, который не только любезно поможет осуществить MITM, но и сразу даст послушать перехваченный разговор. Полученную таким образом информацию очевидно можно использовать с целью шантажа или шпионажа.
Отслеживание звонков
Так как передаваемые SIP данные не шифруются, злоумышленник, имеющий возможность прослушивать пакеты, идущие от клиента-жертвы, может анализировать информацию о звонках, в том числе о том, кому и когда звонит жертва. В дальнейшем эта информация пригодится, к примеру, при использовании социальной инженерии.
Атака за NAT’ом
В случае если у клиента-жертвы нет белого IP-адреса, злоумышленник, имеющий общий с ним публичный адрес, получает возможность осуществлять звонки за счет жертвы. Такая ситуация может возникнуть, если интернет-провайдер предоставляет доступ к сети через NAT, за которым помимо легитимного абонента может находиться еще куча непонятного народа.
Подобное часто встречается в бизнес-центрах: множество небольших фирм проходят через NAT местного провайдера.
Как видно на картинке, в пришедшем к провайдеру пакете находится IP-адрес вызывающей стороны еще до трансляции (NAT), но это поле при установлении соединения не проверяется (проверяется белый IP-адрес), и там может быть как адрес легитимного абонента, так и адрес злоумышленника.
Выдача себя за провайдера (с помощью DNS)
Путем атаки на DNS-сервер клиента с помощью MITM-атаки или отравления кэша DNS (например, с помощью Kaminsky attack) злоумышленник может выдать себя за провайдера, проводя все звонки через свою систему.
Перенаправление звонков
Осуществив атаку типа MITM, злоумышленник имеет возможность перенаправлять звонки клиента на произвольный номер, в том числе на несуществующий (приводя к DoS).
Перехватывая INVITE-пакеты, злоумышленник отвечает на запрос пакетом с кодом 301 Moved Permanently, перенаправляя звонок.
Разрыв соединений
Злоумышленник, зная или подбирая поля CallID, FromTag, ToTag, имеет возможность разрывать активные сессии, отправляя заранее сформированные зловредные пакеты, содержащие SIP BYE-request (запрос на завершение соединения), например с помощью scapy.
Ложные вызовы
Так как SIP чаще всего использует протокол UDP, возможны различные спуфинг-атаки. Например, можно сгенерировать кучу запросов с вызовом абонента-жертвы. Это приводит к отказу в обслуживании АТС жертвы, парализуя всю систему телефонии.
Заключение
К сожалению, несмотря на то, что давно существуют методы защиты от большинства перечисленных угроз, все участники рынка — как операторы (что самое печальное!), так и их клиенты, — активно игнорируют меры безопасности. Поэтому watch your back — провайдер за тебя не подумает!
Автор: Илья Сафронов.
Автор: ptsecurity