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 строфах можна використовувати для запиту інформації з сервера або клієнта XMPP, такий як інформація про реєстр або конфігурація сервера. Неавторизований користувач може використовувати IQ строфах для збору інформації про сервер або його користувачів.

Інструменти для використання протоколу 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 може стати безпечним і надійним способом обміну даними в режимі реального часу.

Інші Послуги

Готові до безпеки?

зв'язатися з нами