XcodeGhost (и вариант XcodeGhost S) — это модифицированные версии среды разработки Apple Xcode , которые считаются вредоносным ПО . [1] Впервые это программное обеспечение привлекло широкое внимание в сентябре 2015 года, когда ряд приложений из Китая содержали вредоносный код. [2] По данным BBC , это считалось «первой крупномасштабной атакой на Apple App Store» [3] . Проблемы были впервые выявлены исследователями из Alibaba , ведущей компании электронной коммерции в Китае. [3] По данным FireEye, заражено более 4000 приложений, что намного больше, чем 25, первоначально признанных Apple, [4] включая приложения авторов за пределами Китая.
Охранная фирма Palo Alto Networks предположила, что из-за более низкой скорости сети в Китае разработчики в стране искали локальные копии среды разработки Apple Xcode и наткнулись на измененные версии, которые были размещены на отечественных веб-сайтах. Это открыло возможность для внедрения вредоносного ПО в громкие приложения, используемые на устройствах iOS. [5] [6]
Даже через два месяца после первых сообщений охранная фирма FireEye сообщила, что сотни предприятий все еще используют зараженные приложения и что XcodeGhost остается «постоянной угрозой безопасности». [7] [8] Фирма также обнаружила новый вариант вредоносного ПО и назвала его XcodeGhost S; среди зараженных приложений были популярный мессенджер WeChat и приложение Netease Music 163. [9]
16 сентября 2015 года китайский iOS-разработчик упомянул [10] в социальной сети Sina Weibo , что вредоносное ПО в Xcode внедряет сторонний код в приложения, скомпилированные с его помощью.
Затем исследователи Alibaba опубликовали [11] подробную информацию о вредоносном ПО и назвали его XcodeGhost.
17 сентября 2015 г. компания Palo Alto Networks опубликовала несколько отчетов о вредоносном ПО. [12] [13] [14] [15]
Из-за низкой скорости загрузки с серверов Apple китайские разработчики iOS загружали Xcode со сторонних веб-сайтов, таких как Baidu Yun (теперь называемая Baidu WangPan), службы облачного хранения, размещенной на Baidu, или получали копии от коллег. Злоумышленники воспользовались этой ситуацией, распространяя скомпрометированные версии на таких файлообменниках. [16]
Palo Alto Networks подозревает, что вредоносное ПО стало доступно в марте 2015 года. [15]
Злоумышленник использовал бэкдор-атаку компилятора . Новизна этой атаки — модификация компилятора Xcode. Согласно документам, обнародованным Эдвардом Сноуденом , исследователи безопасности ЦРУ из Sandia National Laboratories заявили, что они «создали модифицированную версию собственного инструмента разработки программного обеспечения Apple, Xcode, который может проникать через бэкдоры наблюдения в любые приложения или программы, созданные с помощью этого инструмента». [17]
Известные версии XcodeGhost добавляют дополнительные файлы [12] к исходному приложению Xcode:
XcodeGhost также модифицировал компоновщик , чтобы он связывал вредоносные файлы [15] с скомпилированным приложением. Об этом шаге сообщается в журнале компиляции, но не в Xcode IDE .
Приложения iOS и OS X уязвимы для XcodeGhost.
XcodeGhost скомпрометировал уровень CoreServices, который содержит часто используемые функции и платформы, используемые приложением. [18] Когда разработчик компилирует свое приложение с использованием взломанной версии Xcode, вредоносные CoreServices автоматически интегрируются в приложение без ведома разработчика.
Тогда вредоносные файлы добавят дополнительный код в классы UIWindow и UIDevice. Класс UIWindow — это «объект, который управляет и координирует виды, отображаемые приложением на экране устройства». [19]
Класс UIDevice предоставляет одноэлементный экземпляр, представляющий текущее устройство. Из этого экземпляра злоумышленник может получить информацию об устройстве, такую как назначенное имя, модель устройства, а также имя и версию операционной системы. [20]
XcodeGhost можно управлять удаленно с помощью команд, отправленных злоумышленником с сервера управления и контроля через HTTP. Эти данные шифруются с помощью алгоритма DES в режиме ECB . Мало того, что этот режим шифрования известен как слабый, ключи шифрования также можно найти с помощью обратного проектирования. Злоумышленник может выполнить атаку «человек посередине» и передать на устройство поддельный HTTP-трафик (например, чтобы открыть диалоговое окно или открыть определенное приложение).
При запуске зараженного приложения с помощью iPhone или симулятора внутри Xcode XcodeGhost автоматически собирает такую информацию об устройстве, как:
Затем вредоносная программа зашифрует эти данные и отправит их на сервер управления и контроля . Сервер отличается от версии к версии XcodeGhost; Palo Alto Networks удалось найти три URL-адреса серверов:
Последний домен также использовался в iOS-зловреде KeyRaider . [12]
XcodeGhost также может при каждом запуске зараженного приложения сохранять данные, записанные в буфер обмена iOS. Вредоносная программа также способна изменять эти данные. Это может быть особенно опасно, если пользователь использует приложение для управления паролями.
XcodeGhost также может открывать определенные URL-адреса при запуске зараженного приложения. Поскольку Apple iOS и OS X работают с механизмом URL-адресов связи между приложениями [21] (например, «whatsapp://», «Facebook://», «iTunes://»), злоумышленник может открыть любые приложения, установленные на взломанный телефон или компьютер, в случае зараженного приложения macOS. Такой механизм может быть опасен для приложений управления паролями или даже для фишинговых веб-сайтов.
В своей текущей известной версии XcodeGhost не может вызывать диалоговые окна предупреждений на пользовательском устройстве. [15] Однако для этого требуются лишь незначительные изменения.
Используя класс UIAlertView со свойством UIAlertViewStyleLoginAndPasswordInput, зараженное приложение может отображать фальшивое диалоговое окно с предупреждением, которое выглядит как обычная проверка учетных данных пользователя Apple ID, и отправлять входные данные на сервер управления и контроля.
Среди всех китайских приложений были заражены приложение для обмена мгновенными сообщениями, банковские приложения, приложения мобильного оператора, карты, приложения для торговли акциями, приложения для социальных сетей и игры. Также были заражены популярные приложения, используемые во всем мире, такие как WeChat , популярное приложение для обмена мгновенными сообщениями, CamScanner , приложение для сканирования документов с помощью камеры смартфона или WinZip .
Команда Pangu заявила, что насчитала 3418 зараженных приложений. [22]
Fox-it, охранная компания из Нидерландов, сообщает, что они обнаружили тысячи вредоносного трафика за пределами Китая. [23] [24]
После статьи Alibaba и Palo Alto Networks Amazon отключил все серверы, которые использовались XcodeGhost. Baidu также удалила все вредоносные установщики Xcode из своего облачного хранилища.
18 сентября 2015 года Apple признала существование вредоносного ПО и начала просить всех разработчиков взломанных приложений скомпилировать свои приложения с чистой версией Xcode, прежде чем снова отправлять их на проверку.
Команда Pangu выпустила инструмент [25] для обнаружения зараженных приложений на устройстве, но, как и другие антивирусные приложения, он не запускается на устройстве, на котором не был сделан джейлбрейк . Apple не допускает размещение антивирусных приложений в iOS App Store. [26]
Apple советует разработчикам Xcode проверить [27] [28] свою версию Xcode и всегда активировать Gatekeeper на своем компьютере.
XcodeGhost S: новая порода появляется в США