Sikkerhet

Liten flate, publisert gjennomgang

Missivus holder en legitimasjon som kan sende e-post som selskapet ditt. Det er nøyaktig den typen kode som bør gjennomgås linje for linje og dokumenteres offentlig — så det ble den.

Sikkerhetsmodellen i ett avsnitt

Tilgangspolicyen i Exchange er det som begrenser skadeomfanget. Hvert funn nedenfor holdes i sjakk av den — selv en fullstendig kompromittert legitimasjon kan sende som én delt postboks og ingenting annet. Derfor behandler installasjonsveiledningen policyen som et påkrevd steg med en verifiseringskommando, ikke som valgfri herding.

Hva gjennomgangen dekket

Kodetreet i v0.1.1 ble revidert etter den første utrullingen i produksjon — Graph-transporten, innstillingsmodellen, API-metoden for test-e-post og Vue-komponenten ble kontrollert for lekkasje av hemmeligheter gjennom logger, API-svar, HTML-kilde og nettleserkonsollen; autentisering og CSRF på API-flaten; validering av inndata på hver innstilling; og om feilmeldinger fra Graph kan nå andre enn en superbruker. Påstander om hvordan Matomo oppfører seg, ble verifisert mot kildekoden til Matomo, ikke gjengitt etter hukommelsen.

Funn, ærlig framstilt

Rettet før utgivelse

  • En overstyring av basis-URL-en kunne ha rettet klienthemmeligheten mot verten til en angriper — URL-er valideres nå til å være rene https-opphav før en forespørsel bygges.
  • En nettverksfeil midt i en opplasting kunne lekke en forhåndsautentisert opplastings-URL til loggen — den konverteres og sladdes nå som alle andre feil.
  • Innstillingene godtok en hvilken som helst tekst — hvert felt validerer nå formen sin, slik at en innlimt Secret ID feiler ved lagring, ikke som en uforståelig Microsoft-feil senere.
  • API-metoden for test-e-post godtok en hvilken som helst mottaker og svarte på GET — nå bare POST med en validert adresse, holdt utenfor tilgangsloggene på serveren.

Verifisert rent

  • Hemmeligheter når aldri HTML-kilden, API-svaret eller nettleserkonsollen — passordfelt maskeres av Matomo-kjernen, og pluginen legger til to egne vakter på toppen.
  • Testkallet er CSRF-beskyttet av token-modellen i Matomo, med en regel om bare POST lagt til som forsvar i dybden.
  • Alt som logges eller kastes, går gjennom en sladdefunksjon som blanker kjente hemmeligheter etter verdi og legitimasjon etter form — tokener, assertions, bearer-headere, opplastings-URL-er — og som feiler lukket.

Aksepterte avveininger, dokumentert

  • Det kortlivede tilgangstokenet mellomlagres i den filbaserte hurtigbufferen til Matomo — den som kan lese det, kan allerede lese konfigurasjonen til Matomo, som kan inneholde selve hemmeligheten. Dempet av levetiden på 55 minutter og av tilgangspolicyen.
  • En superbruker kan sende test-e-poster uten begrensning — en irritasjonsvektor, ikke en privilegievektor; en superbruker kunne uansett konfigurert e-posten om fullstendig.
  • En hemmelighet som skrives inn i innstillingsgrensesnittet, lagres ukryptert i databasen til Matomo — nivåene med konfigurasjonsfil og miljøvariabler finnes nettopp for at den aldri skal måtte gjøre det, og de har forrang.

Les hele gjennomgangen med alle elleve funnene på GitHub

Melde fra om en sårbarhet

Send en e-post til adressen nedenfor med detaljene. Gi oss sjansen til å rette et problem før det blir offentlig — og legg aldri ved en klienthemmelighet, et sertifikat eller en PEM-fil i en melding.

Sikkerhetskontakt: