{
 "aantal_actief": 45,
 "sha256": "c5960c1b5831f78c6cf57c4cd514a6c26fa0542a6de10e7426900d25457bb307",
 "checks": [
  {
   "id": "A-03",
   "domein": "A. Product, scope en inventaris",
   "scan": "SBOM in machineleesbaar formaat (SPDX of CycloneDX), automatisch bij de build gemaakt, minstens alle directe afhankelijkheden",
   "normen": "CRA bijlage I deel II (1); ISO/IEC 5962",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "A-09",
   "domein": "A. Product, scope en inventaris",
   "scan": "AI-vermelding: vastgesteld of het product AI gebruikt (scan met vaste regels en verklaring van de bouwer); het rapport toont \"AI: ja\" of \"AI: nee\", met het hoogste autonomieniveau",
   "normen": "AI Act art. 50; ISO/IEC 42001",
   "ernst": "Laag",
   "methode": "scan + verklaring",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "B-05",
   "domein": "B. Bouwen met AI",
   "scan": "Agentconfiguratie in de repo (instructiebestanden, regels, MCP-configuratie, prompt- en agentlogs) bevat geen geheimen, geen klantgegevens en geen onveilige instructies zoals \"sla tests over\"",
   "normen": "OWASP Agentic ASI01, ASI04",
   "ernst": "Hoog",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "B-06",
   "domein": "B. Bouwen met AI",
   "scan": "Geen verzonnen of verdachte pakketten: elke afhankelijkheid bestaat in het officiële register, is niet pas geregistreerd en lijkt niet op een bekende naam",
   "normen": "OWASP A03:2025",
   "ernst": "Kritiek",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-01",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Statische analyse zonder kritieke of hoge bevindingen op de vier kenmerken van ISO/IEC 5055",
   "normen": "ISO/IEC 5055",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-06",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Foutafhandeling: fouten worden niet ingeslikt, gebruikers zien geen stacktraces, gedrag bij uitzonderingen is bepaald",
   "normen": "OWASP A10:2025",
   "ernst": "Middel",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-07",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Het project bouwt uit een schone checkout met één gedocumenteerde opdracht; versies zijn vastgezet in een lockfile",
   "normen": "ISO/IEC 25010 (flexibiliteit); SLSA",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-13",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Geen blokkerende of kritieke code smells: ongebruikte variabelen en imports, magische getallen, lege catch-blokken, hardgecodeerde URL's of configuratie, verouderde (deprecated) API's. Lagere ernst staat in het rapport",
   "normen": "ISO/IEC 5055",
   "ernst": "Laag",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-19",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Geen ongebruikte afhankelijkheden: elk pakket in het manifest wordt echt gebruikt (ongebruikte pakketten zijn onnodig aanvalsoppervlak)",
   "normen": "ISO/IEC 5055; CRA bijlage I (2)(j)",
   "ernst": "Laag",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "C-20",
   "domein": "C. Codekwaliteit en onderhoudbaarheid",
   "scan": "Geen achtergebleven rommel in repository en artefact: back-upbestanden (.bak, .old, .orig), database-dumps, testdata met echte gegevens, voorbeeld- en democode, tijdelijke bestanden van AI-agents, gecommitte buildoutput",
   "normen": "ISO/IEC 27002 8.4; OWASP WSTG-CONF-04",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "D-02",
   "domein": "D. Hoe de bouwer test",
   "scan": "Tests draaien automatisch bij elke wijziging en een falende test blokkeert de release",
   "normen": "ISO/IEC 27002 8.29",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "D-06",
   "domein": "D. Hoe de bouwer test",
   "scan": "Statische beveiligingsanalyse en afhankelijkheidsscan in de pipeline, met een drempel die de release blokkeert",
   "normen": "NIST SP 800-218; ISO/IEC 27002 8.25",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "D-12",
   "domein": "D. Hoe de bouwer test",
   "scan": "Extern aanvalsoppervlak gescand: alle domeinen, subdomeinen, open poorten en publiek bereikbare diensten van de app in kaart gebracht en getest op bekende zwakheden (externe kwetsbaarheidsscan; geen pentest)",
   "normen": "CRA I (2)(j); ISO/IEC 27002 8.8",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "E-03",
   "domein": "E. Applicatiebeveiliging",
   "scan": "Sessies: veilige cookies, time-outs, afmelden maakt de sessie ongeldig",
   "normen": "OWASP ASVS 5.0",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "E-04",
   "domein": "E. Applicatiebeveiliging",
   "scan": "Geen injectie: geparametriseerde queries, output-encoding, geen SQL-, OS-, template- of XSS-lekken",
   "normen": "A05:2025",
   "ernst": "Kritiek",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "E-05",
   "domein": "E. Applicatiebeveiliging",
   "scan": "Geen geheimen in code, configuratie of git-geschiedenis; geheimen staan in een kluis of de omgeving",
   "normen": "ISO/IEC 27002 8.24; CRA I (2)(e)",
   "ernst": "Kritiek",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "E-06",
   "domein": "E. Applicatiebeveiliging",
   "scan": "Versleuteling: TLS 1.2 of hoger voor al het verkeer, gevoelige gegevens versleuteld opgeslagen, geen verouderde of zelfgemaakte algoritmen",
   "normen": "A04:2025; CRA I (2)(e)",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "E-08",
   "domein": "E. Applicatiebeveiliging",
   "scan": "Beveiligingsheaders en configuratie: CSP, HSTS, restrictieve CORS",
   "normen": "A02:2025",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "F-01",
   "domein": "F. Afhankelijkheden en supply chain",
   "scan": "Geen afhankelijkheden met bekende uitbuitbare kwetsbaarheden (bv. CISA KEV, EU-kwetsbaarhedendatabank) en geen kritieke CVE zonder mitigatie",
   "normen": "CRA I deel I (2)(a)",
   "ernst": "Kritiek",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "F-02",
   "domein": "F. Afhankelijkheden en supply chain",
   "scan": "Geen frameworks of runtimes die niet meer ondersteund worden; geen onbeheerde pakketten in kritieke functies",
   "normen": "A03:2025",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "F-03",
   "domein": "F. Afhankelijkheden en supply chain",
   "scan": "Versies vastgezet met een lockfile en integriteitscontrole (hashes)",
   "normen": "SLSA",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "F-05",
   "domein": "F. Afhankelijkheden en supply chain",
   "scan": "Alle licenties gekend en verenigbaar met het gebruik; geen onbedoelde copyleft",
   "normen": "ISO/IEC 5230",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "F-13",
   "domein": "F. Afhankelijkheden en supply chain",
   "scan": "Indirecte (transitieve) afhankelijkheden worden mee gescand; bij Plus staan ze ook in de SBOM",
   "normen": "CRA I deel II (1)",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "G-08",
   "domein": "G. Kwetsbaarheden en updates (CRA)",
   "scan": "Doorlopende bewaking van nieuwe kwetsbaarheden in afhankelijkheden via de SBOM",
   "normen": "CRA I deel II (1), (3)",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "H-02",
   "domein": "H. AI in het product",
   "scan": "Uitvoer van het model wordt behandeld als onbetrouwbare invoer: niet rechtstreeks uitgevoerd, gevalideerd en geëncodeerd",
   "normen": "LLM05",
   "ernst": "Hoog",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "H-08",
   "domein": "H. AI in het product",
   "scan": "Limieten op verbruik (tokens, aanvragen) tegen misbruik en onverwachte kosten",
   "normen": "LLM10",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "O-04",
   "domein": "O. Website, domein en juridische informatie",
   "scan": "Geen cookies of trackers vóór toestemming: de scan bezoekt de site zonder te klikken en noteert wat er wordt geplaatst",
   "normen": "ePrivacyrichtlijn art. 5(3)",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "O-05",
   "domein": "O. Website, domein en juridische informatie",
   "scan": "De site zelf is veilig: TLS, beveiligingsheaders, CMS en plugins op een ondersteunde versie, geen beheerpagina's open",
   "normen": "OWASP Top 10:2025; CRA I (2)(a)",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "O-06",
   "domein": "O. Website, domein en juridische informatie",
   "scan": "Domein en e-mail beschermd tegen misbruik: SPF, DKIM en DMARC ingesteld, geen overneembare subdomeinen, DNSSEC waar mogelijk",
   "normen": "Basis cyberhygiëne (NIS2 art. 21(2)(g))",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "P-05",
   "domein": "P. Koppelingen met andere systemen",
   "scan": "Inkomende webhooks en berichten worden gecontroleerd (handtekening, herkomst); uitgaande verzoeken alleen naar toegestane bestemmingen; antwoorden van derden worden niet blind vertrouwd",
   "normen": "OWASP API7, API10",
   "ernst": "Hoog",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "R-03",
   "domein": "R. Versiebeheer en releases",
   "scan": "Branchstrategie vastgelegd; hoofdbranch beschermd: geen directe of geforceerde push, verplichte review (B-03) en een geslaagde pipeline",
   "normen": "ISO/IEC 27002 8.32",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "R-13",
   "domein": "R. Versiebeheer en releases",
   "scan": "Repository-instellingen: geheimenscanning en afhankelijkheidswaarschuwingen aan, geen onbedoeld publieke repositories, geen langlevende persoonlijke tokens",
   "normen": "OpenSSF Scorecard",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "S-04",
   "domein": "S. Mobiele apps (module)",
   "scan": "Geen geheimen of API-sleutels in de app zelf",
   "normen": "OWASP MASVS-STORAGE, MASVS-CODE",
   "ernst": "Kritiek",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "S-06",
   "domein": "S. Mobiele apps (module)",
   "scan": "SDK's van derden (analyse, advertenties, crashrapporten) geïnventariseerd; tracking pas na toestemming",
   "normen": "ePrivacyrichtlijn art. 5(3); OWASP MASVS-PRIVACY",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-01",
   "domein": "U. Frontend (webclient)",
   "scan": "Geen geheimen, API-sleutels of interne adressen in de JavaScript-bundel",
   "normen": "OWASP ASVS 5.0; A02:2025",
   "ernst": "Kritiek",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-02",
   "domein": "U. Frontend (webclient)",
   "scan": "Source maps en debugmodus niet publiek in productie",
   "normen": "A02:2025",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-03",
   "domein": "U. Frontend (webclient)",
   "scan": "Sessietokens en gevoelige gegevens niet in localStorage of sessionStorage; cookies met HttpOnly, Secure en SameSite",
   "normen": "OWASP ASVS 5.0",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-04",
   "domein": "U. Frontend (webclient)",
   "scan": "Bescherming tegen CSRF en clickjacking (frame-ancestors)",
   "normen": "OWASP ASVS 5.0",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-06",
   "domein": "U. Frontend (webclient)",
   "scan": "Scripts van derden (analyse, chat, advertenties) geïnventariseerd, met toestemming waar nodig en beperkt via CSP; op betaalpagina's goedgekeurd en bewaakt",
   "normen": "ePrivacyrichtlijn art. 5(3); A08:2025; PCI DSS 4.0 req. 6.4.3",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "U-07",
   "domein": "U. Frontend (webclient)",
   "scan": "Geen gevaarlijke DOM-functies met gebruikersinvoer (innerHTML, eval); berichten tussen vensters (postMessage) met controle van de herkomst",
   "normen": "A05:2025",
   "ernst": "Hoog",
   "methode": "scan + analist",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "W-03",
   "domein": "W. Backend en opslag",
   "scan": "Bestandsopslag (bv. S3, Blob) privé, toegang via kortlevende ondertekende links; uploads gecontroleerd en buiten de webroot bewaard",
   "normen": "A01:2025; OWASP ASVS 5.0",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "W-06",
   "domein": "W. Backend en opslag",
   "scan": "Limieten op middelen: time-outs, maximale grootte van verzoeken en uploads, paginering, bescherming tegen trage queries",
   "normen": "OWASP API4; CRA I (2)(h)",
   "ernst": "Middel",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "Y-01",
   "domein": "Y. Communicatieprotocollen",
   "scan": "TLS juist ingesteld: alleen TLS 1.2 en 1.3, sterke cipher suites met forward secrecy, geldige certificaten met volledige keten, HSTS",
   "normen": "NIST SP 800-52 Rev. 2; BSI TR-02102-2",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "Y-02",
   "domein": "Y. Communicatieprotocollen",
   "scan": "Geen onversleutelde protocollen voor gegevens of beheer: geen HTTP behalve doorverwijzing, geen FTP, Telnet, LDAP of MQTT zonder TLS, geen SNMP v1/v2",
   "normen": "CRA I (2)(e); ISO/IEC 27002 8.21",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  },
  {
   "id": "Y-04",
   "domein": "Y. Communicatieprotocollen",
   "scan": "Verouderde protocolversies uit: SSH alleen versie 2 met sterke algoritmen en sleutels, SMBv1 uit, RDP niet publiek bereikbaar",
   "normen": "CIS Benchmarks",
   "ernst": "Hoog",
   "methode": "scan",
   "sinds": "0.1",
   "versie": 1,
   "status": "actief"
  }
 ]
}