Безопасность систем мгновенного обмена сообщениями на базе протокола XMPP: настоящее и будущее

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

    Jabber для личного общения

    Нежелательные сообщения

    Для личного общения Jabber массово стал использоваться сравнительно недавно, что обуславливает фактическое отсутствие коммерческого спама (или spim’а в терминологии 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 как коммуникационное средство корпоративного назначения достаточно безопасно и надежно, но администраторам серверов следует внимательно следить за уровнем доступа к сервисам.
    Метки:
    Поделиться публикацией
    Комментарии 43
    • +4
      Почему то опять в защите передаваемых данных не упомянуто ни гпг ни отр, а так спасибо за статью.
      • +2
        Спасибо, дополнил. Действительно очень актуально при передаче конфиденциальной информации.
        • 0
          Мало того, оно сделано на уровне протокола, а не как в аське.
      • НЛО прилетело и опубликовало эту надпись здесь
        • НЛО прилетело и опубликовало эту надпись здесь
          • +3
            я до сих пор не могу поверить в то, что люди вслепую ищут кого-то (земляков, однофамильцев, тёзок и т.п.). поэтому и считаю, что VJUD может быть полезен только если ты запамятовал правильный ник
            • +1
              раньше таким способом «знакомились», сейчас социальные сети и специализированные сайты наверное удобнее,)
              • –1
                НЕ ВЕРЮ! %)
                • +1
                  Плюс ко всему, лет 5 назад поиск в аське стал нереально глючить. В этой связи найти человека по указанным им в инфо имени, фамилии и другим данным очень трудно.
                  • 0
                    Кстати одна из причин низкой популярности фэйсбука по сравнению с в контактом в России, имхо, как раз отсутствие полноценного (по всем или большинству полям) поиска.
                    • +1
                      главная причина по-мойму в том, что о нем меньше говорят, а насчет поиска: я никого не искал, он сам прошерстив почту напредлагал и догнал по количеству друзей число накопленных за пару лет вконтактике. От низкой активности там число небольшое канеш.
                • +2
                  Были умельцы, которые на jabber.ru и qip.ru осуществляли поиск по популярным именам, получали конкретные учетные записи и пытались рассылать нежелательные сообщения. Эту проблему очень быстро можно решить использованием специального шейпера, ограничивающего выдачу (так поступили администраторы qip.ru) или отключением сервиса vjud (такое ограничение действует на jabber.ru/xmpp.ru)
                • 0
                  Ещё бы ICQ-транспорты научились отсекать запросы на добавление из ICQ-сети от роботов на основе теста тьюринга с возможностью самому задавать вопрос и ответ к нему… А то постоянные запросы, которые приходится отклонять пачками не глядя (даже если они не все от роботов).
                  • 0
                    тот, которым пользуюсь я умеет просто отсекать. Впринципе, этого хватает, главное не забывать отключать, когда добавляетесь с хорошим человеком. Покопайтесь в настройках своего.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Транспорты?
                        • 0
                          Сорри, прокосил…
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • 0
                              Это я понял) Только коммент мой ни к селу, ни к городу)))
                      • 0
                        Spectrum умеет. Кроме всего прочего, умеет даже файлики передавать сквозь транспорт. Написан на плюсах и стабилен. Кроме того можно подключить дополнительные транспорты в виде джаббера, мсна, аима и т.п. Из минусов — тянет на дебиане кучу зависимостей из-за libpurple0-minimal (возможно это можно как-то обойти).
                        • 0
                          Извиняюсь, я мельком прочитал сообщения, думал что вас мучила проблема постоянных авторизаций.
                          • 0
                            Ну на безрыбье и полное отключение запросов пригодится, спасибо.
                          • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        прям вовремя, как раз на эту тему задумался для своего jabber сервера
                        • +3
                          не переживайте, 5 лет назад вот тоже самое говорили: вот мол грянет уже завтра волна и… а Джо и ныне там. Но пока исправно работают транспорты ничего плохого в этом нет, правда, сейчас транспорт до скайпа мне был бы нужнее наверное.
                          • 0
                            code.google.com/p/karaka/
                            со второй попытки в нужный топик =)

                            осталось уговорить знакомого админа поднять её на сервере
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                вот-вот, они все какие-то подозрительные, а поставить то мне и самому есть куда. Мне за державу обидно,)
                                Но вроде скайп обещал апи не требующий инстанса клиента…
                              • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            По моему сейчас в ICQ всё же появилось шифрование, кажется в Пиджине в версиях для разработчика по умолчанию включено.
                            • +2
                              Сейчас официально серверы не поддерживают шифрование, об этом заявили представители Mail.ru Group.
                          • 0
                            Это все понятно, реализовать в открытом протоколе можно абсолютно все.
                            Но вот кто за все время существования джаббера именно в публичных сервисах и конференциях прикрутил такой функционал типа антибрута и капчи? Я сколько лазил на забугорных конфах, на наших конфах — нигде такого не встречал.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • +3
                                Капча включется опционально владельцем команты на conference.qip.ru и conference.jabber.ru к примеру. Входит в официальный комплект поставки Ejabberd.
                                По поводу антибрута — не реализовано еще, я об этом писал в посте.
                              • 0
                                неправомерно рекламируемая информация размещалась в теле запроса авторизации. В Jabber нет такого понятия, как текст в запросе авторизации: отправляется лишь iq-запрос подписки на прием/получение презенсов (то есть статусов присутствия по сути) от конкретного контакта.
                                Спам можно размещать и в имени контакта, представьте себе.
                                • 0
                                  Извиняюсь, промахнулся. Ответил Вам ниже.
                                • 0
                                  Нетрудно запретить регистрацию таких аккаунтов. Возможность фильтровать станзы также никто не отменял. Можно организовать в пределах сервера фильтрацию не только имен JID, но и информации в vcard.
                                  • 0
                                    В Jabber нет такого понятия, как текст в запросе авторизации: отправляется лишь iq-запрос подписки на прием/получение презенсов

                                    Неправда. Во-первых, запрос подписки это тоже presence, что несколько затрудняет его фильтрацию его с помощью privacy. Во-вторых, текст в нем разрешен (в том же status) и клиенты его умеют показывать, а транспорты указывать.
                                    • 0
                                      Благодарю за поправку. Действительно, запрос подписки на присутствие является презенсом. Однако ничто не мешает фильтровать станзы на стороне сервера при помощи дополнительных фильтров.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.