Stopdebandieten 23 - FBI legt netwerk Russische Snake-malware die al twintig jaar actief is plat
De FBI heeft een manier gevonden om het Snake-malwarenetwerk af te sluiten.
De malware is volgens de VS afkomstig van de Russische Federale Veiligheidsdienst en wordt al bijna 20 jaar gebruikt om onder meer gevoelige gegevens te stelen.
Het Amerikaanse ministerie van Justitie heeft maandag van de rechtbank toestemming gekregen om het afsluiten van de infrastructuur achter de Snake-malware.
De FBI zette vervolgens zijn inlandse tool, Perseus, op afstand in op acht geïnfecteerde computers in de Verenigde Staten, zei de veiligheidsdienst in een persbericht, dat werd gerapporteerd door The Register. Deze tool stuurt opdrachten naar de Snake-malware en zorgt ervoor dat deze zichzelf vernietigt.
De FBI zei dat het samenwerkte met lokale autoriteiten in andere landen om Snake malware te melden en advies te geven over hoe deze te verhelpen. Bovendien hebben de VS, samen met landen als Canada en Australië, een uitgebreid document vrijgegeven waarin wordt uitgelegd hoe de overheid zelf Snake detecteert en herstelt. Lees hier meer over.
De VS stelt dat de Snake-malware al sinds 2004 gebruikt wordt. De VS zeiden dat het "honderden computers" zou infecteren in meer dan 50 landen, waaronder verschillende NAVO-landen.
De malware is afkomstig van de Russische cyberspionagegroep Turla, die volgens Amerika gelinkt is aan de Russische Federale Veiligheidsdienst, de FSB. De activiteiten van Turla zouden dan ook afkomstig zijn van een FSB-faciliteit. De FBI noemt deze malware 'de belangrijkste spionagetool' van de veiligheidsdienst.
De tool werkt met peer-to-peer-netwerken, waar geïnfecteerde computers fungeren als relaisknooppunten en gestolen gegevens van computer naar computer overbrengen. De malware veroorzaakte dus niet alleen een datalek, maar zorgde er ook voor dat geïnfecteerde computers met elkaar konden communiceren. Bovendien worden speciale gecodeerde communicatieprotocollen gebruikt, waardoor malware-activiteit zeer moeilijk te detecteren is.
Het kostte dus de FBI verschillende jaren om het netwerkverkeer van Snake te volgen en de communicatieprotocollen te ontcijferen.
Technische Analyse
Een aantal complementaire detectietechnieken identificeert effectief enkele van de meer recente varianten van Snake. Zoals hierboven beschreven, is Snake echter speciaal gebouwd om grootschalige detectie te voorkomen. Hieronder vindt u een bespreking van de voor- en nadelen van verschillende detectiemethoden die beschikbaar zijn voor Snake. Houd er rekening mee dat sommige van de technieken die in dit gedeelte worden beschreven, de beschikbaarheid of stabiliteit van een systeem kunnen beïnvloeden. Iedereen moeten het organisatiebeleid en de best practices voor incidentrespons volgen om het risico voor operaties tijdens het hunten op de malware Snake te minimaliseren.
Network-Based Detection
Network Intrusion Detection Systems (NIDS) kunnen mogelijk enkele van de meer recente varianten van Snake en zijn aangepaste netwerkprotocollen identificeren.
Voordelen: Zeer betrouwbare, grootschalige (netwerkwijde) detectie van aangepaste Snake-communicatieprotocollen.
Nadelen: Lage zichtbaarheid van Snake-implantatieoperaties en gecodeerde gegevens tijdens verzending. Er is enig potentieel voor valse positieven in de Snake http-, http2- en tcp-handtekeningen. Snake-operators kunnen eenvoudig op het netwerk gebaseerde handtekeningen wijzigen.
Snake http
Snake client-naar-server http- en http2-verkeer bevindt zich in een willekeurig HTTP-headerveld. De headerveldwaarde voor http begint met 10 pure alfanumerieke tekens, gevolgd door base64-codering van 8 bytes, wat precies 11 geldige base64-tekens plus één base64-opvulteken oplevert.
^[0-9A-Za-z]{10}[0-9A-Za-z/\+]{11}=
De volgende twee Suricata-regels detecteren het beschreven traffic:
alert http any any -> any any (msg: "http rule (Cookie)";\ pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/C";\ flow: established, to_server;\ sid: 7; rev: 1;) alert http any any -> any any (msg: "http rule (Other Header)";\ pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/H";\ flow: established, to_server;\ sid: 8; rev: 1;)
Snake http2
De headerveldwaarde voor http2 begint met 22 pure alfanumerieke tekens (base62 met niet-vreemde tekens), gevolgd door de base62-codering van ten minste 8 bytes, die ten minste 11 base62-tekens moet bevatten waarbij de vier vreemde tekens zijn toegestaan. De feitelijke vereiste is strenger dan deze uitdrukking, aangezien het totale aantal niet-vreemde karakters alleen gelijk moet zijn aan of groter moet zijn dan 11; het is echter niet mogelijk om dat aspect in een reguliere taal te coderen.
^[0-9A-Za-z]{22}[0-9A-Za-z/;_=]{11}
De volgende twee Suricata-regels detecteren het beschreven verkeer:
alert http any any -> any any (msg: "http2 rule (Cookie)";\ pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/C";\ flow: established, to_server;\ sid: 9; rev: 1;) alert http any any -> any any (msg: "http2 rule (Other Header)";\ pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/H";\ flow: established, to_server;\ sid: 10; rev: 1;)
Snake tcp
De client-naar-server-communicatie voor tcp moet beginnen met de ustart, die niet is vastgelegd in deze handtekeningset. Onmiddellijk na de ustart moet de volgende client-naar-server-communicatie het big-endian 32-bits geheel getal 8 zonder teken zijn, gevolgd door 8 bytes aan gegevens. De volgende communicatie moet ook client-naar-server zijn en moet bestaan uit het big-endian 32-bits geheel getal 4 zonder teken, gevolgd door 4 bytes aan gegevens. De volgende twee communicaties moeten server-naar-client zijn, bestaande uit het gehele getal 8 gevolgd door 8 bytes aan gegevens en het gehele getal 4 gevolgd door 4 bytes aan gegevens.
De volgende zes Suricata-regels zullen, in combinatie, traffic van de beschreven form detecteren:
alert tcp any any -> any any (msg: "tcp rule";\ content: "|00 00 00 08|"; startswith; dsize: 12;\ flow: established, to_server; flowbits: set, a8; flowbits: noalert;\ sid: 1; rev: 1;) alert tcp any any -> any any (msg: "tcp rule";\ content: "|00 00 00 04|"; startswith; dsize:8;\ flow: established, to_server; flowbits: isset, a8; flowbits: unset, a8;\ flowbits: set, a4; flowbits: noalert;\ sid: 2; rev: 1;) alert tcp any any -> any any (msg: "tcp rule";\ content: "|00 00 00 08|"; startswith; dsize: 4;\ flow: established, to_client; flowbits: isset, a4; flowbits: unset, a4;\ flowbits: set, b81; flowbits: noalert;\ sid: 3; rev: 1;) alert tcp any any -> any any (msg: "tcp rule";\ dsize: 8; flow: established, to_client; flowbits: isset, b81;\ flowbits: unset, b81; flowbits: set, b8; flowbits: noalert;\ sid: 4; rev: 1;) alert tcp any any -> any any (msg: "tcp rule";\ content: "|00 00 00 04|"; startswith; dsize: 4;\ flow: established, to_client; flowbits: isset, b8; flowbits: unset, b8;\ flowbits: set, b41; flowbits: noalert;\ sid: 5; rev: 1;) alert tcp any any -> any any (msg: "tcp rule";\ dsize: 4; flow: established, to_client; flowbits: isset, b41;\ flowbits: unset, b41;\ sid: 6; rev: 1;)
Host-Based Detection
Voordelen: Hoge betrouwbaarheid op basis van het totaal aantal positieve treffers voor host-gebaseerde artefacten.
Nadelen: veel van de artifacts op de host kunnen gemakkelijk worden verplaatst naar een andere locatie of met een andere naam. Aangezien de bestanden volledig versleuteld zijn, is het moeilijk om deze bestanden nauwkeurig te identificeren.
Covert Store Detection
De malware van Snake bevat een NTFS (meestal) of FAT-16 (zelden) bestandssysteem met bestandsondersteuning. Het bestandssysteem is versleuteld met CAST-128 in CBC-modus. De coderingssleutel kan statisch hardgecodeerd zijn of dynamisch worden opgeslagen in een opgegeven Windows-registerlocatie. De IV is 8 bytes, aangezien CAST-128 een bloklengte van 8 bytes heeft. De eerste byte van de IV voor elk blok van 512 bytes van de geheime opslag is het 0-geïndexeerde bloknummer. De resterende bytes van de IV zijn de corresponderende bytes van de sleutel, wat betekent dat bytes op 0-geïndexeerde indices 1 tot en met 7 van de IV de bytes zijn op 0-geïndexeerde indices 1 tot en met 7 van de sleutel.
Wanneer statisch hardgecodeerd, heeft de coderingssleutel de volgende constante waarde: A1 D2 10 B7 60 5E DA 0F A1 65 AF EF 79 C3 66 FA
Indien opgeslagen in het Windows-register, is de coderingssleutel de klassenaam die is gekoppeld aan de volgende sleutel:
SECURITY\Policy\Secrets\n
Van de volgende initiële reeksen van 8 bytes is bekend dat ze worden gebruikt door NTFS- of FAT-16-bestandssystemen, zoals waargenomen:
EB 52 90 4E 54 46 53 20 EB 5B 90 4E 54 46 53 20 EB 3C 90 4D 53 44 4F 53 EB 00 00 00 00 00 00 00
Voor gereedschapsontwikkeling illustreert de volgende testvector de codering van de eerste gegeven kop hierboven (EB 52 90 …) met behulp van CAST-128 met de hierboven getoonde standaardsleutel en de IV geconstrueerd zoals beschreven, aangezien deze kop aan het begin van de eerste Blok van 512 bytes van de convent store.
Plaintext: EB 52 90 4E 54 46 53 20
Key: A1 D2 10 B7 60 5E DA 0F A1 65 AF EF 79 C3 66 FA
IV: 00 D2 10 B7 60 5E DA 0F
Ciphertext: C2 C7 F4 CA F7 DA 3A C8Door elke mogelijke initiële bytereeks van het bestandssysteem te coderen met CAST-128 met behulp van de sleutel die is verkregen van het register - of de standaardcoderingssleutel als de registervermelding niet bestaat - en te zoeken naar elk bestand met een grootte die een even veelvoud is van 220, wordt is het mogelijk om geheime winkels van Snake efficiënt te detecteren. Validatie kan worden uitgevoerd door het hele bestand te decoderen met behulp van de beschreven methodologie en vervolgens te verifiëren dat het een NTFS- of FAT-16-bestandssysteem bevat.
Other On-Disk Artifact Detection
Registry Blob
De register-blob bevindt zich meestal op de onderstaande locatie. Als het niet aanwezig is op de gebruikelijke locatie, kan de register-blob worden gevonden door het volledige register te doorzoeken op een waarde van ten minste 0x1000 bytes in grootte en entropie van ten minste 7,9.
Typical Name: Unknown (RegBlob)
Typical Path: HKLM\SOFTWARE\Classes\.wav\OpenWithProgIds
Characteristics: High EntropyQueue File
Typical Name: < RANDOM_GUID >.<RANDOM_GUID>.crmlog
Typical Path: %windows\registration\
Unique Characteristics: High Entropy, file attributes of hidden, system, and archive
Role: Snake Queue FileHet Snake Queue-bestand heeft over het algemeen een voorspelbare pad- en bestandsnaamstructuur, naast een hoge entropie. Het Snake Queue-bestand kan worden gevonden door alle bestanden in het typische wachtrijpad te scannen met bestandsnamen die overeenkomen met een reguliere expressie die de typische naamgevingsconventie vastlegt. Bestanden die aan deze criteria voldoen, moeten worden gescand op hoge entropie, wat wordt uitgevoerd door de Yara-regel hieronder:
rule HighEntropy { meta: description = "entropy rule" condition: math.entropy(0, filesize) >= 7.0 }
De volgende UNIX-zoekopdracht scant bestanden met namen die overeenkomen met de op GUID gebaseerde conventie (merk op dat wordt aangenomen dat de HighEntropy yara-regel is opgenomen in een bestand met de naam "1.yar"):
find /PATH/TO/WINDOWS_DIR -type f -regextype posix-egrep -iregex \ '.*\/registration/(\{[0-9A-F]{8}\-([0-9A-F]{4}\-){3}[0-9A-F]{12}\}\.){2}crmlog' \ -exec yara 1.yar {} \;
De volgende PowerShell-opdracht doet hetzelfde:
Get-ChildItem -Recurse -File -Path %WINDOWS% | Where-Object { $_.FullName -match '(?i)/registration/(\{[0-9A-F]{8}\-([0-9A-F]{4}\-){3}[0-9A-F]{12}\}\.){2}crmlog$' } | ForEach-Object { yara 1.yar $_.FullName }
Comadmin
Typical Name: comadmin.dat
Typical Path: %windows%\system32\Com
Unique Characteristics: High Entropy
Role: Houses Snake’s kernel driver and the driver’s loaderHet Snake Comadmin-bestand kan worden gevonden met behulp van analoge technieken als hierboven gepresenteerd voor het lokaliseren van het Snake Queue-bestand. De volgende UNIX-zoekopdracht zal dit doen:
find /PATH/TO/WINDOWS -type f -regextype posix-egrep -iregex \ '.*\/system32/Com/comadmin\.dat' \ -exec yara 1.yar {} \;
De volgende PowerShell-opdracht doet hetzelfde:
Get-ChildItem -Recurse -File -Path %WINDOWS% | Where-Object { $_.FullName -match '(?i)/system32/Com/comadmin\.dat$' } | ForEach-Object { yara 1.yar $_.FullName }
Werfault
Typical Name: Werfault.exe
Typical Path: %windows%\WinSxS\x86_microsoft-windows-errorreportingfaults_31bf3856ad364e35_4.0.9600.16384_none_a13f7e283339a0502\
Unique Characteristics: Icon is different than that of a valid Windows Werfault.exe file
Role: Persistence mechanismHet bestand Snake Werfault.exe heeft niet-standaard pictogramgroottes, die de basis vormen van de Yara-regel hieronder. Deze regel moet worden uitgevoerd op alle bestanden in het normale pad, met name de map "%Windows%\WinSxS".
rule PeIconSizes { meta: description = "werfault rule" condition: pe.is_pe and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 3240) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 1384) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 7336) }
Memory Analysis
Voordelen: Hoge betrouwbaarheid omdat geheugen het grootste niveau van zichtbaarheid biedt in het gedrag en de artefacten van Snake.
Nadelen: potentiële impact op systeemstabiliteit, dit heeft moeilijkere schaalbaarheid.
Het vastleggen en analyseren van het geheugen van een systeem zal de meest effectieve benadering zijn bij het detecteren van Snake, omdat het veel van het gedrag omzeilt dat Snake gebruikt om zichzelf te verbergen. Met een geheugenanalysetool, zoals Volatility, kan detectie van een Snake-compromise mogelijk zijn. De belangrijkste gebruikersmoduscomponent van Snake wordt in een gekozen proces geïnjecteerd via een enkele toewijzing van PAGE_EXECUTE_READWRITE-geheugen. De startoffset is over het algemeen 0x20000000, maar de module kan indien nodig worden verplaatst. Bovendien kan, aangezien de gebruikersmoduscomponent op geen enkele manier wordt versluierd, een geldige PE-header worden gelokaliseerd aan het begin van het toegewezen geheugengebied. Verdere validatie kan worden uitgevoerd door de aanwezigheid te bevestigen van tekenreeksen waarvan bekend is dat ze bestaan in de gebruikersmoduscomponent, ook binnen het geheugengebied.
PREVENTION
Merk op dat de volgende maatregelen niet bedoeld zijn om helemaal bescherming te bieden tegen de malware van Snake en alleen zijn om de verbergingstechnieken van Snake te voorkomen.
Wijzig credentials en pas updates toe
Beheerders waarvan wordt aangenomen dat ze zijn overngenomen door Snake, wordt geadviseerd hun inloggegevens onmiddellijk te wijzigen (van een niet-compromised systeem) en geen wachtwoorden te gebruiken die vergelijkbaar zijn met de eerder gebruikte wachtwoorden. Snake maakt gebruik van een keylogger-functionaliteit die routinematig logboeken terugstuurt naar FSB-operators. Het wordt aanbevolen om wachtwoorden en gebruikersnamen te wijzigen in waarden die niet bruut kunnen worden geforceerd of geraden op basis van oude wachtwoorden.
Beheerders wordt geadviseerd om updates toe te passen op hun besturingssystemen. Moderne versies van Windows, Linux en MacOS maken het voor tegenstanders veel moeilijker om in de kernelruimte te opereren. Dit zal het voor deze FSB-actoren het veel moeilijker maken om Snake's malware op het endpoint op te starten.
Uitvoeren van het organisatie-incidentenbestrijdingsplanAls beheerders detectiehandtekeningen ontvangen van Snake-implantatieactiviteit of andere indicatoren van een compromise hebben die verband houden met FSB-actoren die Snake gebruiken, moet de getroffen organisatie onmiddellijk hun gedocumenteerde incidentresponsplan starten.
We raden aan om de volgende Cross-Sector Cybersecurity Performance Goals (CPG's) te implementeren om te helpen verdedigen tegen FSB-actoren die Snake gebruiken, of om negatieve gevolgen na een compromise te verminderen:
CPG 2.A: Door standaardwachtwoorden te wijzigen, wordt voorkomen dat FSB-actoren standaardreferenties in gevaar brengen om initiële toegang te krijgen tot uw netwerk.
CPG 2.B: Het vereisen van een minimale wachtwoordsterkte in een hele organisatie voorkomt dat FSB-actoren in staat zijn om met succes wachtwoord-spraying- of crack-operaties uit te voeren.
CPG 2.C: Het vereisen van unieke inloggegevens voorkomt dat FSB-actoren geldige accounts in gevaar brengen door middel van wachtwoordspray of brute kracht.
CPG 2.E Het scheiden van gebruikers- en bevoorrechte accounts zal het voor FSB-actoren moeilijker maken om toegang te krijgen tot admin credentials.
CPG 2.F. Netwerksegmentatie om alle verbindingen standaard te weigeren, tenzij expliciet vereist voor specifieke systeemfunctionaliteit, en om ervoor te zorgen dat alle inkomende communicatie door een goed geconfigureerde firewall gaat.
CPG 2.H Het implementeren van phishingbestendige MFA voegt een extra beveiligingslaag toe, zelfs wanneer accountreferenties zijn overgenomen, en kan een verscheidenheid aan aanvallen op geldige accounts beperken, waaronder brute force-wachtwoorden en het misbruiken van externe software voor externe services.
CPG 4.C. Implementeer Security.txt-bestanden om ervoor te zorgen dat alle openbare webdomeinen een security.txt-bestand hebben dat voldoet aan de aanbevelingen in RFC 9118.
Meer weten hoe we u hier verder in kunnen ondersteunen? Contacteer ons op [email protected]