Hoppa till innehållet

Kontrollera kundseparering i en SaaS-applikation

En konkret kontrollplan för dataåtkomst, exporter och bakgrundsjobb mellan separata kundmiljöer.

Nora Henning2 min läsning
Delad bricka med rosa och gröna korthögar i separata fack.

Definiera först kundmiljön

En tenant är en avgränsad kundmiljö i din applikation. Den behöver varken motsvara en person eller alltid ett helt företag. Bestäm vilka data som hör ihop, vem som får vara medlem och vilka uppgifter varje roll får utföra. Ett användarkonto kan ha flera medlemskap; inloggning ensam väljer ingen tillåten dataomfattning.

Microsoft skiljer den logiska tenanten från den tekniska driftsättningen. Egen databas och delade tabeller ställer olika krav på drift och åtkomstskydd. Ingen variant ersätter kontroll av alla avsedda åtkomstvägar.

En kontrollplan med två påhittade kundmiljöer

Planera fallen med syntetiska data i en separat testmiljö. Det är förväntade resultat, inte ett genomfört säkerhetstest. Miljöerna heter TA och TB. Uppdrag SV-12 tillhör TA, uppdrag SV-41 tillhör TB. Testkontona har bara de avsedda uppdragsbehörigheterna i sin egen miljö.

Kontrollerad åtkomst

Åtgärd

Förväntat resultat

Behörigt konto i TA

Läsa SV-12

Bara egna uppdragsdata som rollen får se visas.

Samma konto i TA

Läsa eller ändra SV-41 direkt eller hämta dess bilaga

Inga data från TB lämnas ut eller ändras.

Konto i TA

Söka och exportera

Resultat och fil innehåller inga data från TB.

Först konto från TB, sedan konto från TA

Använda samma åtkomstväg till serverns cache

TA får inga resultat som tidigare lagrats för TB.

Konto i TA

Köa export, ta bort åtkomsten före bearbetning

Bakgrundsjobbet kontrollerar igen och avvisas enligt denna testregel.

Kontrollera data och verkliga ändringar på servern. En dold knapp bevisar ingen separering. Använd också en känd objektidentifierare från en annan miljö: en svårgissad identifierare får inte vara enda åtkomsthindret.

För gränsen genom hela flödet

OWASP kräver serververifierad tenantkontext och lämplig behörighetskontroll. Miljöidentifierare från klienten är ett val, ingen behörighet. Kontrollera aktuellt medlemskap, tillåten åtgärd och målobjektets tillhörighet. Saknas nödvändig kontext får applikationen inte falla tillbaka på en obegränsad fråga.

Ta med bilagor, tenantberoende cachenycklar, exporter och fördröjd bearbetning. Bakgrundsjobb kräver tillförlitlig överföring av kontext och behörighet samt lämplig kontroll vid bearbetningen. Bestäm hur rättigheter som tagits bort under tiden ska hanteras.

Offentligt, globalt innehåll behöver ingen konstgjord tenantkoppling. Plattformuppgifter över miljögränser kräver däremot uttryckligen behörig identitet och spårbar åtkomst. Dokumentera förväntat resultat, faktiskt fynd och rättelse separat för varje fall. Upprepa berörda kontroller när åtkomstvägar eller roller ändras.

Källor

Skriven av

  • Nora HenningRedaktör för IT-säkerhetNora Henning ansvarar för det redaktionella innehållet om IT-säkerhet på ASES. Hon skriver om applikationssäkerhet och förklarar hur behörigheter och skyddet av företagets data hänger ihop.

Följ ASES

Läs vidare

Alla artiklar

Mjukvaruutveckling med ASES

Skräddarsydd programvara, webb- och mobilappar