Интересные совпадения. Часть вторая.

    Прочитав топик о подозрительности реализации протокола Jabber в приложении Mail.ru Агент, а также комментарии Swappp и naum о присутствующих в модуле интересных строках, я решил проверить, что же там внутри.

    Потратив пол часа на поиск утилит и закачку бинарников Mail.ru Агента, я получил листинг со списком некоторых строк, присутствующих внутри файла JABBER_0X2001FACA.DLL. Для удобства читателя, незнакомого с кодом jabber модуля из Miranda IM, приведу сопоставления найденых строк с нашими исходниками:
    XML processing (logging)
    00032C7C TAG_MAX_LEN too small, ignore current tag jabber_xml.cpp (192)
    00032CA8 ATTR_MAX_LEN too small, ignore current tag jabber_xml.cpp (214)
    00032CE0 XML: skip <?xml> tag jabber_xml.cpp (343)
    00032CF8 XML: Closing </%s> without opening tag jabber_xml.cpp (419)
    Base stanza processing (logging)
    0002C464 Invalid top-level tag ( only <message/> <presence/> and <iq/> allowed ) jabber_thread.cpp (889)
    0002C4AC Invalid top-level tag ( only <iq/> allowed ) jabber_thread.cpp (895)
    Login process (logging)
    0002C6A8 Requesting TLS jabber_thread.cpp (667)
    0002C7D8 after successful sasl jabber_thread.cpp (831)
    0002C8AC <iq/> iqIdGetBookmarks jabber_iqid.cpp (1456)
    0002C968 <iq/> iqIdGetVcard jabber_iqid.cpp (731)
    0002CA8C <iq/> iqIdGetRoster jabber_iqid.cpp (351)
    0002E998 Never publish the hash below jabber_secur.cpp (191)
    Login process (data)
    0002E900 username=\"%s\", realm=\"%s\", nonce=\"%s\", cnonce=\"%s\", nc=%08d, qop=auth, digest-uri=\"xmpp/%s\", charset=utf-8, response=%08x%08x%08x%08x jabber_secur.cpp (156)

    Как мы можем видеть, почти все строки (кроме последней) являются отладочной информацией и входят либо в функции для работы с XML, либо в процесс подключения к XMPP-сети. Могу заметить, что остальные части джаббера сильно завязаны на интерфейс windows и/или архитектуру самой миранды.

    Также, может быть интересен факт использования в XML потоке одинарных кавычек ['], который имел место и в ветке 0.7 jabber модуля из миранды (в ветке 0.8 используются двойные кавычки ["], и они субъективно более популярны).

    Я не являюсь знатоком внутренностей бинарных модулей для SymbianOS, но в списке строк наткнулся также на имена классов, использующихся в нашем коде для поддержки разных методов логина. Судя по наличию аналогичных строк с «классообразным» содержимым и числом в начале, такие строки генерирутся для большинства классов. Обращаю внимание на непоследовательность использования регистра букв в аббревиатурах MD5 и NTLM.
    Class names
    0002EA18 11TJabberAuth
    0002EA30 10TPlainAuth
    0002EA4C 8TMD5Auth
    0002EA64 9TNtlmAuth

    Кстати, интересно, насколько уместна NTLM авторизация на мобильном телефоне :) (Update: говорят уместна и при желании хэш можно вычислить вручную, ну да не в этом суть)

    В контексте увиденного интересно звучит комментарий по поводу «да что же можно взять из Миранды»
    Мне вот очень интересно, что именно в реализации xmpp было бы полезно «украсть» из миранды? Может последовательность соединения? Да вроде она описана в открытых источниках притом подробно. Может xml-парсер? А зачем он нам, он у нас уже был и использовался. Может структуру плагинов? зачем она нам — у нас своя.

    Тут упомянуто именно два находящихся под вопросом компонента протокола и всем известная модульная архитектура Miranda IM. Об остальных частях протокола — ни слова :)

    Я не знаю, есть ли наш код внутри Мобильного Агента, или его там нету — однозначно могут сказать лишь авторы самого Агента. Приведенные же факты были собраны исключительно из открытых источников для общего ознакомления с ситуацией. Мои познания в анализе бинарных модулей SymbianOS Довольно скудны, и было бы интересно услышать комментарии Swappp и naum, особенно в свете этой реплики.

    P.S. На данный момент с сайта Mail.Ru удалены бинарники бета-версии Агента, также их удаляют с других сайтов. У пользователей, установивших версию 1.15 на телефон происходит автоматическое «обновление» до более старой версии 1.11.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 96
    • +35
      Я думаю «обновление» до более старой версии запущено не случайно, как и удаление бинарников. Значит есть что скрывать, всё-таки.
      • +1
        могут сослаться (обоснованно) на наличие уязвимостей/багов в новой версии 1.15
        • +2
          Они вроде так и сделали. Причем говорят, что версия 1.15 начала стабильно крашить, но со своим сервером это несложно.
          • 0
            версия 1.15 начала стабильно крашить, но со своим сервером это несложно

            Какбэ подозреваете mail.ru в преднамеренных «закладках» в клиенте? :-D
            • +4
              Тю, да просто знать свои баги и удачно кривой пакет прислать.
              И я не подозреваю, просто говорю, что спровоцировать краш своего приложения используюя свой сервер несложно :)
              • 0
                AFAIR, у них протокол текстовый, т.е. там немного сложнее с кривыми пакетами.
                Ктож спорит, что баги есть — баги были всегда. Просто я никогда не придавал значения багам в стиле «можно улюлюкнуть клиента при соединении с злонамеренным сервером», а вот оно как интересно на деле оказывается.
                • 0
                  Текст там рекомендуется передавать в RTF. Я читал спеки.
            • 0
              прям как неумелая сборка миранды :)
              Поню краши только так сыпались
            • +3
              Слишком много совпадений… вину их это конечно не доказывает, но это как минимум странно. Если бы мы говорили о гугле к примеру…
              • –1
                Ага, корпорация зла 100% что-то задумала, а вот «розовый» мэйл никада нам блондинкам плохого не сделает. :)
                • +6
                  Что-то мне после «корпорация зла» вспомнилась Umbrella Corporation :)
            • +6
              Ну и тут не факт что сами Mail.ru в этом виноваты, с ихней стороны было бы крайне глупо так подставляться.
              А вот вариант, что какой-то программист сейчас получает конкретных бамбулей, исключать нельзя.
              • 0
                Они уже утверждали, что ничего такого не делали…
                Так что поздновато валить на программиста…
                • +2
                  Ну, вы разве не знаете как это бывает в больших компаниях?
                  Руководство что, в код смотрит? Первым делом отнекиваются, а потом разбираются во всем и выписывают кому попало :)
                  • 0
                    Ну тут уже по-моему далеко не один программист только «впрягся» в обсуждение независимости кода, так что уже не так просто будет…
                    • 0
                      Как минимум можно было ответить «Мы проведем проверку. Руководство не давало указаний разработчикам использовать код других проектов.». Но был получен ответ от пресс-атташе Mail.Ru, что код полностью их. Так же, насколько я понял, основной разработчик отписался в своем блоге (http://blogs.mail.ru/corp/nikiforov/1A3A43B5570D0DD.html) в не совсем корректной форме сообщение, где так же заявляет что все написали сами. Далее, в первом сообщении никто не обвинял mail.ru, было только высказано подозрение в том, что очень уж похоже поведение агента и миранды. Но это было расценено как обвинение.
              • +26
                Как всегда корпорации плюют на опен-сорц разработчиков и сообщество, пользуясь результатами их труда без какой-либо отдачи
                • +4
                  Ну примерно как пользователи плюют на лицензии и правообладателей, пользуясь результатми их труда без оплаты :)
                  • –1
                    на костер таких.
                    • +6
                      воображение отчетливо рисует пол планеты в огне ))
                      • +1
                        Ну пол-планеты, не пол-планеты, а одну шестую точно спалят )))
                        • –1
                          Уже давно не одна шестая. Вы мне тут свои имперские замашки бросьте, время не то! :)
                          • +1
                            Envek имеет в виду Китай, что ты палишься? )))
                        • 0
                          Гм. Сначала подумал, что здесь пол — это не 1/2, а противоположность потолку. Спать пора…
                      • +6
                        В случае с данным анрушением всё даже намного интереснее — человек получает деньги за то, чего он не писал…
                        • +1
                          Какая разница?
                          Если вы используете пиратскую Windows для работы, то вы тоже получаете деньги за то, чего не писали. Так что я совершенно согласен с Goodkat, и поэтому использую ОС Linux.
                          • 0
                            в чём согласен-то? :)
                            и выводы странные — "и поэтому использую ОС Linux. " :)
                            под линуксом тоже можно слушать пиратскую музыку и смотреть пиратские фильмы
                        • 0
                          >lНу примерно как пользователи плюют на лицензии и правообладателей, пользуясь результатми их труда без оплаты :)

                          И что, Вы считаете это оправданием нарушения лицензий компаниями?

                          А «плюющих» пользователей довольно успешно таскают по судам, выписывают нехилые штрафы, и даже сроки дают (в основном условно, но всё же). JFYI.
                          • 0
                            нет, не считаю. мне плевать :)

                            пользователей-то пока за использование не таскают по судам. в основном за распространение.
                      • 0
                        после публикации на хабре заметок о миранде vs мейлру www.securitylab.ru/news/367764.php
                        • 0
                          Это копипаст с CNews, ссылка есть внизу старого топика
                        • +1
                          Но главное что после обсуждения этого вопроса на хабре товарищи из майл.ру «зачесались»…
                          • +9
                            а свалят все ведь на «недобросовестного программиста» в итоге… мол без ведома взял и использовал…
                            кстати, кто-то видел официальные пресс-релизы мейла по этому поводу???
                            РБК уже подхватило — cnews.ru/news/top/index.shtml?2009/02/05/336997
                            • +4
                              это еще раз подтверждает какая mail.ru хорошая компания!
                              • +4
                                Свалить уже просто так не получится, т.к. официальные представители Mail.Ru давали уже «официальные комментарии». При этом доказывая, что сами убедились в том, что факта использования кода Миранды нет и быть не могло…

                                Так что если свалят — то на отдел мобильной разработки вместе взятый…
                                Со всеми вытекающими…
                                • +2
                                  А писали же, что, например, программистам из Microsoft запрещается читать исходные коды открытых приложений, дабы чего не взяли оттуда.
                                  • +1
                                    Судя по интерфейсу последних продуктов типа Office 2007, им теперь вообще запрещается смотреть на разработки конкурентов
                                  • +4
                                    «Стоит отметить, что в ICQ-протоколе в мобильных версиях Mail.Ru Агента есть функция «маскировки» под разные клиенты (это востребовано пользователями), так что наш инстант-мессенджер может часто «распознаваться» как другие программы. При чем здесь копирование кода — не очень понятно», — добавила Анна Артамонова» (Директор по маркетингу и PR Mail.Ru)

                                    Цирк на конной тяге.
                                    • 0
                                      то это ее коммент на первую часть интересных совпадений :-)
                                  • 0
                                    как раз концепция NTLM очень даже подходит для реализации отправления caps
                                    • +5
                                      Объясните мне, тёмному, как же она относится к client capabilities, которые нужны для идентификации списка поддерживаемых клиентом функций протокола? :)
                                      • +1
                                        промахнулся с местом ответа
                                        • +3
                                          ну прошу прощения :) я ошибался
                                          • +1
                                            А собственно почему нельзя аутентифицироваться посредством ntlm, если и сервер, и клиент поддерживают протокол? Неужели без windows его использовать запрещено?
                                        • +13
                                          Busted!!!
                                          • +5
                                            Если код миранды действительно используется в агенте, то это довольно просто доказать, модифицируя содержимое экзешника в указанных стрингах и проверяя изменяются ли отправляемые данные…

                                            Кстати, инсталлятор агента подписан цифровой подписью от Symbian, так что доказать, что его поменяли на стороне (к примеру, недобросовестные кодеры из миранда-тим) будет довольно проблематично :)
                                            • +10
                                              Мне тут сложно что-то добавить. В ассемблере ARM я не силен. Можно конечно кое-как адаптировать соответствующий код Miranda для компиляции под ARM и сравнивать полученные куски, но думаю, что это не очень эффективно. Оснований для подозрения в воровстве кода уже вполне достаточно.

                                              На мой взгляд возможны следующие действия со стороны mail.ru:
                                              — Свалить всю вину на какого-нибудь разработчика и:
                                              — Вообще убрать поддержку jabber
                                              — Честно переписать спорный код
                                              — Убрать или изменить соответствующие константы, что на первый взгляд будет скрывать часть доказательств, но в этом случае основанием для подозрения будет результат сравнения с дампом беты.
                                              — Открыть свой продукт под GPL
                                              — Продолжать стоять на своем, надеясь что до суда дело не дойдет. Но в этом случае они как минимум испортят себе репутацию.

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

                                              Лучшем вариантом развития событий будет конечно выпуск всего продукта под GPL. Вообще от этого mail.ru ничего не потеряет, а скорее наоборот, восстановит репутацию среди достаточно активной части сообщества, а так же возможно обзаведется новыми бесплатными разработчиками :) Тем более их продукт бесплатный, не содержит рекламы, а фактически сам является рекламой других сервисов mail.ru.

                                              Убрав поддержку или переписав код, все равно как-то придется договариваться с авторами Miranda.
                                              • +12
                                                Mail.ru и репутация… Вы уверены, что стоит употреблять эти имена в связке?
                                                • 0
                                                  Разрешить проблему просто «убрав поддержку» уже нельзя. Факт нарушения — был. Даже если они уберут «заимствованный» код и перепишут всё сами — факт использования и распространения (с нарушением GPL) — был. Поэтому основания для иска будут даже в том случае, если они уберут отовсюду старые бинарники и даже если принудительно обновят клиентов всем юзерам поголовно.
                                                  Бинарник с нарушениями есть много у кого (включая пострадавшую сторону).

                                                  P.S.: да, я уверен, что заимствование имело место быть.
                                                • +1
                                                  ну, погуглив… я нашёл описание и насколько хватает моего знания английского, там написано следующее:

                                                  NTML реализует респонс-ответ механизм для аутентификация, в которой клиент способен идентифицировать себя не посылая пароль на сервер.

                                                  Он состоит из 3 запросов, которые обобщены как: Тип1 (согласование), Тип2 (вызов) и Тип3 (аутентификация), в основном это работает так:
                                                  1. Клиент посылает серверу запрос типа 1, который главным образом содержит список возможностей, поддерживаемых клиентом и запрашиваемых на сервере.
                                                  2. Сервер даёт ответ типа 2 который содержит список возможностей поддерживаемых и согласованных им.
                                                  ну и так далее…

                                                  оригинал здесь.
                                                  • +1
                                                    Так а причем тут capabilities? :)
                                                    • +2
                                                      Есть один нюанс…

                                                      NTLM (NT LAN Manager) создан Майкрософтом для работы в винде, и использует оно данные учётной записи windows для идентификации где-либо… Мобbльный телефон с симбианом в эту картину ну никак не вяжется…
                                                      • +1
                                                        Впрочем да, при желании можно вычислить хэш и вручную.
                                                      • +1
                                                        Надеюсь, меил.ру всё таки выложит исходники под GPL. Буду ждать первого форка с отрезанным протоколом меил-агента.
                                                        • 0
                                                          хочешь провести исторический эксперимент: «а что было бы если миранду бы делали разработчики из Mail.Ru»? :)
                                                          • 0
                                                            многие разработчики миранды работают в компаниях более крупных чем майл.
                                                            • 0
                                                              это хорошо. но для исторической правды это безразлично )))
                                                          • –1
                                                            А я его поддержки в пиджине :)
                                                          • +1
                                                            а в суд реально такое дело довести? а нада ли кому это?
                                                            • +1
                                                              Реально. Только обычно дела связанные с нарушением GPL до суда не доходят. Компании предпочитают договариваться. А с частными лицами, особенно находящимися в других странах, судится другие частные лица как правило не хотят.
                                                              • 0
                                                                А есть ли в России вообще судебная практика по делам о нарушении GPL? По периодичности поднятия вопроса о статусе этой лицензии на территории РФ можно судить, что данная лицензия пока еще не действенна в России, потому как нет официальной ее версии на руссуом языке.
                                                                • +2
                                                                  По поводу действительности GPL. Есть код, у него есть автор или несколько авторов, код попадает под защиту 4-ой части ГК РФ. Если кто-то нарушил GPL и при этом попытается доказать ее недействительность, тем самым он будет доказывать недействительность единственного разрешения на основе которого мог использовать этот код. В общем если GPL не действительна, то код автоматически не становится общественным достоянием, у него все равно есть авторы. А по тому же ГК РФ «Правообладатель может по своему усмотрению разрешать или запрещать другим лицам использование результата интеллектуальной деятельности или средства индивидуализации. Отсутствие запрета не считается согласием (разрешением).».
                                                                  • 0
                                                                    Для любителей пофлудить на тему нормативно-правовых актов, могу сказать, что не все разработчики мирандового жаббера живут в РФ :)
                                                                    • 0
                                                                      У меня есть подозрение, что это не важно в данной ситуации, т.к. windows тоже не в РФ делают, а за нелицензионные копии судят в РФ по законам РФ.
                                                                      А тем более это совершенно не важно любителям пофлудить. :-)
                                                                      • +1
                                                                        Это очень даже важно — можно еще одну законодательную базу привлечь, больше разнообразие тем, можно изучать нестыковки в законах, да и вообще весело провести время :))
                                                                    • 0
                                                                      Доказать недействительность GPL — это сильно :) Лицензия достаточно распространенная, официально заверенных переводов должно быть полно.
                                                              • +3
                                                                майл спалился по полной )
                                                                • +3
                                                                  Ну а в принципе-то, неужели открытие кода Майл.ру Агента является таким уж плохим ходом для mail.ru? Будет выложен исходный код Агента, будет больше людей, заинтересованных в его продвижении, в написании модов.
                                                                  • 0
                                                                    А как же признание собственной ошибки? ;)
                                                                    • 0
                                                                      В сложившейся ситуации как признание, так и отрицание ситуацию не исправит. Чтобы вернуть доверие надо будет им серьезно поработать, если конечно mail.ru заинтересованы в этом.
                                                                      • 0
                                                                        Доверие? Вот тут есть ссылка на забавную историю с mail.ru и Стилавиным. :)
                                                                      • 0
                                                                        Имхо, если они признают «собственную ошибку» (в кавычках потому, что я ошибки не вижу… нарушение есть, а ошибок нет), это им будет очень хорошим пиаром. Люди любят такие шумихи ;)
                                                                    • 0
                                                                      Сам не в курсе, потому и спрашиваю — неужели так легко портировать код с WindowsAPI на Symbian?
                                                                      • 0
                                                                        Там WinAPI не много. А вот работы со строками достаточно.
                                                                        • +1
                                                                          Работу с хмл и логику обработки пакетов — вполне. Интерфейс — не думаю.
                                                                        • +4
                                                                          Ни дня без лажи от mail.ru или AOL!
                                                                          • +2
                                                                            Необходимо зафиксировать момент релиза версии 1.15 со стороны mail.ru + сохранить дистрибутив конкректно этого релиза. Причем сделать это максимально официально. Думаю надо обезопасить себя от «отмазок» используя какой-либо крупный IT-ресурс, который возьмет на себя дистрибуцию сборки 1.15 до выяснения обстоятельств + собрать все существующие факты о выходе.

                                                                            Вполне возможно, что будет фраза «модифицированный клиент» и т.д., «сравните хэши, мы релизили другую версию».

                                                                            Надеюсь что в ближайшее время появится аргументирование на всех уровнях. Главное максимально официально зафиксировать факт выхода бета-версии MRA.

                                                                            С уважением.
                                                                            • +3
                                                                              > Вполне возможно, что будет фраза «модифицированный клиент» и т.д., «сравните хэши, мы релизили другую версию».

                                                                              А цифровой сертификат от симбиана, которым подписан дистрибутив (и выданный именно для мейл.ру) тут не поможет?
                                                                              • 0
                                                                                Поможет, проглядел, приношу свои извинения.
                                                                                • 0
                                                                                  А разве они имеют какое-то значение в российском юридическом поле?
                                                                                  • 0
                                                                                    Неужели Вы на самом деле думаете, что со стороны разработчиков миранды дело дойдёт до суда? :)
                                                                                    • 0
                                                                                      А почему нет? «Вор должен сидеть в тюрьме» © :)
                                                                              • +1
                                                                                Вышла новая версия, 1.16. Размер джабер библиотеки как не трудно догадаться уменьшился. Похоже убрали вывод отладочной информации, все перечисленные выше строковые константы в новой версии отсутствуют.
                                                                                • +1
                                                                                  Ну ещё одно подтверждение того, что «оно» имело место быть…

                                                                                  Поправили баги так, что аж размер бинарника уменьшился… Видно большая работа, а версия сменилась лишь на единицу… ;)
                                                                                  • 0
                                                                                    Ну это все равно не отменяет факта публикации версии 1.15 (гуглокэш). И как говорили выше, файл подписан сертификатом Mail.Ru с подписью Nokia/Symbian.
                                                                                    • 0
                                                                                      Этот факт надо фиксировать нотариально, да и сертификат боюсь не аргумент, вряд ли он выдан сертифицированным ФСБ центром
                                                                                      • +1
                                                                                        Минусовали за «ФСБ»? :)

                                                                                        Может просто не в курсе, что юридически значимыми (без дополнительных соглашений) в России являются подписи, соответствующие Закону об ЭЦП, а согласно этому закону софт должны быть проверен, а его разработчик и УЦ лицензирован «уполномоченным органом», которым в данный момент является ФСБ (раньше было ФАПСИ).

                                                                                        Насчет «нотариально» тоже, ссылки на гуглокэш (которые к моменту судебного разбирательства вполне могут оказать битыми) к делу не пришьешь, но уже отработана процедура по фиксации «виртуальных» вещественных доказательств. если, например, ваше авторское право нарушили выкладыванием вашего контента на «левом» сайте без вашего разрешения, то скорее бегите к нотариусу и просите его распечатать ваш контент на этом сайте и удостоверить, что это распечатка была сделана такого-то числа с такого-то урла — вот вам «вещдок», который суду будет очень сложно не принимать во внимание. особенно если вы сумеете доказать свое авторство на этот контент, скажем аналогичной нотариально заверенной копией своего сайта.

                                                                                    • 0
                                                                                      Интересно как там с miranda.org/caps?
                                                                                      • 0
                                                                                        Таки забрали, хотя может я плохо искал…
                                                                                    • 0
                                                                                      С нетерпением ждём развязки этой истории :)
                                                                                      • +3
                                                                                        да, тэга «попкорн» явно не хватает :)
                                                                                      • 0
                                                                                        В мэйлагенте кроме прочего использован открытый код 7-zip
                                                                                        • +1
                                                                                          LZMA SDK, если не ошибаюсь, идет под LGPL
                                                                                          • +3
                                                                                            LGPL конечно более мягкая лицензия, но все равно налагает некоторые ограничения. Во-первых к продукту должен быть приложен текст самой лицензии. Во-вторых LGPL библиотека должна быть заменяемой. Т.е. у пользователя должна быть возможность заменить LGPL библиотеку на новую версию. Это фактически запрет на статическую линковку. Статическая линковка с LGPL библиотекой разрешена только при выполнении одного из условий, это либо открытый доступ к исходникам, неважно под какой лицензией, главное что бы она не запрещала компилировать исходники, либо предоставление объектных файлов, что бы пользователь мог самостоятельно производить линковку. А вот отдельной библиотеки, не говоря уже про текст LGPL я не вижу. Хотя точно сказать, что в продукте есть LGPL код не могу, но я его и не искал :)
                                                                                            • +2
                                                                                              www.7-zip.org/sdk.html
                                                                                              Не, LZMA SDK — public domain, общественное достояние, можно использовать как угодно. Так что тут вряд ли они могли что-то нарушить.
                                                                                              • 0
                                                                                                Под такой лицензией LZMA SDK с 2008-12-02, думаю они использовали эти исходные коды и до этого.

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