07 Апр, 2023

Расширяемый протокол обмена сообщениями и присутствия (XMPP)

Penetration Testing as a service (PTaaS)

Tests security measures and simulates attacks to identify weaknesses.

XMPP (расширяемый протокол обмена сообщениями и присутствия) это открытый стандартный протокол связи, используемый для обмена сообщениями, информацией о присутствии и другими данными между двумя или более конечными точками связи по сети. Первоначально известный как Jabber, XMPP был разработан сообществом Jabber с открытым исходным кодом в 1999 году и с тех пор стал широко используемым протоколом для обмена мгновенными сообщениями, социальных сетей и инструментов совместной работы.

Общие порты XMPP

Port 5222: Это порт по умолчанию, используемый для соединений клиент-сервер по протоколу TCP.

Port 5223: Это порт по умолчанию, используемый для соединений клиент-сервер по протоколу SSL / TLS.

Port 5269: Это порт по умолчанию, используемый для соединений между серверами по протоколу TCP.

Port 5280: Это порт по умолчанию, используемый для веб-подключений по протоколу HTTP.

Port 5281: Это порт по умолчанию, используемый для веб-подключений по протоколу HTTPS.

Стандартные команды от неавторизованных пользователей

Наводнения присутствия: Отправка большого количества строк присутствия может перегрузить XMPP-сервер, что приведет к его замедлению или сбою.

Потопы сообщений: Отправка большого количества сообщений также может привести к перегрузке XMPP-сервера или нарушению связи.

Запросы на подписку: Неавторизованный пользователь может отправлять запросы на подписку другим пользователям, что может вызвать раздражение или путаницу.

IQ - строфы: IQ stanzas можно использовать для запроса информации с сервера или клиента XMPP, такой как информация о реестре или конфигурация сервера. Неавторизованный пользователь может использовать IQ stanzas для сбора информации о сервере или его пользователях.

Инструменты для использования протокола XMPP

Ручные Инструменты:

  • Pidgin: Популярный клиент обмена мгновенными сообщениями с открытым исходным кодом, поддерживающий несколько протоколов, включая XMPP.

  • Adium: Популярный клиент обмена мгновенными сообщениями для Mac, поддерживающий XMPP.

  • Miranda IM: Клиент обмена мгновенными сообщениями с открытым исходным кодом для Windows, поддерживающий XMPP.

  • Conversations: Мобильный клиент обмена мгновенными сообщениями для Android, поддерживающий XMPP.

  • ChatSecure: Мобильный клиент обмена мгновенными сообщениями для iOS, поддерживающий XMPP.

Автоматизированные инструменты:

  • XMPP Compliance Tester: Онлайн-инструмент, который проверяет соответствие сервера XMPP спецификациям XMPP.

  • XMPP Analyzer: Сетевой анализатор, который можно использовать для мониторинга и устранения неполадок XMPP-трафика.

  • Sleuth: Анализатор трафика XMPP, который можно использовать для обнаружения проблем безопасности и уязвимостей.

  • XMPP Security Scanner: Инструмент, который сканирует XMPP-серверы на наличие распространенных проблем безопасности и уязвимостей.

  • Metasploit Framework: Инструмент тестирования на проникновение, который включает модули для тестирования XMPP-серверов на наличие уязвимостей.

  • OpenVAS: Сканер сетевых уязвимостей, который включает в себя модуль для тестирования XMPP-серверов.

  • Nmap: Средство отображения сети и сканирования безопасности, которое можно использовать для сканирования портов XMPP и выявления потенциальных уязвимостей.

  • Nikto: Сканер уязвимостей веб-сервера, который можно использовать для проверки веб-интерфейсов XMPP-сервера на наличие уязвимостей.

  • Burp Suite: Инструмент тестирования безопасности веб-приложений, который можно использовать для проверки веб-интерфейсов XMPP-сервера на наличие уязвимостей.

  • OWASP ZAP: Инструмент тестирования безопасности веб-приложений с открытым исходным кодом, который можно использовать для проверки веб-интерфейсов XMPP-сервера на наличие уязвимостей.

Последние пять известных CVE для IKE

 CVE-2023-25356: Основной sipXcom до 21.04 включительно уязвим для неправильной нейтрализации разделителей аргументов в команде. Пользователи XMPP могут вводить произвольные аргументы в системную команду, которая может использоваться для чтения файлов с сервера sipXcom и записи файлов на него. Это также может быть использовано для обеспечения удаленного выполнения команд. 

 CVE-2022-26491: Проблема была обнаружена в Pidgin до версии 2.14.9. Удаленный злоумышленник, который может подделать ответы DNS, может перенаправить клиентское соединение на вредоносный сервер. Клиент выполнит проверку сертификата TLS вредоносного доменного имени вместо исходного домена службы XMPP, что позволит злоумышленнику получить контроль над подключением XMPP и получить учетные данные пользователя и весь коммуникационный контент. Это похоже на CVE-2022-24968. 

CVE-2022-24968: В Меллиуме mellium.im/xmpp в версии 0.21.0 злоумышленник, способный подделать текстовые записи DNS, может перенаправить запрос на подключение к WebSocket на сервер, находящийся под их контролем, не вызывая сбоя проверки сертификата TLS. Это происходит из-за того, что во время этой проверки выбрано неправильное имя хоста. 

 CVE-2022-22784: Клиенту Zoom для собраний (для Android, iOS, Linux, macOS и Windows) до версии 5.10.0 не удалось правильно проанализировать XML-строки в сообщениях XMPP. Это может позволить злоумышленнику выйти из текущего контекста сообщения XMPP и создать новый контекст сообщения, чтобы клиент получающих пользователей выполнял различные действия.Эта проблема может быть использована в более сложной атаке для подделки XMPP-сообщений с сервера. 

 CVE-2021-45968: Была обнаружена проблема в xmppserver jar в компоненте XMPP Server платформы JIve, который использовался в облачной телефонной системе Pascom до версии 7.20.x (и в других продуктах). Конечная точка на внутреннем сервере Tomcat Pascom разрешает SSRF, что связано с проблемой CVE-2019-18394. 

Полезная информация

– Открытый стандарт: XMPP - это открытый стандартный протокол, означающий, что любой может реализовать его и разрабатывать приложения, которые его используют.

– Децентрализованный: XMPP - это децентрализованный протокол, который означает, что нет центрального сервера, контролирующего связь. Вместо этого у каждого пользователя есть свой собственный сервер, и связь происходит между серверами.

– Безопасность: XMPP поддерживает сквозное шифрование, что означает, что сообщения шифруются между отправителем и получателем и не могут быть перехвачены или прочитаны кем-либо еще.

– Расширяемый: XMPP - это расширяемый протокол, что означает, что его можно настраивать и расширять в соответствии с различными потребностями. Это делает его гибкой платформой для разработки широкого спектра коммуникационных приложений.

– Присутствие: XMPP включает функцию присутствия, которая позволяет пользователям видеть, кто находится в Сети и доступен для общения.

– Кроссплатформенность: XMPP может использоваться на широком спектре платформ, включая настольные компьютеры, мобильные устройства и веб-браузеры.

– Федерация: серверы XMPP могут быть объединены, что означает, что пользователи на разных серверах могут беспрепятственно взаимодействовать друг с другом.

– Использование: XMPP используется для широкого спектра коммуникационных приложений, включая обмен мгновенными сообщениями, голосовой и видеочат, а также интернет вещей.

– Библиотеки: Существует несколько библиотек XMPP, доступных для разных языков программирования, что упрощает разработку приложений XMPP.

– Клиенты: Существует несколько клиентов XMPP, доступных для разных платформ, включая настольные и мобильные устройства, что упрощает использование XMPP для связи в режиме реального времени.

Известные баннеры

“Приветственный баннер” – Баннер, который появляется, когда пользователь входит в систему или присоединяется к комнате чата, приветствуя его в сервисе или приложении.

“Информационный баннер” – Баннер, который предоставляет информацию о службе или приложении, например, о новых функциях, обновлениях или простоях в обслуживании.

“Рекламный баннер” – Баннер, рекламирующий определенный продукт, услугу или функцию в приложении или сервисе.

“Баннер с призывом к действию” – Баннер, который побуждает пользователей совершить определенное действие, например обновить свою учетную запись, пригласить друзей в сервис или пройти опрос.

“Баннер ошибки” – Баннер, который предупреждает пользователей об ошибках или проблемах в приложении или сервисе.

“Баннер присутствия” – Баннер, отображающий онлайн-статус пользователя или его контактов, такой как “Доступно”, “Занято”, “В отъезде” или “Оффлайн”.

“Баннер уведомления” – Баннер, который отображает уведомления, такие как новые сообщения или входящие звонки, чтобы привлечь внимание пользователя, даже если он в данный момент не активен в приложении или службе.

Книги для изучения Расширяемого протокола обмена сообщениями и присутствия (XMPP)

XMPP: Окончательное руководство автор: Питер Сент-Андре, Кевин Смит и Ремко Тронсон – Эта книга представляет собой всеобъемлющее руководство по XMPP и охватывает все - от основ протокола до таких продвинутых тем, как безопасность, масштабируемость и объединение.

Профессиональное Программирование на XMPP с использованием JavaScript и jQuery Джек Моффитт и Андреас Шобель – Эта книга посвящена использованию XMPP с JavaScript и jQuery для создания веб-приложений реального времени, включая системы чатов, инструменты совместного редактирования и многое другое.

Обмен мгновенными сообщениями на Java: Руководство по Jabber / XMPP Иэн Сигеока – Эта книга представляет собой введение в XMPP и помогает читателям создать базовое приложение для чата с использованием Smack API для Java.

XMPP: Современное состояние под редакцией Кевина Смита и Ремко Тронсона – Эта книга представляет собой сборник эссе экспертов XMPP и охватывает такие темы, как федерация, безопасность, мобильная XMPP и многое другое.

Связь в режиме реального времени с WebRTC и XMPP Сальваторе Лорето и Саймон Пьетро Романо – Эта книга исследует пересечение WebRTC и XMPP, показывая, как эти технологии могут быть использованы вместе для создания мощных коммуникационных приложений в режиме реального времени.

Создание приложений с помощью Jabberd2 автор: Микаэль Ремонд – Эта книга представляет собой практическое руководство по созданию приложений на основе XMPP с использованием сервера Jabberd2, охватывающее такие темы, как аутентификация, управление реестром и многое другое.

Профессиональное Программирование XMPP на C# Джек Моффитт – Эта книга представляет собой исчерпывающее руководство по использованию XMPP с C #, включая примеры создания приложений реального времени, таких как системы чатов и игры.

XMPP: Создание приложений реального времени автор: Ллойд Уоткин и Михал Пиотровски – Эта книга охватывает основы XMPP и помогает читателям создавать приложения реального времени, такие как системы чатов, инструменты обмена файлами и многое другое.

Изучение XMPP Алексей Мельников – Эта книга представляет собой введение в XMPP и охватывает такие темы, как маршрутизация сообщений, присутствие и управление реестром, а также создание базового приложения для чата.

Практичный XMPP Майкл Вайбел и Дэниел Гультш – Эта книга представляет собой практическое руководство по разработке XMPP, охватывающее такие темы, как создание чат-ботов, интеграция со сторонними API и создание веб-приложений реального времени с использованием XMPP.

Список полезной нагрузки для расширяемого протокола обмена сообщениями и присутствия (XMPP)

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

  • Полезная нагрузка присутствия: Полезная нагрузка, указывающая онлайн-статус пользователя, включая его доступность, настроение и активность.

  • Полезная нагрузка подписки: Полезная нагрузка, которая запрашивает или подтверждает подписку между двумя пользователями, позволяя им обмениваться информацией о присутствии и получать уведомления.

  • Полезная нагрузка IQ: Полезная нагрузка, которая содержит информационные запросы и ответы, включая профили пользователей, сведения о реестре и обнаружение служб.

  • Полезная нагрузка для передачи файлов: Полезная нагрузка, которая передает файлы или другие данные между пользователями с использованием таких протоколов, как Jingle и Stream Initiation.

  • Полезная нагрузка ошибки строфы: Полезная нагрузка, указывающая на ошибку при обработке сообщения или запроса, включая коды ошибок и сообщения об ошибках.

  • Полезная нагрузка управления потоком: Полезная нагрузка, которая управляет потоком XML-строк между клиентом и сервером, включая возобновление потока, управление потоком и подтверждения сообщений.

  • Полезная нагрузка специальных команд: Полезная нагрузка, которая позволяет пользователям выполнять пользовательские команды на сервере, включая административные задачи, запросы и другие операции.

Смягчение последствий

  1. Внедрение сквозного шифрования с использованием таких инструментов, как OpenPGP или OTR, может помочь защитить сообщения и гарантировать, что они не могут быть перехвачены или прочитаны неавторизованными сторонами.

  2. Надежные механизмы аутентификации могут использоваться для проверки личности пользователей и предотвращения несанкционированного доступа к серверам XMPP.

  3. Внедрение контроля доступа может помочь ограничить подверженность XMPP-серверов потенциальным атакам, ограничив доступ авторизованным пользователям.

  4. Внедрение правил брандмауэра может помочь блокировать попытки несанкционированного доступа к серверам XMPP и предотвратить сетевые атаки.

  5. Обновление программного обеспечения сервера XMPP с помощью последних исправлений и обновлений безопасности может помочь предотвратить использование известных уязвимостей.

Заключение

Расширяемый протокол обмена сообщениями и присутствия (XMPP) это широко используемый протокол связи, который обеспечивает гибкость и интероперабельность, но он не защищен от угроз безопасности. Методы смягчения последствий, такие как шифрование, аутентификация, контроль доступа, защита брандмауэром и регулярные обновления программного обеспечения, могут быть использованы для повышения его безопасности и защиты от потенциальных атак. При наличии соответствующих мер безопасности XMPP может стать безопасным и надежным способом обмена данными в режиме реального времени.

Другие Услуги

Готовы к безопасности?

Связаться с нами