Реверс-инжиниринг клиента Dropbox и взлом аккаунтов

Специалисты по безопасности из CodePainters, Openwall и университета Британской Колумбии опубликовали подробный анализ веб-сервиса для хостинга и синхронизации файлов Dropbox.

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

Авторы работы использовали новые и известные техники для реверс-инжиниринга Python-приложений Dropbox, обхода двухэтапной авторизации и взлома аккаунтов Dropbox. Кроме того, дополнительные методы использовались для перехвата SSL с инъекциями кода.

Авторы проделали большую и важную работу по реверс-инжинирингу программы. Одно из наиболее важных открытий — то, что для авторизации на сайте под любым аккаунтом достаточно знать два специфических значения для этого аккаунта: host_id и host_int. Первое из них можно извлечь из зашифрованной базы данных SQLite или из оперативной памяти компьютера жертвы. Исследователи нашли способ извлечь его даже из логов клиентского приложения Dropbox (они нашли способ и принудительно активировать запись логов с помощью плагина для Metasploit). Второе значение легко перехватить из трафика, используя плагин для Ettercap, это значение приходит от сервера при загрузке и не меняется, так что можно его просто запросить у сервера.

Цель данной работы — приоткрыть «черную коробочку» Dropbox и посмотреть, как она устроена внутри. Авторы исследования предоставили всю необходимую информацию для создания свободной версии Dropbox-клиента, которая использует проприетарные API сервиса Dropbox.

Полная презентация (.pdf).