XcodeGhost

XcodeGhost (вариант — XcodeGhost S) — модифицированные версии среды разработки Xcode от компании Apple, считающиеся вредоносным ПО[1]. Программа привлекла широкое внимание в сентябре 2015 года, когда в ряде приложений, распространявшихся из Китая, был обнаружен вредоносный код[2]. По данным BBC, это расценивалось как «первая атака на App Store Apple в больших масштабах»[3]. Проблема была впервые обнаружена исследователями из Alibaba, крупного китайского предприятия в сфере электронной коммерции. По данным FireEye, было заражено более 4000 приложений — существенно больше, чем 25, которые первоначально признавала компания Apple[4], в том числе программы, авторы которых находились за пределами Китая.

По мнению компании Palo Alto Networks, из-за медленного интернет-соединения в Китае многие разработчики вместо скачивания Xcode с серверов Apple обращались к локальным копиям среды разработки, зачастую размещённым на внутренних китайских ресурсах; эти копии были изменены злоумышленниками, которые добавили вредоносный код. В результате вредоносное ПО попало в популярные приложения для устройств на iOS[5][6].

Даже спустя два месяца после первых сообщений компания FireEye отмечала, что сотни организаций продолжают использовать заражённые приложения, а XcodeGhost остаётся значимой угрозой безопасностии[7][8]. FireEye также обнаружила новую версию вредоносной программы (XcodeGhost S); среди наиболее известных заражённых приложений были мессенджер WeChat и приложение «Music 163» от NetEase[9].

Обнаружение

16 сентября 2015 года китайский iOS-разработчик сообщил[10] в социальной сети Sina Weibo, что одна из версий Xcode внедряет сторонний код в собираемые приложения.

Исследователи Alibaba затем опубликовали[11] подробный анализ вредоносной программы, впервые употребив название XcodeGhost.

17 сентября 2015 года Palo Alto Networks выпустила серию отчётов о вредоносном ПО[12][13][14][15].

Принцип действия

Распространение

Из-за низкой скорости скачивания файлов с серверов Apple китайские разработчики загружали установщики Xcode с альтернативных сайтов (например, Baidu Yun, ныне Baidu WangPan), либо получали копии от коллег. Злоумышленники воспользовались ситуацией, распространяя на подобных файловых ресурсах заражённые версии Xcode[16].

Согласно исследованию Palo Alto Networks, вредоносная программа могла распространяться с марта 2015 года[15].

Происхождение

undefined

Атака была реализована по принципу закладки в компилятор. Особенность заключалась в модификации компилятора Xcode. Согласно рассекреченным документам, исследователи из Sandia National Laboratories в рамках ЦРУ утверждали, что им удалось создать изменённую версию Xcode, способную внедрять шпионские «закладки» в любое приложение, собранное с её помощью[17].

Изменяемые файлы

Известные версии XcodeGhost добавляли к оригинальному приложению Xcode дополнительные файлы[12]:

  • Базовая сервисная библиотека для iOS, iOS-симулятора и платформы macOS
  • Фреймворк IDEBundleInjection для iOS, iOS-симулятора и macOS

XcodeGhost также модифицировал компонент компоновщика, подключая вредоносные модули[15] к собранному приложению. Эта операция отражается в логах сборки, но не отображается в IDE Xcode.

Уязвимыми к XcodeGhost оказались приложения для iOS и macOS.

Внедрение

XcodeGhost поражал слой CoreServices, в котором сконцентрировано множество часто используемых приложениями сервисов и библиотек[18]. При сборке приложения через заражённый Xcode эти вредоносные CoreServices интегрировались в приложение прозрачно для разработчика.

Злоумышленники также добавляли дополнительный код к классам UIWindow и UIDevice. Класс UIWindow представляет собой объект, отвечающий за управление окнами и координацию отображения элементов интерфейса[19].

Класс UIDevice предоставляет singleton — экземпляр, представляющий текущее устройство; из него можно получить имя, модель и версию операционной системы устройства[20].

Удалённое управление и риски безопасности

XcodeGhost способен принимать команды управления от атакующего с помощью командно-контрольного сервера через HTTP. Передача данных шифруется с помощью алгоритма DES в режиме ECB, который считается устаревшим и небезопасным; ключи шифрования можно подобрать методом обратного анализа. Потенциально злоумышленник может организовать атаку типа Man-in-the-middle и отправлять устройству ложные HTTP-команды (например, открытие окна или запуск определённого приложения).

Кража информации об устройстве пользователя

При запуске приложения, заражённого XcodeGhost (как на реальном устройстве, так и в симуляторе Xcode), вредоносная программа автоматически собирает следующую информацию:

Собранные данные шифруются и отправляются на сервер команд и управления. Для разных версий XcodeGhost могут использоваться разные сервера; анализ Palo Alto Networks выявил следующие URL:

  • http://init.crash-analytics.com
  • http://init.icloud-diagnostics.com
  • http://init.icloud-analysis.com

Последний домен использовался также малварью KeyRaider[12].

Работа с буфером обмена (clipboard)

Каждый раз при запуске приложения, заражённого XcodeGhost, малварь может получать данные из буфера обмена iOS и изменять их содержимое. Это особенно опасно, если пользователь хранит там пароли или использует приложения для управления паролями.

Подмена открытия определённых URL

XcodeGhost может инициировать открытие специфических URL-адресов при запуске заражённого приложения. Поскольку в iOS и macOS действует механизм взаимодействия между приложениями через специальные URL-схемы[21] (например, 'whatsapp://', 'Facebook://', 'iTunes://'), злоумышленник может открыть любое установленное на устройстве приложение или даже реализовать фишинговую атаку.

Заражённые приложения

Среди заражённых оказались приложения для обмена сообщениями, мобильного банкинга, работы операторов мобильной связи, карты, торговые платформы, социальные сети и игры. К наиболее известным относится мессенджер WeChat, приложение для сканирования документов CamScanner, архиватор WinZip.

По оценкам Pangu Team, всего было инфицировано 3 418 приложений[22].

Голландская компания Fox-it сообщала, что обнаружила тысячи заражённых устройств за пределами Китая[23][24].

Удаление вредоносного ПО

Блокировка управляющих серверов и удаление вредоносных версий Xcode

После публикаций компаний Alibaba и Palo Alto Networks компания Amazon отключила все обнаруженные управляющие серверы XcodeGhost. Baidu также удалил из своего облачного хранилища все вредоносные установщики Xcode.

Удаление заражённых приложений из App Store

18 сентября 2015 года компания Apple признала факт заражения и обратилась к разработчикам с просьбой пересобрать приложения с «чистой» версией Xcode перед повторной подачей в магазин приложений.

Pangu Team выпустила утилиту[25] для проверки устройств на наличие заражённых программ, однако как и другие антивирусы, она работает только на устройствах с джейлбрейком. При этом Apple не допускает антивирусные утилиты в App Store для iOS[26].

Проверка версии Xcode

Apple рекомендует разработчикам проверять[27][28] подлинность своей среды Xcode и всегда держать включённой функцию Gatekeeper в macOS.

