Как стать автором
Обновить

Реверс-инжиниринг клиента Dropbox

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

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

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

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

В своем отчете "Взгляд внутрь (Drop) box", Dhiru и Przemysław переходят сразу к делу:
«Мы описываем методы для обхода двухфакторной аутентификации Dropbox и для воровства Dropbox-аккаунтов. Кроме того, приводятся базовые принципы перехвата данных, передаваемых с помощью SSL, при помощи техник code injection и Monkey-Patching»

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

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

Последствия

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

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

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

Как сообщают другие специалисты, в документе содержится пошаговые инструкции для «распаковки» исходного кода клиента Dropbox, чего явно не желала сама компания. Теперь же многие смогут взять этот исходный код и использовать его в своих целях. Другое дело в том, что нам неизвестно, не проделывал ли кто-то подобное и раньше, используя потом полученный реверсинг в своих целях.
Теги:
Хабы:
Всего голосов 80: ↑73 и ↓7+66
Комментарии18

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн