Dela via


Rekommendationer för att skydda programhemligheter

Gäller för den här Power Platform rekommendationen för checklista för Well-Architected Security:

SE:07 Skydda programhemligheter genom att härda deras lagring och begränsa åtkomst och manipulation, och genom att granska dessa åtgärder. Kör en tillförlitlig och regelbunden rotationsprocess som kan improvisera rotationer vid akuta situationer.

I den här guiden beskrivs rekommendationer för att skydda känslig information i arbetsbelastningen. Korrekt hantering av hemligheter är mycket viktigt för att upprätthålla säkerhet och integritet för ditt program, din arbetsbelastning och tillhörande data. Felaktig hantering av hemligheter kan leda till att dataintrång, tjänstestörningar, regelöverträdelser och andra problem.

Autentiseringsuppgifter, till exempel API-nycklar, token för öppen auktorisering (OAuth) och SSH-nycklar (Secure Shell) är hemligheter. Krav på regelefterlevnad kan leda till att konfigurationsinställningar som vanligtvis inte betraktas som hemliga behandlas som programhemligheter.

Definitioner

Begrepp Definition
Certifikat Digitala filer som innehåller offentliga nycklar för kryptering eller dekryptering.
Credentials Information som används för att verifiera utgivarens identitet eller konsumentidentiteten i en kommunikationskanal.
Skanning av autentiseringsuppgifter Processen att verifiera källkoden för att se till att inga hemligheter tas med.
Kryptering Den process med vilken data görs oläsbara och låses med en hemlig kod.
Key En hemlig kod som används för att låsa eller låsa upp krypterade data.
Åtkomst med minsta privilegium En Noll förtroende-princip som syftar till att minimera en uppsättning behörigheter för att slutföra en jobbfunktion.
Hanterad identitet En identitet som har tilldelats åt resurser och hanteras av Azure.
Icke-hemlighet Information som inte riskerar säkerheten med arbetsbelastningen om den läcks.
Rotation Processen att regelbundet uppdatera hemligheter så att de, om de avslöjas, endast är tillgängliga en begränsad tid.
Hemlighet En konfidentiell komponent i systemet som underlättar kommunikation mellan arbetsbelastningskomponenter. Om hemligheterna avslöjas kan de leda till en överträdelse.
X.509 Standard som definierar formatet för certifikat för offentliga nycklar.

Viktigt

Behandla inte icke-hemligheter som hemligheter. För hemligheter krävs driftnoggrannhet som inte behövs för icke-hemligheter och som kan resultera i extra kostnader.

Programinställningar som inte är hemligheter, till exempel URL:er för de API:er som programmet behöver, bör hållas åtskilda från programkoden eller programhemligheter. Om du vill lagra programkonfigurationen bör du överväga att använda anpassade anslutningsprogram- eller miljövariabler. Ett annat alternativ är att använda en Dataverse tabell för att lagra metadata om programkonfigurationen. Du måste dock hitta ett sätt att fylla i dessa data i en ny miljö, till exempel överföra konfigurationsdata från utveckling till testning eller produktion. Du kan göra detta med hjälp av dataflöden.

Viktiga designstrategier

Tänk på följande viktiga områden innan du lagrar och hanterar hemligheter:

  • Skapade hemligheter ska alltid lagras säkert och de måste ha strikta åtkomstkontroller.
  • Rotation av hemligheter är en proaktiv åtgärd, medan återkallning är reaktiv.
  • Endast betrodda identiteter ska ha åtkomst till hemligheter.
  • Du ska upprätthålla en spårning för att inspektera och verifiera åtkomsten till hemligheter.

Skapa en strategi runt dessa punkter för att undvika identitetsstöld, undvika avvislighet och minimera onödiga exponering av informationen.

Säkra metoder för hantering av hemligheter

Nycklar bör ha tre distinkta roller: användare, administratör och granskare. Genom att göra skillnad på roller kan du se till att bara betrodda identiteter har åtkomst till hemligheter med rätt behörighetsnivå. Informera utvecklare, administratörer och annan relevant personal om hur viktig hanteringen av hemligheter och säkerhetspraxis är.

Fördelade nycklar

Du kan styra åtkomsten genom att skapa särskilda nycklar för varje konsument. En klient, som en app eller ett flöde, kommunicerar till exempel med ett API från tredje part med en fördelade nyckel. Om en annan klient behöver få åtkomst till samma API måste de använda en annan nyckel. Dela inte nycklar även om två konsumenter har samma åtkomstmönster eller roller. Kundomfattningar kan ändras med tiden och du kan inte uppdatera behörigheter oberoende eller särskilja användningsmönster efter att en nyckel har delats. Särskild åtkomst underlättar också återkallande. Om en konsuments nyckel avslöjas är det lättare att återkalla eller rotera nyckeln utan att det påverkar andra konsumenter.

Den här vägledningen gäller för olika miljöer. Samma nyckel ska inte användas både i förproduktions- och produktionsmiljöer. Om du är ansvarig för att skapa fördelade nycklar måste du skapa flera nycklar med stöd för flera klienter.

Mer information finns i Rekommendationer för identitets- och åtkomsthantering.

Hemlig lagring

Använd ett hemlighetshanteringssystem, till exempel Azure Key Vault, för att lagra hemligheter i en härdad miljö, kryptera i vila och under överföring samt granska åtkomst och ändringar av hemligheter. Om du behöver lagra programhemligheter, håll dem utanför källkoden för enkel rotation.

Ett dedikerat hanteringssystem för hemligheter gör det enkelt att lagra, distribuera och kontrollera åtkomsten till programhemligheter. Endast auktoriserade identiteter och tjänster ska ha åtkomst till hemlighetslager. Åtkomsten till systemet kan begränsas med hjälp av behörigheter. Tillämpa alltid metoden med minst privilegium när du tilldelar behörigheter.

Du måste också kontrollera åtkomsten på hemlighetsnivå. Varje användare ska bara ha tillgång till en enskild resurs. Skapa isoleringsgränserna så att en komponent bara kan använda hemligheter som den behöver. Om en enskild komponent avslöjas kan den inte få kontroll över andra hemligheter och potentiellt hela arbetsbelastningen. Ett sätt att isolera hemligheter är att använda flera nyckelvalv. Det kostar inte mer att skapa extra nyckelvalv.

Implementera granskning och övervakning för åtkomst till hemligheter. Logga vem som får åtkomst till hemligheter och när för att identifiera obehörig eller misstänkt aktivitet. Mer information om loggning ur ett säkerhetsperspektiv finns i Rekommendationer för övervakning och hotidentifiering.

Rotation av hemligheter

Ha en process på plats som upprätthåller hemlighetshygienen. Hur länge en hemlighet fungerar påverkar hanteringen av den. För att minska antalet attackvektorer bör hemligheter dras tillbaka och ersättas med nya hemligheter så ofta som möjligt.

Hantera OAuth åtkomsttoken noggrant och ta hänsyn till deras tid att leva. Fundera på om exponeringsfönstret måste justeras till en kortare period. Uppdateringstokens måste lagras säkert med begränsad exponering för programmet. En ny nyckel bör också användas för förnyade certifikat. Information om uppdateringstoken finns i Secure OAuth 2.0 On-Behalf-Of uppdateringstoken.

Ersätt hemligheter när de har nått slutet av livet, inte längre används av arbetsbelastningen eller om de har avslöjats. Dra inte tillbaka aktiva hemligheter om det inte är en nödsituation. Du kan fastställa status för en hemlighet genom att visa åtkomstloggar. Rotationsprocesserna ska inte påverka arbetsbelastningens tillförlitlighet eller prestanda. Använd en strategi som bygger in redundans i hemligheter, konsumenter och åtkomstmetoder för smidig rotation.

Säkra metoder för att använda hemligheter

Som användare eller operatör ska du kunna distribuera hemligheter på ett säkert sätt. Många organisationer använder verktyg för att på ett säkert sätt dela hemligheter både inom organisationen och externt med partner. Om det inte finns något verktyg kan du ha en process för att överlämna autentiseringsuppgifterna till behöriga mottagare. Dina katastrofåterställningsplaner ska innehålla procedurer för återställning av hemligheter. Ha en process för situationer där en nyckel avslöjas eller läcks och behöver återskapas på begäran. Tänk på följande metodtips för säkerhet när du använder hemligheter:

Förhindra hårdkodning

Hårdkoda inte hemligheter som statisk text i kodartefakter, till exempel molnflöden och arbetsyteappar, konfigurationsfiler och pipelines för byggdistribution. Den här högriskmetoden gör koden utsatt för risker eftersom hemligheter är synliga för alla med läsbehörighet.

Använd verktyg som regelbundet identifierar exponerade hemligheter i programkoden och skapar artefakter. Du kan lägga till dessa verktyg som en del av dina distributionspipelines för att söka efter autentiseringsuppgifter innan källkoden distribueras. Granska och sanera programloggar regelbundet för att se till att inga hemligheter registreras oavsiktligt. Du kan också stärka identifieringen med hjälp av peer reviews.

Kommentar

Om skanningsverktygen upptäcker en hemlighet måste den anses vara avslöjad. Den ska upphävas.

Svara på rotering av hemlighet

Som arbetsbelastningsägare måste du förstå roteringsplanen och roteringsprinciperna för så att du kan införliva nya hemligheter med minimala avbrott för användare. När en hemlighet roteras kan det finnas ett fönster när den gamla hemligheten inte är giltig, och den nya har inte placerats. Under det fönstret bekräftar inte komponenten som arbetsbelastningen försöker nå några begäranden. Du kan minimera dessa problem genom att skapa logik för återförsök i koden. Du kan också använda mönster för samtidig åtkomst som gör att du kan ha flera autentiseringsuppgifter som kan ändras säkert utan att det påverkar varandra.

Arbeta med verksamhetsteamet och var en del av ändringshanteringsprocessen. Du bör meddela ägarna av autentiseringsuppgifterna när du inaktiverar en del av arbetsbelastningen som använder autentiseringsuppgifter som inte längre behövs.

Integrera hämtning och konfigurering av hemligheter i den automatiserade distributionskanalen. Hämtning av hemligheter hjälper till att säkerställa att hemligheter hämtas automatiskt under distributionen. Du kan också använda injiceringsmönster för hemligheter för att föra in hemligheter i programkoden eller konfigurationen vid körning, vilket förhindrar att hemligheterna oavsiktligt avslöjas för loggar eller versionskontroll.

Underlätta Power Platform

I följande avsnitt beskrivs de Power Platform-funktioner som du kan använda för att hantera programhemligheter.

Använd hemligheter för Azure Key Vault

Miljövariabler möjliggör refererande hemligheter som lagras i Azure Key Vault. Hemligheterna görs sedan tillgängliga för användning i Power Automate-flöden och anpassade anslutningsprogram. Observera att hemligheterna inte är tillgängliga för användning i andra anpassningar eller allmänt via API:et.

De faktiska hemligheterna lagras i Azure Key Vault, och miljövariabeln refererar platsen för Key Vault-hemligheter. Om du använder Azure Key Vault-hemligheter med miljövariabler måste du konfigurera Azure Key Vault så att Power Platform kan läsa de specifika hemligheter du vill hänvisa till. Mer information finns i Använda miljövariabler i lösningar och Använda miljövariabler i lösningar för anpassade anslutningsprogram.

Använda lösningskontroll

Med funktionen för lösningskontroll kan du utforma en omfattande statisk analyskontroll på dina lösningar mot en uppsättning regler och snabbt identifiera dessa problemmönster. När kontrollen är klar kan få du en detaljerad rapport med en lista över de problem som uppstår, komponenter och kod som påverkas och länkar till dokumentationen som beskriver hur du löser varje problem. Granska de tillgängliga lösningskontrollsreglerna i kategorin Säkerhet. Mer information finns i Använd lösningskontroll för att verifiera dina lösningar.

Använda CyberArk-åtgärder

CyberArk erbjuder en identitetssäkerhetsplattform som säkrar identiteter för människor och dator från början till slut. Med Power Automate-datorflöden kan du hämta autentiseringsuppgifter från CyberArk. Mer information finns i CyberArk-åtgärder.

Checklista för säkerhet

Se den fullständiga uppsättningen med rekommendationer.