...

среда, 28 августа 2013 г.

[Перевод] Реверс-инжиниринг клиента Dropbox

imageДо последнего времени существовали сомнения относительно возможности реверс-инжиниринга сильно обфусицированных приложений, написанных на Python. Недавний реверс-инжиниринг двумя программистами клиента Dropbox доказал, что это возможно.

В феврале этого года на Mobile World Congress, CEO Дрю Хьюстон радостно сообщал, что Dropbox, известный сервис для хранения данных, преодолел отметку в 100 миллионов пользователей, и эти 100 миллионов пользователей загружают более миллиона пользователей на сервера Dropbox каждый день. Еще два года назад у Dropbox было всего 25 миллионов пользователей и гораздо меньше загрузок в день.


С какой целью я упомянул обо всем этом? Успех Dropbox наступил не без преодоления нескольких проблемных моментов, и похоже у команды сервиса теперь появится новая головная боль — и все из-за Dhiru Kholia и Przemyslaw Wegrzyn.



Заглядываем под капот



В своем отчете "Взгляд внутрь (Drop) box", Dhiru и Przemyslaw переходят сразу к делу:


«Мы описываем методы для обхода двухфакторной аутентификации Dropbox и для воровства Dropbox-аккаунтов. Кроме того, приводятся базовые принципы перехвата данных, передаваемых с помощью SSL, при помощи техник code injection и Monkey-Patching»





Dhiru и Przemyslaw достигли подобного результата благодаря реверс-инженирингу клиента Dropbox. Казалось бы, в этом ничего удивительного, но только если не учитывать главного — уникальность их работы в том, что им удалось выяснить, как можно сделать реверс-инжиниринг обфусицированного приложения на Python.

Клиент состоит из модифицированного интерпретатора Python, выполняющего обфусицированный байткод на Python. Однако, Dropbox — проприентарная платформа, исходные коды которой закрыты от клиентов, и более того — даже API, используемый клиентом, нигде не задокументирован. Поэтому все прошлые попытки реверс-инжениринга не увенчивались особым успехом. На этот же раз Dhiru и Przemyslaw не только умудрились достичь заметных результатов, но и выйти за рамки одного приложения, на что и намекает отчет:



«Описанные техники можно применить для реверсинга других закрытых приложений на Python»





Последствия



Исследователям удалось раскрыть много секретов Dropbox. Сначала они занялись изучением процессов регистрации, логина и функцией «Launch Dropbox Website» для кражи аккаунта. Затем им удалось выяснить еще и следующее:


  • Как перехватывать SSL трафик с серверов Dropbox

  • Как обходить двухфакторную аутентификацию Dropbox

  • Как создать open-source Dropbox клиент




В отчете достаточно подробно объясняется, как программисты успешно получили доступ к аккаунту и файлам жертвы. Упоминается, что от версии к версии разработчики Dropbox усложняли защиту безопасности клиента, поэтому для взлома разных версий Dropbox применялись разные атаки.

Авторы исследования надеются, что проведенный инжиниринг вынудит разработчиков Dropbox сделать возможность его повторения в разы сложнее. В то же время, они ясно дают понять, что особого смысла в закрытом коде нет:



При этом, нам неясно, зачем Dropbox прилагает такие усилия для того, чтобы реверсинг стал невозможен. Большая часть их «секретных ингридиентов» все равно хранится на стороне сервера, который уже и так неплохо защищен. Мы не уверены, что меры по анти-реверсингу приносят какую-то пользу и пользователям, и Dropbox.





Как сообщают другие специалисты, в документе содержится пошаговые инструкции для «распаковки» исходного кода клиента Dropbox, чего явно не желала сама компания. Теперь же многие смогут взять этот исходный код и использовать его в своих целях. Другое дело в том, что нам неизвестно, не проделывал ли кто-то подобное и раньше, используя потом полученный реверсинг в своих целях.

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий