Homelab / InfraNieuwsAI-generated

Cryptominer mikt op go2rtc- en Home Assistant-mappen

Het Symantec Threat Hunter Team heeft een aanvalsagent gevangen die op eigen kracht het internet afzoekt naar onbeveiligde AI-endpoints, die kaapt en daarmee vervolgaanvallen uitvoert. Het bijgeleverde mijnscript blijkt specifiek geschreven voor camera-servers: het zoekt naar mappen van go2rtc, volgens Symantec "een populaire WebRTC-videostreamingserver die voorkomt in slimme-camerabruggen en Home Assistant-opstellingen". Het onderzoek verscheen op 21 oktober; The Register sprak zaterdag met onderzoeker Priti More.

Iemand anders betaalt de rekening

Symantec zette een honeypot op die zich voordeed als een onbeveiligde, aan het internet hangende AI-dienst. Omdat de aanvallers hun volledige werkprompt naar dat nepmodel stuurden, ligt de hele opzet van hun gereedschap nu op tafel: vijf lagen jailbreak en 74 aanvalsfuncties, van internetbrede verkenning via FOFA tot remote code execution op Django-, Jupyter-, Laravel-, Supabase-, Next.js- en Flask-installaties, het leegtrekken van databases via Prisma Studio en het aansturen van een botnet.

Een laatste instructie zette de agent in wat de operators zelf "Skynet mode" noemden: tot 100.000 stappen achter elkaar, zonder tussentijds te overleggen, en met de opdracht om op de achtergrond stil een cryptominer te installeren.

Dit is een vorm van LLMjacking: de aanvaller gebruikt het model van iemand anders, en die iemand anders betaalt de inferentie. Symantec noemt daarmee twee soorten slachtoffers. De eigenaar van het open endpoint krijgt de rekening voor elke stap. De servers waar de agent daarna inbreekt, raken hun data en inloggegevens kwijt en gaan munten delven.

De scanner zocht naar servers die AI-verzoeken aannemen zonder authenticatie, of met authenticatie die een gestolen sleutel passeert. Doordat vrijwel alle AI-tools inmiddels dezelfde OpenAI-compatibele interface gebruiken, vindt één scanner met één set probes heel verschillende doelen: zelfgehoste modelservers die standaard open staan, AI-gateways vóór de betaalde accounts van een organisatie, haastig neergezette testsystemen en MCP-servers. De honeypot kreeg ruim 127.000 externe verzoeken van tienduizenden unieke adressen, vooral verkenning van modelendpoints en het rondstrooien van gestolen API-sleutels.

Het script dat go2rtc zoekt

Een dag na het eerste verzoek kwam er van een ander adres een tweede binnen, zonder toolformaat. Het vroeg het model alleen een string te decoderen. Dat bleek een gzip-gecomprimeerd shellscript te zijn, bedoeld om langs filters te glippen die prompts op leesbare commando's controleren. Het script haalt XMRig binnen, compileert het indien nodig, geeft het de naam van een onschuldig lijkend logboekhulpje en configureert vier mining-pools als uitwijk, zodat het blokkeren van één pool niets oplost. Het zet een immutable-attribuut op zijn eigen configuratie en wist in een lus de toegangslogs van de lokale dienst.

Symantec heeft het script niet uitgevoerd, alleen vastgelegd. The Register tekende bij More op dat er geen aanwijzingen zijn dat de agent echte slachtoffers heeft gemaakt, maar dat het "meer dan een prototype" is. Een toeschrijving is er niet: de Franse sporen zijn zwak, en de gebruikte persona circuleert openlijk in Engelstalige jailbreak-hoeken.

Wat je nu kunt doen

Symantec zegt het zo: wie een AI-dienst, modelgateway of MCP-server neerzet, moet ervan uitgaan dat die kort na het openzetten wordt gevonden en getest, en dat een endpoint zonder authenticatie inmiddels actief gezocht wordt. Verder volgt uit de gepubliceerde scriptregels waar je kunt kijken:

  • Het script kiest de eerste bestaande map uit /config, /opt/go2rtc, /etc/go2rtc, ~/.config/go2rtc en /dev/shm, en zet de miner daar als verborgen bestand .trace. Bij Home Assistant is /config de configuratiemap.
  • Het zoekt go2rtc.yml of go2rtc.yaml om te vergrendelen. Een onverwacht immutable-attribuut op dat bestand is dus een signaal; dat zie je met lsattr.
  • De logwisser praat met de lokale API van go2rtc op poort 1984.