IM

индекс
212,31

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

Прочитав топик о подозрительности реализации протокола 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.
+121
6 февраля 2009, 13:18
9

комментарии (96)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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