Direct naar de inhoud
Cybersecurity

FortiOS-aanval met PEERSTITCH: wat je moet weten

FortiOS-aanval

Onderzoekers beschrijven een FortiOS-aanval waarbij een geavanceerde dreigingsactor Fortinet FortiOS misbruikt om een tot nu toe niet eerder gemelde ARM64-malware te plaatsen: PEERSTITCH. De opvallendheid zit niet alleen in de kwetsbaarheid, maar vooral in de manier waarop de code werkt: zonder blijvend bestand op schijf en zonder typische netwerkactiviteit die je direct kunt zien.

De aanval komt naar voren in het kader van een langere inbraak bij een telecommunicatie managed service provider, met als dossiernaam CL-STA-0954 (UNC5820). Deze campagne was eerder al gekoppeld aan een kritieke Fortinet FortiManager-kwetsbaarheid (FortiJump, CVE-2024-47575).

Welke FortiOS-kwetsbaarheid is gebruikt?

De inzet van PEERSTITCH is gekoppeld aan CVE-2025-61624 (CVSS-score 5.4). Het gaat om een path traversal-fout in de command line interpreter van FortiOS, FortiPAM, FortiProxy en FortiSwitchManager.

Concreet kan een bevoegde aanvaller via speciaal geconstrueerde argumenten bestanden arbitrair wegschrijven of verwijderen door bestaande commando’s op een misbruikbare manier aan te roepen. Fortinet heeft deze fout in april 2026 gepatcht.

Waarom PEERSTITCH zo moeilijk te detecteren is

Unit 42 (Palo Alto Networks) benadrukt dat PEERSTITCH zich gedraagt als een memory-resident implant. Dat betekent dat de malware:

  • geen persistente binary op de schijf achterlaat;
  • geen luisterpoorten opent;
  • geen directe uitgaande connecties initieert die je als “verdacht netwerkverkeer” kunt herkennen.

In plaats daarvan “praatt” de malware via verkeer dat door legitieme processen op het geïnfecteerde systeem wordt gegenereerd. Daarmee omzeilt PEERSTITCH een deel van de klassieke detectiemethoden die leunen op traditionele netwerk- en endpoint-indicatoren.

Van datadiefstal naar nieuwe toegang

Volgens de onderzoekers start de campagne na compromis van het beheerapparaat. Vervolgens zou een archief zijn geëxfiltreerd met configuraties en gegevens van meer dan 500 managed FortiGate firewalls. De verzamelde informatie omvat onder meer:

  • het serienummer van het FortiManager-apparaat en beheerrelaties naar ingeschreven devices;
  • running configuration files voor FortiGate’s binnen interne infrastructuur en klantnetwerken;
  • centrale management-databases (SQLite);
  • een inventaris met FortiGate-serienummers en hun public IP-adressen;
  • topologiekaarten, routingtabellen en interfaceconfiguraties;
  • gecodeerde administratieve, lokale en SSL/VPN-credentials;
  • trustmateriaal (certificaten en private keys).

Deze buit werd vervolgens gebruikt om later reconnaissance te doen, langdurige toegang op te bouwen, verkeer af te tappen, ongeautoriseerde SSL/VPN-sessies op te zetten en backdoors te plaatsen. Daarnaast werd een extra privilege-escalatiecontext benut om PEERSTITCH te deployen via de CVE-2025-61624-route.

Techniek: geheugenpatching in FortiOS-processen

PEERSTITCH wordt beschreven als een 64-bit Linux ARM64 executable geschreven in C. Het implant werkt met een auto-script dat na initiatie meerdere componenten downloadt van een externe server (op het adres 23.240.77[.]233:8085).

Die componenten bestaan onder andere uit een script dat zichzelf kan verwijderen (pM.js), een Emscripten-achtige JavaScript runtime (a.js), een WebAssembly-module (a.wasm) en een orchestrator/script (b.js). Verder is er een native ARM64 injectorcomponent (lldprx) die wordt gezien als de kern van PEERSTITCH.

De belangrijkste fase start na een execution delay. De orchestrator (“ipssem.js”) start vervolgens “lldprx”, die bedoeld is om processen in het geheugen te patchen. Daarbij richt de injector zich op twee FortiOS-daemons:

  • /bin/miglogd
  • /bin/iked

De werking is als volgt: het proces zoekt de bijbehorende running processes op, brengt het geheugenlayout in kaart, hecht zich via ptrace, onderbreekt de uitvoering (PTRACE_INTERRUPT), reserveert uitvoerbaar geheugen en schrijft er kwaadaardige code in. Daarna stuurt de malware de execution om naar het geïnjecteerde pad.

Covert communicatie tussen processen

Het uiteindelijke doel van die hooking stap is een covert, memory-resident communicatiebrug tussen twee legitieme processen—zonder klassiek netwerkverkeer of bestandspersistente artefacten. De miglogd-hook kan daarbij een marker herkennen in de data die het doorgeeft, inclusief:

  • een TCP-poortmarker met waarde 8550 (embedded in data, niet als listening port);
  • een IP-markering 169.254.0.1 (link-local identifier voor pattern matching).

Wanneer de marker wordt gevonden, geeft miglogd een sessietoken of identifier door aan iked. De iked-hook kijkt later tijdens VPN-verwerking of die tag in de injection buffer aanwezig is. Is dat zo, dan kiest het proces een alternatieve uitvoeringroute en worden standaard validaties mogelijk omzeild.

Extra misbruik: aparte C2 via Apache mod_md

Naast de PEERSTITCH-infectie beschrijven de onderzoekers ook een aparte command-and-control aanpak. Daarbij wordt de native Apache “mod_md”-module op FortiGate’s benut om een SSH-based reverse shell op te starten.

De onderzoekers stellen bovendien dat de aanvallers aantoonbare kennis hadden van Fortinet appliance-architectuur, FortiOS internals en FortiOS-beheerdersprotocollen.

Mogelijke sporenverwijdering

Om forensische sporen te verminderen, zijn bij CL-STA-0954 maatregelen gezien zoals het beëindigen van sysloggeneratie, het wissen van crash logs, het verstoren van logging telemetry en het automatisch verwijderen van “rogue” administratoraccounts en auto-script objecten na uitvoering.

In de praktijk betekent dat: zelfs als je later gaat zoeken, kan een deel van de logcontext al zijn aangetast.

Wat kun je nu doen als je Fortinet beheert?

Hoewel het exacte detectiepad per omgeving verschilt, is het kernadvies: reduceer de kans dat dezelfde techniek opnieuw kan starten. Richt je inspanningen vooral op patching, toegangscontrole en het verbeteren van zichtbaarheid rond beheer- en edgecomponenten.

1) Patch FortiOS en gerelateerde componenten

Controleer of jouw FortiOS/ FortiPAM/ FortiProxy/ FortiSwitchManager installaties kwetsbaar waren en of je de fix voor CVE-2025-61624 hebt toegepast. Omdat Fortinet dit in april 2026 heeft gepatcht, is dit punt doorgaans snel te verifiëren via release-notes en versiebeheer.

2) Herzie beheerketens en “centrale edge management”

De campagne illustreert dat compromitteren van centrale beheerecosystemen kan leiden tot downstream impact. Heb je FortiManager/FortiGate beheersstromen met te veel rechten of onvoldoende segmentatie, dan vergroot dat de schade bij misbruik.

Als je meer wilt lezen over het veilig testen van geautomatiseerde processen in OT-context, kan dit artikel helpen bij het denkraam voor “test en controle” in complexe omgevingen: AI-agenten in OT in minuten testen: zo doe je het veilig.

3) Versterk detectie tegen memory-resident malware

Omdat PEERSTITCH geen klassieke persistente schijfartefacten achterlaat en geen luisterpoorten hoeft te gebruiken, moet je detectie niet alleen baseren op bestands- of poortindicatoren. Kijk naar anomalieën in procesgedrag, geheugenbeschrijving/policing rond ptrace-achtige technieken, en afwijkende interacties tussen FortiOS-componenten.

Wil je een voorbeeld van waarom laag-niveau kwetsbaarheden impact hebben op systemen (en waarom tijdige patching telt), dan is dit verwante onderwerp relevant: PwnEscape Linux kernel: hostgeheugen uitlekken.

Conclusie

Deze FortiOS-aanval laat zien hoe moderne dreigingen misbruik van edge-management doen én vervolgens de detectie bemoeilijken met memory-resident technieken. PEERSTITCH is geen “typische” malware met een duidelijke netwerk callback of zichtbaar bestand op disk, maar een implant die werkt door processen in het geheugen te beïnvloeden en zo VPN-gedrag te kunnen omzeilen.

Door CVE-2025-61624 snel te patchen, beheerketens kritisch te beoordelen en detectie te richten op gedrags- en geheugenindicatoren, verklein je de kans dat dezelfde aanvalslijn jouw omgeving kan raken.

Bron: https://thehackernews.com/2026/10/attackers-exploit-fortios-flaw-to.html