Master Security Framework: mijn meerlaagse beveiligingsframework voor moderne toepassingen

Master Security Framework: mijn meerlaagse beveiligingsframework voor moderne toepassingen

18/05/2026

AZG

Samenvatting

Het Master Security Framework (MSF) is een uitgebreid, meertalig, meerlaags beveiligingsframework dat is ontworpen om moderne applicaties op alle niveaus van de technologiestapel te beschermen. Geïmplementeerd in Python en TypeScript biedt Artsen Zonder Grenzen meer dan 350 functies verdeeld over 28 modules, die alles omvatten, van authenticatie en encryptie tot detectie van webaanvallen, netwerkanalyse, cloudbeveiliging, bescherming van kunstmatige intelligentie, adaptieve honeypots, actieve verdediging en compliance voor ondernemingen. Dit artikel presenteert een gedetailleerde technische analyse van elke module, functie, ontwerppatroon en beveiligingsmechanisme die in het raamwerk zijn geïmplementeerd.


1. Introductie

1.1. Het probleem

Moderne toepassingen worden geconfronteerd met een steeds geavanceerder spectrum van bedreigingen. Eén systeem kan tegelijkertijd het doelwit zijn van aanvallen op meerdere lagen: injectie van prompts in taalmodellen, exploitatie van webkwetsbaarheden (XSS, SQLi, SSRF), poortscans, DDoS-aanvallen, verkeerde configuraties in de cloud, gecompromitteerde containers, kwetsbare afhankelijkheden in de softwaretoeleveringsketen en overtredingen van de regelgeving.

De traditionele benadering van beveiliging – waarbij elk probleem met geïsoleerde instrumenten wordt opgelost – creëert verdedigingssilo's die gaten tussen de lagen achterlaten. Artsen Zonder Grenzen is ontworpen om dit probleem op te lossen door een uniform beveiligingsplatform aan te bieden dat in alle lagen van de applicatie werkt.

1.2. Wat is het Master Security Framework

Artsen zonder Grenzen is een open-source beveiligingsframework geïmplementeerd in twee talen: Python en TypeScript. Elke module bestaat in beide talen met dezelfde semantiek, waardoor meertalige teams dezelfde set beveiligingsmogelijkheden kunnen gebruiken, ongeacht de technologiestapel.

Het raamwerk is opgebouwd rond vier pijlers:

  1. Preventie: invoervalidatie, opschoning, encryptie, configuratieverharding
  2. Detectie: analyse van aanvalspatronen, statistische afwijkingen, malwarehandtekeningen, verdacht gedrag
  3. Antwoord: autonome waarschuwingen, quarantaine, insluiting, zelfgenezing
  4. Compliance: Automatische verificatie van LGPD, GDPR, HIPAA, PCI-DSS

1.3. Projectstatistieken

  • 243 geautomatiseerde tests geslaagd (77 Python + 166 TypeScript)
  • 14 Python-modules met meer dan 180 functies
  • 14 TypeScript-modules met meer dan 170 functies
  • OpenTelemetry-telemetrie geïntegreerd in alle functies
  • Gestructureerde logging (pin in TypeScript, loguru in Python)
  • In-memory cache met automatische ongeldigverklaring
  • Policy Engine voor configureerbare beveiligingsregels
  • Event Bus voor asynchrone communicatie tussen modules

2. Kaderarchitectuur

2.1. Infrastructuurlaag (kern)

De MSF-basis bestaat uit zes infrastructuurcomponenten die worden gedeeld door alle andere modules:

Algemene configuratie: een gecentraliseerd configuratieobject dat beveiligingsparameters, drempels, toegestane/geblokkeerde lijsten en cryptografische sleutels opslaat. De configuratie kan in realtime opnieuw worden geladen vanuit omgevingsvariabelen zonder de applicatie opnieuw te starten.

Beleidsengine: een regelevaluatiesysteem waarmee u beveiligingsbeleid kunt definiëren als gestructureerde verklaringen. De engine ondersteunt logische operators, samengestelde voorwaarden en handhavingsacties (toestaan, weigeren, waarschuwen, loggen).

Event Bus: Een asynchroon pub/subsysteem waarmee modules beveiligingsgebeurtenissen kunnen publiceren en andere modules zich kunnen abonneren om te reageren. De gebeurtenisbus bevat een gebeurtenisgeschiedenis en een wachtrij voor dode letters voor gebeurtenissen die niet zijn verwerkt.

Metrische registers: een metrisch systeem dat tellers (voor cumulatieve tellingen), meters (voor momentane waarden) en histogrammen (voor distributies) ondersteunt. Alle detectiefuncties publiceren automatisch statistieken.

Cache Manager: een LRU-cache (Least Recent Used) met configureerbare TTL (Time-To-Live), die wordt gebruikt om dure validatieresultaten, IP-blokkeerlijsten, sessievingerafdrukken en ingetrokken tokens op te slaan.

OpenTelemetry: Volledige integratie met de OpenTelemetry-standaard, waardoor gedistribueerde traceringsreeksen worden gegenereerd voor elke beveiligingsoperatie. Hierdoor is kleur mogelijkbeveiligingsgebeurtenissen relateren om sporen op te vragen in microservices-architecturen.

Gestructureerde logger: Gestructureerde logboekregistratie in JSON-indeling met pin (TypeScript) en loguru (Python), inclusief automatische context zoals trace-ID, ernst, module en beveiligingsmetagegevens.

Afhandeling van uitzonderingen: een hiërarchie van beveiligingsuitzonderingen (SecurityError, ValidationError, AuthenticationError, EncryptionError) die een gedetailleerde afhandeling van beveiligingsfouten mogelijk maakt.

2.2. Beschermingslaag

Wat de infrastructuur betreft, organiseert Artsen Zonder Grenzen haar beveiligingsmodules in drie functionele lagen:

Invoerlaag: Web, API, Auth - bescherm toegangspunten van applicaties Infrastructuurlaag: Netwerk, Cloud, Bestand - beschermt de onderliggende infrastructuur Intelligente laag: AI, monitoring, defensief, honingpot: bescherm met intelligentie en aanpassing


3. Authenticatiemodule (authenticatie)

De authenticatiemodule is de meest uitgebreide in het framework, met 30 functies in Python en 7 in TypeScript. Het omvat de gehele levenscyclus van authenticatie: het genereren en valideren van tokens, sessiebeheer, aanvalsdetectie en geavanceerde methoden voor identiteitsverificatie.

3.1. JWT (JSON-webtokens)

Artsen zonder Grenzen implementeert een compleet JWT-systeem dat verder gaat dan eenvoudige generatie en validatie:

  • generate_jwt creëert tokens met onderwerp, aangepaste claims, configureerbare vervaldatum en uitgever. Ondersteunt HS256, HS384, HS512, RS256, ES256-algoritmen.
  • validate_jwt controleert handtekening, vervaldatum, verplichte claims en retourneert de gedecodeerde payload. Met de parameter verify_exp kunt u de vervalcontrole voor specifieke gevallen uitschakelen.
  • revoke_jwt voegt de JTI (JWT ID) van het token toe aan een intrekkingszwarte lijst. Dit is essentieel om uit te loggen vóór de natuurlijke vervaldatum van het token.
  • rotate_jwt valideert het oude token en geeft een nieuw token uit met dezelfde identiteit, waardoor stille tokenrotatie mogelijk is zonder de gebruikerssessie te onderbreken.
  • validate_refresh_token valideert vernieuwingstokens met verificatie of ze bij de specifieke gebruiker horen, waardoor wordt voorkomen dat een gestolen vernieuwingstoken door een andere gebruiker wordt gebruikt.

3.2. Sessiebeheer

Het sessiesysteem van Artsen Zonder Grenzen biedt bescherming tegen het kapen van sessies:

  • secure_session creëert een sessie die user_id, IP, user agent en apparaatvingerafdruk koppelt. Hierdoor kunt u verdachte wijzigingen in de sessiecontext detecteren.
  • validate_session controleert of de session_id van de gebruiker is en of het huidige IP-adres overeenkomt met het IP-adres dat is geregistreerd bij het aanmaken van de sessie.
  • detect_session_hijack vergelijkt het huidige IP-adres en de user-agent met historische sessiegegevens. Als het IP-adres naar een ander subnet is verplaatst of als de user-agent aanzienlijk is gewijzigd, retourneert de functie true, wat een mogelijke kaping aangeeft.
  • detect_token_replay houdt een overzicht bij van de tokens die al zijn gebruikt. Als een token meer dan één keer wordt gepresenteerd, detecteert de functie de replay-aanval.

3.3. Detectie van authenticatieaanvallen

Artsen zonder Grenzen detecteert drie hoofdtypen aanvallen op authenticatiesystemen:

  • detect_credential_stuffing bewaakt inlogpogingen vanaf een enkel IP-adres voor meerdere gebruikersaccounts. Als een IP-adres binnen een tijdsbestek veel verschillende gebruikersnamen probeert, wordt dit gemarkeerd als credential stuffing.
  • detect_bruteforce bewaakt inlogpogingen voor een enkel account. Als het aantal pogingen de drempel in het tijdvenster overschrijdt, wordt dit gemarkeerd als brute kracht.
  • detect_impossível_travel berekent de afstand tussen twee opeenvolgende inloglocaties en vergelijkt deze met de verstreken tijd. Als de snelheid die nodig is om tussen punten te reizen de redelijke fysieke limieten overschrijdt (bijvoorbeeld 900 km/u), detecteert de functie onmogelijk reizen.
  • geo_velocity_check breidt detectie van onmogelijke reizen uit naar meerdere locaties, waarbij de geografische snelheid tussen alle opeenvolgende inlogpunten wordt berekend.

3.4. Adaptieve en op risico gebaseerde authenticatie

  • adaptive_auth past de authenticatievereisten aan op basis van de risicoscore van de context. Voor inloggen vanaf een bekend apparaat op een bekende locatie is mogelijk alleen een wachtwoord vereist, terwijl voor inloggen vanaf een nieuw apparaat in een ander land mogelijk extra MFA nodig is.
  • behavioral_auth maakt gebruik van gedragsbiometrie (typepatroon, muisbeweging, surfritme) om de identiteit van de gebruiker te verifiëren aan de hand van de geregistreerde gedragsbasislijn.
  • risk_based_auth berekent een samengestelde risicoscore uit meerdereop basis van factoren: locatie, apparaat, tijd, gedrag, IP-reputatie en retourneert een authenticatiebeslissing met een betrouwbaarheidsniveau.

3.5. TOTP- en back-upcodes

  • generate_totp genereert op tijd gebaseerde eenmalige wachtwoordcodes volgens RFC 6238, met configureerbare cijfers en punten.
  • validate_totp valideert TOTP-tokens met klokafwijkingstolerantie (drift parameter), ter compensatie van de desynchronisatie tussen de server en het apparaat van de gebruiker.
  • verify_backup_code verifieert en gebruikt back-up-/herstelcodes en verwijdert ze na gebruik uit de geldige lijst om hergebruik te voorkomen.

3.6. WebAuthn en wachtwoordsleutels

  • passkey_auth valideert FIDO2/WebAuthn-authenticaties door de cryptografische handtekening van de authenticator, authenticatorgegevens en JSON-clientgegevens te controleren.
  • webauthn_verify voert een volledige WebAuthn-beweringscontrole uit, inclusief het valideren van de oorsprong, RP ID (Relying Party ID) en cryptografische handtekening tegen de geregistreerde publieke sleutel.
  • phishing_resistentie_auth controleert of een authenticatiemethode bestand is tegen phishing, waarbij FIDO2-niveau 2 of hoger met geverifieerde attestering vereist is.

3.7. Wachtwoordbeveiliging

  • password_entropy berekent de Shannon-entropie van een wachtwoord, waarbij de informatiecomplexiteit ervan in bits wordt gemeten. Wachtwoorden met een entropie van minder dan 40 bits worden als zwak beschouwd.
  • detect_weak_password combineert entropieanalyse met controle aan de hand van lijsten met veelgebruikte wachtwoorden (rockyou, top 10000, enz.).
  • password_breach_check controleert of een wachtwoordhash voorkomt in een database met bekende inbreuken (Have I Been Pwned en dergelijke).
  • secure_password_hash creëert wachtwoord-hashes met cryptografisch zout en key stretching (iteraties), en ondersteunt algoritmen zoals PBKDF2, bcrypt, scrypt en Argon2.
  • verify_password_hash vergelijkt een wachtwoord met een opgeslagen hash met behulp van een constante veilige vergelijking.

3.8. Vingerafdrukken van apparaten en browsers

  • device_fingerprint genereert een unieke apparaat-ID op basis van attributen zoals user-agent, schermresolutie, tijdzone, talen en platform.
  • browser_fingerprint maakt gebruik van geavanceerde vingerafdruktechnieken gebaseerd op weergavekenmerken: 2D canvas-hash, WebGL-hash, audiocontext-hash en lijst met geïnstalleerde lettertypen.
  • biometric_validation vergelijkt biometrische gegevens (vingerafdruk, gezichtsherkenning, iris) met een opgeslagen sjabloon met configureerbare gelijkenisdrempel.

4. Cryptografiemodule (Crypto)

De encryptiemodule implementeert moderne symmetrische, asymmetrische en post-kwantum-encryptie-algoritmen, met de nadruk op authenticatie en integriteit.

4.1. Geauthenticeerde codering

  • encrypt_data maakt gebruik van geverifieerde encryptie met bijbehorende gegevens (AEAD), met ondersteuning voor AES-256-GCM en ChaCha20-Poly1305. Met Associated Data (AAD) kunt u niet-gecodeerde metadata op een geverifieerde manier aan cijfertekst koppelen.
  • decrypt_data voert een geverifieerde decodering uit, waarbij de authenticatietag wordt gecontroleerd voordat de platte tekst wordt geretourneerd. Als de tag niet overeenkomt, mislukt de decodering, waardoor aanvallen met orakelvulling en cijfertekstmanipulatie worden voorkomen.
  • encrypt_file en decrypt_file breiden geauthenticeerde encryptie uit naar bestanden op schijf, waardoor nonce, salt en metadata veilig worden beheerd.

4.2. Hybride cryptografie

  • hybrid_encrypt combineert asymmetrische encryptie (voor sleuteluitwisseling) met symmetrische encryptie (voor de payload). De symmetrische sleutel wordt willekeurig gegenereerd, gebruikt om de payload te versleutelen en vervolgens versleuteld met de openbare sleutel van de ontvanger.
  • hybrid_decrypt keert het proces om: decodeert de symmetrische sleutel met de privésleutel en decodeert vervolgens de payload.

4.3. Postkwantische cryptografie

De Artsen Zonder Grenzen implementeert de postkwantumalgoritmen die zijn gestandaardiseerd door NIST:

  • pqc_encrypt en pqc_decrypt gebruiken ML-KEM (voorheen Kyber) voor kwantumcomputerbestendige versleuteling.
  • kyber_key_exchange implementeert het Kyber-sleuteluitwisselingsprotocol voor post-kwantum gedeelde sleutelvestiging.
  • dilithium_sign gebruikt ML-DSA (voorheen Dilithium) voor post-kwantum digitale handtekeningen.
  • sphincs_sign gebruikt SPHINCS+, een handtekeningschema gebaseerd op hashfuncties, als een staatloos post-kwantumalternatief.
  • falcon_sign gebruikt Falcon, een op roosters gebaseerd handtekeningschema met compacte handtekeningen.

4.4. HMAC en handtekeningverificatie

  • generate_hmac produceert een Hash-based berichtauthenticatiecode met behulp van HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 of HMAC-SHA3-256.
  • verify_hmac vergelijkt de berekende HMAC met de verwachte HMAC met behulp van constante-tijdvergelijking.
  • verify_signature verifieert digitale handtekeningen (Ed25519, ECDSA, RSA-PSS) aan de hand van een bericht en openbare sleutel.

4.5. Cryptografische hulpprogramma's

  • secure_random genereert cryptografisch beveiligde bytes met behulp van os.urandom() (Python) of crypto.getRandomValues() (TypeScript).
  • secure_memory_erase overschrijft geheugengebieden die gevoelige gegevens bevatten met nullen, waardoor wordt voorkomen dat gegevens na gebruik in het geheugen achterblijven.
  • anti_timing_compare vergelijkt twee reeksen bytes in constante tijd, waarbij alle bytes worden herhaald, ongeacht waar het eerste verschil optreedt, waardoor timingaanvallen worden voorkomen.

5. Webmodule

De Webmodule is het meest uitgebreid qua aanvalsdetectie, met 30 functies in Python en 35 in TypeScript. Het omvat alle categorieën van webkwetsbaarheid die zijn vermeld in de OWASP Top 10 en hoger.

5.1. Cross-site scripting (XSS)

  • detect_xss analyseert invoer voor XSS-patronen, waaronder: <script> tags, gebeurtenishandlers (onload, onclick, onerror), javascript: URI's, DOM XSS (innerHTML, document.write) en XSS via SVG/MathML. De functie gebruikt een set regex-patronen en berekent een betrouwbaarheidsscore op basis van het aantal overeenkomende patronen. Met severity_threshold kunt u de detectiegevoeligheid aanpassen.
  • sanitize_html verwijdert niet-toegestane tags en attributen uit HTML, met behulp van een toelatingslijst met veilige tags (<p>, <br>, <strong>, <em>, etc.) en veilige attributen (href, src, alt, title, etc.). Niet-toegestane tags worden volledig verwijderd en gevaarlijke attributen zoals on* worden eruit gefilterd.
  • sanitize_svg zuivert SVG door gevaarlijke elementen zoals <script>, <foreignObject>, <animate> en gebeurtenisattributen te verwijderen.
  • sanitize_markdown zuivert de markdown door ingebedde gevaarlijke HTML te verwijderen, terwijl de oorspronkelijke markdown-opmaak behouden blijft.
  • sanitize_css verwijdert gevaarlijke CSS-eigenschappen zoals expression(), url(javascript:), behavior en -moz-binding.
  • sanitize_js verwijdert gevaarlijke JavaScript-patronen, waaronder eval(), Function(), setTimeout/setInterval met string, document.write, document.cookie, onveilige DOM-manipulatie en methoden voor het uitvoeren van code.

5.2. SQL en NoSQL-injectie

  • detect_sqli detecteert SQL-injectiepatronen, waaronder: op UNION gebaseerde (UNION SELECT), blinde (AND 1=1, OR '1'='1'), tijdgebaseerde (SLEEP(), WAITFOR DELAY), op fouten gebaseerde en gestapelde query's. De functie detecteert ook ontwijkingstechnieken zoals hex-codering, commentaar (--, /* */) en aaneenschakeling van tekenreeksen.
  • detect_nósqli detecteert injectie in NoSQL-databases (voornamelijk MongoDB) en identificeert gevaarlijke operators in invoer: $gt, $gte, $lt, $lte, $ne, $in, $nin, $regex, $where, $exists.

5.3. Verzoekvervalsing aan de serverzijde (SSRF)

  • detect_ssrf controleert URL's aan de hand van een lijst met toegestane domeinen en geblokkeerde IP's. De functie detecteert SSRF-bypasstechnieken, waaronder: omleidingen naar localhost, gebruik van DNS-rebinding, URL's met codering (%00, %0d%0a) en toegang tot cloud-metadata-eindpunten (169.254.169.254, metadata.google.internal).

5.4. Uitvoering van externe code (RCE) en opdrachtinjectie

  • detect_rce identificeert patronen voor het uitvoeren van code op afstand, inclusief aanroepen van eval(), exec(), system(), passthru(), popen(), backticks en pipe-operators.
  • detect_command_injection detecteert OS-commando-injectie met behulp van shell-operators: ;, |, ||, &&, backticks, $() en omleidingen (>, >>).

5.5. Bestandsopname en paddoorgang

  • detect_lfi detecteert lokale bestandsopname door reeksen padtraversal (../, ..\), gecodeerde traversal (%2e%2e%2f) en gevaarlijke protocollen (php://filter, php://input, data://, expect://) te identificeren.
  • detect_rfi detecteert externe bestandsopname wanneer externe URL's worden doorgegeven als include/require-parameters.
  • detect_path_traversal controleert of een pad binnen een toegestaan ​​base_path wordt opgelost, waarbij absolute en relatieve traversal worden gedetecteerd.

5.6. Sjablooninjectie

  • detect_template_injection detecteert Server-Side Template Injection (SSTI) voor Jinja2 ({{ 7*7 }}, {% for %}), EJS (<%= %>), Handlebars ({{#each}}), Pug, Twig, Moustache, en een generieke modus die de algemene sjabloonsyntaxis detecteert.

5.7. Deserialisatie enOmleiding openen

  • detect_deserialization_attack identificeert onveilige deserialisatie door toegestane klassen en bekende gadgetpatronen te controleren (Java-serialisatie, Python-pickle, PHP-unserialisatie, YAML-deserialisatie).
  • detect_open_redirect controleert of een omleidings-URL verwijst naar een host op de witte lijst, waardoor omleidingen naar kwaadaardige domeinen worden voorkomen.

5.8. CSRF-, CORS- en CSP-bescherming

  • csrf_protect en validate_csrf controleren CSRF-tokens van aanvragen met sessietokens met behulp van veilige vergelijking.
  • validate_cors valideert CORS-verzoeken door Origin, Methods en Headers te vergelijken met toegestane lijsten.
  • generate_csp genereert Content-Security-Policy-headers uit de richtlijnconfiguratie (script-src, style-src, img-src, connect-src, frame-ancestors, enz.).
  • validate_csp valideert een bestaande CSP-header tegen een gedefinieerd beveiligingsbeleid.
  • secure_headers genereert een complete set beveiligingsheaders: Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy en Content-Security-Policy.

5.9. Veilige cookies en clickjacking

  • secure_cookie genereert Set-Cookie-headers met Secure, HttpOnly, SameSite (Strict of Lax), domeinbereik, pad en max-age-vlaggen.
  • detect_clickjacking controleert op de aanwezigheid van X-Frame-Options-headers en CSP-frame-voorouders om de kwetsbaarheid voor clickjacking te detecteren.
  • validate_origin en validate_referer valideren Origin- en Referer-headers tegen verwachte domeinen.

5.10. Webhaken

  • webhook_signature genereert HMAC-handtekeningen voor webhook-payloads, inclusief tijdstempel voor herhalingspreventie.
  • webhook_replay_protection controleert de handtekening en tijdstempel van de webhook en weigert verzoeken buiten het geconfigureerde tijdvenster.

6. API-module

De API-module beschermt API-eindpunten tegen een breed scala aan aanvallen en misbruik.

6.1. Invoervalidatie en opschoning

  • validate_json_schema valideert gegevens tegen JSON-schemadefinities met optionele strikte modus die extra velden afwijst die niet in het schema zijn gedefinieerd.
  • validate_input valideert API-invoer op basis van typeregels (string, getal, boolean, array, object), minimale/maximale grootte, regex-patroon, opsomming van toegestane waarden en maximale nestdiepte (standaard: 5 niveaus).
  • sanitize_json zuivert JSON-gegevens door niet-toegestane typen te verwijderen en tekenreeksen af ​​te korten die de geconfigureerde maximale lengte overschrijden (standaard: 10.000 tekens).

6.2. Tariefbeperking

  • api_rate_limit implementeert snelheidsbeperking met behulp van een glijdend vensteralgoritme, waarbij de tijdstempels van verzoeken per client en eindpunt worden bijgehouden. Wanneer het aantal verzoeken in het venster de limiet overschrijdt, wordt het verzoek afgewezen.
  • adaptive_rate_limit past de tarieflimieten dynamisch aan op basis van het gedrag van de klant. Klanten met een blanco strafblad krijgen ruimere limieten, terwijl klanten met verdachte patronen strengere limieten krijgen.

6.3. Detectie van API-misbruik

  • detect_api_abuse analyseert verzoekpatronen om het volgende te detecteren: scraping (opeenvolgende verzoeken aan veel bronnen), opsomming (opeenvolgende ID-pogingen), fuzzing (verzoeken met variërende verkeerd gevormde payloads) en kwaadaardige automatisering (hoge frequentie met reguliere patronen).
  • detect_shadow_api identificeert ongedocumenteerde eindpunten die verkeer ontvangen door de benaderde eindpunten te vergelijken met de lijst met gedocumenteerde API's.

6.4. Autorisatie op objectniveau (BOLA/IDOR)

  • detect_bola controleert of de gebruiker geautoriseerd is om toegang te krijgen tot de gevraagde bron, waarbij de resource_id wordt vergeleken met de ownership_map die bronnen toewijst aan hun eigenaren. Als de gebruiker niet de eigenaar is en geen gedelegeerde machtigingen heeft, retourneert de functie waar.

6.5. Gebroken authenticatie en massale toewijzing

  • detect_broken_auth controleert de aanwezigheid en geldigheid van het authenticatietoken, de scopes vereist door het eindpunt, en de correspondentie tussen het token en de gevraagde gebruiker.
  • detect_mass_assignment controleert of de API-invoer velden bevat die niet in het model voorkomen (model_fields) of die in de lijst met alleen-lezen velden staan ​​(readonly_fields), waardoor wordt voorkomen dat aanvallers beschermde velden zoals is_admin, role of balance kunnen wijzigen.

6.6. GraphQL-beveiliging

  • graphql_ Depth_limit analyseert de diepte van GraphQL-query's, waarbij query's worden afgewezen die de geconfigureerde limiet overschrijden (standaard: 10 niveaus). Dit voorkomt aanvallen dierecursieve ries die denial of service kunnen veroorzaken.
  • graphql_cost_analysis berekent de rekenkosten van een GraphQL-query op basis van de complexiteit van elk veld (configureerbaar via complexity_map) en het nestniveau. Query's met kosten boven de limiet (standaard: 1000) worden afgewezen.
  • graphql_abuse_detection analyseert meerdere query's in een tijdvenster om query-overstromingen, introspectie-misbruik (query's die het schema exploiteren om de API in kaart te brengen) en repetitieve misbruikpatronen te detecteren.

6.7. gRPC en WebSocket-beveiliging

  • grpc_security_validation valideert de veiligheid van gRPC-verzoeken door metadata, verplichte headers en TLS-informatie (cipher suite, protocol, peer-certificaat) te controleren.
  • secure_websocket configureert beveiligde WebSocket-verbindingen met oorsprongsvalidatie en toegestane subprotocollen.
  • websocket_origin_validation en websocket_flood_protection beschermen tegen kwaadaardige WebSocket-verbindingen en overstroming van verbindingen.

6.8. API-sleutelbeheer

  • api_key_rotation genereert nieuwe API-sleutels met veilige hash (SHA3-256), identificeerbaar voorvoegsel en configureerbare vervaldatum.
  • api_key_validation valideert API-sleutels aan de hand van een register van bekende sleutels, waarbij scopes, vervaldatum en individuele snelheidslimieten worden gecontroleerd.

7. Module voor kunstmatige intelligentie (AI).

De AI-module is een van de meest innovatieve van Artsen zonder Grenzen en biedt volledige bescherming voor toepassingen die gebruik maken van grote taalmodellen (LLM's).

7.1. Snelle injectie en jailbreakbescherming

  • detect_prompt_injection analyseert prompts voor injectiepatronen zoals "negeer eerdere instructies", "vergeet alle regels", "systeem:", "je bent nu", "negeer alle voorgaande", "overschrijf systeeminstructies", "omzeil de beveiliging", "doe alsof je dat bent", "doe alsof je dat bent", "vanaf nu ben je dat", "ontwikkelaarsmodus:", en opmaakpatronen die proberen systeeminstructies te simuleren. De functie gebruikt meer dan twintig regex-patronen en berekent een betrouwbaarheidsscore op basis van het aantal overeenkomsten en de lengte van de prompt.
  • detect_jailbreak detecteert jailbreakpogingen die specifiek gericht zijn op het omzeilen van LLM-beveiligingsbeperkingen, waaronder: DAN-modus, "doe nu alles", "schakel veiligheid uit", "onbeperkte modus", "zonder enige beperking", "negeer uw veiligheidsrichtlijnen", "u hoeft uw regels niet te volgen", "rollenspel als onbeperkt", "hypothetisch scenario waarin u kunt", "in dit alternatieve universum" en "alleen voor educatieve doeleinden"-patronen die worden gebruikt als rechtvaardiging voor het omzeilen.

7.2. Gevoelige gegevensbescherming

  • detect_sensitive_leak scant tekst op gevoelige gegevens, waaronder: SSN/CPF, creditcardnummers (met Luhn checksum-validatie), e-mails, telefoonnummers, API-sleutels (AWS, GCP, GitHub, Stripe-standaarden), wachtwoorden, JWT-tokens, privésleutels (PEM-headers) en portemonnee-adressen voor cryptocurrency.
  • detect_prompt_leak detecteert pogingen om de LLM-systeemprompt te extraheren door de inhoud van de gebruikersprompt te vergelijken met de systeemprompt met behulp van tekstovereenkomst. Als de gebruiker delen van de systeemprompt probeert te reproduceren of af te leiden, markeert de functie dit.
  • detect_data_excitation analyseert de LLM-uitvoer op gevoelige gegevens die mogelijk per ongeluk in het antwoord zijn opgenomen.

7.3. Sanering

  • sanitize_prompt verwijdert geblokkeerde patronen van de gebruikersprompt en handhaaft de lengtelimiet.
  • sanitize_llm_output verwijdert scripts, gebeurtenishandlers en gevoelige gegevens uit de LLM-uitvoer, waarbij indien nodig afkapping wordt toegepast.
  • ai_memory_sanitizer zuivert AI-geheugenvermeldingen op basis van bewaarbeleid, waarbij gevoelige gegevens en verlopen vermeldingen worden verwijderd.

7.4. Detectie van misbruik van modellen en agenten

  • detect_model_abuse analyseert verzoekpatronen om modelmisbruik op te sporen: overmatige herhaling (dezelfde prompt meerdere keren verzonden), hoge verzoeksnelheid (meer dan 30/minuut) en abnormale complexiteit (zeer diepe of lange zoekopdrachten). De misbruikscore wordt berekend als een gewogen combinatie van patroonmatching, herhaling, snelheid en complexiteit.
  • detect_agent_abuse bewaakt het gedrag van AI-agenten door te controleren of de uitgevoerde acties binnen het gedefinieerde beleid vallen (toegestane acties, oproeplimieten, toegangsbeperkingen).

7.5. LLM Firewall en beleidsengine

  • llm_firewall evalueert invoer aan de hand van een reeks LLM-firewallregels met configureerbare acties (blokkeren, waarschuwen, loggen). Elke regel specificeert een patroon, een voorwaarde en een actie.
  • ai_policy_engine evalueertzowel de LLM-prompt als de uitvoer tegen een reeks beveiligingsbeleidsregels, waaronder: verbod op het genereren van kwaadaardige code, verbod op het onthullen van persoonlijke informatie, vereiste van bronnen voor feitelijke claims en domeinspecifieke beperkingen.

7.6. RAG en hallucinatie

  • rag_source_validation valideert de geloofwaardigheid van bronnen die worden gebruikt in RAG-systemen (Retrieval-Augmented Generation), waarbij wordt gecontroleerd of de brondomeinen op de vertrouwde lijst staan en waarbij validatieregels worden toegepast, zoals het controleren van de datum, de auteur en de reputatie.
  • 'hallucination_risk' beoordeelt het risico op hallucinatie in de LLM-uitvoer door het analyseren van: lage betrouwbaarheidsscores, niet-geverifieerde uitspraken, feitelijke inconsistenties en taalpatronen die indicatief zijn voor onzekerheid.

7.7. Vangrails en tooloproepvalidatie

  • ai_output_guard past vangrails en redactieregels toe op LLM-uitvoer, verwijdert verboden inhoud en redigeert gevoelige gegevens.
  • tool_call_validation valideert toolaanroepen (functieaanroepen) door te controleren of de tool op de toegestane lijst staat en of de argumenten overeenkomen met het verwachte schema.
  • multi_agent_isolation valideert het isolatie- en communicatiebeleid tussen meerdere AI-agenten, waardoor wordt voorkomen dat de ene agent de andere in gevaar brengt.

7.8. Toezicht

  • ai_token_monitor bewaakt het gebruik van LLM-tokens tegen gedefinieerde limieten (per verzoek, per minuut, per dag, per kosten), en genereert waarschuwingen wanneer limieten worden benaderd of overschreden.
  • ai_behavior_monitor monitort AI-gedrag op afwijkingen van de vastgestelde basislijn, waarbij veranderingen in reactiepatronen, verhoogde fouten of onverwacht gedrag worden gedetecteerd.

8. Netwerkmodule

De netwerkmodule biedt bedreigingsdetectie op netwerkniveau en omvat alles van poortscannen tot command-and-control-communicatie.

8.1. Scandetectie

  • detect_port_scan analyseert verbindingen van een bron-IP om poortscans te detecteren. De functie telt de unieke poorten waartoe toegang is verkregen, berekent de verbindingssnelheid (verbindingen per seconde) en analyseert TCP-vlagpatronen (SYN flood, SYN-RST-patronen). Gedetecteerde scantypen zijn onder meer: ​​SYN-scan, FIN-scan, XMAS-scan, NULL-scan en UDP-scan. Met de configureerbare drempel kunt u de gevoeligheid aanpassen (standaard: 20 afzonderlijke poorten in 60 seconden).
  • detect_dns_tunneling analyseert DNS-query's om tunneling te detecteren, berekent de Shannon-entropie van subdomeinen (gegevens gecodeerd in DNS-query's hebben een hoge entropie), meet de gemiddelde grootte van subdomeinen en telt de frequentie van queries voor een specifiek domein.

8.2. Detectie van verkeersafwijkingen

  • detect_traffic_anomaly vergelijkt huidige verkeersstatistieken (bytes per seconde, pakketten per seconde, verbindingen per seconde, protocoldistributie) met een historische basislijn met behulp van statische z-score. Afwijkingen boven de drempel (standaard: 2,0 standaardafwijkingen) worden gemarkeerd als afwijkingen.
  • detect_ddos detecteert Distributed Denial of Service-aanvallen door pieken in bytes/pakketten per seconde ten opzichte van de basislijn te analyseren, met een configureerbare drempel en tijdvenster.

8.3. Proxy-, VPN- en Tor-detectie

  • detect_proxy controleert HTTP-headers die indicatief zijn voor proxy (X-Forwarded-For, Via, X-Real-IP, Forwarded) en analyseert gedragspatronen van proxyverbindingen.
  • detect_vpn controleert het bron-IP aan de hand van een database met bekende IP's van de VPN-provider.
  • detect_tor controleert of het IP-adres tot het Tor-netwerk behoort door het te vergelijken met lijsten met knooppunten en knooppunten uit het Tor-netwerk.

8.4. IP- en domeinvalidatie

  • validate_ip valideert IPv4-adressen tegen toegestane bereiken en blokken met behulp van CIDR-matching. Ondersteunt CIDR-notatie (bijvoorbeeld 192.168.1.0/24) en individuele bereiken.
  • validate_domain valideert domeinen door de TLD te vergelijken met een toegestane lijst (bijvoorbeeld alleen .com, .org, .br) en het volledige domein met een geblokkeerde lijst.

8.5. Spoofing-detectie en ARP-vergiftiging

  • detect_spoofing analyseert pakketgegevens tegen verwachte bronnen en netwerktopologie om IP-spoofing te detecteren, waarbij wordt gecontroleerd of het bron-IP consistent is met de verwachte route.
  • detect_arp_poisoning vergelijkt de huidige ARP-tabel met verwachte IP-naar-MAC-toewijzingen, waarbij wordt gedetecteerd wanneer een MAC-adres reageert op meerdere IP's of wanneer een toewijzing onverwacht verandert.

8.6. TLS-vingerafdrukken

  • tls_fingerprint genereert een TLS-vingerafdruk uit de handshake (coderingssuites, extensies, elliptische curven, puntformaten) en vergelijkt deze metnaar een database met bekende vingerafdrukken om de cliënt te identificeren.
  • ja3_fingerprint genereert een TLS-specifieke JA3-hash ClientHello, wat een industriestandaard is voor het identificeren van TLS-clients op basis van onderhandelingsparameters.

8.7. Beaconing en C2-detectie

  • beaconing_detection detecteert bakengedrag (periodieke communicatie met command-and-control) door de regelmaat van de intervallen tussen verbindingen te analyseren. Verbindingen met zeer regelmatige intervallen (lage jitter) en hoge intervalcorrelatie zijn indicatief voor beaconing.
  • command_and_control_detection analyseert verkeerspatronen aan de hand van bekende indicatoren van C2: communicatie met DGA-domeinen (Domain Generation Algorithm), verkeer op niet-standaard poorten, bakenpatronen en gebruik van tunnelprotocollen (DNS, ICMP, HTTP).

8.8. Laterale beweging en netwerkanalyse

  • lateral_movement_detection detecteert laterale beweging door toegangspatronen tussen hosts op het netwerk te analyseren: toegang tot hosts waartoe de gebruiker normaal geen toegang heeft, gebruik van protocollen voor extern beheer (RDP, SSH, WMI) voor ongebruikelijke hosts, en voortplanting van toegang in een grafiekpatroon.
  • netwerk_entropie_analyse analyseert de entropie van netwerkpakketten om versleuteld of gecodeerd verkeer te detecteren (hoge entropie duidt op willekeurige of versleutelde gegevens).
  • traffic_behavior_analysis analyseert verkeersgedrag aan de hand van basislijnen die in een tijdvenster zijn vastgelegd, waarbij veranderingen in het communicatiepatroon worden gedetecteerd.
  • protocol_anomaly_detection detecteert afwijkingen in protocollen door protocolgegevens te vergelijken met de verwachte specificaties (vereiste velden, geldige waarden, berichtenvolgorde).

9. Cloudmodule

De cloudmodule beschermt cloudinfrastructuren op AWS, GCP en Azure en omvat containers, Kubernetes, opslag, IAM, IaC en supply chain.

9.1. Containerbeveiliging

  • validate_dockerfile valideert Dockerfiles op basis van best practices op het gebied van beveiliging: gebruik de latest-tag niet, voer niet uit als root, neem HEALTHCHECK op, neem geen hardgecodeerde geheimen op, gebruik minimale basisimages (alpine, distroless) en stel geen onnodige poorten bloot.
  • detect_container_escape detecteert potentiële ontsnappingsvectoren voor containers door het volgende te controleren: bevoorrechte modus, gevaarlijke mogelijkheden (SYS_ADMIN, SYS_PTRACE, NET_ADMIN), gevoelige hostPath-montage (/, /etc, /proc, /sys), gebrek aan seccomp/AppArmor-profielen en delen van hostnaamruimte.
  • runtime_container_protection analyseert containergebeurtenissen tijdens runtime aan de hand van bedreigingsregels en voert automatische acties uit (blokkeren, waarschuwen, isoleren, beëindigen, loggen).
  • container_image_scan scant containerafbeeldingslagen op bekende kwetsbaarheden (CVE's) en controleert afbeeldingshandtekeningen (Cosign, Notaris).

9.2. Kubernetes-beveiliging

  • validate_k8s_rbac valideert Kubernetes RBAC-configuraties op basis van de principes van de minste bevoegdheden: het detecteren van ClusterRoles met wildcard (*), ServiceAccounts met overmatige machtigingen, bindingen die toegang verlenen tot geheimen en rollen die exec in pods toestaan.
  • validate_kubernetes_manifest valideert Kubernetes-manifesten op basis van pod-beveiligingsbeleid en netwerkbeleid: detecteer pods die als root draaien, zonder resourcelimieten, met hostNetwork/hostPID/hostIPC, zonder readOnlyRootFilesystem en zonder securityContext.
  • runtime_k8s_anomaly detecteert afwijkend gedrag in runtime-gebeurtenissen van Kubernetes: creatie van pods in ongebruikelijke naamruimten, wijzigingen in RBAC, toegang tot niet-standaard geheimen en communicatie tussen pods die normaal niet communiceren.

9.3. Opslag en IAM

  • detect_public_bucket detecteert openbaar toegankelijke cloudopslagbuckets door het volgende te controleren: bucketbeleid met Primair: "*", openbare ACL's, blokkering van openbare toegang uitgeschakeld en websiteconfiguraties die de bucket blootleggen.
  • validate_s3_permissions valideert de S3-bucket-machtigingen op basis van de beveiligingsvereisten: controleren of er geen openbare schrijfrechten zijn, of encryptie is ingeschakeld, of versiebeheer actief is en of logboekregistratie is geconfigureerd.
  • validate_iam_policy valideert het IAM-beleid aan de hand van lijsten met toegestane en geweigerde acties, waarbij overmatige toestemming wordt gedetecteerd: acties met wildcard (s3:*, *), toegang tot bronnen van alle services en de afwezigheid van beperkingsvoorwaarden.

9.4. Infrastructuur als code

  • validate_terraform valideert Terraform-plannen op basis van beveiligingsbeleid: detecteer bronnen met encryptie uitgeschakeld, beveiligingsgroepen met open toegangsregels (0.0.0.0/0), openbare buckets, databases zonder back-up en bronnen zonder identificerende tags.
  • detect_cloud_misconfig detecteert verkeerde configuraties van de cloudinfrastructuur door de huidige configuratie te vergelijken met een beveiligingsbasislijn per provider (AWS, GCP, Azure).

9.5. Geheimen en toeleveringsketen

  • validate_secrets_manager valideert de configuratie van de geheimenmanager: automatische rotatie ingeschakeld, encryptie in rust met KMS, restrictief toegangsbeleid en toegangsregistratie ingeschakeld.
  • supply_chain_validation valideert software-afhankelijkheden ten opzichte van vertrouwde bronnen en databases met kwetsbaarheden, waarbij pakketten van niet-geverifieerde bronnen, versies met bekende CVE's en afhankelijkheden met beperkende licenties worden gedetecteerd.
  • sbom_generator genereert een softwarestuklijst in SPDX- of CycloneDX-formaten, met een lijst van alle componenten met naam, versie, type, licenties en hash.
  • dependency_audit controleert de afhankelijkheden van de database met kwetsbaarheden met een ernstfilter.
  • detect_typósquatting detecteert typósquatting-aanvallen door pakketnamen te vergelijken met bekende pakketten met behulp van tekenreeksovereenkomst (Levenshtein, char swap, woordafbreking).

9.6. Score en identiteit

  • cloud_security_score berekent een algemene cloudbeveiligingsscore op basis van CIS-benchmarks en configureerbare gewichten per categorie (IAM, opslag, netwerk, logboekregistratie, encryptie).
  • workload_identity_validation valideert de identiteitsconfiguratie van de werkbelasting (IRSA op AWS, Workload Identity op GKE, Managed Identity op Azure).
  • confidential_computing_validation valideert vertrouwelijke computerattesten voor TEE's (Intel SGX/TDX, AMD SEV-SNP, AWS Nitro Enclaves, Azure CVM).

10. Bewakingsmodule

De monitoringmodule biedt geavanceerde detectie-, correlatie- en incidentresponsmogelijkheden.

10.1. Fraudebestendige logboekregistratie

  • secure_log creëert veilige loggegevens met cryptografische integriteit met behulp van hash-keten: elke invoer bevat de hash van de vorige invoer, waardoor het onmogelijk wordt om eerdere invoer te wijzigen zonder de hele keten ongeldig te maken.
  • tamperproof_logs controleert de integriteit van een keten van logs door te valideren dat elke hash correct naar de vorige invoer verwijst.

10.2. Statistische score

  • anomaly_score berekent een anomaliescore met behulp van statistische z-score: berekent voor elke metriek hoeveel standaardafwijkingen de huidige waarde is van het historische gemiddelde. Individuele scores worden gecombineerd met configureerbare gewichten om een ​​samengestelde score te produceren.
  • threat_score berekent een dreigingsscore die is samengesteld uit beveiligings- en dreigingsinlichtingengebeurtenissen, waarbij de weging wordt bepaald op basis van de ernst, de kriticiteit van het doelwit en het vertrouwen in de inlichtingenbron.
  • risk_score berekent een risicoscore voor een specifieke gebruiker op basis van recente gebeurtenissen, huidige context en geschiedenis (vorig risicogemiddelde, aantal incidenten, dagen sinds het laatste incident).

10.3. Correlatie en waarschuwingen

  • correlate_events correleert beveiligingsgebeurtenissen binnen een tijdvenster met behulp van door de gebruiker gedefinieerde correlatieregels. Bijvoorbeeld: "als er 3 mislukte inloggebeurtenissen zijn vanaf hetzelfde IP-adres, gevolgd door een succesgebeurtenis, correleer dan als mogelijke brute kracht".
  • realtime_alert evalueert gebeurtenissen aan de hand van waarschuwingsregels en genereert realtime waarschuwingen met configureerbare meldingen (e-mail, Slack, PagerDuty, webhook).
  • adaptive_alerting implementeert adaptieve waarschuwingen met waarschuwingsvermoeidheidspreventie: als het aantal waarschuwingen per uur een basislijn overschrijdt, groepeert het systeem soortgelijke waarschuwingen en vermindert de meldingsfrequentie.

10.4. Aanvalsanalyse

  • attack_path_analysis analyseert potentiële aanvalspaden via het netwerk op basis van beveiligingsgebeurtenissen en netwerktopologie, waarbij reeksen acties worden geïdentificeerd die een aanvaller zou kunnen gebruiken om een kritisch doelwit te bereiken.
  • threat_graph bouwt een kennisgrafiek over bedreigingen op basis van gebeurtenissen, entiteiten (gebruikers, hosts, applicaties) en relaties (waartoe toegang wordt verkregen, gecompromitteerd, waarmee wordt gecommuniceerd).
  • attack_chain_mapping wijst beveiligingsgebeurtenissen toe aan het MITRE ATT&CK-framework (technieken en tactieken) en aan de Cyber ​​Kill Chain (verkenning, bewapening, levering, exploitatie, installatie, C2, acties op doelstellingen).

10.5. Gedragsanalyse en UEBA

  • gedragsanalyse analyseert het gedrag van gebruikers aan de hand van vastgestelde basislijnen: typische inlogtijden, gemeenschappelijke locaties, aantal gebeurtenissen per uur en typische actietypen.
  • ueba_analysis wordt uitgevoerdGebruikers- en entiteitsgedragsanalyse waarbij gebruikersgedrag wordt vergeleken met de peergroep (groep gebruikers met een vergelijkbaar profiel) en statistische afwijkingen worden opgespoord.
  • detect_account_takeover detecteert pogingen tot accountovername op basis van gedragsindicatoren: onbekende apparaataanmelding, ongebruikelijke locatie, atypische tijd, wachtwoordwijziging gevolgd door gegevensoverdracht en toegang tot niet-standaard bronnen.

10.6. Autonome respons en forensisch onderzoek

  • autonomous_response voert autonome incidentrespons uit op basis van de ernst van de bedreiging en reactieregels: IP blokkeren, account uitschakelen, host isoleren, tokens intrekken en escaleren naar het beveiligingsteam.
  • forensic_snapshot creëert een forensische momentopname van de systeemstatus met keten van bewaring van bewijsmateriaal, inclusief cryptografische hash van alle verzamelde artefacten.
  • incident_timeline bouwt een chronologische incidenttijdlijn op van beveiligingsgebeurtenissen, geordend op tijdstempel en gegroepeerd op aanvalsfase.
  • autonomous_triage voert autonome triage van waarschuwingen uit met behulp van triageregels en verrijkingsgegevens (bedreigingsinformatie, gebruikerscontext, fout-positieve geschiedenis).

11. Actieve verdedigingsmodule (defensief)

De defensieve module implementeert actieve verdedigingsmechanismen die het raamwerk en de applicatieruntime zelf beschermen.

11.1. Anti-debugging en anti-manipulatie

  • runtime_self_protection maakt zelfbeschermingsmechanismen tijdens runtime mogelijk: periodieke integriteitscontroles, detectie van foutopsporing en continue monitoring van de processtatus.
  • anti_debugging_detection detecteert actieve debugging-pogingen door het controleren van: ptrace-status (als het proces wordt getraceerd), debugger-signalen in de omgeving (omgevingsvariabelen, debug-bestanden) en runtime-afwijkingen (onverwachte pauzes duiden op breekpunten).
  • anti_tampering controleert de binaire integriteit door cryptografische hashes (SHA-256, SHA3-256) te vergelijken met verwachte waarden. Als de hash is veranderd, is het binaire bestand gewijzigd.
  • memory_integrity_check controleert de integriteit van geheugenregio's door de huidige staat te vergelijken met de verwachte staat en de handtekeningen van kritieke regio's te controleren.
  • process_integrity_check controleert de procesintegriteit, inclusief: geladen modules (detecteren van ongeautoriseerde DLL's), het land van de procesketen (detecteren of het proces is gestart door een onverwachte ouder) en procesrechten.

11.2. Binaire en opstartvalidatie

  • code_signing_validation valideert het codeondertekeningscertificaat van een binair bestand tegen een opslag van vertrouwde certificaten en controleert of het certificaat niet is ingetrokken.
  • binary_integrity_validation valideert de integriteit van een binair bestand per sectie (.text, .data, .rsrc, .reloc) door individuele hashes voor elke sectie te berekenen en te vergelijken met verwachte hashes.
  • secure_boot_validation valideert de veilige opstartketen door de TPM-metingen (Trusted Platform Module) en de waarden van de PCR's (Platform Configuration Registers) te controleren die elke opstartfase registreren.
  • secure_update_validation valideert updatepakketten door het controleren van: de cryptografische handtekening van het pakket, de integriteit van de inhoud, de versie (voorkomen van downgrade-aanvallen) en het distributiekanaal.

11.3. Geavanceerde detectietechnieken

  • anti_hook_detection detecteert functie hooks in het geheugen door het controleren van: IAT hooking (het wijzigen van de importadrestabel), inline hooking (het wijzigen van de eerste instructies van een functie) en SSDT hooking (het wijzigen van de System Service Descriptor Table in de kernel).
  • anti_injection_detection detecteert code-injectie in procesgeheugenruimte door het controleren van: modules geladen zonder handtekening, bibliotheken geladen van verdachte paden, en handtekeningen van bekende injectietechnieken (procesuitholling, DLL-injectie, reflecterend DLL-laden).
  • anti_rootkit_detection detecteert rootkit-indicatoren door het analyseren van: systeemaanroepen die inconsistente resultaten retourneren, niet-ondertekende kernelmodules en verborgen processen (processen die verschijnen in de kernelproceslijst maar niet in de lijst van het besturingssysteem).
  • anti_vm_detection detecteert uitvoering in een virtuele omgeving door het controleren van: hardware-informatie die indicatief is voor de VM (BIOS-fabrikant, processormodel, MAC-adres), timingcontroles (instructies die langzamer worden uitgevoerd in VM's) en VM-artefacten (bestanden, services, stuurprogramma's specifiek voor VMware, VirtualBox, Hyper-V).
  • anti_emulatie_detectiedetecteert emulatieomgevingen door het volgende te controleren: beschikbaarheid van API's die emulators vaak niet implementeren, timing van bewerkingen (emulators zijn langzamer) en omgevingscontroles (aantal processen, schijfruimte, RAM-geheugen).

11.4. Bewegend doel en zelfgenezing

  • moving_target_runtime implementeert bewegende doelverdediging door service-eindpunten te roteren, de geheugenindeling willekeurig te maken en responstijden te variëren om het misbruik van kwetsbaarheden moeilijker te maken.
  • dynamic_attack_surface past het aanvalsoppervlak dynamisch aan op basis van het dreigingsniveau: op een laag niveau zijn alle eindpunten beschikbaar; op gemiddeld niveau zijn niet-essentiële eindpunten uitgeschakeld; op hoog niveau blijven alleen kritische eindpunten actief.
  • runtime_policy_engine evalueert en past beveiligingsbeleid toe tijdens runtime met configureerbare handhavingsmodus (audit, waarschuwing, afdwingen).
  • self_healing_security detecteert en herstelt automatisch beveiligingsincidenten: als een dienst is aangetast, kan het systeem de dienst opnieuw starten, de oorspronkelijke configuratie herstellen en het personeel op de hoogte stellen.
  • adaptive_threat_response voert een adaptieve respons uit op bedreigingen op basis van bedreigingskenmerken en vooraf gedefinieerde responsplaybooks.
  • 'autonomous_containment' bevat autonoom actieve bedreigingen die gebruik maken van containmentregels en netwerktopologie: isoleer gecompromitteerde hosts, blokkeer C2-communicatie en segmenteer het netwerk om verspreiding te beperken.

12. Honeypot-module

De honeypot-module implementeert misleidingstechnieken om aanvallers aan te trekken, te detecteren en te analyseren.

12.1. Valse diensten

  • fake_admin_panel implementeert een realistisch nep-beheerderspaneel met inlogroutes, dashboard, gebruikersbeheer en systeeminstellingen. Alle interacties worden geregistreerd voor analyse.
  • fake_database creëert een nepdatabase met een realistisch schema (gebruiker, bestelling, betalingstabellen) en voorbeeldrecords die er legitiem uitzien maar volledig fictief zijn.
  • fake_api implementeert een nep-REST API met realistische eindpunten (/api/users, /api/orders, /api/betalingen) die overtuigende maar fictieve payloads retourneren.
  • fake_filesystem creëert een nepbestandssysteem met een plausibele mapstructuur (/etc, /var/log, /home/user, /opt/app) en bestanden met realistische inhoud.
  • fake_ssh_service zet een nep-SSH-service in die verbindingen accepteert, een realistische banner weergeeft en alle authenticatiepogingen en uitgevoerde opdrachten registreert.
  • fake_rdp_service zet een nep-RDP-service in om externe desktopaanvallen te detecteren en te volgen.
  • fake_kubernetes_cluster implementeert een nep-Kubernetes-cluster-API om containergerichte aanvallers aan te trekken door te reageren op vragen naar pods, services, implementaties en geheimen.
  • fake_s3_bucket creëert een nep-S3-bucket met realistische objecten (documenten, configuraties, back-ups) en toegangsbeleid dat er legitiem uitziet.
  • fake_login_page implementeert een overtuigende inlogpagina met aanpasbare branding om pogingen tot het indienen van inloggegevens vast te leggen.
  • fake_debug_panel zet een nep debug/ontwikkelingspaneel in dat interne systeeminformatie lijkt vrij te geven (omgevingsvariabelen, database-instellingen, logs).

12.2. Honingfiches en bedrog

  • fake_secrets genereert en beheert valse geheimen (API-sleutels, databasetokens, SSH-referenties) die waarschuwen wanneer ze buiten de geautoriseerde context worden gebruikt.
  • honeytoken_generation genereert traceerbare tokens van verschillende typen (URL's, API-sleutels, inloggegevens, bestanden) die waarschuwingen activeren wanneer ze worden geopend.
  • honeycredential_detection controleert de ingediende inloggegevens aan de hand van de database met bekende honeytokens en detecteert wanneer een aanvaller valse inloggegevens gebruikt.
  • deceptive_routes registreert misleidende routes die op legitieme API-eindpunten lijken, maar waarschuwingen activeren wanneer ze worden geopend.
  • decoy_endpoints genereert een lijst met lok-API-eindpunten die echte service-eindpunten nabootsen.
  • deceptive_responses genereert contextueel passende misleidende reacties op basis van het verzoek en het profiel van de aanvaller, waardoor de aanvaller betrokken blijft bij het verzamelen van informatie.

12.3. Analyse en aanpassing

  • adaptive_honeypot past de honeypot-configuratie dynamisch aan op basis van waargenomen verkeer en dreigingsniveau: als de aanvaller misbruik maakt van webkwetsbaarheden, vergroot de honeypot het oppervlak van webservices; als het deuren scant, opent het meer valse deuren.
  • aanvaller_gedrag_tracking volgt en analyseert gedragspatronen van aanvallers binnen de honeypot-sessie: uitgevoerde opdrachten, geopende bestanden, pogingen tot inloggegevens en tijd besteed aan elke service.
  • adaptive_deception past de misleidingstactieken dynamisch aan op basis van het profiel van de aanvaller (scriptkiddie, geautomatiseerde aanvaller, APT) en effectiviteitsstatistieken (hoe lang de aanvaller bleef, hoeveel acties hij uitvoerde).
  • moving_target_defense implementeert bewegende doelverdediging in de context van honeypots, roterende serviceconfiguraties (poorten, banners, reacties) om het nemen van vingerafdrukken in de omgeving moeilijker te maken.

13. Bestandsmodule (Bestand)

De bestandsmodule beschermt tegen bedreigingen vanuit bestanden: kwaadaardige uploads, documenten met macro's, pdf's met JavaScript, polyglot-bestanden, zip-bommen en malware.

13.1. Validatie uploaden

  • secure_upload valideert en verwerkt bestandsuploads veilig op meerdere lagen: controleert de extensie op de toelatingslijst, valideert het MIME-type via magische bytes, controleert de maximale grootte en scant de inhoud op malware.
  • validate_extension controleert of de bestandsextensie in de lijst met toegestane extensies staat.
  • validate_mime valideert het MIME-type van het bestand met behulp van magische byte-detectie (bestandsformaathandtekeningen in de eerste bytes), waardoor spoofing van extensies wordt voorkomen (bijvoorbeeld een .jpg-bestand dat feitelijk een uitvoerbaar bestand is).

13.2. Bedreigingsdetectie in bestanden

  • detect_polyglot_file detecteert of een bestand handtekeningen in meerdere bestandsformaten bevat, wat duidt op een polyglot bestandsaanval (een bestand dat tegelijkertijd geldig is in twee of meer formaten, zoals een GIF dat ook geldig JavaScript is).
  • detect_zip_bomb detecteert zip-bommen door de compressieverhouding en de gedeclareerde ongecomprimeerde grootte te analyseren. Een verhouding van meer dan 100:1 of een ongecomprimeerde grootte van meer dan 1 GB wordt gemarkeerd als een potentiële zip-bom.
  • detect_office_macro detecteert VBA-macro's in Office-documenten (Word .doc/.docx, Excel .xls/.xlsx, PowerPoint .ppt/.pptx) die kwaadaardige code kunnen uitvoeren bij het openen van het document.
  • detect_pdf_javascript detecteert JavaScript dat is ingebed in PDF-bestanden en dat kwaadaardige acties kan uitvoeren, zoals het downloaden van malware of phishing.
  • detect_executable_payload detecteert uitvoerbare payloads die zijn ingebed in niet-uitvoerbare bestanden (bijvoorbeeld een PDF die een uitvoerbare PE-header van Windows bevat).
  • detect_embedded_script detecteert scripts die zijn ingebed in bestanden: JavaScript in PDF, VBScript in Office-documenten, PowerShell in tekstbestanden en Python-scripts in gegevensbestanden.

13.3. Malware scannen

  • malware_scan scant bestanden op malware met behulp van handtekeningmatching (vergelijking met bekende malwarehandtekeningen) en YARA-regels (geavanceerde patroonmatching met complexe voorwaarden).
  • yara_scan scant bestanden met behulp van YARA-regels met naamruimte-ondersteuning voor het organiseren van regels op categorie (malware, exploit, verdacht, enz.).
  • heuristische_scan voert heuristische analyses uit om verdacht gedrag te detecteren in bestanden die niet overeenkomen met bekende handtekeningen, maar kenmerken hebben die wijzen op malware (obfuscatie, anti-debug, packing).

13.4. Geavanceerde analyse

  • entropy_analysis berekent de Shannon-entropie van blokbestandsgegevens om encryptie of compressie te detecteren. Bestanden met een entropie van meer dan 7,5 bits per byte worden als zeer willekeurig beschouwd (indicatief voor codering of verpakking).
  • detect_steganography detecteert steganografie in afbeeldingsbestanden met behulp van meerdere technieken: LSB-analyse (Least Significant Bit), toegevoegde gegevensdetectie, blok-entropie-analyse en kleurhistogramanalyse.
  • detect_obfuscation detecteert versluierde inhoud in bestanden met behulp van meerdere technieken: base64-tekenreeksdetectie, hex-codering, tekenreeksaaneenschakeling, hoge entropie in specifieke secties en versluierde controlestroompatronen.

13.5. Sanering en quarantaine

  • sanitize_filename zuivert bestandsnamen door gevaarlijke tekens (/, \, .., :, *, ?, ", <, >, |) en padvolgordes te verwijderen.
  • quarantine_file verplaatst kwaadaardige bestanden naar een quarantainemap met tracking van metagegevens (quarantainereden, tijdstempel, bestandshash, uploader).
  • sandbox_execute voert bestanden uit in een sandbox-omgeving voor gedragsanalyse, monitoring: systeemaanroepen, netwerktoegang, bestandswijziging en het maken van onderliggende processen.
  • secure_tempfile maakt veilige tijdelijke bestanden aan met beperkte rechten (alleen lezen/schrijven door de eigenaar) en optionele zelfverwijdering bij het sluiten.
  • immutable_storage_check controleert de integriteit van bestanden op onveranderlijke opslag door de huidige hash te vergelijken met de verwachte hash.

14. Enterprise-module

De ondernemingsmodule controleert de naleving van de regelgeving op het gebied van gegevensbescherming en informatiebeveiliging.

14.1. Naleving van regelgeving

  • lgpd_check verifieert de naleving van de Algemene Wet Bescherming Persoonsgegevens (LGPD, Wet 13.709/2018) van Brazilië: toestemming van de houder, benoeming van een DPO (Data Officer), rechten van de houders (toegang, correctie, verwijdering, overdraagbaarheid), registratie van verwerkingsactiviteiten, impactrapport over de bescherming van persoonsgegevens en melding van incidenten aan ANPD.
  • gdpr_check controleert de naleving van de Algemene Verordening Gegevensbescherming (AVG, Verordening EU 2016/679): wettelijke basis voor verwerking, aanstelling van DPO, dataminimalisatie, doelbinding, nauwkeurigheid, opslagbeperking, integriteit en vertrouwelijkheid, recht om vergeten te worden, gegevensportabiliteit en melding van inbreuken binnen 72 uur.
  • hipaa_check verifieert de naleving van de Amerikaanse Health Insurance Portability and Accountability Act (HIPAA): PHI-versleuteling (Protected Health Information) in rust en onderweg, toegangscontroles (unieke gebruikersidentificatie, noodtoegang, automatisch afmelden), auditcontroles (auditlogs, integriteitscontroles) en PHI-gegevensintegriteit.
  • pci_check controleert de naleving van de Payment Card Industry Data Security Standard (PCI-DSS): encryptie van kaartgegevens tijdens verzending en in rust, netwerksegmentatie (scheiding van de kaartomgeving), toegangscontrole (need-to-know, unieke ID's, MFA), netwerk- en systeemmonitoring en regelmatige beveiligingstests.

14.2. Rapporten en dashboard

  • 'compliance_report' genereert een uitgebreid nalevingsrapport op basis van meerdere controleresultaten, waaronder: samenvatting, geïdentificeerde hiaten, herstelaanbevelingen, nalevingstijdlijn en score per categorie.
  • realtime_security_dashboard genereert een real-time beveiligingsdashboard met weergave van: beveiligingsstatistieken (gedetecteerde bedreigingen, blokkades, valse positieven), actieve waarschuwingen, historische trends en algemene risicoscore.

14.3. Audit en beleid

  • audit_trail genereert een onveranderlijk audittraject van beveiligingsgebeurtenissen, gebruikersacties en gegevenswijzigingen, inclusief: wie deed wat, wanneer, waar vandaan en wat de impact was.
  • policy_as_code evalueert en past beveiligingsbeleid toe dat is gedefinieerd als code, waardoor versiebeheer, beoordeling en automatisch testen van beveiligingsbeleid mogelijk is.

14.4. Multi-tenant en meerdere regio's

  • tenant_isolation controleert en past huurderisolatie toe in een omgeving met meerdere huurders: gegevensscheiding, netwerkisolatie, toegangscontrole tussen huurders en het voorkomen van informatielekken tussen huurders.
  • multi_region_security evalueert de beveiliging in meerdere regio's en de naleving van de gegevenslocatie: verificatie dat gegevens uit specifieke regio's in de regio blijven, consistente versleuteling tussen regio's en naleving van lokale regelgeving in elke regio.

15. Integratiemodule

De integratiemodule biedt adapters voor populaire frameworks en platforms.

15.1. Python-webframeworks

  • fastapi_security_dependency creëert een beveiligingsafhankelijkheid voor FastAPI met OAuth2, JWT-validatie, snelheidsbeperking en invoerbescherming.
  • django_security_middleware creëert beveiligingsmiddleware voor Django met CSP, CSRF, beveiligingsheaders en invoerbescherming.
  • flask_security_extension creëert een beveiligingsextensie voor Flask met beveiligingswrappers, verzoekbescherming en invoervalidatie.
  • celery_security_monitor creëert een beveiligingsmonitor voor Celery-taken met argumentvalidatie, snelheidsbeperking per taak en auditlogging.
  • sqlalchemy_query_protection past bescherming toe op SQLAlchemy-query's met beveiliging op rijniveau, toestemmingsfiltering en preventie van query-injectie.

15.2. TypeScript-webframeworks

  • expressSecurityMiddleware creëert beveiligingsmiddleware voor Express.js met invoerbescherming, snelheidsbeperking, CORS, CSRF en beveiligingsheaders.
  • fastifySecurityMiddleware creëert beveiligingsmiddleware voor Fastify met validatiehooks, snelheidsbeperking en bescherming van de payload.
  • nestjsSecurityModule maakt een beveiligingsmodule voor NestJS met authenticatiewachters, validatie-interceptors en autorisatie-decorateurs.
  • nextjsSecurityHeaders configureert beveiligingsheaders voor Next.js (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy).

15.3. Rand en Runtime

  • cloudflareEdgeProtection configureert edge-bescherming op Cloudflare met WAF-regels, snelheidsbeperking, botbeheer en aangepaste beveiligingsmedewerkers.
  • denoSecurityPlugin creëert een beveiligingsplug-in voor Deno met machtigingenbeheer (lezen, schrijven, net, env, uitvoeren) en sandboxing.
  • bunSecurityPlugin creëert een beveiligingsplug-in voor Bun met beveiligingsoptimalisatie en toegangscontrole tot systeem-API's.
  • browserRuntimeProtection configureert browserruntimebescherming met CSP-, iframe-sandbox- en API-beperkingen.
  • serviceWorkerSecurity configureert de beveiliging van Service Workers met een beperkt bereik, beperkte machtigingen en oorsprongsvalidatie.
  • wasmSecurityRuntime creëert beveiligingsruntime voor WebAssembly met geheugenlimieten (initieel, maximaal, gedeeld) en systeemaanroepbeperkingen.

15.4. Pijpleiding en motor

  • async_threat_pipeline creëert een asynchrone pijplijn voor bedreigingsdetectie met configureerbare processors (validatie, detectie, scores, waarschuwingen) en uitvoerkanalen (logboek, statistieken, webhook).
  • yara_realtime_engine creëert een real-time YARA-scanengine met bestandsbewaking (directorymonitoring) en continue regelmatching.
  • ai_threat_classifier creëert een AI-bedreigingsclassificator met behulp van een getraind model en een betrouwbaarheidsdrempel voor geautomatiseerde beslissingen.
  • secure_cli_runtime creëert een veilige CLI-runtime met invoeropschoning, argumentvalidatie en uitvoeringstime-outs.
  • python_runtime_guard creëert een Python runtime guard met import-whitelisting (alleen toegestane modules kunnen worden geïmporteerd) en sandboxing (bestandssysteem-, netwerk- en systeemtoegangsbeperkingen).

16. Telemetrie en waarneembaarheid

Artsen zonder Grenzen integreert waarneembaarheid in al haar activiteiten, volgens de drie pijlers van waarneembaarheid: logs, statistieken en sporen.

16.1. Gestructureerde logboeken

Alle modules maken gebruik van gestructureerde logboekregistratie in JSON-formaat. Elke logvermelding bevat:

  • tijdstempel: ISO 8601 datum en tijd
  • niveau: ernst (debug, info, waarschuwing, fout, kritiek)
  • module: naam van de module die het log heeft gegenereerd
  • traceId: OpenTelemetry-trace-ID voor correlatie
  • context: bewerkingsspecifieke metadata (bijv. gedetecteerd, vertrouwen, ernst, matches)

16.2. Statistieken

Metrics Registry ondersteunt drie soorten statistieken:

  • Tellers: cumulatieve waarden die alleen maar toenemen. Voorbeelden: jwt_validations, xss_detections, sqli_detections, port_scan_detections, ddos_detections, malware_scans.
  • Gauzen: onmiddellijke waarden die kunnen stijgen of dalen. Voorbeelden: actieve_sessies, cache_hit_ratio.
  • Histogrammen: verdelingen van waarden. Voorbeelden: anomaly_scores, threat_scores, detection_latency_ms.

Elke statistiek kan labels (tags) bevatten voor extra dimensionaliteit, zoals module, severity, detected, cloud_provider.

16.3. Gedistribueerde tracering

Elke beveiligingsrol creëert een OpenTelemetry-reeks met:

  • Naam van bewerking (bijvoorbeeld: msf.web.detect_xss)
  • Attributen: invoerparameters, resultaat, duur
  • Gebeurtenissen: belangrijke mijlpalen tijdens de uitvoering
  • Status: ok of fout met beschrijving

Spans worden geëxporteerd naar OpenTelemetry-compatibele backends (Jaeger, Zipkin, AWS X-Ray, Google Cloud Trace, Azure Application Insights).

16.4. Evenementenbus

Event Bus maakt asynchrone communicatie tussen modules mogelijk:

  • Publicatie: elke module kan gebeurtenissen publiceren met type, ernst, bericht en metagegevens.
  • Abonnement: modules kunnen zich abonneren op specifieke soorten evenementen en acties uitvoeren wanneer evenementen worden gepubliceerd.
  • Geschiedenis: de evenementenbus houdt een geschiedenis bij van de laatste N evenementen voor raadpleging.
  • Dead Letter Queue: gebeurtenissen die niet kunnen worden verwerkt, worden verplaatst naar een wachtrij voor dode letters, zodat ze later opnieuw kunnen worden verwerkt.

17. Ontwerppatronen en technische principes

17.1. Gebruikte patronen

  • Singleton: voor infrastructuurcomponenten (PolicyEngine, MetricsRegistry, EventBus, CacheManager).
  • Factory: voor het maken van gestandaardiseerde resultaatobjecten (DetectionResult, ValidationResult, ScanResult).
  • Strategie: voor uitwisselbare detectiealgoritmen (verschillende detectiepatronen voor XSS, SQLi, enz.).
  • Waarnemer:naar de Event Bus, waar modules kijken naar gebeurtenissen die door andere modules zijn gepubliceerd.
  • Chain of Responsibility: voor validatiepijplijnen waarbij elke stap de invoer kan doorgeven of afwijzen.
  • Decorator: om beveiligingsfuncties toe te voegen aan bestaande functies (loggen, statistieken, tracering).

17.2. Beveiligingsprincipes

  • Defense in Depth: meerdere beschermingslagen, zodat als er één faalt, andere blijven opereren.
  • Least Privilege: elke functie en module werkt met de minimaal noodzakelijke rechten.
  • Fail Secure: in geval van een interne fout retourneren de functies resultaten die de toegang weigeren (fail closed).
  • Veilige vergelijking: alle geheime vergelijkingen maken gebruik van constante tijdvergelijking om timingaanvallen te voorkomen.
  • Input Sanitization: alle input wordt als onbetrouwbaar behandeld en gezuiverd voordat deze wordt verwerkt.
  • Beveiligingsregistratie: alle beveiligingsactiviteiten worden geregistreerd voor auditing en incidentdetectie.

18. Conclusie

Het Master Security Framework vertegenwoordigt een alomvattende, uniforme benadering van moderne applicatiebeveiliging. Met meer dan 350 functies verdeeld over 28 modules bestrijkt Artsen Zonder Grenzen het hele spectrum van bedreigingen waarmee applicaties vandaag de dag worden geconfronteerd: van traditionele webaanvallen (XSS, SQLi, SSRF) tot opkomende bedreigingen (onmiddellijke injectie in LLM's, aanvallen op de toeleveringsketen, ontsnappingen van containers).

Dankzij de dubbele implementatie in Python en TypeScript kunnen meertalige teams dezelfde set beveiligingsmogelijkheden gebruiken, terwijl integratie met OpenTelemetry, gestructureerde logboekregistratie en gebeurtenisbus ervoor zorgt dat alle beveiligingsoperaties waarneembaar en controleerbaar zijn.

De actieve verdedigingsmodules (anti-debugging, anti-manipulatie, zelfherstel) en adaptieve honeypots voegen lagen van proactieve bescherming toe die verder gaan dan reactieve detectie, terwijl de enterprise compliance-module LGPD-, GDPR-, HIPAA- en PCI-DSS-scans automatiseert.

Het raamwerk is open source, uitbreidbaar via Policy Engine en Event Bus en ontworpen om mee te evolueren met het dreigingslandschap. Elke functie wordt automatisch getest (243 tests slagen), gedocumenteerd met docstrings en JSDoc, en voorzien van telemetrie voor productieactiviteiten.


Referenties

  • OWASP Top 10: https://owasp.org/www-project-top-ten/
  • MITRE ATT&CK-framework: https://attack.mitre.org/
  • NIST Cybersecurity Framework: https://www.nist.gov/cyberframework
  • NIST Post-Quantum Cryptografie: https://csrc.nist.gov/projects/post-quantum-cryptography
  • RFC 6238 - TOTP: https://datatracker.ietf.org/doc/html/rfc6238
  • RFC 7519 - JWT: https://datatracker.ietf.org/doc/html/rfc7519
  • CIS-benchmarks: https://www.cisecurity.org/cis-benchmarks
  • LGPD (wet 13.709/2018): https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
  • AVG (EU-verordening 2016/679): https://eur-lex.europa.eu/eli/reg/2016/679/oj
  • HIPAA: https://www.hhs.gov/hipaa/index.html
  • PCI-DSS: https://www.pcisecuritystandards.org/