APT29 (Cozy Bear): detectie en verdediging voor Nederlandse organisaties

THREAT INTEL OSINT Microsoft Dark Web ISAC IOCs 47 New today Analysis AI Active Threats Malware 12 Phishing 8 APT 3 Threat Score Medium Live

APT29 behoort tot de meest geavanceerde statelijke dreigingen. Als uitvoerende arm van de Russische buitenlandse inlichtingendienst (SVR) beschikt de groep over ruime middelen, toegang tot zero-day-exploits en de discipline om maanden- of zelfs jarenlange operaties vol te houden. Sinds de eerste publieke toeschrijving in 2014 (FireEye) duikt APT29 herhaaldelijk op bij Nederlandse ministeries, diplomatieke posten, defensieleveranciers en kennisinstellingen. Recente rapportages van Microsoft Threat Intelligence bevestigen dat men zich nadrukkelijk richt op cloudomgevingen, met name Microsoft 365-tenants, om strategische informatie buit te maken.

Voor Nederlandse organisaties in de overheid, defensie- en diplomatieketen of vitale infrastructuur is inzicht in de handelswijze van APT29 geen luxe maar een noodzaak. Deze gids beschrijft de volledige aanvalscyclus – van initiële toegang tot exfiltratie – en koppelt elk onderdeel aan concrete detectie- en verdedigingsmaatregelen volgens MITRE ATT&CK en praktijkervaring uit incidentrespons.

Wat je leert

Een compleet beeld van APT29: MITRE ATT&CK-tactieken, kenmerkende malware (SUNBURST, TEARDROP, WellMess), detectie-engineering in Microsoft Sentinel, huntingqueries gebaseerd op SolarWinds- en vaccinanimitiecampagnes, hardening van Microsoft 365-tenants en incidentresponsprocedures voor statelijke aanvallen. Inclusief voorbeelden van analytics rules, playbooks en IOC-verwijzingen.

Pro tip

Activeer Microsoft Defender for Identity en stel specifieke meldingen in voor DCSync-, Golden Ticket- en Pass-the-Hash-technieken. Bij een EU-diplomatieke post zagen we een melding "ongebruikelijke Kerberos-ticketaanvragen vanaf werkstation" – normaliter een taak voor domeincontrollers. Het bleek om een door APT29 gecompromitteerd device te gaan dat met Mimikatz aan het kerberoasten was. Directe isolatie en een verplichte wachtwoordreset voor alle domeinaccounts voorkwamen een volledige domeinovername. Zonder deze maatwerkalert was de aanval waarschijnlijk wekenlang onopgemerkt gebleven.

APT29 Dreigingsprofiel: Toeschrijving, Motivaties en Historische Campagnes

APT29 vertegenwoordigt een van de meest geavanceerde en persistente statelijke dreigingsactoren die momenteel actief zijn tegen Westerse overheden, diplomatieke instellingen en kritieke infrastructuur. De groep wordt met hoge zekerheid gekoppeld aan de Russische buitenlandse inlichtingendienst SVR, wat betekent dat zij beschikken over aanzienlijke financiële middelen, toegang tot kostbare zero-day-exploits en de operationele discipline om complexe, langdurige cyberoperaties uit te voeren die maanden of zelfs jaren kunnen duren zonder detectie.

De toeschrijving aan de SVR steunt op meerdere solide indicatoren die door verschillende cybersecurity-bedrijven en inlichtingendiensten zijn gedocumenteerd. Het voortdurend hergebruik van dezelfde command-and-control-infrastructuur, waarbij dezelfde domeinen en IP-adressen worden gebruikt voor meerdere campagnes, wijst op een gecentraliseerde organisatie met consistente operationele procedures. De doelwitselectie van APT29 dient duidelijk Russische strategische belangen, waarbij diplomatieke posten, defensie-instellingen en energiebedrijven worden getarget die relevant zijn voor de geopolitieke positie van Rusland. De toegang tot kostbare zero-day-exploits, die op de zwarte markt honderdduizenden dollars kunnen kosten, suggereert staatssteun in plaats van onafhankelijke cybercriminele activiteit. Operationele timingpatronen tonen activiteiten tijdens kantooruren in de tijdzone van Moskou, wat wijst op een geografische locatie in Rusland. Ten slotte hebben officiële aanklachten uit 2021 door de Amerikaanse justitie expliciet APT29-operaties gekoppeld aan de Russische overheid, wat de toeschrijving verder versterkt. De groep opereert onder verschillende aliassen waaronder Cozy Bear, The Dukes, Nobelium, UNC2452 en Dark Halo, waarbij elke alias vaak wordt gebruikt in specifieke campagnes of door verschillende cybersecurity-bedrijven die de groep analyseren.

De strategische doelstellingen van APT29 weerspiegelen de prioriteiten van de Russische buitenlandse inlichtingendienst en omvatten het verzamelen van inlichtingen over diplomatieke posities, militaire planningsprocessen, economische en energiepolitiek, en kritieke infrastructuur die van strategisch belang is voor nationale veiligheid. Tijdens de COVID-19-pandemie richtte de groep zich tijdelijk op gezondheidsonderzoek, met name vaccinontwikkeling, wat aantoont dat zij hun doelwitten kunnen aanpassen aan veranderende geopolitieke omstandigheden. Politieke partijen, denktanks, defensiebedrijven en energiebeheerders behoren tot de vaste doelwitten omdat deze organisaties toegang hebben tot gevoelige informatie over beleidsvorming, militaire capaciteiten en economische strategieën die van waarde zijn voor Russische inlichtingendiensten.

De operationele geschiedenis van APT29 omvat verschillende opmerkelijke campagnes die de geavanceerde capaciteiten en persistentie van de groep demonstreren. Tussen 2014 en 2016 voerde de groep onder de naam The Dukes langdurige infiltraties uit van Amerikaanse politieke organisaties, waaronder de Democratic National Committee, en Europese diplomatieke posten. Deze operaties gebruikten geavanceerde malwarefamilies zoals MiniDuke en CozyDuke die specifiek waren ontworpen om langdurig onopgemerkt te blijven en uitgebreide inlichtingen te verzamelen. De SolarWinds-campagne uit 2020, waarbij de groep de codenaam Nobelium gebruikte, vertegenwoordigde een van de meest ambitieuze supply-chain-aanvallen ooit gedocumenteerd. Door besmette updates van de Orion-software te distribueren via de legitieme updatekanalen van SolarWinds, bereikten de aanvallen duizenden klanten wereldwijd. Circa honderd high-value-doelen, waaronder ministeries en securityleveranciers, werden vervolgens geïnfecteerd met de SUNBURST-backdoor, wat aantoont dat de groep in staat is om complexe, gelaagde aanvallen uit te voeren die legitieme softwareleveranciers compromitteren.

Tussen 2020 en 2021 richtte APT29 zich op vaccinonderzoek via gerichte spear-phishing-campagnes bij farmaceuten en universiteiten om onderzoeksdata te stelen. Deze campagne toonde aan dat de groep snel kan reageren op nieuwe geopolitieke prioriteiten en hun tactieken kan aanpassen aan specifieke doelwitten. Sinds 2021 heeft de groep zich gefocust op cloudomgevingen, met name Microsoft 365-tenants, waarbij password-spraycampagnes worden gebruikt om initiële toegang te verkrijgen. De groep misbruikt ook bekende kwetsbaarheden zoals CVE-2023-23397 in Outlook, gebruikt OAuth-apps voor persistente toegang zonder wachtwoorden, en voert supply-chain-aanvallen uit via managed service providers die toegang hebben tot meerdere klantomgevingen.

Het verschil tussen APT29 en andere Russische statelijke actoren zoals APT28, die wordt geassocieerd met de GRU, is significant en heeft belangrijke implicaties voor verdedigers. APT29 kiest voor stealth en meerdere backdoors, waarbij de groep jarenlang onopgemerkt kan aanwezig blijven door minimale activiteit en het gebruik van living-off-the-land-technieken die legitieme beheertools gebruiken in plaats van opvallende malware. APT28 daarentegen werkt agressiever en accepteert detectie als onderdeel van hun operationele model, waarbij zij vaak snelle, opvallende aanvallen uitvoeren die bedoeld zijn om maximale schade te veroorzaken zelfs als dit detectie betekent. Voor verdedigers betekent dit dat APT29 vooral te herkennen is aan subtiele, langdurige activiteiten die alleen zichtbaar worden door het correleren van meerdere kleine signalen over langere perioden, terwijl APT28 vaak detecteerbaar is door opvallende, agressieve activiteit.

Voor Nederlandse organisaties is het begrijpen van de APT29-dreiging bijzonder relevant omdat NCSC- en Microsoft Threat Intelligence Center-rapportages structurele belangstelling tonen voor Nederlandse ministeries, met name Buitenlandse Zaken, Defensie en Economische Zaken en Klimaat. Diplomatieke posten, defensie-industrie, energiebedrijven en internationale instellingen in Den Haag zoals de OPCW, het Internationaal Strafhof en Europol behoren tot de vaste doelwitten. Recente observaties door het NCSC en Microsoft tonen aanhoudende password-spraycampagnes op rijksoverheidstenants, misbruik van de Outlook-kwetsbaarheid CVE-2023-23397 voor privilege escalation, gebruik van residentiële proxy's om geografische detectie te omzeilen, en command-and-control- en exfiltratie-activiteiten via legitieme clouddiensten zoals OneDrive of Dropbox.

De dreigingsinschatting voor Nederlandse organisaties in de overheid, defensie- en diplomatieketen of vitale infrastructuur is aanzienlijk. De kans op targeting wordt als hoog beschouwd omdat APT29 structureel Nederlandse organisaties target die relevant zijn voor Russische inlichtingenbelangen. De impact van een succesvolle aanval wordt als kritiek beschouwd omdat deze kan leiden tot verlies van vertrouwelijke beleids- of defensiedata die van strategisch belang zijn voor nationale veiligheid. De complexiteit van APT29-aanvallen is zeer hoog omdat de groep beschikt over zero-day-exploits en supply-chain-capaciteiten die traditionele verdedigingsmaatregelen kunnen omzeilen. De detecteerbaarheid is echter laag omdat APT29 uitstekende operationele beveiliging toepast en gebruik maakt van reguliere beheertools die moeilijk te onderscheiden zijn van legitieme activiteit. Organisaties die zich willen beschermen tegen APT29 worden aangeraden om de MITRE ATT&CK-vermelding G0016 te raadplegen, Microsoft-analyses over Nobelium te bestuderen, het FireEye/Mandiant SolarWinds-rapport te lezen, NCSC-adviezen te volgen en CISA Alert AA21-116A te raadplegen voor aanvullende context en detectie-indicatoren.

APT29 Tactieken, Technieken en Procedures volgens MITRE ATT&CK Framework

Het begrijpen van de volledige aanvalscyclus van APT29 volgens het MITRE ATT&CK-framework is essentieel voor effectieve detectie en verdediging. APT29 beheerst de volledige keten van initiële toegang tot exfiltratie, waarbij elke fase zorgvuldig wordt gepland en uitgevoerd met als doel langdurige, onopgemerkte aanwezigheid in doelwitsystemen. Deze systematische aanpak maakt APT29 bijzonder gevaarlijk omdat de groep in staat is om complexe, gelaagde aanvallen uit te voeren die traditionele beveiligingsmaatregelen kunnen omzeilen.

De initiële toegangsfase vormt het kritieke beginpunt van elke APT29-operatie en omvat verschillende tactieken die worden gekozen op basis van de specifieke kenmerken van het doelwit. Doelgerichte spear-phishing-campagnes, gecategoriseerd als MITRE-techniek T1566, vormen een veelgebruikte methode waarbij weaponized Office-bestanden worden gebruikt die macro's of embedded exploits bevatten. Deze bestanden worden vaak verzonden via e-mails die lijken te komen van vertrouwde bronnen zoals collega's, partners of serviceproviders, waarbij social engineering wordt gebruikt om ontvangers te overtuigen om de bijlagen te openen of op links te klikken. APT29 gebruikt ook links naar nagemaakte Microsoft 365- of VPN-portalen die zijn ontworpen om gebruikersreferenties te stelen wanneer slachtoffers proberen in te loggen op wat zij denken dat een legitieme dienst is. Supply-chain-aanvallen, gecategoriseerd als T1199, vertegenwoordigen een geavanceerde aanpak waarbij legitieme softwareleveranciers worden gecompromitteerd om malware te distribueren via hun normale updatekanalen. De SolarWinds-campagne is het meest bekende voorbeeld van deze tactiek, waarbij besmette updates werden gedistribueerd naar duizenden klanten. Het misbruiken van publieke services, gecategoriseerd als T1190, omvat het exploiteren van bekende kwetsbaarheden zoals CVE-2023-23397 in Outlook, waarbij aanvallen kunnen worden uitgevoerd zonder gebruikersinteractie. Password-spraycampagnes, gecategoriseerd als T1078 en T1110.003, vormen nog steeds de populairste route bij cloudtenants omdat deze methode relatief eenvoudig is en vaak succesvol wanneer organisaties geen sterke wachtwoordbeleids of meervoudige authenticatie hebben geïmplementeerd.

De uitvoerings- en persistentiefase is cruciaal voor APT29 omdat de groep langdurige aanwezigheid nastreeft die maanden of jaren kan duren. Intensief gebruik van PowerShell en andere living-off-the-land binaries, gecategoriseerd als T1059, stelt de groep in staat om legitieme beheertools te gebruiken die al aanwezig zijn op doelwitsystemen, waardoor de noodzaak om opvallende malware te installeren wordt vermeden. Deze aanpak maakt detectie moeilijker omdat de gebruikte tools op zichzelf niet verdacht zijn en alleen door gedragsanalyse kunnen worden geïdentificeerd. APT29 combineert deze technieken met geplande taken, services of Outlook-regels, gecategoriseerd als T1053 en T1137, om hardnekkige aanwezigheid te garanderen die blijft bestaan zelfs na systeemherstarts of wachtwoordwijzigingen. OAuth-consent-phishing, gecategoriseerd als T1550.001, levert tokens op waarmee de groep toegang kan behouden zonder wachtwoorden, wat bijzonder gevaarlijk is omdat tokens vaak langere geldigheidsduur hebben en minder zichtbaar zijn voor traditionele beveiligingscontroles.

Privilege escalation en credential theft vormen een kritieke fase omdat APT29 doorgaans initiële toegang verkrijgt met beperkte rechten en vervolgens moet escaleren naar beheerdersrechten om hun doelen te bereiken. LSASS-dumps, gecategoriseerd als T1003.001, worden gebruikt om wachtwoordhashes en andere referenties uit het geheugen te extraheren, vaak met behulp van tools zoals Mimikatz of aangepaste varianten daarvan. Kerberoasting, gecategoriseerd als T1558, is een techniek waarbij Kerberos-tickets worden gestolen en offline worden gekraakt om serviceaccountwachtwoorden te verkrijgen. Pass-the-Hash en Pass-the-Ticket, gecategoriseerd als T1550, stellen de groep in staat om gestolen referenties te gebruiken zonder de oorspronkelijke wachtwoorden te kennen, wat bijzonder effectief is in Windows-omgevingen. Bij volledige domeintoegang gebruikt APT29 DCSync, gecategoriseerd als T1003.006, om alle wachtwoordhashes van een domein te repliceren, wat de groep in staat stelt om toegang te krijgen tot elk account in de omgeving.

Discovery en laterale beweging zijn essentieel voor APT29 om hun doelen te bereiken omdat initiële toegang vaak wordt verkregen op systemen die niet direct toegang hebben tot de gewenste informatie. Uitgebreide enumeratie van accounts, groepen en shares, gecategoriseerd als T1087 en T1069, wordt gebruikt om de omgeving te begrijpen en waardevolle doelwitten te identificeren. Deze enumeratie wordt vaak uitgevoerd met behulp van legitieme beheertools zoals net.exe, dsquery.exe of PowerShell-cmdlets, waardoor de activiteit moeilijk te onderscheiden is van normale beheeractiviteit. Laterale beweging wordt uitgevoerd via RDP of SMB, gecategoriseerd als T1021, of via WMI en PsExec, wat de groep in staat stelt om zich te verplaatsen tussen systemen zonder opvallende malware te installeren. Daarbij blijven bewerkingen vaak beperkt tot beheerhulpmiddelen om onder de radar te blijven, wat een kenmerkende eigenschap is van APT29's operationele beveiliging.

Command-and-control en exfiltratie vormen de finale fase van de aanvalscyclus waarbij APT29 communicatie onderhoudt met hun infrastructuur en gestolen data extraheert. C2-communicatie verloopt via HTTPS, DNS-tunneling of legitieme clouddiensten zoals OneDrive of Dropbox, gecategoriseerd als T1071, T1102 en T1567.002. Het gebruik van legitieme clouddiensten is bijzonder effectief omdat deze diensten vaak niet worden geblokkeerd door firewalls en omdat de communicatie eruitziet als normale gebruikersactiviteit. Data wordt gecomprimeerd en in kleine hoeveelheden verstuurd, gecategoriseerd als T1560 en T1041, om detectie te vermijden door data loss prevention-systemen die vaak zijn geconfigureerd om grote datatransfers te detecteren. Deze aanpak maakt het moeilijk om exfiltratie te identificeren omdat de activiteit lijkt op normale cloudopslaggebruik.

De kern van APT29's effectiviteit ligt in de combinatie van klassieke technische technieken met uitstekende operationele beveiliging. De groep gebruikt vaak technieken die op zichzelf niet bijzonder geavanceerd zijn, maar de manier waarop zij worden gecombineerd en uitgevoerd met zorgvuldige aandacht voor stealth maakt APT29 bijzonder gevaarlijk. Detectie vraagt om het correleren van meerdere kleine signalen over langere perioden, waarbij ongebruikelijke OAuth-apps, laagfrequente password sprays en verdachte PowerShell-logs worden gecombineerd om een volledig beeld te krijgen van de aanval. Het verplicht toepassen van phishing-resistente meervoudige authenticatie op alle accounts vormt een kritieke verdedigingsmaatregel omdat dit de meeste initiële toegangsmethoden van APT29 blokkeert, waardoor de groep gedwongen wordt om meer geavanceerde en risicovolle technieken te gebruiken die gemakkelijker te detecteren zijn.

Detectie Engineering: Aangepaste Analytics Regels voor APT29 Tactieken

Effectieve detectie van APT29-activiteit vereist een gelaagde aanpak die meerdere databronnen combineert om subtiele signalen te identificeren die individueel onschuldig lijken maar samen wijzen op geavanceerde, persistente bedreigingen. Deze detectiestrategie erkent dat APT29 specifiek is ontworpen om traditionele beveiligingscontroles te omzeilen door gebruik te maken van legitieme tools en low-and-slow-aanvallen die moeilijk te detecteren zijn zonder geavanceerde correlatie en gedragsanalyse. Het fundamentele probleem bij het detecteren van APT29 is dat de groep bewust kiest voor technieken die op zichzelf niet verdacht zijn, waardoor traditionele signature-based detectie faalt en organisaties moeten vertrouwen op geavanceerde gedragsanalyse en correlatie van meerdere databronnen over langere tijdsperioden.

E-mail- en identity-telemetrie vormen de eerste verdedigingslinie omdat APT29 vaak initiële toegang verkrijgt via spear-phishing-campagnes en password-sprayaanvallen. Deze aanvalsmethoden zijn bijzonder effectief omdat zij gebruik maken van menselijke kwetsbaarheden en zwakke authenticatieconfiguraties in plaats van technische exploits. E-mailbeveiliging moet worden geconfigureerd om verdachte bijlagen, links naar nagemaakte portals en social engineering-pogingen te detecteren. Deze configuratie vereist een diepgaand begrip van hoe APT29 spear-phishing-campagnes opzet, waarbij de groep vaak maandenlang research doet naar doelwitten om zeer overtuigende e-mails te creëren die lijken te komen van vertrouwde bronnen. Identity-logs moeten worden geanalyseerd op patronen die wijzen op password-sprayaanvallen, waarbij meerdere accounts worden getarget met dezelfde wachtwoorden, of op ongebruikelijke inlogpogingen vanaf nieuwe locaties of apparaten. Deze signalen zijn vaak subtiel en vereisen geavanceerde analytics om te identificeren, vooral wanneer APT29 gebruik maakt van residentiële proxy's of andere methoden om geografische detectie te omzeilen. Het identificeren van password-sprayaanvallen vereist correlatie van mislukte inlogpogingen over meerdere accounts binnen een korte tijdsperiode, waarbij dezelfde wachtwoorden worden gebruikt maar verschillende gebruikersnamen worden getarget. Deze aanpak is bijzonder effectief tegen cloudomgevingen omdat organisaties vaak geen rate limiting hebben geconfigureerd voor mislukte inlogpogingen, waardoor APT29 systematisch door lijsten met veelvoorkomende wachtwoorden kan gaan zonder detectie.

Endpoint-telemetrie is essentieel voor het detecteren van PowerShell-misbruik en LSASS-credential dumping, twee veelgebruikte technieken door APT29. Deze technieken zijn bijzonder gevaarlijk omdat zij gebruik maken van tools die al aanwezig zijn op Windows-systemen, waardoor de noodzaak om opvallende malware te installeren wordt vermeden. PowerShell-logging moet worden ingeschakeld voor alle scripts, inclusief module logging en script block logging, om verdachte PowerShell-activiteit te identificeren. Deze logging is cruciaal omdat APT29 vaak PowerShell gebruikt voor laterale beweging, dataverzameling en command-and-control-communicatie, waarbij de groep base64-gecodeerde scripts gebruikt om detectie te vermijden. LSASS-toegang moet worden gemonitord omdat dit vaak wijst op credential dumping-activiteit, hoewel legitieme processen zoals Windows Defender ook LSASS-toegang hebben, wat zorgvuldige filtering vereist. Het identificeren van verdachte LSASS-toegang vereist correlatie van procesnamen, toegangsrechten en timing, waarbij tools zoals Mimikatz of aangepaste varianten daarvan worden gebruikt om wachtwoordhashes uit het geheugen te extraheren. Endpoint Detection and Response-systemen zoals Microsoft Defender for Endpoint kunnen geavanceerde gedragsdetectie bieden die verdachte activiteit identificeert zelfs wanneer traditionele signature-based detectie faalt. Deze systemen gebruiken machine learning en gedragsanalyse om afwijkende patronen te identificeren die wijzen op geavanceerde aanvallen, zelfs wanneer de gebruikte tools op zichzelf legitiem zijn.

Netwerktelemetrie speelt een cruciale rol bij het detecteren van command-and-control-communicatie en beaconing-activiteit. APT29 gebruikt vaak HTTPS of DNS-tunneling voor C2-communicatie, wat moeilijk te detecteren is zonder deep packet inspection of geavanceerde DNS-analyse. Deze aanpak is bijzonder effectief omdat HTTPS-verkeer eruitziet als normale webverkeer en DNS-tunneling vaak niet wordt geblokkeerd door traditionele firewalls. Het gebruik van legitieme clouddiensten zoals OneDrive of Dropbox voor C2-communicatie maakt detectie nog moeilijker omdat deze diensten vaak niet worden geblokkeerd en omdat de communicatie eruitziet als normale gebruikersactiviteit. APT29 gebruikt deze diensten om command-and-control-communicatie te verbergen door berichten te uploaden als documenten of door gebruik te maken van de metadata van bestanden om instructies door te geven. Netwerkmonitoring moet worden geconfigureerd om ongebruikelijke communicatiepatronen te identificeren, zoals regelmatige verbindingen naar externe domeinen of grote hoeveelheden data die worden geüpload naar clouddiensten. Deze monitoring vereist een diepgaand begrip van normale gebruikersactiviteit om afwijkingen te kunnen identificeren, waarbij machine learning kan worden gebruikt om baseline-gedrag te leren en anomalieën te detecteren.

Microsoft 365 en Azure AD-signalen zijn bijzonder waardevol voor het detecteren van OAuth-consent-phishing en andere cloud-specifieke aanvallen. Deze aanvallen zijn bijzonder gevaarlijk omdat zij toegang kunnen verschaffen zonder wachtwoorden, waardoor traditionele authenticatiecontroles worden omzeild. Audit logs moeten worden geanalyseerd op ongebruikelijke OAuth-app-toestemmingen, vooral wanneer apps verdachte namen hebben of gevaarlijke machtigingen aanvragen. APT29 gebruikt vaak apps die lijken op legitieme Microsoft-apps, waarbij typosquatting wordt gebruikt om gebruikers te misleiden, of apps met generieke namen zoals "Email Helper" of "Document Viewer" die gevaarlijke machtigingen aanvragen zoals Mail.Read, Files.ReadWrite.All of Directory.ReadWrite.All. User and Entity Behavior Analytics kan worden gebruikt om afwijkend gedrag te identificeren, zoals bestuurders of beheerders die ongebruikelijke acties uitvoeren of toegang krijgen tot systemen buiten normale werkuren. Deze signalen kunnen wijzen op gecompromitteerde accounts of privilege escalation-activiteit, waarbij APT29 gebruik maakt van gestolen referenties of OAuth-tokens om toegang te krijgen tot gevoelige informatie. Het identificeren van deze aanvallen vereist correlatie van meerdere signalen, waarbij OAuth-app-toestemmingen worden gecombineerd met gebruiksgedrag, geografische locatie en timing om een volledig beeld te krijgen van de aanval.

De combinatie van deze verschillende databronnen via een Security Information and Event Management-systeem zoals Microsoft Sentinel stelt organisaties in staat om geavanceerde correlatieregels te bouwen die meerdere signalen combineren om APT29-activiteit te identificeren. Deze correlatie is essentieel omdat individuele signalen vaak onschuldig lijken maar samen een duidelijk beeld vormen van een geavanceerde, persistente bedreiging. Het bouwen van effectieve detectieregels vereist een diepgaand begrip van APT29's operationele procedures, waarbij kennis van eerdere campagnes wordt gebruikt om patronen te identificeren die kenmerkend zijn voor de groep. De onderstaande Sentinel-queries zijn praktijkvoorbeelden die zijn ontwikkeld op basis van echte APT29-campagnes en die typische APT29-tekeningen vroegtijdig kunnen herkennen voordat de groep hun doelen kan bereiken. Deze queries gebruiken geavanceerde KQL-technieken om meerdere databronnen te correleren, anomalieën te detecteren en gedragspatronen te identificeren die wijzen op APT29-activiteit. Organisaties moeten deze queries regelmatig bijwerken op basis van nieuwe bedreigingsinformatie en operationele ervaring, waarbij feedback van incident response-teams wordt gebruikt om de detectieregels te verfijnen en te verbeteren.

