Безопасность OS X под угрозой из-за популярного фреймворка

Исследователь Радослав Карпович (Radoslaw Karpowicz) обнаружил, что использование фреймворка Sparkle Updater представляет угрозу для пользователей OS X. Процесс обновления приложений, использующих Sparkle Updater, нельзя считать безопасным.

Sparkle Updater – популярный компонент множества приложений, он позволяет разработчикам значительно упростить процесс обновления: пользователям не приходится проверять обновления вручную. Уязвимость кроется не в коде фреймворка, проблема в том, что разработчики часто забывают правильно его настроить, в результате чего Sparkle Updater во многих случаях использует HTTP вместо HTTPS.

Для работы фреймворк использует AppCast сервер, который функционирует подобно RSS-протоколу, получая уведомления, когда разработчики выпускают обновления или анонсируют релиз новой версии приложения. Информация передается в виде XML-сообщений. Пользователь может проверять обновления вручную, а может поручить это приложению, которое будет осуществлять проверки автоматически.

Карпович выяснил, что в случае автоматической проверки обновлений, информация часто передается через HTTP. Этим страдают такие популярные программы как Adium, Coda, iTerm, Facebook Origami, Pixelmator, SequelPro, Tunnelblick и VLC. Исследователь пишет, что, скорее всего, уязвимых приложений гораздо больше, а он протестировал только первое пришедшее на ум.

Использовав простую man-in-the-middle атаку, Карпович сумел перехватить запрос AppCast сервера об апдейте и подменил XML-сообщение вредоносным кодом. Так как Sparkle Updater использует для обработки информации в XML-файлах компонент WebView, исследователь сумел добиться от удаленной машины исполнения произвольного кода, полученного в XML-сообщении. Теоретически, такая атака может привести к полной компрометации системы хакером.

Также Карповичу удалось заставить локальную систему выделить процессу обновления куда больше памяти, чем требовалось на самом деле, что привело к возникновению квази-DoS состояния. Кроме того, исследователь смог провести XXE (XML External Entity) атаку, что дало ему доступ к некоторым локальным файлам.