Исследователи из компании SentinelOne обнаружили Mac-малварь XcodeSpy, которая распространяется через троянизированные проекты Xcode и предназначена для атак на iOS-разработчиков.
XcodeSpy содержит вредоносный Run Script, который был интегрирован в копию легитимного Xcode-проекта под названием TabBarInteraction. Этот скрипт запускается каждый раз при билде проекта Xcode, устанавливая LaunchAgent для устойчивого присутствия в системе, а затем загружая второй пейлоад — бэкдор для macOS под названием EggShell.
Хотя серверная инфраструктура XcodeSpy, которая контролировала LaunchAgent, не работала, исследователи пишут, что им удалось обнаружить несколько экземпляров бэкдора EggShell, загруженных на VirusTotal. Оба были загружены на VirusTotal из Японии, первый — 5 августа, второй — 13 октября прошлого года.
«Этот бэкдор имеет функции записи с микрофона, камеры и клавиатуры жертвы, а также возможность выгружать и скачивать файлы», — гласит отчет SentinelOne.
Эксперты SentinelOne узнали об этой малвари по наводке анонимного исследователя, который обнаружил бэкдор EggShell в сети неназванной компании в США. По словам исследователей, жертвы одной из атак рассказали, что они неоднократно становились мишенями северокорейских хак-групп, хотя заражение EggShell все же не удалось связать с каким-либо конкретным государством. Судя по всему, злоумышленники, стоящие за этой кампанией, были активны в период с июля по октябрь 2020 года и, похоже, в первую очередь них интересовали разработчики из Азии.
«Мы публикуем этот отчет, надеясь повысить осведомленность киберсообщества и в надежде собрать больше информации. Учитывая ограниченность данных, которыми мы располагаем в настоящее время, пока мы не можем сделать никаких выводов об атакующих», — пишут эксперты.
Аналитики SentinelOne приложили к своему отчету простую команду, которая может помочь разработчикам выявить следы активности вредоносных скриптов XcodeSpy в своих проектах:
find . -name "project.pbxproj" -print0 | xargs -0 awk '/shellScript/ && /eval/{print "\033[37m" $0 "\033[31m" FILENAME}'