Master Security Framework: mijn meerlaagse beveiligingsframework voor moderne toepassingen
18/05/2026
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:
- Preventie: invoervalidatie, opschoning, encryptie, configuratieverharding
- Detectie: analyse van aanvalspatronen, statistische afwijkingen, malwarehandtekeningen, verdacht gedrag
- Antwoord: autonome waarschuwingen, quarantaine, insluiting, zelfgenezing
- 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_jwtcreëert tokens met onderwerp, aangepaste claims, configureerbare vervaldatum en uitgever. Ondersteunt HS256, HS384, HS512, RS256, ES256-algoritmen.validate_jwtcontroleert handtekening, vervaldatum, verplichte claims en retourneert de gedecodeerde payload. Met de parameterverify_expkunt u de vervalcontrole voor specifieke gevallen uitschakelen.revoke_jwtvoegt 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_jwtvalideert het oude token en geeft een nieuw token uit met dezelfde identiteit, waardoor stille tokenrotatie mogelijk is zonder de gebruikerssessie te onderbreken.validate_refresh_tokenvalideert 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_sessioncreëert een sessie die user_id, IP, user agent en apparaatvingerafdruk koppelt. Hierdoor kunt u verdachte wijzigingen in de sessiecontext detecteren.validate_sessioncontroleert 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_hijackvergelijkt 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_replayhoudt 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_stuffingbewaakt 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_bruteforcebewaakt inlogpogingen voor een enkel account. Als het aantal pogingen de drempel in het tijdvenster overschrijdt, wordt dit gemarkeerd als brute kracht.detect_impossível_travelberekent 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_checkbreidt 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_authpast 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_authmaakt gebruik van gedragsbiometrie (typepatroon, muisbeweging, surfritme) om de identiteit van de gebruiker te verifiëren aan de hand van de geregistreerde gedragsbasislijn.risk_based_authberekent 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_totpgenereert op tijd gebaseerde eenmalige wachtwoordcodes volgens RFC 6238, met configureerbare cijfers en punten.validate_totpvalideert TOTP-tokens met klokafwijkingstolerantie (driftparameter), ter compensatie van de desynchronisatie tussen de server en het apparaat van de gebruiker.verify_backup_codeverifieert en gebruikt back-up-/herstelcodes en verwijdert ze na gebruik uit de geldige lijst om hergebruik te voorkomen.
3.6. WebAuthn en wachtwoordsleutels
passkey_authvalideert FIDO2/WebAuthn-authenticaties door de cryptografische handtekening van de authenticator, authenticatorgegevens en JSON-clientgegevens te controleren.webauthn_verifyvoert 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_authcontroleert of een authenticatiemethode bestand is tegen phishing, waarbij FIDO2-niveau 2 of hoger met geverifieerde attestering vereist is.
3.7. Wachtwoordbeveiliging
password_entropyberekent 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_passwordcombineert entropieanalyse met controle aan de hand van lijsten met veelgebruikte wachtwoorden (rockyou, top 10000, enz.).password_breach_checkcontroleert of een wachtwoordhash voorkomt in een database met bekende inbreuken (Have I Been Pwned en dergelijke).secure_password_hashcreëert wachtwoord-hashes met cryptografisch zout en key stretching (iteraties), en ondersteunt algoritmen zoals PBKDF2, bcrypt, scrypt en Argon2.verify_password_hashvergelijkt een wachtwoord met een opgeslagen hash met behulp van een constante veilige vergelijking.
3.8. Vingerafdrukken van apparaten en browsers
device_fingerprintgenereert een unieke apparaat-ID op basis van attributen zoals user-agent, schermresolutie, tijdzone, talen en platform.browser_fingerprintmaakt gebruik van geavanceerde vingerafdruktechnieken gebaseerd op weergavekenmerken: 2D canvas-hash, WebGL-hash, audiocontext-hash en lijst met geïnstalleerde lettertypen.biometric_validationvergelijkt 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_datamaakt 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_datavoert 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_fileendecrypt_filebreiden geauthenticeerde encryptie uit naar bestanden op schijf, waardoor nonce, salt en metadata veilig worden beheerd.
4.2. Hybride cryptografie
hybrid_encryptcombineert 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_decryptkeert 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_encryptenpqc_decryptgebruiken ML-KEM (voorheen Kyber) voor kwantumcomputerbestendige versleuteling.kyber_key_exchangeimplementeert het Kyber-sleuteluitwisselingsprotocol voor post-kwantum gedeelde sleutelvestiging.dilithium_signgebruikt ML-DSA (voorheen Dilithium) voor post-kwantum digitale handtekeningen.sphincs_signgebruikt SPHINCS+, een handtekeningschema gebaseerd op hashfuncties, als een staatloos post-kwantumalternatief.falcon_signgebruikt Falcon, een op roosters gebaseerd handtekeningschema met compacte handtekeningen.
4.4. HMAC en handtekeningverificatie
generate_hmacproduceert een Hash-based berichtauthenticatiecode met behulp van HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 of HMAC-SHA3-256.verify_hmacvergelijkt de berekende HMAC met de verwachte HMAC met behulp van constante-tijdvergelijking.verify_signatureverifieert digitale handtekeningen (Ed25519, ECDSA, RSA-PSS) aan de hand van een bericht en openbare sleutel.
4.5. Cryptografische hulpprogramma's
secure_randomgenereert cryptografisch beveiligde bytes met behulp vanos.urandom()(Python) ofcrypto.getRandomValues()(TypeScript).secure_memory_eraseoverschrijft geheugengebieden die gevoelige gegevens bevatten met nullen, waardoor wordt voorkomen dat gegevens na gebruik in het geheugen achterblijven.anti_timing_comparevergelijkt 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_xssanalyseert 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. Metseverity_thresholdkunt u de detectiegevoeligheid aanpassen.sanitize_htmlverwijdert 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 zoalson*worden eruit gefilterd.sanitize_svgzuivert SVG door gevaarlijke elementen zoals<script>,<foreignObject>,<animate>en gebeurtenisattributen te verwijderen.sanitize_markdownzuivert de markdown door ingebedde gevaarlijke HTML te verwijderen, terwijl de oorspronkelijke markdown-opmaak behouden blijft.sanitize_cssverwijdert gevaarlijke CSS-eigenschappen zoalsexpression(),url(javascript:),behavioren-moz-binding.sanitize_jsverwijdert gevaarlijke JavaScript-patronen, waarondereval(),Function(),setTimeout/setIntervalmet string,document.write,document.cookie, onveilige DOM-manipulatie en methoden voor het uitvoeren van code.
5.2. SQL en NoSQL-injectie
detect_sqlidetecteert 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ósqlidetecteert 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_ssrfcontroleert 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_rceidentificeert patronen voor het uitvoeren van code op afstand, inclusief aanroepen vaneval(),exec(),system(),passthru(),popen(), backticks en pipe-operators.detect_command_injectiondetecteert OS-commando-injectie met behulp van shell-operators:;,|,||,&&, backticks,$()en omleidingen (>,>>).
5.5. Bestandsopname en paddoorgang
detect_lfidetecteert lokale bestandsopname door reeksen padtraversal (../,..\), gecodeerde traversal (%2e%2e%2f) en gevaarlijke protocollen (php://filter,php://input,data://,expect://) te identificeren.detect_rfidetecteert externe bestandsopname wanneer externe URL's worden doorgegeven als include/require-parameters.detect_path_traversalcontroleert of een pad binnen een toegestaan base_pathwordt opgelost, waarbij absolute en relatieve traversal worden gedetecteerd.
5.6. Sjablooninjectie
detect_template_injectiondetecteert 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_attackidentificeert onveilige deserialisatie door toegestane klassen en bekende gadgetpatronen te controleren (Java-serialisatie, Python-pickle, PHP-unserialisatie, YAML-deserialisatie).detect_open_redirectcontroleert 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_protectenvalidate_csrfcontroleren CSRF-tokens van aanvragen met sessietokens met behulp van veilige vergelijking.validate_corsvalideert CORS-verzoeken door Origin, Methods en Headers te vergelijken met toegestane lijsten.generate_cspgenereert Content-Security-Policy-headers uit de richtlijnconfiguratie (script-src, style-src, img-src, connect-src, frame-ancestors, enz.).validate_cspvalideert een bestaande CSP-header tegen een gedefinieerd beveiligingsbeleid.secure_headersgenereert 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_cookiegenereert Set-Cookie-headers met Secure, HttpOnly, SameSite (Strict of Lax), domeinbereik, pad en max-age-vlaggen.detect_clickjackingcontroleert op de aanwezigheid van X-Frame-Options-headers en CSP-frame-voorouders om de kwetsbaarheid voor clickjacking te detecteren.validate_originenvalidate_referervalideren Origin- en Referer-headers tegen verwachte domeinen.
5.10. Webhaken
webhook_signaturegenereert HMAC-handtekeningen voor webhook-payloads, inclusief tijdstempel voor herhalingspreventie.webhook_replay_protectioncontroleert 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_schemavalideert gegevens tegen JSON-schemadefinities met optionele strikte modus die extra velden afwijst die niet in het schema zijn gedefinieerd.validate_inputvalideert 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_jsonzuivert 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_limitimplementeert 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_limitpast 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_abuseanalyseert 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_apiidentificeert 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_bolacontroleert of de gebruiker geautoriseerd is om toegang te krijgen tot de gevraagde bron, waarbij deresource_idwordt vergeleken met deownership_mapdie 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_authcontroleert 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_assignmentcontroleert 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 zoalsis_admin,roleofbalancekunnen wijzigen.
6.6. GraphQL-beveiliging
graphql_ Depth_limitanalyseert 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_analysisberekent de rekenkosten van een GraphQL-query op basis van de complexiteit van elk veld (configureerbaar viacomplexity_map) en het nestniveau. Query's met kosten boven de limiet (standaard: 1000) worden afgewezen.graphql_abuse_detectionanalyseert 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_validationvalideert de veiligheid van gRPC-verzoeken door metadata, verplichte headers en TLS-informatie (cipher suite, protocol, peer-certificaat) te controleren.secure_websocketconfigureert beveiligde WebSocket-verbindingen met oorsprongsvalidatie en toegestane subprotocollen.websocket_origin_validationenwebsocket_flood_protectionbeschermen tegen kwaadaardige WebSocket-verbindingen en overstroming van verbindingen.
6.8. API-sleutelbeheer
api_key_rotationgenereert nieuwe API-sleutels met veilige hash (SHA3-256), identificeerbaar voorvoegsel en configureerbare vervaldatum.api_key_validationvalideert 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_injectionanalyseert 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_jailbreakdetecteert 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_leakscant 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_leakdetecteert 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_excitationanalyseert de LLM-uitvoer op gevoelige gegevens die mogelijk per ongeluk in het antwoord zijn opgenomen.
7.3. Sanering
sanitize_promptverwijdert geblokkeerde patronen van de gebruikersprompt en handhaaft de lengtelimiet.sanitize_llm_outputverwijdert scripts, gebeurtenishandlers en gevoelige gegevens uit de LLM-uitvoer, waarbij indien nodig afkapping wordt toegepast.ai_memory_sanitizerzuivert 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_abuseanalyseert 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_abusebewaakt 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_firewallevalueert 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_engineevalueertzowel 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_validationvalideert 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_guardpast vangrails en redactieregels toe op LLM-uitvoer, verwijdert verboden inhoud en redigeert gevoelige gegevens.tool_call_validationvalideert toolaanroepen (functieaanroepen) door te controleren of de tool op de toegestane lijst staat en of de argumenten overeenkomen met het verwachte schema.multi_agent_isolationvalideert 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_monitorbewaakt 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_monitormonitort 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_scananalyseert 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_tunnelinganalyseert 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_anomalyvergelijkt 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_ddosdetecteert 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_proxycontroleert HTTP-headers die indicatief zijn voor proxy (X-Forwarded-For, Via, X-Real-IP, Forwarded) en analyseert gedragspatronen van proxyverbindingen.detect_vpncontroleert het bron-IP aan de hand van een database met bekende IP's van de VPN-provider.detect_torcontroleert 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_ipvalideert IPv4-adressen tegen toegestane bereiken en blokken met behulp van CIDR-matching. Ondersteunt CIDR-notatie (bijvoorbeeld192.168.1.0/24) en individuele bereiken.validate_domainvalideert 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_spoofinganalyseert 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_poisoningvergelijkt 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_fingerprintgenereert 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_fingerprintgenereert 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_detectiondetecteert 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_detectionanalyseert 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_detectiondetecteert 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_analyseanalyseert de entropie van netwerkpakketten om versleuteld of gecodeerd verkeer te detecteren (hoge entropie duidt op willekeurige of versleutelde gegevens).traffic_behavior_analysisanalyseert verkeersgedrag aan de hand van basislijnen die in een tijdvenster zijn vastgelegd, waarbij veranderingen in het communicatiepatroon worden gedetecteerd.protocol_anomaly_detectiondetecteert 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_dockerfilevalideert Dockerfiles op basis van best practices op het gebied van beveiliging: gebruik delatest-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_escapedetecteert 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_protectionanalyseert containergebeurtenissen tijdens runtime aan de hand van bedreigingsregels en voert automatische acties uit (blokkeren, waarschuwen, isoleren, beëindigen, loggen).container_image_scanscant containerafbeeldingslagen op bekende kwetsbaarheden (CVE's) en controleert afbeeldingshandtekeningen (Cosign, Notaris).
9.2. Kubernetes-beveiliging
validate_k8s_rbacvalideert 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_manifestvalideert 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_anomalydetecteert 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_bucketdetecteert openbaar toegankelijke cloudopslagbuckets door het volgende te controleren: bucketbeleid metPrimair: "*", openbare ACL's, blokkering van openbare toegang uitgeschakeld en websiteconfiguraties die de bucket blootleggen.validate_s3_permissionsvalideert 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_policyvalideert 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_terraformvalideert 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_misconfigdetecteert 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_managervalideert de configuratie van de geheimenmanager: automatische rotatie ingeschakeld, encryptie in rust met KMS, restrictief toegangsbeleid en toegangsregistratie ingeschakeld.supply_chain_validationvalideert 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_generatorgenereert een softwarestuklijst in SPDX- of CycloneDX-formaten, met een lijst van alle componenten met naam, versie, type, licenties en hash.dependency_auditcontroleert de afhankelijkheden van de database met kwetsbaarheden met een ernstfilter.detect_typósquattingdetecteert 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_scoreberekent een algemene cloudbeveiligingsscore op basis van CIS-benchmarks en configureerbare gewichten per categorie (IAM, opslag, netwerk, logboekregistratie, encryptie).workload_identity_validationvalideert de identiteitsconfiguratie van de werkbelasting (IRSA op AWS, Workload Identity op GKE, Managed Identity op Azure).confidential_computing_validationvalideert 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_logcreë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_logscontroleert de integriteit van een keten van logs door te valideren dat elke hash correct naar de vorige invoer verwijst.
10.2. Statistische score
anomaly_scoreberekent 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_scoreberekent 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_scoreberekent 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_eventscorreleert 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_alertevalueert gebeurtenissen aan de hand van waarschuwingsregels en genereert realtime waarschuwingen met configureerbare meldingen (e-mail, Slack, PagerDuty, webhook).adaptive_alertingimplementeert 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_analysisanalyseert 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_graphbouwt een kennisgrafiek over bedreigingen op basis van gebeurtenissen, entiteiten (gebruikers, hosts, applicaties) en relaties (waartoe toegang wordt verkregen, gecompromitteerd, waarmee wordt gecommuniceerd).attack_chain_mappingwijst 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
gedragsanalyseanalyseert het gedrag van gebruikers aan de hand van vastgestelde basislijnen: typische inlogtijden, gemeenschappelijke locaties, aantal gebeurtenissen per uur en typische actietypen.ueba_analysiswordt uitgevoerdGebruikers- en entiteitsgedragsanalyse waarbij gebruikersgedrag wordt vergeleken met de peergroep (groep gebruikers met een vergelijkbaar profiel) en statistische afwijkingen worden opgespoord.detect_account_takeoverdetecteert 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_responsevoert 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_snapshotcreëert een forensische momentopname van de systeemstatus met keten van bewaring van bewijsmateriaal, inclusief cryptografische hash van alle verzamelde artefacten.incident_timelinebouwt een chronologische incidenttijdlijn op van beveiligingsgebeurtenissen, geordend op tijdstempel en gegroepeerd op aanvalsfase.autonomous_triagevoert 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_protectionmaakt zelfbeschermingsmechanismen tijdens runtime mogelijk: periodieke integriteitscontroles, detectie van foutopsporing en continue monitoring van de processtatus.anti_debugging_detectiondetecteert 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_tamperingcontroleert 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_checkcontroleert 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_checkcontroleert 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_validationvalideert het codeondertekeningscertificaat van een binair bestand tegen een opslag van vertrouwde certificaten en controleert of het certificaat niet is ingetrokken.binary_integrity_validationvalideert 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_validationvalideert 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_validationvalideert 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_detectiondetecteert 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_detectiondetecteert 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_detectiondetecteert 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_detectiondetecteert 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_runtimeimplementeert 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_surfacepast 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_engineevalueert en past beveiligingsbeleid toe tijdens runtime met configureerbare handhavingsmodus (audit, waarschuwing, afdwingen).self_healing_securitydetecteert 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_responsevoert 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_panelimplementeert een realistisch nep-beheerderspaneel met inlogroutes, dashboard, gebruikersbeheer en systeeminstellingen. Alle interacties worden geregistreerd voor analyse.fake_databasecreëert een nepdatabase met een realistisch schema (gebruiker, bestelling, betalingstabellen) en voorbeeldrecords die er legitiem uitzien maar volledig fictief zijn.fake_apiimplementeert een nep-REST API met realistische eindpunten (/api/users,/api/orders,/api/betalingen) die overtuigende maar fictieve payloads retourneren.fake_filesystemcreëert een nepbestandssysteem met een plausibele mapstructuur (/etc,/var/log,/home/user,/opt/app) en bestanden met realistische inhoud.fake_ssh_servicezet een nep-SSH-service in die verbindingen accepteert, een realistische banner weergeeft en alle authenticatiepogingen en uitgevoerde opdrachten registreert.fake_rdp_servicezet een nep-RDP-service in om externe desktopaanvallen te detecteren en te volgen.fake_kubernetes_clusterimplementeert een nep-Kubernetes-cluster-API om containergerichte aanvallers aan te trekken door te reageren op vragen naar pods, services, implementaties en geheimen.fake_s3_bucketcreëert een nep-S3-bucket met realistische objecten (documenten, configuraties, back-ups) en toegangsbeleid dat er legitiem uitziet.fake_login_pageimplementeert een overtuigende inlogpagina met aanpasbare branding om pogingen tot het indienen van inloggegevens vast te leggen.fake_debug_panelzet een nep debug/ontwikkelingspaneel in dat interne systeeminformatie lijkt vrij te geven (omgevingsvariabelen, database-instellingen, logs).
12.2. Honingfiches en bedrog
fake_secretsgenereert en beheert valse geheimen (API-sleutels, databasetokens, SSH-referenties) die waarschuwen wanneer ze buiten de geautoriseerde context worden gebruikt.honeytoken_generationgenereert traceerbare tokens van verschillende typen (URL's, API-sleutels, inloggegevens, bestanden) die waarschuwingen activeren wanneer ze worden geopend.honeycredential_detectioncontroleert de ingediende inloggegevens aan de hand van de database met bekende honeytokens en detecteert wanneer een aanvaller valse inloggegevens gebruikt.deceptive_routesregistreert misleidende routes die op legitieme API-eindpunten lijken, maar waarschuwingen activeren wanneer ze worden geopend.decoy_endpointsgenereert een lijst met lok-API-eindpunten die echte service-eindpunten nabootsen.deceptive_responsesgenereert 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_honeypotpast 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_trackingvolgt en analyseert gedragspatronen van aanvallers binnen de honeypot-sessie: uitgevoerde opdrachten, geopende bestanden, pogingen tot inloggegevens en tijd besteed aan elke service.adaptive_deceptionpast 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_defenseimplementeert 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_uploadvalideert 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_extensioncontroleert of de bestandsextensie in de lijst met toegestane extensies staat.validate_mimevalideert 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_filedetecteert 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_bombdetecteert 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_macrodetecteert 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_javascriptdetecteert JavaScript dat is ingebed in PDF-bestanden en dat kwaadaardige acties kan uitvoeren, zoals het downloaden van malware of phishing.detect_executable_payloaddetecteert uitvoerbare payloads die zijn ingebed in niet-uitvoerbare bestanden (bijvoorbeeld een PDF die een uitvoerbare PE-header van Windows bevat).detect_embedded_scriptdetecteert 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_scanscant bestanden op malware met behulp van handtekeningmatching (vergelijking met bekende malwarehandtekeningen) en YARA-regels (geavanceerde patroonmatching met complexe voorwaarden).yara_scanscant bestanden met behulp van YARA-regels met naamruimte-ondersteuning voor het organiseren van regels op categorie (malware, exploit, verdacht, enz.).heuristische_scanvoert 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_analysisberekent 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_steganographydetecteert steganografie in afbeeldingsbestanden met behulp van meerdere technieken: LSB-analyse (Least Significant Bit), toegevoegde gegevensdetectie, blok-entropie-analyse en kleurhistogramanalyse.detect_obfuscationdetecteert 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_filenamezuivert bestandsnamen door gevaarlijke tekens (/,\,..,:,*,?,",<,>,|) en padvolgordes te verwijderen.quarantine_fileverplaatst kwaadaardige bestanden naar een quarantainemap met tracking van metagegevens (quarantainereden, tijdstempel, bestandshash, uploader).sandbox_executevoert bestanden uit in een sandbox-omgeving voor gedragsanalyse, monitoring: systeemaanroepen, netwerktoegang, bestandswijziging en het maken van onderliggende processen.secure_tempfilemaakt veilige tijdelijke bestanden aan met beperkte rechten (alleen lezen/schrijven door de eigenaar) en optionele zelfverwijdering bij het sluiten.immutable_storage_checkcontroleert 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_checkverifieert 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_checkcontroleert 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_checkverifieert 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_checkcontroleert 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_dashboardgenereert 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_trailgenereert een onveranderlijk audittraject van beveiligingsgebeurtenissen, gebruikersacties en gegevenswijzigingen, inclusief: wie deed wat, wanneer, waar vandaan en wat de impact was.policy_as_codeevalueert 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_isolationcontroleert en past huurderisolatie toe in een omgeving met meerdere huurders: gegevensscheiding, netwerkisolatie, toegangscontrole tussen huurders en het voorkomen van informatielekken tussen huurders.multi_region_securityevalueert 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_dependencycreëert een beveiligingsafhankelijkheid voor FastAPI met OAuth2, JWT-validatie, snelheidsbeperking en invoerbescherming.django_security_middlewarecreëert beveiligingsmiddleware voor Django met CSP, CSRF, beveiligingsheaders en invoerbescherming.flask_security_extensioncreëert een beveiligingsextensie voor Flask met beveiligingswrappers, verzoekbescherming en invoervalidatie.celery_security_monitorcreëert een beveiligingsmonitor voor Celery-taken met argumentvalidatie, snelheidsbeperking per taak en auditlogging.sqlalchemy_query_protectionpast bescherming toe op SQLAlchemy-query's met beveiliging op rijniveau, toestemmingsfiltering en preventie van query-injectie.
15.2. TypeScript-webframeworks
expressSecurityMiddlewarecreëert beveiligingsmiddleware voor Express.js met invoerbescherming, snelheidsbeperking, CORS, CSRF en beveiligingsheaders.fastifySecurityMiddlewarecreëert beveiligingsmiddleware voor Fastify met validatiehooks, snelheidsbeperking en bescherming van de payload.nestjsSecurityModulemaakt een beveiligingsmodule voor NestJS met authenticatiewachters, validatie-interceptors en autorisatie-decorateurs.nextjsSecurityHeadersconfigureert beveiligingsheaders voor Next.js (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy).
15.3. Rand en Runtime
cloudflareEdgeProtectionconfigureert edge-bescherming op Cloudflare met WAF-regels, snelheidsbeperking, botbeheer en aangepaste beveiligingsmedewerkers.denoSecurityPlugincreëert een beveiligingsplug-in voor Deno met machtigingenbeheer (lezen, schrijven, net, env, uitvoeren) en sandboxing.bunSecurityPlugincreëert een beveiligingsplug-in voor Bun met beveiligingsoptimalisatie en toegangscontrole tot systeem-API's.browserRuntimeProtectionconfigureert browserruntimebescherming met CSP-, iframe-sandbox- en API-beperkingen.serviceWorkerSecurityconfigureert de beveiliging van Service Workers met een beperkt bereik, beperkte machtigingen en oorsprongsvalidatie.wasmSecurityRuntimecreëert beveiligingsruntime voor WebAssembly met geheugenlimieten (initieel, maximaal, gedeeld) en systeemaanroepbeperkingen.
15.4. Pijpleiding en motor
async_threat_pipelinecreëert een asynchrone pijplijn voor bedreigingsdetectie met configureerbare processors (validatie, detectie, scores, waarschuwingen) en uitvoerkanalen (logboek, statistieken, webhook).yara_realtime_enginecreëert een real-time YARA-scanengine met bestandsbewaking (directorymonitoring) en continue regelmatching.ai_threat_classifiercreëert een AI-bedreigingsclassificator met behulp van een getraind model en een betrouwbaarheidsdrempel voor geautomatiseerde beslissingen.secure_cli_runtimecreëert een veilige CLI-runtime met invoeropschoning, argumentvalidatie en uitvoeringstime-outs.python_runtime_guardcreë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 tijdniveau: ernst (debug, info, waarschuwing, fout, kritiek)module: naam van de module die het log heeft gegenereerdtraceId: OpenTelemetry-trace-ID voor correlatiecontext: 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/