В iOS и OS X обнаружен ряд 0-day уязвимостей

В iOS и OS X обнаружен ряд 0-day уязвимостей

Специалисты из Университета Индианы и Технологического института Джорджии опубликовали отчет о ряде 0-day уязвимостей в Apple iOS и OS X. Используя найденные дырки, исследователи сумели получить информацию, хранящуюся в Keychain, взломали «песочницу» и достали конфиденциальные данные из приложений Evernote, Facebook и не только.

Основой всему послужила атака XARA (Cross-App Resource Access), суть которой заключается в том, что крупные приложения могут предоставлять малвари доступ к информации других, легитимных приложений. Анализ 1612 самых популярных приложений для Mac и 200 для приложений iOS выявил, что 88.6% используют уязвимые для XARA-атак ресурсы системы, сообщает xakep.ru.

Одна из обнаруженных исследователями проблем касается Keychain. Данная функция присутствует в iOS 7.0.3 и OS X 10.9 Mavericks и выше. Она предназначена для хранения аутентификационных данных, токенов, ключей, данных о банковских картах, информации о сетях Wi-Fi и так далее.

По сути, каждому приложению принадлежит свой, небольшой кусочек Keychain, доступ к которому, должен быть только у этого приложения. Но исследователи выяснили, что можно создать зловреда, который мимикрирует под атрибуты обычного приложения, обманув Keychain.

Приведу пример. Пользователь скачал условное приложение «A» и создает пароль для него. В Keychain будет произведен поиск соответствующих атрибутов, чтобы понять, куда поместить идентификационные данные, вдруг в системе уже есть такое приложение? Если перед этим пользователь установил приложение-малварь, которое заранее подделало атрибуты приложения «А», система сохранит аутефикационную информацию таким образом, что доступ к ней будут иметь оба приложения – настоящее приложение «А» и малварь, созданная хакерами. И даже если пользователь установит вредоносное приложение после установки легитимного, произойдет то же самое. Более того, существующая в Keychain запись вообще может быть удалена другим неавторизованным приложением.

Исследователи протестировали свою атаку на Keychain на Apple’s Internet Accounts и Google Chrome на OS X 10.10. Им удалось извлечь аутентификационные токены для аккаунтов iCloud и Facebook. Согласно отчету, Apple заблокировала возможность такой атаки на iCloud в 10.10.4, но это не остановит хакеров, которые могут просто удалить из Keychain запись.

Еще одна большая проблема лежит в «песочнице» Mac’ов. Чтобы защитить приложения от влияния из вне, всему софту присваиваются идентификаторы Bundle ID (BID), которые определяют, что может делать то или иное приложение вне своего контейнера, и какие данные ему доступны. Данные идентификаторы должны быть уникальны для каждого приложения, и Apple проверяет на дубликаты все, что добавляют в App Store. Однако Apple не справляется с проверкой подпрограмм в приложениях. Подпрограммы могут использовать тот же BID, что и другое легитимное приложение. Получается, что оба приложения работают в одной «песочнице» и имеют доступ к данным друг друга.

Проводник Windows падал не из-за Microsoft, виноват оказался деинсталлятор

Инженер Microsoft Рэймонд Чен рассказал любопытную историю отладки загадочных падений Проводника. Сначала всё выглядело так, будто в Windows внезапно появился неприятный баг. Но виновником оказалась вовсе не Microsoft, а сторонний деинсталлятор.

Проблема проявилась как резкий всплеск сбоев Проводника. Инженеры начали изучать дампы и заметили странную деталь: падала 32-битная версия программы, запущенная на 64-битных системах Windows.

Такая версия Проводника всё ещё есть в Windows ради совместимости со старыми приложениями. Обычно современные системы почти не используют этот путь. Но в данном случае сторонний деинсталлятор каким-то образом заставлял систему обращаться именно к этому устаревшему компоненту.

Дальше выяснилось, что деинсталлятор некорректно работал с системными API: использовал неправильное соглашение о вызовах функций и неверно обрабатывал параметры стека. Из-за этого при каждой неудачной операции данные из стека удалялись неправильно.

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

Со стороны всё выглядело как типичная системная ошибка: софт снова и снова аварийно завершал работу, создавая ощущение, что проблема в самой Windows. На деле операционная система лишь показывала последствия ошибки в стороннем ПО.

Чен напомнил важную вещь: в экосистеме Windows с миллиардами устройств и огромным количеством приложений далеко не каждый сбой компонента Microsoft означает баг в Windows. Сторонние программы тоже могут ломать системные процессы, особенно если неправильно используют низкоуровневые API.

RSS: Новости на портале Anti-Malware.ru