Beveiliging
Je legt je processen, je risico's en je beheersmaatregelen bij ons vast. Dan mag je weten hoe wij zelf met beveiliging omgaan. De meeste leveranciers tonen een logo. Wij laten ons huiswerk zien — inclusief wat er nog open staat.
Getoetst aan OWASP ASVS 5.0 Level 2
ASVS is de applicatiebeveiligingsstandaard van OWASP. Level 2 is het niveau dat bedoeld is voor applicaties die gevoelige gegevens verwerken. We hebben alle 253 eisen van Level 1 en 2 één voor één langsgelopen en per eis vastgelegd wat de stand is — en waarom.
Dit is een zelfbeoordeling, geen certificering
Er is geen externe auditor overheen gegaan. Daarom noemen we onszelf niet ASVS-compliant, -gecertificeerd of -ready: dat zou suggereren dat iemand anders het heeft getoetst. Wat je hier ziet is onze eigen beoordeling, per regel onderbouwd, met de open punten er gewoon bij.
De stand
222 van de 253 zijn afgerond of onderbouwd niet van toepassing. De overige 31 staan met naam en toenaam in ons register — inclusief de reden.
Deze cijfers worden uit het register afgeleid en bij elke release gecontroleerd. Ze kunnen dus niet stilletjes verouderen terwijl het register verandert.
Wat dat concreet betekent
Een norm is abstract. Dit is wat er in de praktijk in zit:
Scheiding tussen organisaties
Alle proces-, risico- en masterdata-queries lopen langs een tenant-grens die de organisatie afdwingt en dichtklapt als de context ontbreekt — een vergeten grens levert een foutmelding op, nooit stilzwijgend andermans data. Een gebruiker van de ene organisatie kan de gegevens van een andere niet opvragen, ook niet met een geraden id.
Rollen en rechten op de server
Wie wat mag, wordt op de server bepaald en niet in de browser. Een lezer kan niets aan de inhoud wijzigen, ook niet door een knop terug te toveren.
Tweestapsverificatie
Beschikbaar via een authenticator-app, met backupcodes. We bieden het aan en verplichten het niet; die afweging staat onderbouwd in het register.
Gelekte wachtwoorden worden geweigerd
Bij het instellen van een wachtwoord toetsen we tegen de database van Have I Been Pwned. Komt het daarin voor, dan kan het niet.
Begrensde inlogpaden
De paden waar inloggegevens langskomen zijn begrensd — en die begrenzing staat in de database, niet in het geheugen van één proces, zodat een herstart of een tweede container hem niet reset.
Strikte Content-Security-Policy
Met een nonce per pagina, zodat een geïnjecteerd script niet tot uitvoering komt.
Sessies
De sessiecookie is HttpOnly, Secure en SameSite. Er geldt een absolute maximumduur, en gevoelige handelingen vragen opnieuw om je wachtwoord.
Audit-trail en security-logging
Wijzigingen aan je processen, rollen, risico's en beheersmaatregelen worden vastgelegd met wie, wat en wanneer. Een geweigerde autorisatie wordt apart gelogd — een mislukte login is ruis, maar iemand die mét een geldige sessie iets probeert wat niet mag, is een signaal.
Toeleveringsketen
We houden een SBOM bij van de afhankelijkheden die we in productie draaien, en de pipeline scant elke wijziging automatisch op per ongeluk gecommitte secrets.
Per hoofdstuk
De 17 hoofdstukken van de norm, met de stand per hoofdstuk. De hoofdstuktitels zijn de namen uit de norm zelf en laten we onvertaald — zo zijn ze terug te vinden.
| Hoofdstuk | Eisen | Voldaan | N.v.t. | Deels | Open |
|---|---|---|---|---|---|
| V1 Encoding and Sanitization | 27 | 12 | 15 | 0 | 0 |
| V2 Validation and Business Logic | 11 | 7 | 1 | 3 | 0 |
| V3 Web Frontend Security | 19 | 18 | 0 | 0 | 1 |
| V4 API and Web Service | 10 | 2 | 6 | 2 | 0 |
| V5 File Handling | 9 | 4 | 4 | 1 | 0 |
| V6 Authentication | 35 | 26 | 6 | 2 | 1 |
| V7 Session Management | 18 | 15 | 3 | 0 | 0 |
| V8 Authorization | 7 | 7 | 0 | 0 | 0 |
| V9 Self-contained Tokens | 7 | 0 | 7 | 0 | 0 |
| V10 OAuth and OIDC | 29 | 0 | 29 | 0 | 0 |
| V11 Cryptography | 14 | 12 | 1 | 1 | 0 |
| V12 Secure Communication | 9 | 3 | 1 | 2 | 3 |
| V13 Configuration | 13 | 6 | 0 | 4 | 3 |
| V14 Data Protection | 9 | 7 | 0 | 2 | 0 |
| V15 Secure Coding and Architecture | 13 | 10 | 0 | 3 | 0 |
| V16 Security Logging and Error Handling | 16 | 13 | 0 | 1 | 2 |
| V17 WebRTC | 7 | 0 | 7 | 0 | 0 |
Wat er open staat
We publiceren ook wat niet af is — anders is transparantie een marketingwoord. Op dit moment staan er 10 eisen open en 21 deels. Het zwaartepunt ligt bij infrastructuur-eisen die we op basis van ons dreigingsmodel bewust hebben geaccepteerd, aangevuld met een paar beleidskeuzes die nog een besluit vragen, één afwijking die in een externe library zit, en een restant aan hardening dat we zelf nog afmaken. Elk punt staat met reden in het register — inclusief de punten die we als eerste willen sluiten.
Waarom niet gewoon alles afvinken?
Omdat niet elke eis in deze applicatie even zwaar weegt. We hebben per eis een bewuste afweging gemaakt en die opgeschreven — inclusief de eisen waaraan we (nog) niet voldoen en waarom we dat risico aanvaardbaar vinden. Dat maakt ons op die punten niet ASVS-conform; het maakt de keuze navolgbaar. Een stilzwijgend gat zou dat niet zijn.
En NIS2?
Valt je organisatie onder NIS2, dan moet je aantoonbaar grip hebben op je processen, je risico's en je keten. Precies dat vastleggen is waar Proceshuis voor gebouwd is: processen, rollen via RASCI, risico's en beheersmaatregelen in één systeem, met versiehistorie en een audit-trail over die inhoud die laat zien wie wat wanneer wijzigde.
Wat we hier niet beweren
Proceshuis maakt je organisatie niet NIS2-conform, en wij noemen onszelf niet NIS2-compliant. NIS2 is een organisatorische richtlijn: risicomanagement, incidentmelding, ketenverantwoordelijkheid, bestuurdersaansprakelijkheid. Software dekt daar één deel van. Wij ondersteunen je verplichtingen; we nemen ze niet over.
Het volledige register
Alle 253 eisen met de onderbouwing per regel, inclusief de open punten en waarom ze open staan. We delen het op aanvraag: het bevat implementatiedetails die niet op een publieke pagina horen.
Vraag het register op