Megosztás a következőn keresztül:


Javaslatok az alkalmazás titkos kulcsainak védelmére

Az Azure Well-Architected Framework biztonsági ellenőrzőlistára vonatkozó javaslatra vonatkozik:

SE:09 Az alkalmazás titkos kódjának védelme a tárolók megkeményítésével, a hozzáférés és a manipuláció korlátozásával, valamint a műveletek naplózásával. Futtasson egy megbízható és rendszeres rotációs folyamatot, amely improvizálhatja a vészhelyzetek forgatását.

Ez az útmutató az alkalmazások bizalmas információinak védelmére vonatkozó javaslatokat ismerteti. A titkos kódok megfelelő kezelése elengedhetetlen az alkalmazás, a számítási feladat és a kapcsolódó adatok biztonságának és integritásának fenntartásához. A titkos kódok helytelen kezelése adatsértésekhez, szolgáltatáskimaradáshoz, jogszabályi előírások megsértéséhez és egyéb problémákhoz vezethet.

A hitelesítő adatok, például az API-kulcsok, a nyílt engedélyezési (OAuth) jogkivonatok és az SSH-kulcsok titkos kulcsok. Egyes hitelesítő adatok, például az ügyféloldali OAuth-jogkivonatok futásidőben dinamikusan hozhatók létre. A dinamikus titkos kulcsokat ideiglenes jellegük ellenére is védeni kell. A nem hitelesítő adatok, például a tanúsítványok és a digitális aláírási kulcsok is érzékenyek lehetnek. A megfelelőségi követelmények miatt a általában titkosnak nem tekintett konfigurációs beállításokat alkalmazáskulcsként kell kezelni.

Meghatározások 

Kifejezés Definíció
Diplomák A titkosításhoz vagy visszafejtéshez a nyilvános kulcsokat tartalmazó digitális fájlok.
Igazolás A közzétevő vagy a fogyasztó személyazonosságának ellenőrzésére használt információk egy kommunikációs csatornán.
Hitelesítő adatok vizsgálata A forráskód ellenőrzésének folyamata annak érdekében, hogy a titkos kulcsok ne legyenek benne.
Titkosítás Az a folyamat, amellyel az adatok olvashatatlanná és titkos kóddal zárolva lesznek.
Kulcs Titkos kód, amely titkosított adatok zárolására vagy zárolásának feloldására szolgál.
Minimális jogosultságú hozzáférés Egy Teljes felügyelet alapelv, amelynek célja egy feladatfüggvény végrehajtásához szükséges engedélyek készletének minimalizálása.
Felügyelt identitás Az erőforrásokhoz rendelt és az Azure által felügyelt identitás.
Nemsecret Olyan információk, amelyek nem veszélyeztetik a számítási feladat biztonsági helyzetét, ha kiszivárog.
Változtatás A titkos kódok rendszeres frissítésének folyamata, hogy ha feltörik őket, csak korlátozott ideig legyenek elérhetők.
Titkos A rendszer bizalmas összetevője, amely megkönnyíti a számítási feladatok összetevői közötti kommunikációt. Ha kiszivárog, a titkos kódok feltörést okozhatnak.
X.509 A nyilvános kulcsú tanúsítványok formátumát meghatározó szabvány.

Fontos

Ne kezelje a nem titkosokat titkos kódokként. A titkos kódok olyan működési szigort igényelnek, amely szükségtelen a nem titkos kódok számára, és ez többletköltséget eredményezhet.

Az alkalmazáskonfigurációs beállítások, például az alkalmazás által használt API-k URL-címei nem biztonságosak. Ezeket az információkat nem szabad az alkalmazáskóddal vagy az alkalmazás titkos kódjával tárolni. Érdemes lehet dedikált konfigurációkezelő rendszert használni, például Azure-alkalmazás Konfigurációt a beállítások kezeléséhez. További információ: Mi Azure-alkalmazás konfiguráció?

Főbb tervezési stratégiák

A titkos kulcskezelési stratégiának a lehető legkisebbre kell csökkentenie a titkos kulcsokat, és a platformfunkciók kihasználásával integrálnia kell őket a környezetbe. Ha például felügyelt identitást használ az alkalmazáshoz, a hozzáférési adatok nem ágyazódnak be kapcsolati sztring, és biztonságosan tárolhatók az adatok egy konfigurációs fájlban. A titkos kódok tárolása és kezelése előtt vegye figyelembe a következő aggályos területeket:

  • A létrehozott titkos kulcsokat szigorú hozzáférés-vezérléssel biztonságos tárolóban kell tartani.

  • A titkos kulcsok rotálása proaktív művelet, míg a visszavonás reaktív.

  • Csak megbízható identitások férhetnek hozzá a titkos kódokhoz.

  • A titkos kódokhoz való hozzáférés ellenőrzéséhez és ellenőrzéséhez auditnaplót kell fenntartania.

Ezen pontok köré olyan stratégiát hozhat létre, amely segít megelőzni az identitáslopást, elkerülni az elutasítást, és minimalizálni a szükségtelen információknak való kitettséget.

Számítási feladatok titkos kulcsának kezelése

Ha lehetséges, kerülje a titkos kulcsok létrehozását. A felelősség platformra történő delegálásának módjai. Használhatja például a platform beépített felügyelt identitásait a hitelesítő adatok kezeléséhez. Kevesebb titkos kulcs esetén csökken a felület, és kevesebb időt töltenek a titkos kódok kezelésével.

Javasoljuk, hogy a kulcsoknak három különböző szerepkörük legyen: felhasználó, rendszergazda és auditor. A szerepkör-megkülönböztetés segít biztosítani, hogy csak a megbízható identitások férhessenek hozzá a titkos kódokhoz a megfelelő szintű engedélyekkel. A fejlesztőket, rendszergazdákat és más releváns munkatársakat a titkos kódok kezelésének és a biztonsági ajánlott eljárások fontosságának megismertetése.

Előmegosztott kulcsok

A hozzáférést úgy szabályozhatja, hogy különböző kulcsokat hoz létre az egyes felhasználók számára. Az ügyfél például egy külső API-val kommunikál egy előre megadott kulccsal. Ha egy másik ügyfélnek ugyanahhoz az API-hoz kell hozzáférnie, egy másik kulcsot kell használnia. Ne ossza meg a kulcsokat akkor sem, ha két fogyasztó azonos hozzáférési mintákkal vagy szerepkörökben rendelkezik. A fogyasztói hatókörök idővel változhatnak, és nem frissítheti egymástól függetlenül az engedélyeket, és nem különböztetheti meg a használati mintákat a kulcsok megosztása után. A különálló hozzáférés megkönnyíti a visszavonást is. Ha egy felhasználó kulcsa sérült, egyszerűbb visszavonni vagy elforgatni a kulcsot anélkül, hogy más felhasználókat érintenének.

Ez az útmutató különböző környezetekre vonatkozik. Ezt a kulcsot nem szabad használni az előkészítési és az éles környezetekben sem. Ha ön a felelős az előmegosztott kulcsok létrehozásáért, győződjön meg arról, hogy több kulcsot hoz létre több ügyfél támogatásához.

További információ: Identitás- és hozzáférés-kezelésre vonatkozó javaslatok.

Titkos tárterület

Egy titkos kódkezelő rendszer, például az Azure Key Vault használatával titkos kulcsokat tárolhat egy edzett környezetben, titkosíthatja a inaktív és az átvitel közbeni titkosítást, valamint naplózhatja a hozzáférést és a titkos kulcsok módosításait. Ha alkalmazáskulcsokat kell tárolnia, tartsa őket a forráskódon kívül a könnyű elforgatás érdekében.

A tanúsítványokat csak a Key Vaultban vagy az operációs rendszer tanúsítványtárolójában szabad tárolni. Az X.509-tanúsítvány tárolása például nem ajánlott PFX-fájlban vagy lemezen. Ha magasabb szintű biztonságra van szüksége, válassza azokat a rendszereket, amelyek hardveres biztonsági modullal (HSM) rendelkeznek szoftveralapú titkos kulcstárolók helyett.

Kompromisszum: A HSM-megoldásokat magasabb költséggel kínáljuk. A hozzáadott biztonsági rétegek miatt az alkalmazás teljesítményére is hatással lehet.

A dedikált titkos kódkezelő rendszer megkönnyíti az alkalmazás titkos kulcsainak tárolását, terjesztését és hozzáférésének szabályozását. Csak az engedélyezett identitások és szolgáltatások férhetnek hozzá a titkos tárakhoz. A rendszerhez való hozzáférés engedélyekkel korlátozható. Engedélyek hozzárendelésekor mindig alkalmazza a minimális jogosultsági megközelítést.

A hozzáférést titkos szinten is szabályoznia kell. Minden titkos kódnak csak egyetlen erőforrás-hatókörhöz kell hozzáférése. Hozzon létre elkülönítési határokat, hogy az összetevők csak a szükséges titkos kulcsokat használhassák. Ha egy izolált összetevő biztonsága sérül, nem tudja átvenni az irányítást más titkos kulcsok és potenciálisan a teljes számítási feladat felett. A titkos kulcsok elkülönítésének egyik módja több kulcstartó használata. Az extra kulcstartók létrehozásának nincs többletköltsége.

A titkos hozzáférés naplózásának és figyelésének megvalósítása. Naplózza, hogy ki fér hozzá a titkos kódokhoz, és mikor azonosítja a jogosulatlan vagy gyanús tevékenységeket. A biztonsági szempontból történő naplózással kapcsolatos információkért tekintse meg a biztonsági monitorozásra és fenyegetésészlelésre vonatkozó ajánlásokat.

Titkos kulcsok rotálása

Legyen egy folyamat, amely fenntartja a titkos higiéniát. A titkos kódok hosszúsága befolyásolja a titkos kód kezelését. A támadási vektorok csökkentése érdekében a titkos kulcsokat a lehető leggyakrabban ki kell vonni, és új titkos kódokra kell cserélni.

Gondosan kezelje az OAuth hozzáférési jogkivonatokat, figyelembe véve azok élettartamát. Fontolja meg, hogy az expozíciós időszakot rövidebb időszakra kell-e módosítani. A frissítési jogkivonatokat biztonságosan kell tárolni, és csak korlátozott mértékben szabad az alkalmazásnak kitéve. A megújított tanúsítványoknak új kulcsot is használniuk kell. További információ a frissítési jogkivonatokról: Biztonságos OAuth 2.0 A frissítési jogkivonatok nevében.

A titkos kulcsokat az élettartamuk lejárta után cserélje le, a számítási feladat már nem használja őket, vagy ha feltörték őket. Ezzel szemben ne vonja ki az aktív titkos kulcsokat, hacsak nem vészhelyzetről van szó. A titkos kódok állapotát a hozzáférési naplók megtekintésével határozhatja meg. A titkos kulcsok rotálási folyamatai nem befolyásolhatják a számítási feladat megbízhatóságát vagy teljesítményét. Használjon olyan stratégiákat, amelyek redundanciát építenek ki a titkos kódokban, a fogyasztókban és a hozzáférési módszerekben a zökkenőmentes rotáció érdekében.

További információ arról, hogy az Azure Storage hogyan kezeli a rotációt: Fiókhozzáférés-kulcsok kezelése.

A rotációs folyamatokat emberi beavatkozás nélkül kell automatizálni és üzembe helyezni. A titkos kulcsok tárolása egy olyan titkos kódtárban, amely natív módon támogatja a rotációs fogalmakat, leegyszerűsítheti ezt a működési feladatot.

Számítási feladatok titkos kulcsának biztonságos használata

Titkos kódgenerátorként vagy operátorként biztonságosan el kell tudnia osztani a titkos kulcsokat. Számos szervezet használ eszközöket a titkos kulcsok biztonságos megosztására mind a szervezeten belül, mind a külső partnerek számára. Eszköz hiányában rendelkeznie kell egy olyan eljárással, amely megfelelően átadja a hitelesítő adatokat a jogosult címzetteknek. A vészhelyreállítási terveknek titkos helyreállítási eljárásokat kell tartalmazniuk. Legyen egy folyamat olyan helyzetekre, amikor egy kulcs sérül vagy kiszivárog, és igény szerint újra kell létrehozni. A titkos kódok használatakor vegye figyelembe az alábbi ajánlott biztonsági eljárásokat:

A kemény bekódolás megakadályozása

A kódösszetevőkben, például az alkalmazáskódokban, a konfigurációs fájlokban és a build-üzembe helyezési folyamatokban ne legyen nehezen kódtitkok statikus szövegként . Ez a magas kockázatú eljárás sebezhetővé teszi a kódot, mert a titkos kódok mindenki számára elérhetők, akik olvasási hozzáféréssel rendelkezik.

Ezt a helyzetet elkerülheti a felügyelt identitások használatával, hogy ne kelljen hitelesítő adatokat tárolnia. Az alkalmazás a hozzárendelt identitással hitelesít más erőforrásokon az identitásszolgáltatón (IdP) keresztül. A fejlesztés során hamis titkos kódokat tartalmazó, nem gyártási környezetekben tesztelheti a valódi titkos kulcsok véletlen expozícióját.

