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ájára vonatkozó javaslatra vonatkozik:

SE:09 Az alkalmazás titkos kulcsának védelméhez korlátozza a tárterületet, korlátozza a hozzáférést és a manipulációt, valamint naplózza ezeket a műveleteket. Futtasson egy megbízható és rendszeres rotációs folyamatot, amely rögtönzheti a vészhelyzetek rotációit.

Ez az útmutató a bizalmas adatok alkalmazásokban való 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 nem megfelelő kezelése adatsértésekhez, szolgáltatáskimaradásokhoz, 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, az OAuth-jogkivonatok és a Secure Shell- (SSH-) kulcsok titkos kulcsok. Bizonyos hitelesítő adatok, például az ügyféloldali OAuth-jogkivonatok dinamikusan hozhatók létre futásidőben. 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 bizalmasak lehetnek. A megfelelőségi követelmények miatt a jellemzően nem titkosnak tekintett konfigurációs beállításokat alkalmazáskulcsként kell kezelni.

Definíciók 

Időszak Definíció
Tanúsítványok Titkosításhoz vagy visszafejtéshez szükséges 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ése annak érdekében, hogy a titkos kódok ne legyenek benne.
Titkosítás Az a folyamat, amellyel az adatok olvashatatlanná és titkos kóddal zárolhatók.
Kulcs Titkosított adatok zárolására vagy zárolásának feloldására használt titkos kód.
Minimális jogosultsági szintű hozzáférés Egy Teljes felügyelet elv, 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árognak.
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árognak, a titkok behatolást okozhatnak.
X.509 A nyilvános kulcsú tanúsítványok formátumát meghatározó szabvány.

Fontos

Ne kezelje titkosként a nem titkosokat. A titkos kódokhoz olyan működési szigorra van szükség, amely szükségtelen a nem titkos kódok esetében, és ez többletköltségeket 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. Fontolja meg egy dedikált konfigurációkezelő rendszer, például a Azure App Configuration használatát a beállítások kezeléséhez. További információ: Mi a Azure App Configuration?.

Kulcsfontosságú tervezési stratégiák

A titkos kódkezelé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 lesznek beágyazva a kapcsolati sztringekbe, és biztonságosan tárolhatók egy konfigurációs fájlban. A titkos kódok tárolása és kezelése előtt vegye figyelembe az alábbi szempontokat:

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

  • 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é stratégiát alakíthat ki, amely segít megelőzni a személyazonosság ellopását, elkerülni a megrovást, és minimálisra csökkenteni az információknak való szükségtelen kitettséget.

Biztonságos eljárások a titkos kódok kezeléséhez

Ha lehetséges, kerülje a titkos kódok 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 kód esetén csökken a felület, és kevesebb időt tölt 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. Tájékoztassa a fejlesztőket, rendszergazdákat és más releváns munkatársakat a titkos kódok kezelésének fontosságáról és az ajánlott biztonsági eljárásokról.

Előmegosztott kulcsok

A hozzáférést úgy szabályozhatja, hogy minden egyes fogyasztóhoz külön kulcsokat hoz létre. Az ügyfél például egy előre megadott kulcs használatával kommunikál egy külső API-val. 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ó ugyanazokkal a hozzáférési mintákkal vagy szerepkörökkal 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önböző hozzáférések szintén megkönnyítik a visszavonást. Ha egy fogyasztó kulcsát feltörik, egyszerűbb visszavonni vagy elforgatni a kulcsot anélkül, hogy ez hatással lenne a többi fogyasztóra.

Ez az útmutató különböző környezetekre vonatkozik. Nem szabad ugyanazt a kulcsot használni az üzem előtti és az éles környezetekben sem. Ha Ön 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ó: Javaslatok az identitás- és hozzáférés-kezeléshez.

Titkos kulcsok tárolása

Az Azure Key Vault-hoz hasonló titkoskód-kezelő rendszer használatával a titkos kulcsokat rögzített környezetben tárolhatja, titkosíthatja inaktív állapotban és átvitel közben, 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ű rotálás érdekében.

A tanúsítványokat csak Key Vault vagy az operációs rendszer tanúsítványtárolójában szabad tárolni. Nem ajánlott például X.509-tanúsítványt PFX-fájlban vagy lemezen tárolni. 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 kulcstárakhoz. A rendszerhez való hozzáférés engedélyekkel korlátozható. Az engedélyek hozzárendelésekor mindig a minimális jogosultsági szintű megközelítést alkalmazza.

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 kódok é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ása nem jár többletköltséggel.

A titkos hozzáférés naplózásának és figyelésének implementálása. Naplózza, hogy ki fér hozzá a titkos kódokhoz, és mikor kell azonosítani a jogosulatlan vagy gyanús tevékenységeket. További információ a biztonsági szempontból történő naplózásról: Javaslatok a biztonsági monitorozásra és a fenyegetésészlelésre.

Titkos kulcsok rotálása

Legyen egy folyamat, amely fenntartja a titkos higiéniát. A titkos kód hosszú élettartamát befolyásolja a titkos kód kezelése. A támadási vektorok csökkentése érdekében a titkos kulcsokat a lehető leggyakrabban ki kell vonni, és új titkos kulcsokra 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 az alkalmazásnak való kitettség korlátozása mellett. 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ód á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álás érdekében.

További információ arról, hogy az Azure Storage hogyan kezeli a rotációt: Fiókelérési 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ódkezelő tárolóban, amely natív módon támogatja a rotációs fogalmakat, leegyszerűsítheti ezt az üzemeltetési feladatot.

Biztonságos eljárások titkos kódok használatához

Titkos kódgenerátorként vagy operátorként biztonságos módon kell tudnia terjeszteni a titkos kódokat. 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. Olyan helyzetekben, amikor egy kulcs biztonsága sérül vagy kiszivárog, és igény szerint újra létre kell hozni. A titkos kódok használatakor vegye figyelembe az alábbi ajánlott biztonsági eljárásokat:

A keménykó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-üzembehelyezési folyamatokban ne legyen statikus szöveg a kód titkos kódja. Ez a magas kockázatú gyakorlat sebezhetővé teszi a kódot, mivel a titkos kódok mindenki számára elérhetők, akik olvasási hozzáféréssel rendelkezik.

Ezt a helyzetet elkerülheti, ha felügyelt identitásokat használ, hogy ne kelljen hitelesítő adatokat tárolnia. Az alkalmazás a hozzárendelt identitásával hitelesíti magát más erőforrásokon az identitásszolgáltatón (IDP) keresztül. Tesztelés nem éles környezetekben hamis titkos kódokkal a fejlesztés során, hogy megakadályozza a valódi titkos kódok véletlen felfedését.

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

Megjegyzés

Ha a vizsgálati eszközök felfedeznek egy titkos kódot, ezt a titkos kódot feltörtnek kell tekinteni. 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 a felhasználók számára minimális fennakadások mellett új titkos kulcsokat is beépíthessenek. A titkos kód elforgatásakor előfordulhat, hogy a régi titkos kód érvénytelen, de az új titkos kód nem lett elhelyezve. Ebben az időszakban az alkalmazás által elérni próbált összetevő nem nyugtázza a kéréseket. Ezeket a problémákat minimalizálhatja, ha újrapróbálkozési logikát épít 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 ez hatással lenne egymásra.

Együttműködhet az üzemeltetési csapattal, és részt vehet a változáskezelési folyamatban. Értesítenie kell a hitelesítő adatok tulajdonosait, ha az alkalmazás egy olyan részét szereli le, amely már nem szükséges hitelesítő adatokat használ.

Integrálhatja a titkos kulcsok lekérését és konfigurációját az automatizált üzembehelyezési folyamatba. A titkos kódok lekérése segít biztosítani, hogy a titkos kulcsok automatikusan beolvashatók legyenek az üzembe helyezés során. Titkos kódinjektálási mintákkal titkos kódokat is beszúrhat az alkalmazás kódjába vagy konfigurációjá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.

Azure-beli segítségnyújtás

Titkos kulcsok tárolása Key Vault használatával. Titkos kódokat tárol az Azure titkoskód-kezelő rendszerében, Key Vault, 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. Microsoft Entra azonosítók és felügyelt identitások segítenek minimalizálni a titkos kódok szükségességét. Microsoft Entra id rendkívül biztonságos és használható felületet biztosít a hozzáférés-vezérléshez, beépített mechanizmusokkal a kulcsrotálás kezeléséhez, a rendellenességek kezeléséhez és sok máshoz.

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

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 felfedés észlelésének implementálása. Integrálja a munkafolyamatokat a számítási feladatba, amelyek észlelik a gyanús tevékenységeket, és rendszeres időközönként ellenőrzik a közzétett kulcsokat 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 Csatlakoztatott szolgáltatásokat 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.