Безпека систем миттєвого обміну повідомленнями на базі протоколу XMPP: сьогодення і майбутнє
Все частіше багато хто використовує рішення на основі протоколу XMPP (Jabber) для миттєвого обміну повідомленнями, в тій чи іншій мірі відмовляючись від ICQ. Цей підхід, безумовно, є правильним через відкритість Jabber - кожен може вибрати який сервер йому використовувати або ж зовсім організувати роботу свого власного. Також протокол XMPP прекрасно себе зарекомендував в корпоративному середовищі і багато компаній вже кілька років успішно використовують Jabber нарівні з електронною поштою для обміну інформацією.
Прийнято вважати, що комунікаційні рішення на базі протоколу Jabber є найменш вразливими з точки зору інформаційної безпеки. У цій статті я спробую проаналізувати чи так це насправді і які реальні перспективи має протокол XMPP в цьому напрямку. Питання буде розглянуто в контексті використання протоколу для обміну повідомленнями як в особистих цілях на публічних і приватних сервісах, так і в корпоративних умовах.
Jabber для особистого спілкування
Небажані повідомлення
Для особистого спілкування Jabber масово став використовуватися порівняно недавно, що обумовлює фактичну відсутність комерційного спаму (або spim'a в термінології XMPP Standards Foundation). Я спеціально акцентував увагу на відсутності саме комерційного спаму, оскільки зараз на великих jabber-серверах мають місце поодинокі розсилки, які організовуються за допомогою скриптів на Python «школярами» just for fun і не спрямовані на просування будь-яких товарів і послуг. Найближчим часом можлива поява комерційного спаму в Jabber, проте масового розвитку як в ICQ він отримати не повинен. Про передумови цього добре написано в цьому пості.
XMPP є відкритим і розширюваним протоколом, що ніяк не обмежує розробників у написанні всіляких шейперів і фільтрів. Так на jabber-сервері qip.ru успішно функціонують URL- і JID-фільтри, а на jabber.ru можна включити у своїй конференції muc-фільтр з використанням стороннього сервісу (бота). Плюс до всього в Jabber є можливість активувати privacy-листи, що дозволяють користувачеві регулювати отримання повідомлень від контактів, у тому числі не з ростера.
Слід зазначити, що існує і розвивається XEP-0159, що описує методи блокування небажаних повідомлень.
Флуд-атаки, спрямовані на JID користувача або конференції
На даний момент проблема флуд-атак в Jabber все ще залишається актуальною. При цьому подібного роду атаки на конкретний JID користувача ускладнені по-перше через шейперів, що обмежують на боці сервера кількість переданої інформації в одиницю часу, по-друге зважаючи на можливість використання списків приватності.
Атаки на jabber-конференції поступово відходять у минуле - боротися з ними можна включивши в налаштуваннях кімнати захист капчів (у разі підтримки сервером даного функціоналу). Однак тут є зворотний бік медалі - при множинних запитах капчі може мати місце відмова в обслуговуванні як власне сервісу генерації капчі (що зробить неможливим вхід у всі чати на атакованому сервері, захищені цим способом), так і ноди в цілому.
Безпека паролів
Один з найпопулярніших jabber-серверів Ejabberd «з коробки» зберігає паролі у відкритому вигляді, але при використанні ODBC можливо реалізувати зберігання паролів у вигляді md5-хешу (за допомогою цього патчу, наприклад).
Шкідливого ПЗ, що компрометує користувальницькі паролі від JID, дуже мало. Як правило, це модифікації різних клієнтів з відкритим вихідним кодом, які поширюються за допомогою розсилок в популярних jabber-конференціях. Не так давно була виявлена шкідлива модифікація популярного мобільного jabber-клієнта Bombus, яка відправляє введені JID і пароль на конкретний e-mail (Trojan-PSW.J2ME.Bomzuz.a в класифікації Лабораторії Касперського). У даному випадку користувачам можна лише порадити остерігатися подібних модифікацій і завантажувати клієнтські програми тільки з офіційних/довірених ресурсів.
Практично всі існуючі на даний момент jabber-сервери ніяк не захищені від brute force атак, які поки масово не спостерігаються, але в принципі можливі. Дана ситуація поправима - проблему допоможуть вирішити тимчасові блокування, що обмежують кількість спроб введення пароля.
Захист переданих даних
Практично на всіх великих серверах є можлива можливість встановлювати захищені з'єднання за допомогою шифрування ssl/tls, що виключає можливість перехоплення паролів і листування. Шифрування також неважко налаштувати і на власному сервері.
В ICQ деякий час тому також була можливість включити захищену передачу даних, але після покупки цього сервісу холдингом Mail.Ru Group дана функція перестала працювати. Це пов'язано з тим, що компанія AOL не продала реалізацію даної фічі.
Деякі клієнтські програми дозволяють за допомогою спеціального плагіну додатково шифрувати передану інформацію з використанням GPG і OTR. При цьому необхідно, щоб такий плагін був встановлений у обох співрозмовників.
Jabber як засіб комунікації в корпоративному середовищі
При використанні Jabber в умовах підприємства в основному потенційну загрозу представляють різного роду сервіси з необмеженим доступом ззовні (jabber-конференції, транспорти, сервіс пошуку по vcard - vjud).
Jabber-конференції, безумовно, дуже зручний засіб комунікації. Однак досить часто адміністратори корпоративних xmpp-серверів забувають закривати доступ до конференцій по s2s (тобто для користувачів інших серверів) і в загальному доступі може виявитися важлива корпоративна інформація. Також зловмисники можуть організувати флуд-атаку конференцій на незахищеному сервісі, що надалі може призвести до відмови в обслуговуванні xmpp-сервера в цілому.
Відкриті для користувачів всіх серверів транспорти можуть допомогти зловмисникам приховати свій реальний IP (наприклад, якщо сторонній користувач зареєструється на IRC-транспорті, то він буде заходити в IRC-чати з IP, який має джаббер-сервер підприємства). У випадку з іншими транспортами (ICQ, MRA та ін.) сторонні користувачі можуть створити зайве навантаження, знизивши тим самим відмовостійкість сервісу.
Найбільшу небезпеку являють собою відкриті для загального доступу сервіси пошуку за даними з візитної картки (vjud). Дуже часто джаббер-сервер бере дані для vcard з внутрішніх джерел (при використанні LDAP, наприклад) і в підсумку в vcard може виявитися закрита інформація про співробітника (особисті і службові e-mail, номери телефонів, назва відділу і навіть домашня адреса). Зловмисники можуть організувати автоматизований пошук через vjud за популярними іменами і прізвищами, роздобувши тим самим дані, призначені для службового користування).
Адміністраторам корпоративних jabber-серверів необхідно уважніше стежити за модулями і відключати або закривати доступ до невикористовуваних сервісів.
Адміністраторам як корпоративних, так і приватних серверів необхідно уважніше ставитися до політики реєстрації нових користувачів. У разі корпоративного сервера відкриту реєстрацію необхідно заборонити зовсім, оскільки обліковий запис співробітника повинен заводитися адміністратором у момент прийняття його на роботу нарівні з іншими внутрішніми обліковими записами. У випадку з приватним сервером доцільно або обмежити реєстрацію нових облікових записів (наприклад, за допомогою капчі), або ж відключити цю можливість.
Резюме
Незважаючи на зростаючу популярність протоколу Jabber, загрози поки носять некомерційний характер. Тим не менш, найближчим часом можлива активація комерційних розсилок небажаних повідомлень, а також повідомлень, що містять шкідливі посилання. Однак зважаючи на свою розширюваність протокол дозволяє ефективно протистояти подібного роду загрозам і звести до мінімуму ймовірність отримання кінцевими користувачами небажаного контенту.
Jabber як комунікаційний засіб корпоративного призначення досить безпечно і надійно, але адміністраторам серверів слід уважно стежити за рівнем доступу до сервісів.