Programklassificering för säkerhet

Azure kan vara värd för både äldre och moderna program via virtuella IaaS-datorer (Infrastruktur som en tjänst) och PaaS (Platform as a Service). Med äldre program ansvarar du för att skydda alla beroenden, inklusive operativsystem, mellanprogram och andra komponenter. För PaaS-program behöver du inte hantera och skydda det underliggande serveroperativsystemet. Du ansvarar för programkonfigurationen.

I den här artikeln beskrivs överväganden för att förstå värdmodellerna och säkerhetsansvaret för var och en, för att identifiera kritiska program.

Förstå ditt ansvar som ägare

Diagram över programmodeller

Skydd av ett program kräver säkerhetssäkerhet för tre aspekter:

  • Programkod. Logiken som definierar det anpassade program som du skriver. För att skydda koden måste du identifiera och minimera risker från programmets design och implementering och utvärdera risker i leveranskedjan för de komponenter som ingår.

  • Programtjänster. De molntjänster som programmet använder, till exempel databaser, identitetsproviders, händelsehubar, IoT-enhetshantering och så vidare. Säkerhet för molntjänster är ett delat ansvar. Molnleverantören säkerställer säkerheten för den underliggande tjänsten. Programägaren ansvarar för säkerhetsaspekterna av konfigurationen och driften av de tjänstinstanser som används av programmet, inklusive alla data som lagras och bearbetas på tjänsten.

  • Programvärdplattform. Den beräkningsmiljö där programmet körs. Detta kan ta många former med betydande variationer på vem som ansvarar för säkerheten:

    • Äldre program. kräver vanligtvis ett fullständigt operativsystem (och alla mellanprogram) som finns på fysisk eller virtualiserad maskinvara. Det här operativsystemet och installerade mellanprogram/andra komponenter drivs och skyddas av programägaren eller deras infrastrukturteam. Säkerhetsansvaret för de fysiska maskinvaru- och OS-virtualiseringskomponenterna (virtualiseringsvärdar, operativsystem och hanteringstjänster) varierar:

      • Lokalt: Programägaren ansvarar för underhåll och säkerhet.
      • IaaS: Molnleverantören ansvarar för den underliggande infrastrukturen och programägarens organisation ansvarar för vm-konfigurationen, operativsystemet och eventuella komponenter som är installerade på den.
    • Moderna program finns i PaaS-miljöer, till exempel en Azure-programtjänst. Det underliggande operativsystemet skyddas av molnleverantören. Programägare ansvarar för säkerheten för programtjänstkonfigurationerna.

    • Containrar är en programpaketeringsmekanism där program abstraheras från den miljö där de körs. De containeriserade programmen kan köras på en containertjänst av molnleverantören (moderna program) eller på en server som hanteras lokalt eller i IaaS.

Identifiera och klassificera program

Identifiera program som har en hög potentiell inverkan och, eller en hög potentiell riskexponering.

  • Affärskritiska data. Program som bearbetar eller lagrar information måste vara konfidentiella, integritets- och tillgänglighetssäkrade.
  • Reglerade data. Program som hanterar penninginstrument och känslig personlig information som regleras av standarder som betalkortsbranschen (PCI), allmän dataskyddsförordning (GDPR) och HIPAA (Health Information Portability and Accountability Act).
  • Affärskritisk tillgänglighet. Program vars funktioner är viktiga för affärsverksamheten, till exempel produktionslinjer som genererar intäkter, enheter eller tjänster som är viktiga för liv och säkerhet och andra viktiga funktioner.
  • Betydande åtkomst. Program som har åtkomst till system med hög påverkan via tekniska metoder, till exempel
    • Lagrade autentiseringsuppgifter eller nycklar/certifikat som beviljar åtkomst till data/tjänsten.
    • Behörigheter som beviljas via åtkomstkontrolllistor eller andra metoder.
  • Hög exponering för attacker. Program som är lättillgängliga för angripare, till exempel webbappar på det offentliga Internet. Äldre program kan också vara högre exponering eftersom angripare (och intrångstestare) ofta riktar sig mot dem eftersom de vet att dessa äldre program ofta har sårbarheter som är svåra att åtgärda.

Använda Azure-tjänster för grundläggande komponenter

Utvecklare bör använda tjänster som är tillgängliga från en molnleverantör för väletablerade funktioner som databaser, kryptering, identitetskatalog och autentisering, i stället för att skapa eller införa anpassade implementeringar eller lösningar från tredje part som kräver integrering med molnleverantören. Dessa tjänster ger bättre säkerhet, tillförlitlighet och effektivitet eftersom molnleverantörer driver och skyddar dem med dedikerade team med djupgående expertis inom dessa områden.

Med hjälp av dessa tjänster frigörs även utvecklarresurser från att omventera det ordspråkliga hjulet så att de kan fokusera utvecklingstiden på dina unika krav för din verksamhet. Den här praxis bör följas för att undvika risker under ny programutveckling och för att minska risken i befintliga program under den planerade uppdateringscykeln eller med en säkerhetsfokuserad programuppdatering.

Vi rekommenderar att du använder molntjänster från din molnleverantör för identitet, dataskydd, nyckelhantering och programkonfigurationer:

  • Identitet: Användarkataloger och andra autentiseringsfunktioner är komplexa att utveckla och ytterst viktiga för säkerhetsgarantin. Undvik anpassade autentiseringslösningar. Välj i stället inbyggda funktioner som Azure Active Directory (Azure AD), Azure AD B2B, Azure AD B2Celler lösningar från tredje part för att autentisera och bevilja behörighet till användare, partner, kunder, program, tjänster och andra entiteter. Mer information finns i Säkerhet med identitets- och åtkomsthantering (IAM) i Azure.

  • Dataskydd: Använd etablerade funktioner från molnleverantörer som inbyggd kryptering i molntjänster för att kryptera och skydda data. Om direkt användning av kryptografi krävs ska du använda väletablerade krypteringsalgoritmer och inte försöka skapa egna.

  • Nyckelhantering: Autentisera alltid med identitetstjänster i stället för att hantera kryptografisk nyckel. I situationer där du behöver nycklar använder du ett hanterat nyckelarkiv, till exempel Azure Key Vault. Detta ser till att nycklar hanteras på ett säkert sätt i programkoden. Verktyg som CredScan kan identifiera potentiellt exponerade nycklar i programkoden.

  • Programkonfigurationer: Inkonsekventa konfigurationer för program kan skapa säkerhetsrisker. Programkonfigurationsinformation kan lagras med själva programmet eller helst med hjälp av ett dedikerat konfigurationshanteringssystem som Azure App Configuration eller Azure Key Vault. App Configuration en tjänst för att centralt hantera programinställningar och funktionsflaggor, vilket bidrar till att minska den här risken. Lagra inte nycklar och hemligheter i programkonfigurationen.

Mer information om hur du använder molntjänster i stället för anpassade implementeringar finns i Program och tjänster.

Använda inbyggda funktioner

Använd inbyggda säkerhetsfunktioner som är inbyggda i molntjänster i stället för att lägga till externa säkerhetskomponenter, till exempel datakryptering, filtrering av nätverkstrafik, hotidentifiering och andra funktioner.

Azure-kontroller underhålls och stöds av Microsoft. Du behöver inte investera i ytterligare säkerhetsverktyg.

Nästa steg