Naar hoofdinhoud
Beveiliging

De data van uw klanten, op elke laag bewaakt.

Waar de data staat, wie erbij kan, en hoe elk rapport van elke agent wordt bewezen voordat het wordt geaccepteerd. Geschreven voor de technisch verantwoordelijke die de beveiligingsvragenlijst van de klant moet invullen.

Laatst gecontroleerd op 5 oktober 2026

01

Gehost in Nederland

Klantdata wordt opgeslagen en verwerkt op de eigen servers van Secuno in Nederland, en verlaat de EU niet.

02

Nooit externe AI

De AI-engine draait op dezelfde servers. Inventarissen, CVE-data en risicogegevens gaan nooit naar OpenAI, Anthropic, Google of een andere AI-aanbieder.

03

Elke klant afgeschermd

De scheiding tussen tenants wordt afgedwongen door de database zelf, onder de controles van de applicatie.

04

Elke handeling vastgelegd

70 soorten gelogde acties, met wie, wanneer, vanaf waar, en de oude en nieuwe waarde. Logs zijn niet te verwijderen via de interface.

Harde grenzen

Wat het platform niet doet

Sommige beveiliging is geen instelling. Het zijn paden die niet bestaan.

  • NOOIT

    Een ongetekende regelset laden

    Detectieregels zijn ondertekend met Ed25519 en worden gecontroleerd voordat ze laden. Een build zonder publieke sleutel accepteert helemaal geen regelset. Een ongetekend pad zou een kanaal zijn om code uit te voeren op elke agent, dus dat is er niet.

  • NOOIT

    Een opdracht buiten de toegestane lijst uitvoeren

    De server toetst elke responsopdracht aan tien toegestane typen voordat die in de wachtrij komt. Een kill draagt het image en de starttijd die de detectie zag, dus raakt nooit een hergebruikt proces-ID. Beschermde services zijn niet te stoppen.

  • NOOIT

    Een geïsoleerd apparaat laten stranden

    Netwerkisolatie wordt in één transactie geplaatst, samen met de uitzondering voor de agent zelf, en vervalt lokaal tenzij een heartbeat haar vernieuwt. Een onbereikbaar apparaat komt terug op het netwerk in plaats van afgesneden te blijven.

  • NOOIT

    Ondersteuning ongezien laten handelen

    Support kan maximaal dertig minuten meekijken in de sessie van een gebruiker, onder een banner die niet weg te klikken is. Elke handeling wordt gelogd als de beheerder die namens de gebruiker handelt.

  • NOOIT

    Een IP-adres vertrouwen

    Het publieke adres van een apparaat wordt alleen gebruikt voor weergave, locatie en auditcontext, nooit voor een autorisatiebesluit, omdat de client de headers aanlevert waar het uit komt.

  • NOOIT

    Een token in een URL zetten

    Er staat nooit een sessie- of aanmeldtoken in een URL, er is geen zelfregistratie, en inschrijftokens worden één keer getoond en alleen als hash opgeslagen.

Van agent naar platform

Eén rapport, op vijf manieren bewezen

Elk verzoek van een endpoint-agent is ondertekend door dat apparaat en wordt gecontroleerd voordat er één veld wordt gelezen. Dit gebeurt er met één inventarisrapport.

agent → app.secuno.nl
POST/api/agent/inventory
X-Secuno-Client-ID7f3a…c21e
X-Secuno-Device-ID19be…04d8
X-Secuno-Timestamp2026-10-05T09:41:07Z
X-Secuno-Nonce9f2c4e…a1
X-Secuno-Body-Hash4b0d91…e7
X-Secuno-SignatureQm9vdF…Zz==
{ }software, services, patches, controls
TLS1.3
…
De headernamen zijn echt. De waarden zijn ingekort.
  1. Bij de inschrijving maakt de agent een eigen Ed25519-sleutelpaar. De privésleutel verlaat het apparaat nooit en is beschermd met Windows DPAPI onder het serviceaccount van de agent, zodat een ander lokaal account hem niet kan ontsleutelen. Na 30 dagen wordt de sleutel vervangen, waarbij de oude sleutel de nieuwe ondertekent.

  2. De agent berekent een SHA3-256-hash over de volledige inhoud van het verzoek. Verandert er één byte, dan klopt de hash niet meer.

  3. Methode, pad, klant, apparaat, tijdstempel, een willekeurige nonce en de hash worden samen ondertekend met de privésleutel van het apparaat. Geen veld is te verplaatsen of te verwisselen zonder dat de handtekening breekt.

  4. De agent verbindt via TLS 1.3, tenzij een beheerder 1.2 uitdrukkelijk toestaat. Omdat het rapport zelf is ondertekend, kan een netwerk ertussen het niet ongemerkt wijzigen, ook niet waar TLS vóór onze servers wordt afgesloten.

  5. Het platform controleert de handtekening met de publieke sleutel van dat apparaat, berekent de hash opnieuw, weigert een tijdstempel dat meer dan vijf minuten afwijkt en weigert een nonce die al eerder is gezien. Pas dan wordt het rapport verwerkt, afgebakend tot de eigen klant van het apparaat.

Tenantisolatie

Drie sloten, niet één

Een MSP-platform houdt veel klanten naast elkaar. Eén vergeten filter mag nooit genoeg zijn om de data van de ene klant aan de andere te tonen, dus de scheiding wordt drie keer afgedwongen.

  1. 01 · Applicatie

    Gecontroleerd op elke route

    Bij elk verzoek wordt gecontroleerd bij welke tenant het hoort, voordat er data wordt aangeraakt.

  2. 02 · Database

    Row-level security eronder

    De applicatie verbindt met een rol zonder bijzondere rechten. Een query die zijn tenantfilter vergeet, levert niets op, en er kan geen rij worden geschreven voor een tenant waar het verzoek niets mee te maken heeft.

  3. 03 · Build

    Geen nieuwe tabel zonder policy

    Een controle in de build faalt als er een tabel met klantdata bijkomt zonder isolatiepolicy, zodat de garantie niet slijt naarmate het product groeit.

Bewezen voordat het aanging

1,045vergelijkingen
1,009identiek

Vóór de afdwinging draaide het platform twee keer op dezelfde data, een keer zoals voorheen en een keer afgedwongen, als vijf soorten gebruiker: een klantgebruiker, een tweede klant, een partner met een subklant, een beheerder die aan één klant is toegewezen en een platformbeheerder. Elk verschil was bedoeld. In productie afgedwongen sinds september 2026, na een schaduwperiode zonder meetbare vertraging.

GET /api/… (another client)403 Forbidden
GET /api/… (another client)404 Not Found
Hetzelfde verzoek om een apparaat van een andere klant, vóór en na de afdwinging in de database.

Niet gevonden, in plaats van verboden

Een verzoek om een record van een andere tenant krijgt 'niet gevonden', zodat het platform niet eens bevestigt dat het record bestaat.

Een agent blijft binnen de eigen klant

Een verzoek van een agent is afgebakend tot de eigen klant en de partner die daar eigenaar van is, en niets breder.

Accounts en toegang

Wie erin komt, en hoe

Toegang tot de console volgt dezelfde regels voor een technicus van de MSP als voor de eigen medewerkers van de klant.

Aanmelden
Single sign-on met Microsoft Entra ID of Google, per klant ingesteld: welke providers, welke tenant of welk Workspace-domein, en of er een wachtwoord blijft. SSO verplicht stellen is een besluit dat de eigen super user van een klant niet voor de eigen organisatie kan nemen.
Tweede factor
Authenticator-app (TOTP), FIDO2-sleutels en passkeys zoals Windows Hello en Touch ID, tot tien benoemde sleutels per gebruiker. Verplicht te stellen per rol, per klant en per gebruiker.
Sessies
Toegangstokens verlopen na 15 minuten, verversingstokens na 8 uur. Overal afmelden beëindigt bij het volgende verzoek elke sessie van een gebruiker.
Brute force
Limieten die over alle backend-instanties worden gedeeld, en standaard een vergrendeling na 5 mislukte pogingen voor 15 minuten. Een vergrendeld onbekend adres ziet er hetzelfde uit als een bestaand adres, dus de vergrendeling verraadt niet welke accounts bestaan.
Rollen
Zeven rollen van Global Admin tot Client User, gecontroleerd door de applicatie en door de database eronder.
Nieuwe gebruikers
Alleen op uitnodiging. Uitnodigingen verlopen na 7 dagen en zijn in te trekken.
app.secuno.nl / risks / score
Secuno scorepaneel: een risicoscore uitgesplitst naar CVSS-score, maatregelen op dit pad en bereikbaarheid
Private AI

AI die het gebouw nooit verlaat

SECAI, de AI-engine van het platform, draait op de eigen servers van Secuno in Nederland. Het legt risico's uit en stelt oplossingen voor, maar beslist niet zelfstandig: de gemeten, deterministische score komt eerst, en de AI-laag kan die alleen binnen een vaste grens bijstellen.

  • 01Geen inventaris-, CVE- of risicodata gaat naar een externe AI-aanbieder
  • 02Elke invoer achter een score is zichtbaar in de console
  • 03Een maatregel telt alleen tegen het aanvalspad dat hij echt blokkeert
  • 04De AI-bijstelling is begrensd, dus kan een score kleuren en nooit omdraaien
Controleer het zelf

U hoeft ons niet op ons woord te geloven

Dit zijn de beveiligingsheaders die de platform-API bij elke response meestuurt. Voer het commando uit en vergelijk.

$ curl -sI https://app.secuno.nl/api/health
HTTP/2 200
strict-transport-security: max-age=15552000; includeSubDomains; preload
content-security-policy: default-src 'none'; script-src 'self'; … frame-ancestors 'none'
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
cross-origin-embedder-policy: require-corp
permissions-policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), …
referrer-policy: same-origin
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
Live response van app.secuno.nl, oktober 2026. De beleidswaarden zijn ingekort.

Ons beveiligingscontact staat in security.txt (RFC 9116).

Gedeelde verantwoordelijkheid

Wie waarvoor zorgt

Het platform dwingt zijn grenzen zelf af. Sommige beveiliging werkt pas als de mensen die het gebruiken haar aanzetten.

Secuno

  • Houdt klantdata op de eigen servers in Nederland
  • Ondertekent, controleert en bakent elk agentverzoek af
  • Dwingt tenantisolatie af in de database
  • Logt elke handeling en houdt het log buiten bereik van de interface
  • Beantwoordt kwetsbaarheidsmeldingen aan [email protected]

U, de MSP

  • Stel tweefactor verplicht voor elke rol, en SSO waar de klant het heeft
  • Geef technici de smalste rol die het werk doet
  • Verwijder vertrekkers op de dag dat ze vertrekken
  • Trek inschrijftokens in die u niet meer nodig heeft
  • Bekijk het auditlog en handel naar wat het laat zien

Uw klant

  • Meldt nieuwe medewerkers en vertrekkers aan u
  • Gebruikt eigen accounts, nooit gedeelde
  • Meldt iets verdachts direct bij u
Leveranciersvragenlijst

De antwoorden waar klanten om vragen

NIS2 laat uw klanten hun leveranciers controleren, en daar hoort het platform bij waarop u hun beveiliging draait. Dit zijn de korte antwoorden; vraag ons gerust naar de details achter elk ervan.

Waar wordt data opgeslagen en verwerkt?

Op de eigen servers van Secuno in Nederland. Klantdata verlaat de EU niet.

Wordt data gedeeld met AI-aanbieders?

Nee. De AI-engine draait op dezelfde servers in Nederland.

Hoe is data beschermd tijdens transport?

HTTPS met HSTS preload voor de console; agents gebruiken standaard TLS 1.3 en ondertekenen elk verzoek met een sleutel per apparaat.

Hoe zijn tenants gescheiden?

Door controles in de applicatie en door row-level security in de database, in productie afgedwongen sinds september 2026.

Welke aanmeldopties zijn er?

SSO met Entra ID of Google, TOTP, FIDO2-sleutels en passkeys, verplicht te stellen per rol, klant en gebruiker.

Wordt activiteit gelogd?

Ja, 70 soorten acties met gebruiker, tijd, bron en de oude en nieuwe waarde. Logs zijn niet te verwijderen via de interface.

Welke subverwerkers zijn er betrokken?

Vraag ons om de actuele lijst, met wat elke partij doet en waar. Vraag de lijst op

Hoe lang wordt data bewaard, en hoe wordt die verwijderd?

Per datasoort beschreven in de referentie voor dataretentie. Dataretentie

Hoe meld ik een kwetsbaarheid?

Mail naar [email protected], in het Nederlands of Engels. Het contact staat ook in security.txt. [email protected]

Waar zie ik de status van het platform?

Op de live statuspagina. Systeemstatus

Volledige referentie

Elke maatregel, voor de beoordelaar

De volledige lijst achter de secties hierboven, voor wie beveiligingspagina's regel voor regel leest.

