Een dikke, rommelige stapel facturen en bonnen op elkaar
Nieuws7 september · 10:115 min leestijd

Kimsuky maakt phishingdocumenten in bulk met AI-agent opencode

Genians vond de AI-codeeragent opencode terug in de metadata van Kimsuky's lokdocumenten, compleet met vergeten placeholders. De lokthema's verschuiven van diplomatie naar facturen, verzekeringspremies en certificaatverlengingen.

Kimsuky gebruikt de open-source AI-codeeragent opencode om lokdocumenten voor phishing in bulk te produceren, meldt het Zuid-Koreaanse securitybedrijf Genians, dat de naam van de agent letterlijk terugvond in de metadata van de verspreide PDF's.

Interessanter dan de agent is waar die documenten sinds kort over gaan. De lokthema's van de groep draaiden tot nu toe om diplomatie, veiligheid en wetenschap. De dertien onderzochte snelkoppelingen uit 11 tot 19 augustus gaan over uitbetaling van beleidskrediet, verzekeringspremies, rentebetalingen, certificaatverlenging, kaarttransacties en klantdossiers: de mail komt binnen als een verzekeringsnota of een melding over een beleidsfonds.

De campagne zelf mikt op Koreaanse doelwitten en de documenten zijn Koreaanstalig. De fabriek erachter is dat niet: één prompt, een ander onderwerp, en de volgende stapel rolt eruit. Daarmee verschuift de vraag van of jouw organisatie een spionagedoelwit is naar of iemand op je crediteurenadministratie een keurig opgemaakte betaalbevestiging opent.

Documenteigenschappen van een lok-PDF, met Creator en PDF producer op opencode en Author op anonymous. Bron: Genians Security Center
Documenteigenschappen van een lok-PDF, met Creator en PDF producer op opencode en Author op anonymous. Bron: Genians Security Center

De agent tekent zelf af in het Creator-veld

In de Creator- en Producer-velden van meerdere lok-PDF's staat letterlijk opencode, terwijl het Author-veld op anonymous bleef staan. Dat zijn waarden die gangbare tekstverwerkers niet produceren, constateert Genians, en ze wijzen op documenten die programmatisch door een agent zijn weggeschreven. opencode is geen hackersgereedschap maar gewone ontwikkelsoftware: een codeeragent voor de terminal met 195.000 sterren op GitHub en 950 bijdragers, die met meer dan 75 modelaanbieders werkt.

Vier documenten uit die familie dragen exact dezelfde aanmaaktijd, 16 augustus 2026 om 03:00:00 UTC, tot op de seconde gelijk en zonder wijzigingsdatum. Dat is niet iemand die stukken achter elkaar opstelt, dat is één script dat een batch wegschrijft.

Het model liet ook sporen na die niemand meer nakeek. In de bodytekst van de verspreide documenten staan negen keer onvervangen tijdelijke waarden. In het stuk over beleidskrediet loopt het werkkapitaal op tot 100 miljoen won per bedrijf tegen 2,0 procent vaste rente, gevolgd door de aantekening dat het om een tijdelijke waarde gaat. Het model wist het bedrag niet, markeerde het als placeholder, en de aanvaller verstuurde het zo.

Twee productielijnen naast elkaar

Naast de opencode-serie vond Genians een tweede familie met HeadlessChrome en Skia/PDF in de metadata. Dat is HTML die door een browser zonder scherm naar PDF is gedrukt, de standaardroute in geautomatiseerde documentpijplijnen. Die reeks is binnen achttien minuten aangemaakt, op 10 augustus tussen 19:27 en 19:46.

De teksten in die reeks lijken voor meer dan 80 procent op elkaar; alleen de onderwerpwoorden zijn vervangen. Waar de ene zin de afgeronde rentebetalingen doorgeeft, geeft de andere de afgeronde incasso's van verzekeringspremies door, met dezelfde zinsbouw en dezelfde slotformule aan de verantwoordelijke medewerker.

Deze tweetrapslijn levert netter werk op. Geen achtergebleven placeholders, wel een tabelopmaak die op een echt bedrijfsdocument lijkt. Twee XLSX-bestanden uit dezelfde buit noemen AzureUser als auteur, de standaardbeheerdersnaam van een Azure-VM, wat erop wijst dat de productie op gehuurde cloudmachines draait. Van de 29 opgehaalde lokdocumenten bleken er na hashvergelijking maar 11 uniek: dezelfde stukken gaan onder willekeurige bestandsnamen opnieuw rond.

Wat er na de klik op de werkplek gebeurt

De aanvalsketen zelf bleef ongewijzigd, en juist dat maakt hem detecteerbaar. Alle dertien snelkoppelingen dragen chrome.exe als pictogram terwijl ze PowerShell starten, met ongeveer 300 spaties vóór de opdracht zodat het eigenschappenvenster van Windows niets prijsgeeft. De opdrachtregels zijn 5.800 tot 9.500 tekens lang. Negen bestanden zijn opgeblazen tot 8,9 MB met willekeurige opvultekens terwijl de echte LNK-structuur in de eerste 16 KB zit, puur om scanners te laten afhaken.

Daarna volgt het vaste patroon. Een verborgen geplande taak, met een naam die net iets afwijkt van legitieme software of eindigt op een betekenisloos getal van minstens tien cijfers. En PowerShell die raw.githubusercontent.com aanroept met een persoonlijk toegangstoken dat niets met het werk te maken heeft. Acht GitHub-accounts dienden als commandokanaal. Nieuw is Pastebin als tweede afleverroute, klaarblijkelijk bedoeld om een takedown van de eerste te overleven.

Eén variant, verstuurd als klantdossier, stopt zichzelf zodra hij analysegereedschap ziet. Hij loopt een lijst processen af met VGAuthService, vmtoolsd, ProcessHacker, x64dbg en Autoruns, kapt ermee als de ingelogde gebruiker Bruno heet, en wist daarna de PowerShell-geschiedenis.

Waar de verschuiving zit

Het is de eerste keer dat Genians een AI-codeeragent bij Kimsuky aantreft; eerder kon het bureau AI-gebruik alleen afleiden uit schrijfstijl en documentstructuur. Op dezelfde commandoservers trof hetzelfde team vorige maand al de lokale taalmodellen Ollama, GPT4All en Msty plus een RAG-database op gestolen documenten aan. Wat toen nog een vermoeden was, staat nu in een metadataveld.

Voor de ontvanger betekent dat het einde van de laatste inhoudelijke aanwijzing. Een vergeten tijdelijke waarde is precies het soort slordigheid dat verdwijnt zodra iemand de uitvoer één keer naleest, en de gepolijste tweede productielijn laat zien dat die kwaliteitsslag al gaande is. Wat overblijft is de keten na de klik: een snelkoppeling uit een archief die PowerShell start, een geplande taak aanmaakt en vervolgens een codeplatform aanroept. Die combinatie komt in normaal kantoorwerk niet voor, en het is de enige laag die niet met een betere prompt is weg te poetsen. Dezelfde grens werd eerder zichtbaar toen onderzoekers bij 19.500 gevolgde medewerkers geen verband vonden tussen de verplichte antiphishingtraining en de kans dat iemand alsnog klikte.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Grip op je factuurstroom

Bij een binnenkomende stroom facturen en betaalbevestigingen zit de bescherming in het proces, niet in het oog van de ontvanger. Ik denk mee over hoe die keten hoort te lopen, ontwerp de controlestappen en bouw en automatiseer ze, self-hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Gerelateerde artikelen

Kimsuky draait eigen lokale AI-modellen op zijn aanvalsservers
Nieuws
5 min

10 aug 04:11

Kimsuky draait eigen lokale AI-modellen op zijn aanvalsservers

Genians trof op de aanvalsservers van de Noord-Koreaanse groep Kimsuky geïnstalleerde lokale taalmodellen en een RAG-database aan. Daarmee vervalt de vuistregel dat je phishing herkent aan taalfouten, en wordt een datalek duurder.

Microsoft beschrijft Teams-aanval die doorloopt tot de domeincontroller
Nieuws
6 min

3 sep 08:12

Microsoft beschrijft Teams-aanval die doorloopt tot de domeincontroller

Microsoft Threat Intelligence beschrijft een nep-helpdesk die via externe Teams-toegang een sessie voor hulp op afstand krijgt, een Node.js-implant plaatst en daarna via WinRM doorloopt naar domeincontrollers en certificaatautoriteiten.

AWS maakt Pizza Bot open source voor achtergrondtaken van AI-agents
Nieuws
4 min

11 sep 02:16

AWS maakt Pizza Bot open source voor achtergrondtaken van AI-agents

AWS maakt Pizza Bot open source, een lokale inbox voor langlopende AI-agenttaken. Werk gaat door zonder open chat, terwijl goedkeuringen, toolactiviteiten en afgeronde resultaten in aparte wachtrijen terugkomen.

GitLab koppelt Duo Self-Hosted aan Microsoft Foundry
Nieuws
4 min

8 sep 20:29

GitLab koppelt Duo Self-Hosted aan Microsoft Foundry

GitLab Duo Self-Hosted kan nu modellen uit Microsoft Foundry gebruiken. GPT, Claude, Llama en Mistral zijn per functie te koppelen, maar modelondersteuning, licenties, regio’s en datastromen bepalen welke opzet werkelijk werkt.

Microsoft kondigt Project Zenith aan voor pc's die 30B-modellen lokaal draaien
Nieuws
4 min

4 sep 20:22

Microsoft kondigt Project Zenith aan voor pc's die 30B-modellen lokaal draaien

Microsoft kondigt Project Zenith aan, een vooraf ingerichte Windows 11-opzet voor ontwikkelmachines met 64 GB geheugen en 250 GB/s bandbreedte. Modellen van 30 miljard parameters draaien er lokaal, en dat verschuift de AI-rekening van tokens naar hardware.

Je ex-medewerker levert de bedrijfslaptop en telefoon niet in: zo krijg je het apparaat en de data terug
Gids
Uitgebreide gids14 min

24 aug 09:00

Je ex-medewerker levert de bedrijfslaptop en telefoon niet in: zo krijg je het apparaat en de data terug

Een vertrekker houdt de laptop en de telefoon. Dit is de volgorde waarin je ze terugkrijgt zonder je bewijs, je data of je gelijk weg te gooien: vastleggen, inventariseren, veiligstellen, vergrendelen, sommeren, en pas dan de rechter.