A Google Mandiant egy olyan kiberkémkedési kampányt írt le, amely nem látványos “feltörésekkel”, hanem inkább észrevétlen, kitartó jelenléttel dolgozott. A műveletet a Google UNC2814 néven követi, és a megfigyeléseik szerint a kampány hosszú ideje fut, telekommunikációs és kormányzati szervezeteket célozva, a beavatkozás időpontjában 53 igazolt áldozattal 42 országban, további legalább 20 országban pedig gyanított érintettséggel.
A történet érdekessége, hogy a támadók nem feltétlenül új, ritka sérülékenységekre építettek. Ehelyett olyan módszert választottak, ami a mindennapi vállalati IT-ban “normálisnak” tűnik, legitim felhő szolgáltatásokon keresztül kommunikáltak. A kampány központi eszköze egy GRIDTIDE nevű backdoor volt, amely egy már kompromittált szerveren futva távoli parancsok végrehajtását és adatmozgatást tett lehetővé.
A GRIDTIDE egyik legfontosabb trükkje a vezérlésben volt. Klasszikusan egy kártevő valamilyen gyanús, külső szerverre csatlakozik (C2), ami jól szűrhető. Ismeretlen domain, furcsa IP, szokatlan hálózati minták jellemzők. Ebben az esetben viszont a vezérlő a Google Táblázatokhoz (Google Sheets) kapcsolódó API-n keresztül működött. Magyarán a kártevő úgy viselkedett, mintha egy teljesen legitim vállalati automatizmus lenne, ami táblázatokat kezel. A támadó parancsokat és válaszokat cellákban mozgatta, a hálózaton pedig ez “csak” Google Sheets API forgalomként jelent meg. A Google külön hangsúlyozta, hogy ez nem a szolgáltatás sérülékenysége volt, hanem a normál funkcionalitás visszaélésszerű használata.
A kompromittálás után a támadók a megszokott, óvatos “bent maradunk” módszereket használták. A leírás alapján Linux szervereken dolgoztak, és a kártevőt úgy telepítették, hogy a rendszerindításkor automatikusan elinduljon (systemd szolgáltatásként). A fájlnevek és elérési utak is igyekeztek belesimulni a környezetbe, például az “xapt” elnevezéssel és a rendszerkönyvtárakra emlékeztető elhelyezéssel. Ezek mind azt szolgálják, hogy egy gyors, felületes ellenőrzésnél ne legyen szembetűnő, hogy valami nem stimmel.
A kampány célja a kémkedés volt, és ennek megfelelően a támadók a számukra értékes adatokra fókuszáltak. A blog szerint az egyik vizsgált környezetben olyan rendszereket értek el, amelyek személyes adatokat tartalmaztak (például név, telefonszám, születési adatok, különféle azonosítók). Az ilyen adatok nem csak hagyományos adatvédelmi szempontból fontosak, hírszerzési logikával gondolkodva ezekből célpontlistát lehet építeni, személyeket lehet összekapcsolni, kapcsolati hálókat felrajzolni, és későbbi, célzott műveleteket előkészíteni.
A felhő nem csak védelem és kényelmi szolgáltatás, hanem rejtekhely is lehet. Ha egy támadó legitim felhős API-kat használ vezérlésre, akkor a klasszikus “tiltsuk az ismeretlen domaineket” vagy “nézzük a gyanús IP-ket” megoldás önmagában kevés. Ilyenkor a hangsúly a viselkedés elemzésén van. Melyik gép, melyik folyamat, milyen okból beszél a Sheets API-val, miért fut egy szerveren olyan komponens, aminek ott nincs dolga, miért jelennek meg szokatlan szolgáltatásfiókok, kulcsfájlok vagy automatizmusok.
A Google a saját oldalán “disruption”-ról, azaz a támadó működésének megzavarásáról is beszámolt. A kampányhoz köthető erőforrásokat és hozzáféréseket letiltották, valamint érintetti értesítéseket és technikai indikátorokat (IOC) is közzétettek.