Endpoint-agent8
Ed25519-identiteit per apparaat
Aangemaakt bij de inschrijving, beschermd met Windows DPAPI onder het serviceaccount van de agent zodat een ander lokaal account hem niet kan ontsleutelen, en na 30 dagen vervangen waarbij de oude sleutel de nieuwe ondertekent.
Ondertekende verzoeken
Elk verzoek is met Ed25519 ondertekend over methode, pad, klant, apparaat, tijdstempel, nonce en een SHA3-256-hash van de inhoud. Invoer die een extra regel probeert binnen te smokkelen, wordt geweigerd.
Bescherming tegen replay
Tijdstempels moeten binnen vijf minuten vallen, en elke nonce is eenmalig.
Standaard TLS 1.3
De agent vereist TLS 1.3 tenzij een beheerder 1.2 uitdrukkelijk toestaat, en slaat certificaatcontroles niet over.
Offline buffer
Als het platform onbereikbaar is, worden rapporten weggeschreven naar een buffer op schijf van maximaal 64 MiB en opnieuw verstuurd zodra de verbinding terug is, zodat een netwerkstoring geen gaten achterlaat.
Eenmalige inschrijftokens
Eén keer getoond in de console, alleen als hash opgeslagen, met een instelbare vervaldatum en een maximaal aantal keer gebruik.
Ondertekende regelsets, faalt naar weigeren
Lokale detectieregels worden gecontroleerd voordat ze laden; zonder geldige handtekening laadt er niets.
Toegestane opdrachten
Tien responstypen: een proces of procesboom beëindigen, netwerk isoleren en vrijgeven, een bestand in quarantaine plaatsen, een service stoppen of uitschakelen, herstarten of een herstart annuleren, en direct synchroniseren.
Console en accounts6
Sessieduur
Toegangstokens van 15 minuten en verversingstokens van 8 uur. Het ondertekengeheim wordt bij het opstarten gecontroleerd; met een zwak geheim start het platform niet.
Single sign-on
Entra ID en Google per klant. Elke geweigerde aanmelding wordt met reden gelogd.
Tweefactor
TOTP, FIDO2-sleutels en passkeys. Elke challenge is eenmalig, dus een onderschept antwoord is niet opnieuw te gebruiken.
Rate limiting
Gedeelde tellers over alle backend-instanties. Tweefactorpogingen zijn beperkt per tijdelijk token, waarna de gebruiker opnieuw moet aanmelden. Terugvallen op lokale limieten wordt gelogd.
Vergrendeling
Standaard 5 mislukte pogingen en 15 minuten, beide instelbaar, en niet te onderscheiden bij onbekende adressen.
Ondersteuning
Maximaal dertig minuten, onder een vaste banner, gelogd als de beheerder die namens de gebruiker handelt.
Webapplicatie5
Content Security Policy
Een strikt beleid op elke response dat inline scripts, onbekende bronnen en inbedding blokkeert.
HSTS met preload
Browsers gebruiken uitsluitend HTTPS, ook voor alle subdomeinen.
Cross-origin-isolatie
COOP, CORP en COEP op API-responses, zodat een kwaadwillende pagina geen referentie naar een Secuno-venster kan krijgen of de resources in een andere context kan trekken.
Inbedding, referrer en rechten
X-Frame-Options, een same-origin referrerbeleid en een Permissions-Policy die camera, microfoon, locatie, betalingen en USB uitschakelt.
Geparametriseerde queries
Alle databasetoegang loopt via geparametriseerde SQL. Er bereikt geen samengestelde tekst de database.
Data en infrastructuur5
Hosting
De eigen servers van Secuno in Nederland. Klantdata verlaat de EU niet.
Private AI
SECAI draait op dezelfde servers. Er gaat geen data naar een externe AI-aanbieder.
Tenantisolatie
Controles in de applicatie plus Postgres row-level security, afgedwongen sinds september 2026 en bewaakt door een controle in de build.
Audittrail
70 soorten acties met gebruiker, IP, user agent, locatie, entiteit, en de oude en nieuwe waarde. Niet te verwijderen via de interface.
IP-adressen alleen als context
Op één plek bepaald, gebruikt voor weergave en audit, nooit voor autorisatie. Privéadressen worden geweigerd in plaats van opgeslagen.
Kwetsbaarheden melden

Iets gevonden? Meld het ons eerst.

Meld een kwetsbaarheid in secuno.nl of het Secuno-platform vertrouwelijk aan [email protected], in het Nederlands of Engels. Beschrijf wat u vond en hoe het te reproduceren is. We bevestigen de ontvangst, houden u op de hoogte terwijl we het oplossen, en vragen u details pas te publiceren als er een oplossing is.

Beveiligingsreview

Antwoorden nodig voor de vragenlijst van een klant?

Stuur hem naar ons. We beantwoorden beveiligingsreviews en due-diligencevragen, en lopen elke laag met u door.