Beveiliging

Klein oppervlak, gepubliceerde beoordeling

Missivus bezit een credential waarmee e-mail namens uw bedrijf kan worden verstuurd. Dat is precies het soort code dat regel voor regel beoordeeld en in het openbaar gedocumenteerd hoort te worden — dus dat is gebeurd.

Het beveiligingsmodel in één alinea

Het toegangsbeleid voor toepassingen in Exchange is wat de reikwijdte begrenst. Elke bevinding hieronder wordt erdoor ingeperkt — zelfs een volledig gecompromitteerde credential kan versturen namens één gedeelde postbus en verder niets. Daarom behandelt de installatiegids dat beleid als een verplichte stap met een verificatieopdracht, en niet als optionele hardening.

Wat de beoordeling omvatte

De v0.1.1-boom is na de eerste live-uitrol doorgelicht — het Graph-transport, het instellingenmodel, de API-methode voor de testmail en de Vue-component, gecontroleerd op het lekken van geheimen via logs, API-antwoorden, HTML-broncode en de browserconsole; op authenticatie en CSRF op het API-oppervlak; op invoervalidatie bij elke instelling; en op de vraag of Graph-foutmeldingen iemand anders dan een superuser kunnen bereiken. Uitspraken over het gedrag van Matomo zijn geverifieerd tegen de broncode van Matomo, niet uit het geheugen opgeschreven.

Bevindingen, eerlijk verwoord

Opgelost vóór de release

  • Een override van de basis-URL had het clientgeheim naar de host van een aanvaller kunnen sturen — URL's worden nu gevalideerd als kale https-origins voordat er een verzoek wordt opgebouwd.
  • Een netwerkstoring midden in een upload kon een vooraf geauthenticeerde upload-URL in het log lekken — die wordt nu net als elke andere storing omgezet en geredigeerd.
  • Instellingen accepteerden elke tekenreeks — elk veld valideert nu zijn vorm, zodat een geplakte Secret ID al bij het opslaan faalt en niet later als een ondoorzichtige Microsoft-fout.
  • De API-methode voor de testmail accepteerde elke ontvanger en beantwoordde GET — nu alleen POST met een gevalideerd adres, en buiten de toegangslogs van de server gehouden.

Schoon bevonden

  • Geheimen bereiken nooit de HTML-broncode, het API-antwoord of de browserconsole — wachtwoordvelden worden gemaskeerd door de kern van Matomo, en de plugin legt daar nog twee eigen waarborgen bovenop.
  • De testaanroep is CSRF-beschermd door het tokenmodel van Matomo, met een POST-only-regel als extra verdedigingslaag.
  • Alles wat wordt gelogd of geworpen, gaat door een redactor die bekende geheimen op waarde en credentials op vorm blankt — tokens, assertions, bearer-headers, upload-URL's — en die fail-closed werkt.

Aanvaarde afwegingen, gedocumenteerd

  • Het kortlevende toegangstoken wordt gecachet in de bestandsgebaseerde cache van Matomo — wie die kan lezen, kan de configuratie van Matomo al lezen, waarin mogelijk het geheim zelf staat. Beperkt door de levensduur van 55 minuten en het toegangsbeleid.
  • Een superuser kan ongelimiteerd testmails versturen — een hinderlijke vector, geen privilegevector; een superuser kan de mailconfiguratie sowieso volledig wijzigen.
  • Een geheim dat in de instellingen-UI wordt ingevoerd, wordt onversleuteld opgeslagen in de database van Matomo — de lagen met configuratiebestand en omgevingsvariabelen bestaan juist zodat dat niet hoeft, en zij hebben voorrang.

Lees de volledige beoordeling met alle elf bevindingen op GitHub

Een kwetsbaarheid melden

Stuur de details naar het onderstaande adres. Geef ons alstublieft de kans een probleem op te lossen voordat het openbaar wordt — en neem nooit een clientgeheim, certificaat of PEM-bestand op in een melding.

Beveiligingscontact: