Wenche sender årsregnskap, skattemelding og aksjonærregisteroppgave til norske myndigheter. Den håndterer derfor ting som må være i orden: private RSA-nøkler, Maskinporten- og ID-porten-tokener, organisasjonsnummer, fødselsnummer og regnskapstall. Finner du en sårbarhet, vil jeg gjerne høre om det.
Wenche er et soloprosjekt og følger semantisk versjonering. Kun den nyeste utgitte versjonen støttes med sikkerhetsfikser. Fikser kommer som en ny patch-versjon på nyeste minor, og backportes ikke til eldre versjoner.
Merket over hentes fra PyPI og viser alltid gjeldende støttede versjon. Er du på noe eldre, gjelder ikke policyen for din versjon før du har oppgradert. Alle utgivelser med endringsbeskrivelse ligger under Releases og i CHANGELOG.md.
Den hostede tjenesten på wenche.cloud kjører alltid nyeste versjon, og oppdateres av meg. Kjører du self-hosted, er det ditt ansvar å oppgradere:
pip install --upgrade wencheIkke opprett et vanlig issue for sikkerhetsfeil. Issues er offentlige, og gir alle andre oppskriften før det finnes en fiks.
Bruk i stedet GitHubs private rapportering:
Får du ikke det til å fungere, send e-post til hello@olefredrik.com med «Wenche sikkerhet» i emnefeltet.
- Hvilken versjon eller commit du testet mot
- Om det gjelder self-hosted eller hostet (wenche.cloud eller demo.wenche.cloud)
- Hvilket miljø (
WENCHE_ENV=testmot tt02, ellerprod) - Stegene som reproduserer feilen, og hva du faktisk oppnådde med den
- Gjerne et forslag til fiks, hvis du har et
Send aldri ekte hemmeligheter eller personopplysninger, verken egne eller andres:
- Private nøkler (
*.pem), tokener eller sesjonscookies. Beskriv at de lekket, ikke lim dem inn - Fødselsnumre, navn eller andre personopplysninger. Anonymiser eksemplene
config.yamleller SAF-T-filer med reelle regnskapstall. Bruk oppdiktede tall
Har du funnet en hemmelighet som ligger i git-historikken eller i et bygget artefakt, si det privat, så roterer jeg den før noe publiseres.
Wenche er et soloprosjekt jeg driver på fritiden, gratis. Jeg setter derfor ingen svarfrister jeg ikke kan garantere at jeg holder. Det jeg lover er dette:
- Jeg leser og svarer på alle rapporter. Du blir ikke ignorert, og en rapport i god tro blir aldri møtt med juridiske trusler. Vanligvis svarer jeg innen noen dager, men det kan gå lenger i travle perioder
- Blir rapporten akseptert, fikser jeg den og slipper en patch-versjon til PyPI, deployer hostet, og publiserer en GitHub Security Advisory med kreditering til deg (si fra hvis du vil være anonym). Fiksen beskrives også i CHANGELOG.md. Alvorlige funn i den hostede tjenesten prioriteres foran alt annet
- Blir rapporten avvist, får du en begrunnelse. Er vi uenige, si det gjerne, jeg vurderer på nytt
- Hold funnet privat mens jeg jobber med det, gjerne til fiksen er ute. Hører du ingenting fra meg på 30 dager, står du fritt til å offentliggjøre. Blir jeg forsinket, sier jeg det til deg i stedet for å bli stille
- Det finnes ingen bug bounty. Jeg kan ikke betale for funn. Kreditering og en oppriktig takk er det jeg har å gi
Kode i dette repoet, og tjenestene jeg selv drifter:
- Python-kjernen og CLI-en (
wenche/): autentisering, token- og nøkkelhåndtering, XML-bygging, innsending - Det self-hostede webgrensesnittet (
wenche/web/) og den lokale serverenwenchestarter - Den hostede tjenesten (
hosted/), inkludertapp.wenche.cloudogdemo.wenche.cloud - Det delte designsystemet (
packages/ui/)
Typiske funn jeg vil vite om: lekkasje av nøkler eller tokener (til disk, logg, nettverk eller nettleser), svakheter i sesjonsbinding eller cookie-signering, forfalskning av invitasjonstokener, at én bruker kan nå en annen brukers økt eller sende inn for et selskap de ikke representerer, injeksjon, XSS, path traversal, og avhengigheter med kjente sårbarheter som faktisk er utnyttbare i Wenche.
- Myndighetenes egne API-er og tjenester. Altinn, Skatteetaten, Brønnøysundregistrene, ID-porten og Maskinporten er ikke mine systemer, Wenche er bare en klient mot dem. Funn der meldes til servicedesk@altinn.no eller Skatteetatens brukerstøtteportal
- Manglende herding uten demonstrert effekt, for eksempel savnede sikkerhetsheadere, TLS-karakterer eller rå skannerrapporter, når det ikke følger et konkret angrep med det
- Tjenestenekt og lastgenerering. Ikke kjør last- eller stresstesting mot
app.wenche.cloudellerdemo.wenche.cloud, og aldri mot myndighets-API-er, verken tt02 eller prod. Dette er én liten maskin per app, og misbruk av testmiljøene rammer alle som bruker dem - Sosial manipulering, phishing og fysisk tilgang
- Din egen maskin og dine egne nøkler i self-hosted bruk. At noen med tilgang til din
brukerkonto kan lese
~/.wenche/token.jsoneller dinconfig.yamler forventet, det er derfor fila har rettigheter begrenset til din bruker
Test mot din egen installasjon, med WENCHE_ENV=test slik at du treffer Skatteetatens testmiljø
tt02 og aldri ekte myndigheter. Bruk aldri andres fødselsnummer eller organisasjonsnummer.
Tester du på demo.wenche.cloud, hold deg til demo-selskapet og din egen økt, og ikke prøv å nå
andre brukeres data. Stopp og rapporter i stedet for å grave videre om du kommer over noe som ser
ut som en annen brukers opplysninger.
- Wenche sender data kun til Maskinporten, ID-porten, Altinn, Skatteetaten og Brønnøysundregistrene
.env,config.yamlog*.pemer gitignored, og skal aldri i git- Den hostede tjenesten er session-only: opplysninger behandles i økten og lagres ikke i noen database. Fødselsnummer brukes kun til innlogging og lagres ikke
- Demo og prod er separate Fly-apper med separate credentials, slik at en demo aldri kan røre prod
Wenche er lisensiert under MIT og leveres uten garantier. Denne policyen er et løfte om å ta sikkerhetsrapporter på alvor og svare på dem, ikke en garanti for at koden er feilfri.