Open source

Je hoeft ons niet te vertrouwen. Je kunt het nakijken.

De scanner is open source onder de Europese licentie EUPL-1.2. Iedereen kan lezen wat hij doet, hem zelf draaien en elke dagversie zelf controleren. De lijst van checks is open onder CC BY 4.0.

Wat de scanner doet, stap voor stap

  1. Hij haalt de dagversie op. Eén bestand, checkmijn-JJJJ-MM-DD.pyz, met de scanner, de regels en de lijst van bekende lekken van die dag. Er wordt niets geïnstalleerd.
  2. Hij controleert dat het bestand echt van ons komt. Het controlegetal (SHA-256) moet kloppen met het manifest, en het manifest is ondertekend met onze sleutel (Ed25519).
  3. Hij scant zonder netwerk. Met --offline maakt de scanner geen enkele verbinding. Hij leest de bestanden van je project en de git-geschiedenis, en verder niets.
  4. Hij schrijft het rapport lokaal. In je eigen omgeving: rapport.html, rapport.json en een SBOM. Geheimen worden altijd gemaskeerd.
  5. Alleen als jij het wilt, gaat er iets naar buiten. Zie hieronder precies wat.

Wat er wel en niet naar buiten gaat

WatGaat naar CheckMijn.AI?Toelichting
Je broncodeNooitDe scanner draait bij jou: op je machine of in je eigen GitHub.
Geheimen, wachtwoorden, sleutelsNooitOok in het rapport zijn ze gemaskeerd.
Bewijsbestand (bewijs.json)Alleen na jouw "ja"Per check alleen de uitkomst en het aantal bevindingen. Geen code, geen paden, geen bestandsnamen. Nodig voor een scorepagina en badge.
Opgemaakt rapportVersleuteld, als je de rapportlink aanzetVersleuteld met AES-256-GCM vóór het vertrekt. De sleutel zit alleen in jouw link, na het #-teken, en een browser stuurt dat deel nooit naar een server. Wij kunnen het niet lezen. Zonder account wissen we het na 90 dagen.
Je IP-adresJa, als je iets inlevertAlleen om misbruik te beperken (maximaal aantal aanvragen per uur), niet bewaard in de rapporten.

Controleer de dagversie zelf

Elke nacht bouwt GitHub een nieuwe dagversie uit de broncode, in een openbare workflow. Het manifest vermeldt uit welke commit ze gebouwd is.

Zelf nakijken (Linux of macOS)
# 1. Het manifest en de scanner van vandaag ophalen
curl -sO https://checkmijn.ai/latest.json
curl -sO https://checkmijn.ai/public-key.pem
curl -sO "$(python3 -c 'import json;print(json.load(open("latest.json"))["url"])')"

# 2. Het controlegetal vergelijken met het manifest
sha256sum checkmijn-*.pyz
grep sha256 latest.json

# 3. Kijken wat erin zit: het is een gewoon zip-bestand
unzip -l checkmijn-*.pyz | head -40

De handtekening controleren kan met het script action/scan_ci.py, dat de GitHub Action ook gebruikt.

Waar de code van elke check staat

Bij elke check die de scanner automatisch uitvoert, linken we naar de regel code die het doet. Een paar voorbeelden:

Waarom open source

Geen zwarte doos

Een keurmerk dat niemand kan nakijken, verdient geen vertrouwen. Bij ons kan iedereen zien hoe de score tot stand komt.

Iedereen meet hetzelfde

Een bouwer, een koper en een keurder gebruiken dezelfde meetlat. Een uitslag is daardoor vergelijkbaar en reproduceerbaar.

Beter door meer ogen

Vind je een fout of een gemiste check? Meld het op GitHub. Elke wijziging van de meetlat staat publiek in de changelog.

Waar we wel geld voor vragen

De scanner is gratis en blijft gratis. We verdienen aan het uitvoeren van scans en keuringen: een partner die de scan voor je draait en uitlegt, een erkende keurder die meekijkt, een pentester die aanvalt. Bekijk wat je per niveau krijgt.

Licenties

Deze website en de API draaien op onze eigen server bij Hetzner, Helsinki (Finland, EU).