Liten yta, publicerad granskning
Missivus håller en autentiseringsuppgift som kan skicka e-post som ditt företag. Det är precis den sortens kod som bör granskas rad för rad och dokumenteras offentligt — så det gjordes.
Säkerhetsmodellen i ett stycke
Det är programåtkomstprincipen i Exchange som avgränsar skadeområdet. Varje fynd nedan hålls innanför den — även en fullständigt komprometterad autentiseringsuppgift kan skicka som en enda delad brevlåda och göra ingenting annat. Därför behandlar installationsguiden principen som ett obligatoriskt steg med ett verifieringskommando, inte som valfri härdning.
Vad granskningen omfattade
Trädet v0.1.1 granskades efter den första driftsättningen i skarp miljö — Graph-transporten, inställningsmodellen, API-metoden för testmeddelanden och Vue-komponenten, kontrollerade med avseende på läckta hemligheter genom loggar, API-svar, HTML-källa och webbläsarkonsolen; autentisering och CSRF på API-ytan; indatavalidering på varje inställning; och huruvida felmeddelanden från Graph kan nå någon annan än en superanvändare. Påståenden om hur Matomo beter sig verifierades mot Matomos källkod, inte ur minnet.
Fynden, ärligt redovisade
Åtgärdade före release
- En överskrivning av bas-URL:en kunde ha riktat klienthemligheten mot en angripares värd — URL:er valideras nu som rena https-ursprung innan någon förfrågan byggs.
- Ett nätverksfel mitt i en uppladdning kunde läcka en förautentiserad uppladdnings-URL till loggen — den konverteras och maskeras nu som varje annat fel.
- Inställningarna godtog vilken sträng som helst — varje fält validerar nu sin form, så ett inklistrat Secret ID misslyckas när det sparas, inte som ett kryptiskt Microsoft-fel senare.
- API-metoden för testmeddelanden godtog vilken mottagare som helst och svarade på GET — den är nu enbart POST med en validerad adress och hålls utanför serverns åtkomstloggar.
Verifierat rena
- Hemligheter når aldrig HTML-källan, API-svaret eller webbläsarkonsolen — lösenordsfält maskeras av Matomos kärna, och pluginet lägger till två egna skydd ovanpå det.
- Testanropet är CSRF-skyddat av Matomos tokenmodell, med en regel om enbart POST tillagd som djupförsvar.
- Allt som loggas eller kastas passerar en maskerare som tömmer kända hemligheter på värde och autentiseringsuppgifter på form — token, assertions, bearer-huvuden, uppladdnings-URL:er — och som fallerar säkert.
Godtagna avvägningar, dokumenterade
- Den kortlivade åtkomsttoken cachas i Matomos filbaserade cache — den som kan läsa den kan redan läsa Matomos konfiguration, som kan innehålla själva hemligheten. Mildras av livslängden på 55 minuter och av åtkomstprincipen.
- En superanvändare kan skicka testmeddelanden utan begränsning — en irritationsvektor, inte en behörighetsvektor; en superanvändare kan ändå konfigurera om e-posten helt och hållet.
- En hemlighet som skrivs in i inställningsgränssnittet lagras okrypterad i Matomos databas — nivåerna med konfigurationsfil och miljövariabler finns just för att den aldrig ska behöva göra det, och de har företräde.
Rapportera en sårbarhet
Skicka e-post till adressen nedan med detaljerna. Ge oss gärna chansen att åtgärda ett problem innan det blir offentligt — och bifoga aldrig en klienthemlighet, ett certifikat eller en PEM-fil i en rapport.
Säkerhetskontakt: …