Специалисты по информационной безопасности из Google Threat Intelligence Group (GTIG) и Mandiant объявили о пресечении масштабной кампании кибершпионажа, которая на протяжении нескольких лет таргетировала телекоммуникационные компании и государственные организации по всему миру. За ней стоит группа UNC2814, которую аналитики связывают с Китаем. Уникальность атаки заключается в использовании легитимного функционала облачных сервисов, в частности Google Sheets, в качестве скрытого канала управления вредоносной инфраструктурой, что делает её чрезвычайно сложной для обнаружения традиционными средствами защиты.
Описание
Масштабы кампании и цели атакующих
По данным расследования, группа UNC2814, активная как минимум с 2017 года, смогла проникнуть в системы 53 подтверждённых жертв в 42 странах на четырёх континентах. Кроме того, специалисты выявили признаки потенциального заражения ещё как минимум в 20 государствах. Основными целями хакеров стали операторы связи, что является классическим вектором для разведывательной деятельности. Получая доступ к телеком-инфраструктуре, злоумышленники могут перехватывать записи звонков, SMS-сообщения, а также злоупотреблять системами оперативно-розыскных мероприятий для слежки за конкретными лицами. В рамках этой кампании на одном из скомпрометированных хостов была обнаружена персональная информация, включая полные имена, номера телефонов, даты рождения и идентификационные номера избирателей и граждан, что подтверждает шпионские мотивы.
Техника атаки: бэкдор GRIDTIDE и злоупотребление облачными API
Ключевым инструментом в этой кампании стал ранее неизвестный бэкдор, получивший название GRIDTIDE. Это сложная программа на языке C, способная выполнять произвольные команды, а также загружать и скачивать файлы. Однако его главная особенность - механизм командования и управления (C2). Вместо использования традиционных серверов, бэкдор в качестве платформы C2 применяет Google Sheets, превращая обычную электронную таблицу в скрытый канал связи.
GRIDTIDE использует легитимные API-вызовы к Google Sheets для обмена данными с оператором. Вредоносный трафик маскируется под обычные запросы к облачному сервису, что позволяет ему ускользать от обнаружения сетевыми системами защиты (IDS/IPS) и решениями класса SIEM (Security Information and Event Management), которые могут не флаггировать легальную активность. Для аутентификации используется скомпрометированный или созданный злоумышленником сервисный аккаунт Google. При запуске бэкдор очищает таблицу, проводит разведку на хосте, собирая данные об ОС, имени пользователя, IP-адресе и другой информации, и записывает их в определённую ячейку.
Управление осуществляется через ячейку A1 таблицы. Оператор помещает туда команду в специальном формате, которую GRIDTIDE периодически опрашивает. После выполнения команды бэкдор перезаписывает эту же ячейку статусом выполнения. Для передачи больших объёмов данных, например, выводов команд или содержимого файлов, используются колонки со второй строки и ниже. Вся передаваемая информация кодируется с использованием URL-safe Base64, что дополнительно затрудняет анализ трафика.
Сценарий компрометации и действия по устранению угрозы
Изначальный вектор проникновения в эту кампанию точно не установлен, однако у UNC2814 в анамнезе есть эксплуатация уязвимостей в веб-серверах и периферийных системах. После получения доступа злоумышленники использовали легитимные системные утилиты (Living-off-the-Land техника) для перемещения по сети, повышения привилегий и закрепления в системе. Для обеспечения постоянного доступа они создавали службу systemd, которая перезапускала бэкдор. Также в некоторых случаях развёртывался мост SoftEther VPN для создания зашифрованного исходящего туннеля.
Действия по противодействию кампании со стороны GTIG и партнёров были решительными и комплексными. Были удалены все облачные проекты Google, контролируемые злоумышленниками, что лишило их доступа к уже скомпрометированным системам через GRIDTIDE. Отключены сервисные аккаунты и доступ к API Google Sheets, которые использовались для C2. Совместно с партнёрами была выведена из строя вся известная инфраструктура UNC2814, включая исторические домены, которые были перенаправлены на подконтрольные специалистам по безопасности серверы (sinkholed). Кроме того, всем подтверждённым жертвам были отправлены уведомления, а для сообщества выпущены индикаторы компрометации (IOC), помогающие обнаружить активность группы.
Выводы и рекомендации для специалистов
Данная кампания наглядно демонстрирует тренд, когда продвинутые группы противника отказываются от эксплуатации уязвимостей в самих облачных сервисах в пользу злоупотребления их легитимным функционалом. Это создаёт серьёзные проблемы для защитников, так как атака сливается с фоновой легальной активностью. В свою очередь, для организаций, особенно в телекоммуникационном и государственном секторах, это служит жёстким напоминанием о необходимости усиления мониторинга не только на предмет явных угроз, но и аномального использования корпоративных облачных инструментов.
Специалистам по безопасности рекомендуется, во-первых, тщательно аудировать использование сервисных аккаунтов и API-ключей в облачных средах, применяя принцип минимальных привилегий. Во-вторых, необходимо внедрять решения для расширенного обнаружения угроз, способные анализировать поведение и контекст, а не только сигнатуры, и коррелировать события из разных источников, включая логи облачных API. В-третьих, критически важно отслеживать необычную исходящую сетевую активность, даже если она направлена на доверенные домены, такие как googleapis.com. Наконец, опубликованные индикаторы компрометации должны быть немедленно имплементированы в системы мониторинга для поиска следов уже состоявшихся инцидентов. Хотя текущая инфраструктура UNC2814 нарушена, эксперты ожидают, что эта настойчивая группа в кратчайшие сроки попытается восстановить свои возможности, используя новые методы уклонения.
Индикаторы компрометации
IPv4
- 130.94.6.228
- 139.180.219.115
- 139.84.236.237
- 149.28.128.128
- 149.28.139.125
- 178.79.188.181
- 195.123.211.70
- 195.123.226.235
- 202.59.10.122
- 207.148.73.18
- 38.180.205.14
- 38.54.112.184
- 38.54.31.146
- 38.54.32.244
- 38.54.37.196
- 38.54.82.69
- 38.60.171.242
- 38.60.194.21
- 38.60.224.25
- 38.60.252.66
- 45.76.157.113
- 45.76.184.214
- 45.77.254.168
- 45.90.59.129
- 5.34.176.6
- 65.20.104.91
Domains
- 1cv2f3d5s6a9w.ddnsfree.com
- admina.freeddns.org
- afsaces.accesscam.org
- ancisesic.accesscam.org
- applebox.camdvr.org
- appler.kozow.com
- asdad21ww.freeddns.org
- aw2o25forsbc.camdvr.org
- awcc001jdaigfwdagdcew.giize.com
- bab2o25com.accesscam.org
- babaji.accesscam.org
- babi5599ss.ddnsgeek.com
- balabalabo.mywire.org
- bggs.giize.com
- bibabo.freeddns.org
- binmol.webredirect.org
- bioth.giize.com
- Boemobww.ddnsfree.com
- brcallletme.theworkpc.com
- btbtutil.theworkpc.com
- btltan.ooguy.com
- camcampkes.ddnsfree.com
- camsqewivo.kozow.com
- ccammutom.ddnsgeek.com
- cdnvmtools.theworkpc.com
- cloacpae.ddnsfree.com
- cmwwoods1.theworkpc.com
- cnrpaslceas.freeddns.org
- codemicros12.gleeze.com
- cressmiss.ooguy.com
- cvabiasbae.ddnsfree.com
- cvnoc01da1cjmnftsd.accesscam.org
- cvpc01aenusocirem.accesscam.org
- cvpc01cgsdfn53hgd.giize.com
- DCLCWPDTSDCC.ddnsfree.com
- dlpossie.ddnsfree.com
- dnsfreedb.ddnsfree.com
- doboudix1024.mywire.org
- evilginx2.loseyourip.com
- examp1e.webredirect.org
- faeelt.giize.com
- fakjcsaeyhs.ddnsfree.com
- fasceadvcva3.gleeze.com
- ffosies2024.camdvr.org
- fgdedd1dww.gleeze.com
- filipinet.ddnsgeek.com
- freeios.theworkpc.com
- ftpuser14.gleeze.com
- ftpzpak.kozow.com
- globoss.kozow.com
- gogo2025up.ddnsfree.com
- googlel.gleeze.com
- googles.accesscam.org
- googles.ddnsfree.com
- googlett.camdvr.org
- googllabwws.gleeze.com
- gtaldps31c.ddnsfree.com
- hamkorg.kozow.com
- honidoo.loseyourip.com
- huygdr12.loseyourip.com
- icekancusjhea.ddnsgeek.com
- idstandsuui.kozow.com
- indoodchat.theworkpc.com
- jarvis001.freeddns.org
- Kaushalya.freeddns.org
- khyes001ndfpnuewdm.kozow.com
- kskxoscieontrolanel.gleeze.com
- ksv01sokudwongsj.theworkpc.com
- lcskiecjj.loseyourip.com
- lcskiecs.ddnsfree.com
- losiesca.ddnsgeek.com
- lps2staging.ddnsfree.com
- lsls.casacam.net
- ltiuys.ddnsgeek.com
- ltiuys.kozow.com
- mailsdy.gleeze.com
- maliclick1.ddnsfree.com
- mauritasszddb.ddnsfree.com
- meetls.kozow.com
- Microsoft.bumbleshrimp.com
- ml3.freeddns.org
- mlksucnayesk.kozow.com
- mmmfaco2025.mywire.org
- mms.bumbleshrimp.com
- mmvmtools.giize.com
- modgood.gleeze.com
- Mosplosaq.accesscam.org
- mysql.casacam.net
- nenigncagvawr.giize.com
- nenignenigoncqvoo.ooguy.com
- nenigoncqnutgo.accesscam.org
- nenigoncuopzc.giize.com
- nims.gleeze.com
- nisaldwoa.theworkpc.com
- nmszablogs.ddnsfree.com
- nodekeny11.freeddns.org
- nodjs2o25nodjs.giize.com
- Npeoples.theworkpc.com
- officeshan.kozow.com
- okkstt.ddnsgeek.com
- oldatain1.ddnsgeek.com
- onlyosun.ooguy.com
- osix.ddnsgeek.com
- ovmmiuy.mywire.org
- palamolscueajfvc.gleeze.com
- pawanp.kozow.com
- pcmainecia.ddnsfree.com
- pcvmts3.kozow.com
- peisuesacae.loseyourip.com
- peowork.ddnsgeek.com
- pepesetup.ddnsfree.com
- pewsus.freeddns.org
- plcoaweniva.ddnsgeek.com
- PolicyAgent.theworkpc.com
- polokinyea.gleeze.com
- pplodsssead222.loseyourip.com
- pplosad231.kozow.com
- ppsaBedon.gleeze.com
- prdanjana01.ddnsfree.com
- prepaid127.freeddns.org
- PRIFTP.kozow.com
- prihxlcs.ddnsfree.com
- prihxlcsw.theworkpc.com
- pxlaxvvva.freeddns.org
- quitgod2023luck.giize.com
- rabbit.ooguy.com
- rsm323.kozow.com
- saf3asg.giize.com
- Scopps.ddnsgeek.com
- sdhite43.ddnsfree.com
- sdsuytoins63.kozow.com
- selfad.gleeze.com
- serious.kozow.com
- setupcodpr2.freeddns.org
- sgsn.accesscam.org
- Smartfren.giize.com
- sn0son4t31bbsvopou.camdvr.org
- sn0son4t31opc.freeddns.org
- soovuy.gleeze.com
- styuij.mywire.org
- supceasfg1.loseyourip.com
- systemsz.kozow.com
- t31c0mjumpcuyerop.ooguy.com
- t31c0mopamcuiomx.kozow.com
- t31c0mopmiuewklg.webredirect.org
- t31c0mopocuveop.accesscam.org
- t3lc0mcanyqbfac.loseyourip.com
- t3lc0mczmoihwc.camdvr.org
- t3lc0mh4udncifw.casacam.net
- t3lc0mhasvnctsk.giize.com
- t3lm0rtlcagratu.kozow.com
- tch.giize.com
- telcomn.giize.com
- telen.bumbleshrimp.com
- telkom.ooguy.com
- telkomservices.theworkpc.com
- thbio.kozow.com
- timpe.kozow.com
- timpe.webredirect.org
- tlse001hdfuwwgdgpnn.theworkpc.com
- tltlsktelko.ddnsfree.com
- transport.dynuddns.net
- trvcl.bumbleshrimp.com
- ttsiou12.loseyourip.com
- ua2o25yth.ddnsgeek.com
- udieyg.gleeze.com
- unnjunnani.ddnsfree.com
- updatamail.kozow.com
- updatasuccess.ddnsgeek.com
- updateservices.kozow.com
- updatetools.giize.com
- uscplxsecjs.ddnsgeek.com
- USOShared1.ddnsfree.com
- vals.bumbleshrimp.com
- vass.ooguy.com
- vass2025.casacam.net
- vmtools.camdvr.org
- vmtools.loseyourip.com
- vosies.ddnsfree.com
- vpaspmine.freeddns.org
- wdlcamaakc.ooguy.com
- winfoss1.kozow.com
- ysiohbk.camdvr.org
- zammffayhd.ddnsfree.com
- zmcmvmbm.ddnsfree.com
- zwmn350n3o1fsdf3gs.kozow.com
- zwmn350n3o1ugety2xbe.camdvr.org
- zwmn350n3o1vsdrggs.ddnsfree.com
- zwt310n3o1unety2kab.webredirect.org
- zwt310n3o2unety6a3k.kozow.com
- zwt31n3t0nidoqmve.camdvr.org
- zwt3ln3t1aimckalw.theworkpc.com
URLs
- http://130.94.6.228/amp.tar.gz
- http://130.94.6.228/apt.tar.gz
- http://130.94.6.228/update.tar.gz
- https://sheets.googleapis.com:443/v4/spreadsheets//values/A1?valueRenderOption=FORMULA
- https://sheets.googleapis.com:443/v4/spreadsheets//values/A2:A?valueRenderOption=FORMULA
- https://sheets.googleapis.com:443/v4/spreadsheets//values:batchClear
- https://sheets.googleapis.com:443/v4/spreadsheets//values:batchUpdate
SHA256
- 01fc3bd5a78cd59255a867ffb3dfdd6e0b7713ee90098ea96cc01c640c6495eb
- 4eb994b816a1a24cf97bfd7551d00fe14b810859170dbf15180d39e05cd7c0f9
- 669917bad46a57e5f2de037f8ec200a44fb579d723af3e2f1be1e8479a267966
- ce36a5fc44cbd7de947130b67be9e732a7b4086fb1df98a5afd724087c973b47
- d25024ccea8eac85a9522289cfb709f2ed4e20176dd37855bacc2cd75c995606
- eb08c840f4c95e2fa5eff05e5f922f86c766f5368a63476f046b2b9dbffc2033
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | rule G_APT_Backdoor_GRIDTIDE_1 { meta: author = "Google Threat Intelligence Group (GTIG)" strings: $s1 = { 7B 22 61 6C 67 22 3A 22 52 53 32 35 36 22 2C 22 6B 69 64 22 3A 22 25 73 22 2C 22 74 79 70 22 3A 22 4A 57 54 22 7D 00 } $s2 = { 2F 70 72 6F 63 2F 73 65 6C 66 2F 65 78 65 00 } $s3 = { 7B 22 72 61 6E 67 65 73 22 3A 5B 22 61 31 3A 7A 31 30 30 30 22 5D 7D 00 } $s4 = { 53 2D 55 2D 25 73 2D 31 00 } $s5 = { 53 2D 55 2D 52 2D 31 00 } $s6 = { 53 2D 44 2D 25 73 2D 30 00 } $s7 = { 53 2D 44 2D 52 2D 25 64 00 } condition: (uint32(0) == 0x464c457f) and 6 of ($*) } |