Aanbevolen procedures voor het beveiligen van geheimen

Dit artikel helpt u geheimen te beschermen en het risico op ongeautoriseerde toegang te verminderen. Volg deze richtlijnen om ervoor te zorgen dat je gevoelige informatie, zoals inloggegevens, niet opslaat in code, GitHub-repositories, logboeken of pijplijnen voor continue integratie/continue implementatie (CI/CD). De richtlijnen in dit artikel komen uit individuele serviceaanbevelingen en de Microsoft Cloud Security Benchmark (MCSB).

Dit artikel is afgestemd op het beveiligingsmodel van Microsoft Zero Trust, waarvoor expliciete verificatie, toegang met minimale bevoegdheden en de aanname van inbreuk is vereist. Voor voorschrijvende beveiligingsmaatregelen die Azure Policy-handhaving omvatten, zie Microsoft Cloud Security Benchmark v2: Privileged Access en MCSB v2: Data Protection.

Detectie en preventie van geheimen

Voordat je je geheimen kunt beveiligen, heb je inzicht nodig in waar ze bestaan. Je hebt ook maatregelen nodig die blootstelling voorkomen voordat die plaatsvindt.

  • Voer een audit uit om geheimen te identificeren: Controleer uw systemen en applicaties om gevoelige informatie te identificeren die bescherming nodig heeft, zoals wachtwoorden, API-sleutels, verbindingsstrings en andere inloggegevens. Regelmatige audits helpen ervoor te zorgen dat je inventaris rekening houdt met nieuwe geheimen en dat je bestaande geheimen goed beheert. Beveilig dynamisch gecreëerde geheimen, zoals tijdelijke OAuth-tokens, met dezelfde strengheid als langdurige geheimen.

  • Vermijd hardcodering van geheimen: Secrets direct inbedden in code of configuratiebestanden vormt een aanzienlijk beveiligingsrisico. Als aanvallers je codebase compromitteren, compromitteren ze ook je geheimen. Gebruik in plaats daarvan omgevingsvariabelen of configuratiebeheertools die geheimen uit de broncode houden. Deze praktijk minimaliseert het risico op onbedoelde blootstelling en vereenvoudigt geheime updates. Integreer geheime opvraging in je geautomatiseerde deployment-pijplijn en gebruik geheime injectiepatronen om te helpen voorkomen dat er per ongeluk blootstelling in logs of versiebeheer plaatsvindt. Zie Aanbevelingen voor het beveiligen van toepassingsgeheimen voor meer informatie.

  • Implementeer geheime scantools: Scan regelmatig je codebase op ingebedde geheimen om per ongeluk blootstelling te voorkomen. Tools zoals Azure DevOps Credential Scanner en GitHub secret scanning kunnen automatisch geheimen detecteren en je waarschuwen voor geheimen in repositories. Integreer deze tools in je CI/CD-pijplijn voor continue monitoring. Behandel elk geheim dat door scantools wordt gevonden als gecompromitteerd. Trek het onmiddellijk in en vervang het om de integriteit van je beveiligingspositie te waarborgen.

Beveiligde opslag en versleuteling

Het beveiligen van geheimen vereist beveiligde opslagmechanismen en de juiste versleuteling in alle fasen.

  • Gebruik beveiligde sleutelopslag: Diensten zoals Azure Key Vault en Azure Key Vault Managed HSM bieden beveiligingsfuncties, waaronder toegangscontrole, logging en automatische rotatie. Deze aanpak centraliseert geheimbeheer en vermindert het risico op ongeautoriseerde toegang. Voor zeer gevoelige of kritieke geheimen gebruik je een hardwarebeveiligingsmodule (HSM)-ondersteunde keystore voor verbeterde bescherming in vergelijking met softwaregebaseerde geheime opslag. Voor klantbeheerde sleutelscenario's gebruik minimaal de Azure Key Vault Premium-tier, die HSM-ondersteund is. Gebruik Azure Key Vault Managed HSM voor de vereisten voor sleutelsoevereiniteit. Voor een overzicht van Azure sleutelbeheer-aanbiedingen en richtlijnen over welke te kiezen, zie Key management in Azure en How to choose the right key management solution.

  • Versleutel geheimen in rust en onderweg: Azure Key Vault slaat geheimen veilig op via envelopencryptie, waarbij sleutelsleutels datasleutels versleutelen om een extra beveiligingslaag te bieden. Gebruik veilige communicatieprotocollen zoals HTTPS om data te versleutelen die tussen je applicaties en de sleutelkluis worden verzonden. In Azure implementeren verschillende diensten versleuteling in rust door gebruik te maken van AES 256-encryptie. TLS en MACsec beveiligen data tijdens het verzenden. Voor meer informatie, zie Encryptie in rust en onderweg.

  • Netwerkisolatie implementeren: firewalls en netwerkbeveiligingsgroepen configureren om de toegang tot uw sleutelkluizen te beperken. Laat alleen vertrouwde applicaties en diensten toegang krijgen tot je geheimen. Deze aanpak minimaliseert het aanvalsoppervlak en helpt ongeautoriseerde toegang te voorkomen. Overweeg het gebruik van meerdere sleutelvaults om isolatiegrenzen te creëren voor verschillende componenten. Als aanvallers één component compromitteren, kan die component geen controle krijgen over andere geheimen of de volledige werklast.

Toegangsbeheer en identiteit

Het beheren van wie en wat toegang heeft tot geheimen is essentieel voor het onderhouden van beveiliging.

  • Gebruik beheerde identiteiten: Beheerde identiteiten in Azure bieden een veilige manier voor applicaties om zich te authenticeren bij Azure-diensten zonder inloggegevens in code op te slaan. Schakel beheerde identiteiten in voor Azure-bronnen in om veilig toegang te krijgen tot Azure Key Vault en andere diensten, waardoor het handmatig afhandelen van geheimen minder nodig is. Deze aanpak minimaliseert het creëren van geheimen en verkleint het oppervlak voor potentiële datalekken, omdat het platform de inloggegevens beheert.

  • Gedetailleerd toegangsbeheer toepassen: volg het principe van minimale bevoegdheden door gedetailleerd toegangsbeheer toe te passen op uw geheimen. Gebruik Azure rolgebaseerde toegangscontrole (Azure RBAC) om ervoor te zorgen dat alleen geautoriseerde entiteiten toegang hebben tot specifieke geheimen. Controleer regelmatig de toegangsmachtigingen en werk deze bij om onbevoegde toegang te voorkomen. Implementeer aparte rollen zoals gebruiker, beheerder en auditor om de toegang tot geheimen te beheren. Deze praktijk helpt ervoor te zorgen dat alleen vertrouwde identiteiten het juiste niveau van toestemming hebben. Voor meer informatie, zie de Azure Key Vault RBAC-gids.

Levenscyclusbeheer van geheimen

Geheimen vereisen doorlopend beheer gedurende hun levenscyclus, van het maken tot het buiten gebruik stellen.

  • Regelmatig geheimen bijwerken: Geheimen zijn vatbaar voor lekkage of blootstelling na verloop van tijd. Roteer je geheimen regelmatig om het risico op ongeautoriseerde toegang te verkleinen. Je kunt geheimen roteren in Azure Key Vault voor bepaalde geheimen. Voor geheimen die niet automatisch kunnen roteren, stel een handmatig rotatieproces in en verwijder ze als ze niet meer in gebruik zijn. Automatiseer geheime rotatie en bouw redundantie in je geheimbeheer om ervoor te zorgen dat rotatie de beschikbaarheid van de service niet verstoort. Implementeer herkansingslogica en gelijktijdige toegangspatronen in je code om problemen tijdens het rotatievenster te minimaliseren.

  • Verspreid geheimen veilig: Wanneer je geheimen verspreidt, deel ze dan veilig binnen en buiten de organisatie. Gebruik tools die ontworpen zijn voor veilig delen en neem geheime herstelprocedures op in uw rampenherstelplannen. Als aanvallers een sleutel compromitteren of lekken, genereer deze dan onmiddellijk. Gebruik aparte sleutels voor elke consument in plaats van sleutels te delen, zelfs als consumenten vergelijkbare toegangspatronen hebben. Deze praktijk vereenvoudigt het beheer en intrekken van sleutels, zodat je gecompromitteerde sleutels kunt intrekken zonder andere gebruikers te beïnvloeden.

Bewaking en logboekregistratie

Continue monitoring detecteert verdachte activiteiten en ondersteunt de nalevingsvereisten.

  • Bewaking en logboektoegang: schakel logboekregistratie en bewaking in voor uw geheime beheersysteem om de toegang en het gebruik bij te houden. Gebruik Key Vault logging, Azure Monitor of Azure Event Grid om alle activiteiten die met je geheimen te maken hebben te monitoren. Monitoring geeft inzicht in wie toegang heeft tot uw geheimen en helpt verdacht gedrag of mogelijke beveiligingsincidenten te detecteren. Onderhoud gedetailleerde auditsporen voor het inspecteren en valideren van toegang tot geheimen, wat kan helpen identiteitsdiefstal te voorkomen, afwijzing te voorkomen en onnodige blootstelling te verminderen.

Servicespecifieke richtlijnen voor het verwerken van geheimen

Individuele diensten kunnen meer best practices en richtlijnen hebben voor het beschermen van geheimen. Enkele voorbeelden:

Volgende stappen

Het minimaliseren van beveiligingsrisico's is een gedeelde verantwoordelijkheid. Neem proactief stappen om je werklast te beveiligen. Zie Gedeelde verantwoordelijkheid in de cloud voor meer informatie.