Примечания

  1. Dan Goodin. Apple scrambles after 40 malicious "XcodeGhost" apps haunt App Store (англ.), Ars Technica (21 сентября 2015). Архивировано 29 октября 2015 года. Дата обращения: 5 ноября 2015.
  2. Joe Rossignol. What You Need to Know About iOS Malware XcodeGhost (англ.), macrumors.com (20 сентября 2015). Архивировано 4 ноября 2015 года. Дата обращения: 5 ноября 2015.
  3. App Store компании Apple заражён вредоносным ПО XcodeGhost в Китае (англ.) (21 сентября 2015). Архивировано 26 сентября 2016 года. Дата обращения: 22 сентября 2016.
  4. Protecting Our Customers from XcodeGhost (англ.). FireEye. Дата обращения: 9 ноября 2021. Архивировано 26 октября 2021 года.
  5. Byford, Sam Apple removes malware-infected App Store apps after major security breach (англ.). The Verge (20 сентября 2015). Дата обращения: 5 ноября 2015. Архивировано 24 января 2018 года.
  6. James Temperton. Apple App Store hack: XcodeGhost attack strikes China (Wired UK) (англ.) (21 сентября 2015). Архивировано 18 ноября 2015 года. Дата обращения: 5 ноября 2015.
  7. Kirk, Jeremy Many US enterprises still running XcodeGhost-infected Apple apps, FireEye says (англ.). InfoWorld (4 ноября 2015). Дата обращения: 5 ноября 2015. Архивировано 13 ноября 2015 года.
  8. Ben Lovejoy. A modified version of XcodeGhost remains a threat as compromised apps found in 210 enterprises (англ.). 9to5Mac (4 ноября 2015). Дата обращения: 5 ноября 2015. Архивировано 6 ноября 2015 года.
  9. XcodeGhost S: A New Breed Hits the US (англ.). FireEye (3 ноября 2015). Дата обращения: 5 ноября 2015. Архивировано 4 марта 2016 года.
  10. Первое упоминание XcodeGhost на Sina Weibo. Sina Weibo (17 сентября 2015). Дата обращения: 11 ноября 2015.
  11. Xcode编译器里有鬼 – XcodeGhost样本分析-安全漏洞-安全研究-阿里聚安全. jaq.alibaba.com. Дата обращения: 11 ноября 2015. Архивировано 19 апреля 2016 года.
  12. 1 2 3 Claud Xiao Novel Malware XcodeGhost Modifies Xcode, Infects Apple iOS Apps and Hits App Store - Palo Alto Networks Blog. Palo Alto Networks Blog (17 сентября 2015). Дата обращения: 11 ноября 2015. Архивировано 25 сентября 2015 года.
  13. Claud Xiao Malware XcodeGhost Infects 39 iOS Apps, Including WeChat, Affecting Hundreds of Millions of Users - Palo Alto Networks Blog. Palo Alto Networks Blog (18 сентября 2015). Дата обращения: 11 ноября 2015. Архивировано 24 сентября 2015 года.
  14. Claud Xiao Update: XcodeGhost Attacker Can Phish Passwords and Open URLs through Infected Apps - Palo Alto Networks Blog. Palo Alto Networks Blog (18 сентября 2015). Дата обращения: 11 ноября 2015. Архивировано 23 сентября 2015 года.
  15. 1 2 3 Claud Xiao More Details on the XcodeGhost Malware and Affected iOS Apps - Palo Alto Networks Blog. Palo Alto Networks Blog (21 сентября 2015). Дата обращения: 11 ноября 2015.
  16. Thomas Fox-Brewster Hackers Sneak Malware Into Apple App Store 'To Steal iCloud Passwords'. Forbes (18 сентября 2015). Дата обращения: 11 ноября 2015.
  17. The CIA Campaign to Steal Apple's Secrets (англ.). The Intercept (10 марта 2015). Дата обращения: 11 ноября 2015. Архивировано 9 августа 2017 года.
  18. Core Services Layer. developer.apple.com. Дата обращения: 11 ноября 2015. Архивировано 27 сентября 2015 года.
  19. UIWindow Class Reference. developer.apple.com. Дата обращения: 11 ноября 2015. Архивировано 27 сентября 2015 года.
  20. UIDevice Class Reference. developer.apple.com. Дата обращения: 11 ноября 2015. Архивировано 4 марта 2016 года.
  21. Inter-App Communication. developer.apple.com. Дата обращения: 11 ноября 2015. Архивировано 3 октября 2015 года.
  22. Pangu Team на Weibo (21 сентября 2015). Дата обращения: 11 ноября 2015. Архивировано 29 апреля 2017 года.
  23. Совместное исследование Fox-IT и Palo Alto Networks: популярные приложения заражены малварью. Fox-it (18 сентября 2015). Дата обращения: 11 ноября 2015. Архивировано 12 августа 2016 года.
  24. Hackers Sneak Malware Into Apple App Store 'To Steal iCloud Passwords' (англ.), Forbes (18 сентября 2015). Архивировано 25 ноября 2016 года.
  25. Xcode病毒检测, XcodeGhost病毒检测 — 盘古越狱. x.pangu.io. Дата обращения: 11 ноября 2015. Архивировано 20 ноября 2015 года.
  26. Haslam, Karen. Why the iOS app XcodeGhost exploit shouldn't concern you (англ.), Macworld UK. Архивировано 24 сентября 2017 года. Дата обращения: 24 сентября 2017.
  27. Вопросы и ответы о XcodeGhost. Apple. Дата обращения: 17 июня 2016. Архивировано 14 ноября 2015 года.
  28. Validating Your Version of Xcode - News and Updates - Apple Developer. developer.apple.com. Дата обращения: 11 ноября 2015.