Del via


Anbefalinger til beskyttelse af programhemmeligheder

Gælder for denne Power Platform anbefaling af Well-Architected Security-tjekliste:

SE:07 Beskytte programhemmeligheder ved at hærde deres lager og begrænse adgang og manipulation samt ved at overvåge disse handlinger. Kør en pålidelig og regelmæssig rotationsproces, der kan improvisere rotationer i nødsituationer.

I denne vejledning beskrives anbefalingerne til sikring af følsomme oplysninger i arbejdsbelastninger. Korrekt administration af hemmeligheder er vigtig for at bevare sikkerheden og integriteten af programmet, arbejdsbelastningen og de tilknyttede data. Forkert håndtering af hemmeligheder kan medføre databrud, driftsforstyrrelser, lovgivningsmæssige brud og andre problemer.

Legitimationsoplysninger, f.eks. API-nøgler, Open Authorization (OAuth) tokens og SSH-nøgler (Secure Shell) er hemmeligheder. Overholdelseskrav kan medføre, at konfigurationsindstillinger, der typisk ikke opfattes som hemmelige, behandles som programhemmeligheder.

Definitioner

Begreb Definition
Certifikater Digitale filer, der indeholder offentlige nøgler til kryptering eller dekryptering.
Legitimationsoplysninger Oplysninger, der bruges til at bekræfte udgiverens eller forbrugerens identitet på en kommunikationskanal.
Scanning af legitimationsoplysninger Processen til validering af kildekode for at sikre, at hemmeligheder ikke medtages.
Kryptering Den proces, som gør data ulæselige og låst med en hemmelig kode.
Nøgle En hemmelig kode, der bruges til at låse eller låse krypterede data op.
Adgang med færrest mulige privilegier Et nultillidsprincip, der minimerer et sæt tilladelser til at fuldføre en jobfunktion.
Administreret id En identitet, der er tildelt ressourcer og administreres af Azure.
Ikke-hemmelighed Oplysninger, der ikke ødelægger arbejdsbelastningens sikkerhedsmæssige stilling, hvis de lækkes.
Rotation Processen med at opdatere hemmeligheder jævnligt, så de kun er tilgængelige i en begrænset periode, hvis de bliver kompromitteret.
Hemmelighed En fortrolig komponent i systemet, der gør det lettere at kommunikere mellem komponenter i arbejdsbelastning. Hvis hemmeligheder lækkes, kan de forårsage brud.
X.509 En standard, der definerer formatet af offentlige nøglecertifikater.

Vigtigt!

Du må ikke behandle ikke-hemmeligheder som hemmeligheder. Hemmeligheder kræver driftssikkerhed, der er unødvendig for ikke-hemmeligheder, og det kan resultere i ekstra omkostninger.

Programindstillinger, der ikke er hemmeligheder, f.eks. URL-adresserne til API'er, som programmet skal bruge, skal holdes adskilt fra programkode eller programhemmeligheder. Hvis du vil gemme programkonfigurationen, skal du overveje at bruge en brugerdefineret connector eller miljøvariabler. En anden mulighed er at bruge en Dataverse-tabel til at gemme metadata om programkonfigurationen. Men du skal finde en måde at udfylde disse data på i et nyt miljø, f.eks. overførsel af konfigurationsdata fra udvikling til test eller produktion. Det kan du gøre ved hjælp af dataflow.

Vigtigste designstrategier

Overvej følgende vigtige områder, før du gemmer og administrerer hemmeligheder:

  • Oprettede hemmeligheder skal opbevares i et sikkert lager med strenge adgangskontroller.
  • Hemmelighedsrotation er en proaktiv handling, mens tilbagekaldelse er reaktiv.
  • Kun identiteter, der er tillid til, skal have adgang til hemmeligheder.
  • Du bør opretholde et revisionsspor for at kunne inspicere og validere adgangen til hemmeligheder.

Opret en strategi omkring disse punkter for at undgå identitetstyveri, undgå afvisninger og minimere unødvendig eksponering af oplysninger.

Sikker praksis for administration af hemmeligheder

Det anbefales, at nøglerne har tre distinkte roller: bruger, administrator og kontrollant. Skelnen mellem roller er med til at sikre, at det kun er identiteter, der er tillid til, som har adgang til hemmeligheder med det relevante tilladelsesniveau. Oplys udviklere, administratorer og andre relevante medarbejdere om betydningen af bedste praksis for administration og sikkerhed for hemmeligheder.

Nøgler, der er delt på forhånd

Du kan styre adgangen ved at oprette separate nøgler for hver enkelt bruger. En klient som f.eks. en app eller et flow kommunikerer med en tredjeparts-API ved hjælp af en nøgle, der er delt på forhånd. Hvis en anden klient skal have adgang til den samme API, skal denne bruge en anden nøgle. Du må ikke dele nøgler, selvom to brugere har samme adgangsmønstre eller roller. Forbrugeromfanget kan ændre sig med tiden, og du kan ikke opdatere tilladelser uafhængigt eller skelne mellem brugsmønstre, når en nøgle er delt. Separat adgang gør det også nemmere at tilbagekalde. Hvis en forbrugers nøgle kompromitteres, er det nemmere at tilbagekalde eller rotere denne nøgle, uden at det påvirker andre brugere.

Denne vejledning gælder for forskellige miljøer. Den samme nøgle bør ikke bruges til både præproduktions- og produktionsmiljøer. Hvis du er ansvarlig for at oprette nøgler, der deles på forhånd, skal du sørge for at oprette flere nøgler, der understøtter flere klienter.

Du kan få flere oplysninger under Anbefalinger til identitets- og adgangsstyring.

Hemmelighedslager

Brug et hemmeligt administrationssystem, f.eks. Azure Key Vault, til at gemme hemmeligheder i et hærdet miljø, kryptere inaktive og inaktive og overvåge adgang og ændringer af hemmeligheder. Hvis du har brug for at gemme programhemmeligheder, skal du holde dem uden for kildekoden for at lette rotationen.

Et dedikeret hemmelighedsstyringssystem gør det nemt at gemme, distribuere og styre adgangen til programhemmeligheder. Kun autoriserede identiteter og tjenester skal have adgang til hemmelighedslagre. Adgang til systemet kan begrænses via tilladelser. Anvend altid fremgangsmåden med færrest rettigheder, når du tildeler tilladelser.

Du skal også styre adgangen på det skjulte niveau. Hver hemmelighed skal kun have adgang til et enkelt ressourceomfang. Opret isolationsgrænser, så en komponent kun kan bruge de hemmeligheder, den skal anvende. Hvis en isoleret komponent kompromitteres, kan den ikke få kontrol over andre hemmeligheder og potentielt hele arbejdsbelastningen. En måde at isolere hemmeligheder på er at bruge flere Key Vaults. Det koster ikke ekstra at oprette flere Key Vaults.

Implementer revision og overvågning af hemmelig adgang. Logfør, hvem der har adgang til hemmeligheder, og hvornår du kan identificere uautoriseret eller mistænkelig aktivitet. Du kan finde oplysninger om logføring fra et sikkerhedsperspektiv i Anbefalinger til overvågning og registrering af trusler.

Hemmelighedsrotation

Få en proces på plads, der opretholder hemmeligheder. Hemmelighedens varighed påvirker administrationen af hemmeligheden. Hvis du vil reducere angrebsvektorer, skal hemmeligheder udgå og erstattes med nye hemmeligheder så ofte som muligt.

Håndter OAuth adgangstokens omhyggeligt under hensyntagen til deres tid til at leve. Overvej, om eksponeringsvinduet skal justeres til en kortere periode. Opdateringstokener skal gemmes sikkert med begrænset eksponering til programmet. Fornyede certifikater skal også bruge en ny nøgle. Du kan finde oplysninger om opdateringstokens under Sikker OAuth 2.0 på vegne af opdateringstokens.

Udskift hemmeligheder, når de er nået til enden på deres levetid, ikke længere bruges af arbejdsbelastningen, eller hvis de er blevet kompromitteret. Modsat skal du ikke lade aktive hemmeligheder udgå, medmindre det er en nødsituation. Du kan fastslå en hemmeligheds status ved at se adgangslogfiler. Hemmeligheders rotationsprocesser bør ikke påvirke arbejdsbelastningens pålidelighed eller ydeevne. Brug strategier, der bygger på redundans i hemmeligheder, forbrugere og adgangsmetoder for at opnå en problemfri rotation.

Sikker praksis for brug af hemmeligheder

Som en hemmelighedsgenerator eller -operator kan du distribuere hemmeligheder på en sikker måde. Mange organisationer bruger værktøjer til at dele hemmeligheder sikkert både i organisationen og eksternt til partnere. Hvis der ikke findes et værktøj, kan du have en proces til korrekt levering af legitimationsoplysninger til autoriserede modtagere. Dine planer for it-katastrofeberedskab bør omfatte procedurer for gendannelse af hemmelighed. Hav en proces til situationer, hvor en nøgle bliver kompromitteret eller lækket og skal genoprettes efter behov. Overvej følgende bedste sikkerhedspraksis ved brug af hemmeligheder:

Undgå hardcoding

Undlad at kode hemmeligheder som statisk tekst i kodeartefakter, f.eks. cloudflow og lærredapps, konfigurationsfiler og build-udrulningspipelines. Denne praksis med høj risiko gør koden sårbar, fordi alle med læseadgang får adgang til hemmeligheder.

Brug værktøjer, der med jævne mellemrum registrerer eksponerede hemmeligheder i din programkode, og opbyg artefakter. Du kan tilføje disse værktøjer som en del af udrulningspipelines for at søge efter legitimationsoplysninger, før kildekoden starter udrulning. Gennemgå og desinficer programlogfiler jævnligt for at sikre, at der ikke utilsigtet registreres hemmeligheder. Du kan også forstærke registrering via peer reviews.

Bemærk

Hvis scanningsværktøjerne opdager en hemmelighed, skal denne hemmelighed opfattes som kompromitteret. Den skal tilbagekaldes.

Reagere på hemmelighedsrotation

Som arbejdsbelastningsejer er du nødt til at forstå rotationsplanen for hemmeligheder og politikker, så du kan indarbejde nye hemmeligheder med mindst mulig forstyrrelse for brugere. Når en hemmelighed roteres, kan der være et vindue, hvor den gamle hemmelighed ikke er gyldig, men den nye hemmelighed er ikke blevet placeret. I løbet af dette vindue accepterer den komponent, som arbejdsbelastningen forsøger at nå, ikke anmodninger. Du kan minimere disse problemer ved at oprette logik for nyt forsøg i koden. Du kan også bruge mønstre for samtidig adgang, der giver dig mulighed for at have flere legitimationsoplysninger, der kan ændres sikkert uden at påvirke hinanden.

Samarbejd med driftsteamet, og vær en del af ændringsstyringsprocessen. Du skal fortælle ejere af legitimationsoplysninger, når du nedlukker en del af den arbejdsbelastning, der bruger legitimationsoplysninger, som ikke længere er nødvendige.

Integrer hentning og konfiguration af hemmelighed i din automatiserede udrulningspipeline. Hentning af hemmelighed er med til at sikre, at hemmeligheder automatisk hentes under udrulning. Du kan også bruge hemmelige injektionsmønstre til at indsætte hemmeligheder i programkode eller konfigurationen under kørsel, hvilket forhindrer, at hemmeligheder utilsigtet bliver eksponeret for logge eller versionsstyring.

Power Platform-processtyring

I følgende afsnit beskrives Power Platform-funktioner og egenskaber, du kan bruge til at styre programhemmeligheder.

Brug Azure Key Vault-hemmeligheder

Miljøvariabler giver mulighed for at referere til hemmeligheder, der er gemt i Azure Key Vault. Disse hemmeligheder bliver herefter gjort tilgængelige til brug i Power Automate-flows og brugerdefinerede connectorer. Bemærk, at hemmelighederne ikke er tilgængelige til brug i andre tilpasninger eller generelt via API'en.

De faktiske hemmeligheder gemmes kun i Azure Key Vault, og miljøvariablen refererer til den hemmelige Key Vault-placering. Brug af hemmelighederne i Azure Key Vault sammen med miljøvariabler kræver, at du konfigurerer Azure Key Vault, så Power Platform kan læse de specifikke hemmeligheder, du vil referere til. Du kan finde flere oplysninger i Bruge miljøvariabler i løsninger og Bruge miljøvariabler i brugerdefinerede løsningsconnectorer.

Bruge løsningskontrol

Med løsningskontrolfunktionen kan du udføre et omfattende statisk analysetjek af dine løsninger i forhold til et sæt af regler for bedste praksis og hurtigt identificere de problematiske mønstre. Når tjekket er fuldført, modtager du en detaljeret rapport, som viser en liste over de identificerede problemer, de berørte komponenter og den berørte kode, samt links til dokumentation, der beskriver, hvordan de enkelte problemer løses. Gennemse de tilgængelige regler for løsningskontrol i kategorien Sikkerhed. Flere oplysninger: Bruge løsningskontrol til at validere løsninger.

Bruge CyberArk-handlinger

CyberArk indeholder en identitetssikkerhedsplatform, der sikrer person- og computeridentiteter fra slutpunkt til slutpunkt. Power Automate-skrivebordsflow giver dig mulighed for at hente legitimationsoplysninger fra CyberArk. Du kan finde flere oplysninger under CyberArk-handlinger.

Kontrolliste til sikkerhed

Se det fuldstændige sæt anbefalinger.