kql
// ======================================================================== // APT29 DETECTION RULE 1: Password Spray Attack tegen Microsoft 365 // ======================================================================== // APT29 voert frequent password spray attacks uit tegen government tenants // Detection: Multiple failed logins with SAME password across MANY accounts let threshold = 10; // Minimum aantal accounts let timeWindow = 15m; SigninLogs | where TimeGenerated > ago(timeWindow) | where ResultType in ("50053", "50126", "50055") // Invalid credentials, locked accounts | where UserPrincipalName !endswith "#EXT#" // Exclude guest users // APT29 gebruikt vaak residential proxies voor IP obfuscation // Look voor high aantal accounts van SMALL aantal IPs | summarize FailedAccounts = dcount(UserPrincipalName), AttemptedUsers = make_set(UserPrincipalName), FailedAttempts = count(), FirstAttempt = min(TimeGenerated), LastAttempt = max(TimeGenerated), Countries = make_set(LocationDetails.countryOrRegion), SourceIPs = make_set(IPAddress), Apps = make_set(AppDisplayName) by UserAgent // Alert als threshold bereikt | where FailedAccounts >= threshold // Calculate attack velocity (APT29 is typically low-and-slow) | extend AttackDuration = datetime_diff('minute', LastAttempt, FirstAttempt) | extend VelocityPerMinute = FailedAttempts / AttackDuration // APT29 signature: Low velocity (1-3 attempts per minute) om detection te vermijden | extend IsAPT29Pattern = case( VelocityPerMinute >= 1 and VelocityPerMinute <= 5, "High Confidence", VelocityPerMinute > 5 and VelocityPerMinute <= 10, "Medium Confidence", "Low Confidence" ) // Enrich met geotargeting (APT29 target vaak government) | join kind=leftouter ( IdentityInfo | where JobTitle has "Minister" or JobTitle has "Director" or JobTitle has "Ambassador" or Department has "Foreign Affairs" | distinct AccountUPN ) on $left.AttemptedUsers has $right.AccountUPN | extend TargetedHighValueUsers = isnotempty(AccountUPN) | extend AlertSeverity = case( IsAPT29Pattern == "High Confidence" and TargetedHighValueUsers, "Critical", IsAPT29Pattern == "High Confidence", "High", "Medium" ) | project TimeGenerated = FirstAttempt, AlertTitle = "Potential APT29 Password Spray Attack", TargetedAccounts = FailedAccounts, AttemptedUsernames = AttemptedUsers, TotalAttempts = FailedAttempts, AttackDuration, VelocityPerMinute, IsAPT29Pattern, TargetedHighValueUsers, SourceIPs, SourceCountries = Countries, UserAgent, AlertSeverity, MitreTactic = "Initial Access", MitreTechnique = "T1078 - Valid Accounts + T1110.003 - Password Spraying", ThreatActor = "APT29/Nobelium", RecommendedActions = "1. Block source IPs immediately 2. Force password reset for targeted accounts 3. Enable MFA 4. Review recent successful logins from these IPs 5. Notify NCSC if government organization" // ======================================================================== // APT29 DETECTION RULE 2: OAuth Consent Phishing (Nobelium Technique) // ======================================================================== // APT29 gebruikt malicious OAuth apps voor persistent access zonder credentials // Example: Fake "Microsoft Authenticator" app requesting Mail.Read permissions let suspiciousPermissions = dynamic([ "Mail.Read", "Mail.ReadWrite", "Mail.Send", "Files.ReadWrite.All", "Sites.ReadWrite.All", "User.ReadWrite.All", "Directory.ReadWrite.All" ]); AuditLogs | where TimeGenerated > ago(1h) | where OperationName == "Consent to application" | extend AppDisplayName = tostring(TargetResources[0].displayName) | extend AppId = tostring(TargetResources[0].id) | extend Permissions = tostring(TargetResources[0].modifiedProperties) | extend UserPrincipalName = tostring(InitiatedBy.user.userPrincipalName) | extend IPAddress = tostring(InitiatedBy.user.ipAddress) // Parse permissions | where Permissions has_any (suspiciousPermissions) // Check for suspicious app characteristics | extend IsSuspicious = case( // App name mimics Microsoft (typosquatting) AppDisplayName has "Microsoft" and AppDisplayName != "Microsoft Authenticator" and AppDisplayName != "Microsoft Teams", true, // App name is generic ("Email Helper", "Document Viewer") AppDisplayName in ("Email Helper", "Document Viewer", "File Manager", "Mail Plugin"), true, // App requests dangerous permissions Permissions has "Mail.Read" and Permissions has "Files.ReadWrite.All", true, false ) | where IsSuspicious == true // Enrich met user risk score | join kind=leftouter ( AADUserRiskEvents | where TimeGenerated > ago(7d) | summarize MaxRiskLevel = max(RiskLevel) by UserId ) on $left.UserPrincipalName == $right.UserId | extend Severity = case( MaxRiskLevel == "high" or Permissions has "Directory.ReadWrite.All", "Critical", "High" ) | project TimeGenerated, AlertTitle = "Potential APT29 OAuth Consent Phishing", AppDisplayName, AppId, RequestedPermissions = Permissions, UserPrincipalName, UserRiskLevel = MaxRiskLevel, SourceIP = IPAddress, Severity, MitreTactic = "Initial Access + Persistence", MitreTechnique = "T1566.002 - Spearphishing Link + T1550.001 - Application Access Token", ThreatActor = "APT29/Nobelium", RecommendedActions = "1. Revoke app permissions immediately 2. Disable user account 3. Review all app consents by user 4. Check for data exfiltration 5. Report to NCSC" // ======================================================================== // APT29 DETECTION RULE 3: LSASS Credential Dumping (Mimikatz) // ======================================================================== // APT29 gebruikt Mimikatz of custom tools voor credential dumping // Detection: Process access to LSASS.exe with suspicious permissions SecurityEvent | where TimeGenerated > ago(5m) | where EventID == 4663 // Object access | where ObjectName has "lsass.exe" | where AccessMask in ("0x1410", "0x1010", "0x1438", "0x143A", "0x1400") // Read memory permissions // Parse process info | extend ProcessName = tostring(split(ProcessName, "\\")[-1]) | extend ProcessPath = ProcessName // Whitelist legitimate processes (Windows Defender, System processes) | where ProcessName !in ("MsMpEng.exe", "svchost.exe", "wininit.exe", "csrss.exe", "services.exe") | where ProcessPath !has "Windows Defender" // APT29 often uses legitimate tools (ProcDump) or LOLBins | extend IsSuspicious = case( ProcessName in ("procdump.exe", "procdump64.exe"), "High", ProcessName in ("powershell.exe", "cmd.exe", "rundll32.exe"), "Medium", "Low" ) // Correlate with recent privileged operations | join kind=leftouter ( SecurityEvent | where TimeGenerated > ago(1h) | where EventID == 4672 // Special privileges assigned | distinct SubjectUserName, Computer ) on Computer | project TimeGenerated, AlertTitle = "Potential APT29 Credential Dumping (LSASS Access)", Computer, ProcessName, ProcessPath, SubjectUserName, AccessMask, IsSuspicious, Severity = case(IsSuspicious == "High", "Critical", "High"), MitreTactic = "Credential Access", MitreTechnique = "T1003.001 - LSASS Memory Dumping", ThreatActor = "APT29/Nobelium", RecommendedActions = "1. Isolate endpoint immediately 2. Dump memory for forensics 3. Force password reset for all users on this system 4. Check for lateral movement 5. Deploy Credential Guard" // ======================================================================== // APT29 DETECTION RULE 4: DCSync Attack (Domain Controller Replication) // ======================================================================== // APT29 gebruikt DCSync voor domain-wide credential theft // Detection: Non-DC computer performing directory replication SecurityEvent | where TimeGenerated > ago(5m) | where EventID == 4662 // Object access | where ObjectType == "domainDNS" | where Properties has "1131f6aa-9c07-11d1-f79f-00c04fc2dcd2" // DS-Replication-Get-Changes or Properties has "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2" // DS-Replication-Get-Changes-All or Properties has "89e95b76-444d-4c62-991a-0facbeda640c" // DS-Replication-Get-Changes-In-Filtered-Set // Get source computer | extend SourceComputer = Computer | extend SourceAccount = SubjectUserName // Join with domain controller inventory to exclude legitimate DCs | join kind=leftanti ( IdentityInfo | where AssignedRoles has "Domain Controller" | distinct AccountName ) on $left.SourceComputer == $right.AccountName // This should NEVER happen from non-DC | extend Severity = "Critical" | project TimeGenerated, AlertTitle = "APT29 DCSync Attack Detected", SourceComputer, SourceAccount, TargetDomainController = Computer, Properties, Severity, MitreTactic = "Credential Access", MitreTechnique = "T1003.006 - DCSync", ThreatActor = "APT29/Nobelium", RecommendedActions = "IMMEDIATE ACTION REQUIRED: 1. Isolate source computer 2. Disable source account 3. Reset ALL domain passwords (including krbtgt) 4. Check for Golden Ticket usage 5. Full forensic investigation 6. Notify NCSC immediately" // ======================================================================== // APT29 DETECTION RULE 5: Data Exfiltration naar Cloud Storage // ======================================================================== // APT29 gebruikt legitimate cloud services (OneDrive, Dropbox) voor exfiltration // Detection: Large uploads to personal cloud accounts from corporate network let cloudDomains = dynamic([ "onedrive.live.com", "dropbox.com", "drive.google.com", "box.com", "mega.nz", "transfer.sh", "wetransfer.com" ]); let threshold = 100MB; // Method 1: Via network logs (firewall, proxy) CommonSecurityLog | where TimeGenerated > ago(1h) | where DeviceVendor in ("Palo Alto Networks", "Fortinet", "Check Point") | where DeviceAction == "allowed" | extend DestinationURL = RequestURL | where DestinationURL has_any (cloudDomains) // Calculate upload volume | summarize TotalUploadMB = sum(SentBytes) / 1024 / 1024, UniqueDestinations = dcount(DestinationURL), UploadSessions = count(), FirstUpload = min(TimeGenerated), LastUpload = max(TimeGenerated) by SourceIP, SourceUserName | where TotalUploadMB >= 100 // Enrich met user baseline (normal behavior) | join kind=leftouter ( // User's normal upload behavior (past 30 days) CommonSecurityLog | where TimeGenerated > ago(30d) and TimeGenerated < ago(1d) | where RequestURL has_any (cloudDomains) | summarize AvgDailyUploadMB = sum(SentBytes) / 1024 / 1024 / 30 by SourceUserName ) on SourceUserName // Calculate anomaly | extend AnomalyMultiplier = TotalUploadMB / (AvgDailyUploadMB * 24) // Compare to hourly average | extend IsHighAnomaly = AnomalyMultiplier > 10 // 10x normal behavior | extend Severity = case( IsHighAnomaly and TotalUploadMB >= 1000, "Critical", // 1GB+ and anomalous TotalUploadMB >= 1000, "High", IsHighAnomaly, "High", "Medium" ) | project TimeGenerated = FirstUpload, AlertTitle = "Potential APT29 Data Exfiltration to Cloud Storage", SourceIP, SourceUserName, TotalUploadMB, UniqueDestinations, UploadSessions, UploadDuration = datetime_diff('minute', LastUpload, FirstUpload), NormalBehavior = AvgDailyUploadMB, AnomalyMultiplier, Severity, MitreTactic = "Exfiltration", MitreTechnique = "T1567.002 - Exfiltration to Cloud Storage", ThreatActor = "APT29/Nobelium", RecommendedActions = "1. Suspend user account 2. Block uploads to cloud storage 3. Review uploaded files (forensic acquisition) 4. Check endpoint for malware 5. Determine data sensitivity 6. Data breach notification if classified data"

Beveiligingshardening: Preventieve Controles tegen APT29

Het implementeren van een effectieve defense-in-depth-strategie tegen APT29 vereist een holistische aanpak die meerdere beveiligingslagen combineert om aanvallen te voorkomen, te detecteren en te reageren. Deze strategie erkent dat geen enkele beveiligingsmaatregel voldoende is om geavanceerde, persistente bedreigingen zoals APT29 volledig te blokkeren, en dat organisaties moeten investeren in meerdere complementaire controles die samen een robuuste verdediging vormen.

Identiteitsbeveiliging vormt de fundamentele basis van elke verdediging tegen APT29 omdat de meeste aanvallen beginnen met het compromitteren van gebruikersreferenties. Het uitschakelen van legacy-authenticatie is essentieel omdat deze protocollen vaak zwakke beveiliging hebben en niet ondersteunen voor moderne beveiligingscontroles zoals meervoudige authenticatie. Phishing-resistente meervoudige authenticatie moet worden afgedwongen voor alle accounts, waarbij organisaties prioriteit moeten geven aan hardware security keys of andere vormen van phishing-resistente MFA boven SMS of e-mail-gebaseerde authenticatie die kwetsbaar zijn voor social engineering-aanvallen. Azure AD Privileged Identity Management moet worden gebruikt voor alle beheerdersaccounts om just-in-time-toegang te bieden en om uitgebreide logging en goedkeuringsworkflows te implementeren voor bevoorrechte acties. Privileged Access Workstations moeten worden gebruikt voor alle beheerders om de aanvalsoppervlakte te minimaliseren en om te zorgen dat bevoorrechte activiteit alleen plaatsvindt vanaf beveiligde, geharde systemen. User consent voor OAuth-apps moet worden geblokkeerd en organisaties moeten alleen verified publishers goedkeuren om OAuth-consent-phishing-aanvallen te voorkomen.

Endpoint-beveiliging is cruciaal omdat APT29 vaak gebruik maakt van PowerShell en andere living-off-the-land-technieken om hun doelen te bereiken. Microsoft Defender for Endpoint moet worden geactiveerd met alle geavanceerde functies inclusief Attack Surface Reduction-regels die specifiek zijn ontworpen om geavanceerde aanvallen te blokkeren. Credential Guard moet worden ingeschakeld om LSASS-credential dumping te voorkomen door wachtwoordhashes te isoleren in een beveiligde omgeving die niet toegankelijk is voor normale processen. Tamper protection moet worden ingeschakeld om te voorkomen dat aanvallers beveiligingscontroles uitschakelen of wijzigen. PowerShell moet worden beperkt tot beheersystemen waar mogelijk, en alle PowerShell-scripts moeten worden gelogd inclusief module logging en script block logging om verdachte activiteit te identificeren. Windows Defender Application Control of AppLocker moet worden gebruikt om alleen vertrouwde binaries toe te staan, waardoor de mogelijkheid wordt beperkt voor aanvallers om custom malware te gebruiken.

Netwerk- en e-mailbeveiliging vormen belangrijke verdedigingslagen omdat APT29 vaak gebruik maakt van spear-phishing en laterale beweging om hun doelen te bereiken. Tier 0-systemen moeten worden gesegmenteerd met strikte netwerkcontroles om te voorkomen dat gecompromitteerde werkstations toegang krijgen tot kritieke domeincontrollers en andere gevoelige systemen. Workstation-naar-workstation RDP en SMB moeten worden geblokkeerd om laterale beweging te beperken, waarbij organisaties moeten zorgen dat alleen geautoriseerde beheersystemen toegang hebben tot andere systemen. DNS-verkeer moet worden gelogd en geanalyseerd om DNS-tunneling en andere command-and-control-technieken te detecteren. Defender for Office 365 moet worden geconfigureerd met Safe Links en Safe Attachments om weaponized bestanden en phishing-links te blokkeren voordat zij gebruikers bereiken. Anti-impersonation-bescherming moet worden ingeschakeld om te voorkomen dat aanvallers zich voordoen als bestuurders of andere vertrouwde gebruikers. Alle externe e-mails moeten worden voorzien van duidelijke banners die gebruikers waarschuwen dat de e-mail van buiten de organisatie komt, wat helpt om phishing-aanvallen te identificeren.

Data- en cloudbeveiliging zijn essentieel omdat APT29 vaak gericht is op het stelen van gevoelige informatie. Gevoelige informatie moet worden geclassificeerd met Microsoft Purview-labels die automatisch beveiligingscontroles toepassen op basis van de gevoeligheid van de data. Data Loss Prevention moet worden gekoppeld aan e-mail, endpoints en cloudopslag om ongeautoriseerde datadeling te voorkomen en om te detecteren wanneer gevoelige informatie wordt gedeeld of geüpload naar onbeheerde locaties. Uploads naar persoonlijke cloudopslag moeten worden verboden of strikt gecontroleerd om te voorkomen dat aanvallers gestolen data kunnen exfiltreren via legitieme clouddiensten. Azure-resources moeten worden beveiligd met Microsoft Defender for Cloud dat geavanceerde bedreigingsdetectie biedt voor cloudomgevingen. Private endpoints moeten worden gebruikt waar mogelijk om Azure-resources te isoleren van het publieke internet. Just-in-Time VM-toegang moet worden geconfigureerd om onbeheerde toegang tot virtuele machines te beperken en om alle toegangspogingen te loggen.

Monitoring en incident response vormen de laatste verdedigingslaag en zijn essentieel voor het snel detecteren en reageren op APT29-aanvallen. Alle Azure AD-, Microsoft 365-, endpoint- en netwerklogs moeten minimaal 12 maanden worden bewaard in Microsoft Sentinel om uitgebreide forensische analyse mogelijk te maken en om langdurige aanvallen te kunnen identificeren die maanden kunnen duren. Security Orchestration, Automation and Response-playbooks moeten worden gebouwd voor snelle isolatie van gecompromitteerde systemen en accounts, wat cruciaal is om de impact van aanvallen te beperken. Organisaties moeten kwartaalgewijs oefenen met APT29-scenario's samen met het NCSC en sector-ISAC's om hun incident response-capaciteiten te testen en te verbeteren. Deze oefeningen helpen organisaties om te identificeren waar hun verdedigingsmaatregelen tekortschieten en om hun response-procedures te verfijnen op basis van echte bedreigingsscenario's.

APT29 blijft een van de belangrijkste statelijke dreigingen voor Nederlandse overheids-, diplomatie- en defensieorganisaties. De combinatie van ruime middelen, supply-chain-capaciteiten en uitstekende OPSEC betekent dat preventie alleen onvoldoende is: snelle detectie, containment en herstel zijn cruciaal.

Wie de basis op orde heeft – phishing-resistente MFA, blokkeren van legacy-authenticatie, volledige logging richting Microsoft Sentinel, Defender for Endpoint met Credential Guard, streng OAuth-governance en PIM – sluit al een groot deel van de aanvalsketen af. SolarWinds liet zien dat de initiële toegang bijzonder kan zijn, maar de daaropvolgende laterale bewegingen waren gewoon zichtbaar voor organisaties die telemetry en processen op orde hadden.

Hanteer daarom het assume-breach-principe: plan voor het scenario dat APT29 binnenkomt via een zero-day of supply chain, en richt processen in om binnen uren te detecteren, isoleren en rapporteren (inclusief NCSC). Gebruik de detection rules en hardeningmaatregelen uit deze gids, oefen periodiek met APT29-scenario’s en deel indicatoren via sector-ISAC’s zodat de gehele overheid sneller kan reageren.

Bekijk meer artikelen over APT29, statelijke dreigingen en detectie in Microsoft 365 en Azure
Bekijk artikelen →
APT29 Cozy Bear Nation-State Threats Russian APT SVR Advanced Persistent Threat MITRE ATT&CK Threat Hunting Detection Engineering