Olyan eszközöket használjon, amelyek rendszeresen észlelik az alkalmazáskódban közzétett titkos kulcsokat , és összetevőket építenek ki. Ezeket az eszközöket git-előmegrendelési horogként is hozzáadhatja, amelyek a forráskód véglegesítése előtt hitelesítő adatokat keresnek. Rendszeresen tekintse át és fertőtlenítse az alkalmazásnaplókat, hogy ne legyenek véletlenül titkos kulcsok rögzítve. Az észlelést a társértékelésekkel is megerősítheti.

Feljegyzés

Ha a vizsgálati eszközök felfedeznek egy titkos kulcsot, ezt a titkos kulcsot feltörtnek kell tekinteni. Ezt vissza kell vonni.

Válasz a titkos kulcsok rotálására

Számítási feladat tulajdonosaként ismernie kell a titkos kulcsok rotálási tervét és szabályzatát, hogy az új titkos kulcsokat a felhasználók minimális zavarása mellett beépíthesse. Ha egy titkos kód el van forgatva, előfordulhat, hogy a régi titkos kód érvénytelen, de az új titkos kód nem lett elhelyezve. Ebben az ablakban az alkalmazás által elérni kívánt összetevő nem nyugtázza a kéréseket. Ezeket a problémákat minimalizálhatja, ha újrapróbálkozó logikát épít be a kódba. Egyidejű hozzáférési mintákat is használhat, amelyek lehetővé teszik, hogy több hitelesítő adattal rendelkezzen, amelyek biztonságosan módosíthatók anélkül, hogy befolyásolnák egymást.

Dolgozzon az operatív csapattal, és legyen része a változáskezelési folyamatnak. A hitelesítő adatok tulajdonosainak tudatnia kell, ha az alkalmazás egy olyan részét leszereli, amely már nem szükséges hitelesítő adatokat használ.

Integrálja a titkos kulcsok lekérését és konfigurációját az automatizált üzembehelyezési folyamatba. A titkos kulcsok lekérése segít biztosítani, hogy a titkos kulcsok automatikusan lekérhetők legyenek az üzembe helyezés során. Titkos kódinjektálási mintákkal titkos kódokat is beszúrhat az alkalmazáskódba vagy a konfigurációba futásidőben, ami megakadályozza, hogy a titkos kulcsok véletlenül ki legyenek téve a naplóknak vagy a verziókövetésnek.

Az Azure megkönnyítése

Titkos kulcsok tárolása a Key Vault használatával. Titkos kulcsokat tárol az Azure titkos kódkezelő rendszerében, a Key Vaultban, az Azure Managed HSM-ben és más helyeken. További információ: A megfelelő kulcskezelési megoldás kiválasztása.

Identitásalapú hozzáférés-vezérlés integrálása. A Microsoft Entra-azonosítók és a felügyelt identitások segítenek minimalizálni a titkos kódok szükségességét. A Microsoft Entra ID rendkívül biztonságos és használható felületet biztosít a hozzáférés-vezérléshez a kulcsforgatás kezelésére szolgáló beépített mechanizmusokkal, a rendellenességek és egyebek mellett.

Az Azure szerepköralapú hozzáférés-vezérlés (RBAC) használatával engedélyeket rendelhet hozzá egy adott hatókörhöz tartozó felhasználókhoz, csoportokhoz és alkalmazásokhoz.

Hozzáférési modell használatával vezérelheti a kulcstartókat, engedélyeket és titkos kulcsokat. További információ: Access-modell áttekintése.

Titkos kódok észlelésének implementálása. Integrálhatja a számítási feladatban a gyanús tevékenységeket észlelő folyamatokat, és rendszeresen ellenőrzi, hogy vannak-e közzétett kulcsok az alkalmazás kódjában. Néhány lehetőség a következők:

Ne tároljon kulcsokat és titkos kulcsokat semmilyen környezettípushoz az alkalmazáskonfigurációs fájlokban, illetve a folyamatos integrációs és folyamatos kézbesítési (CI/CD) folyamatokban. A fejlesztőknek Visual Studio Connected Services-et vagy csak helyi fájlokat kell használniuk a hitelesítő adatok eléréséhez.

Biztonsági ellenőrzőlista

Tekintse meg a javaslatok teljes készletét.