Bevált módszerek az API kulcsok biztonságos tárolására

Korábban láttam, hogy sokan használják a Git adattárakat a projektjeikkel kapcsolatos érzékeny információk tárolására.

Az utóbbi időben láttam, hogy egyesek bejelentették, hogy API kulcsokat tárolnak a privát GitHub tárhelyeiken. Azért írom ezt a cikket, mert az embereknek meg kell érteniük az API kulcsok kódjával történő tárolásának kockázatát.

Ez a cikk nem célja az API-kulcsok tárolásával kapcsolatos problémák állandó megoldása. Ehelyett saját elemzésem a problémáról, és javaslataim a probléma megoldására.

Szóval, pontosan mi a probléma az érzékeny információk tárolásával a kód közelében egy Git-táron?

Miért ne tárolhatná az API kulcsokat a Git tárolókban?

Az API kulcsok vagy bármely más érzékeny információ tárolása a gittárolóban mindenáron kerülendő. Még akkor sem, ha az adattár privát, nem szabad biztonságos helynek tekintenie a bizalmas információkat.

Kezdjük azzal, hogy miért nem jó ötlet az API kulcsokat nyilvánosgit tárhelyeken tárolni .

Jellege szerint egy nyilvános gitadattárhoz bárki hozzáférhet.

Más szavakkal, bárki, aki rendelkezik internetkapcsolattal, hozzáférhet egy nyilvános gitadattár tartalmához . Nem csak ezt, de a tárházban található összes kódot is átböngészhetik, és akár futtathatják is. Ha egy API-kulcsot egy nyilvános tárhelyen tárol, akkor a nyílt helyen tesz közzé, hogy bárki láthassa.

A GitHub-on a client_secret nemrégiben végzett keresése azt mutatta, hogy több mint egy 30.000 olyan kötelezettségvállalás létezik, amely potenciálisan felfed egy API kulcsot és titkot. Bizonyos esetekben csak akkor másolja és illeszti be a kódot, hogy azonnal hozzáférjen az API-hoz.

Ez a probléma annyira fontos, hogy egyes vállalatok erőforrásokba fektetnek annak biztosítására, hogy ne legyenek kiszivárgott API-kulcsok és titkok.

Tavaly a Slack megkezdte a kitett API-tokenek keresését és proaktív érvénytelenítését. Ez a művelet megakadályozza a rosszindulatú hozzáférést a Slack fiókjaihoz, de valószínűleg nem találja meg az összes kiszivárgott tokent.

Tehát ez a nyilvános Git adattárakban történik. Mi a helyzet a saját is? Miért kérdés?

A GitHub, a GitLab és a Bitbucket szolgáltatásain tárolt privát Git-adattárak más típusú kockázatnak vannak kitéve. Ha egy harmadik féltől származó alkalmazást integrál az említett szolgáltatások egyikébe, akkor lehet, hogy megnyitja privát tárházát az említett harmadik felek előtt. Ezek az alkalmazások hozzáférhetnek a privát tárházakhoz, és elolvashatják a bennük található információkat.

Noha ez önmagában nem jelent kockázatot, képzeljük el, ha az egyik ilyen alkalmazás sebezhetővé válik a támadók számára. Ha a támadók illetéktelen hozzáférést kapnak a harmadik féltől származó alkalmazások egyikéhez, hozzáférhetnek az Ön érzékeny adataihoz, beleértve az API-kulcsokat és a titkokat.

Szóval, hol kell tárolni az API kulcsokat?

Számos alternatíva létezik az API kulcsok és titkok biztonságos tárolására. Néhány közülük lehetővé teszi a Git-adattár használatát és a bizalmas adatok titkosítását. Más eszközök kifinomultabbak, és az üzembe helyezési munkafolyamat részeként visszafejtik az érzékeny információkat. Nézzünk meg néhány elérhető megoldást.

git-remote-gcrypt

Az első megoldás lehetővé teszi egy teljes Git-tároló titkosítását. A git-remote-gcrypt ezt úgy teszi meg, hogy funkcionalitást ad hozzá a Git távoli segítőkhöz, így elérhetővé válik egy új titkosított szállítási réteg. A felhasználóknak csak egy új titkosított távvezérlőt kell beállítaniuk és kódot kell belökniük.

Olvassa el, ha olyan finomabb megoldást keres, amely lehetővé teszi az egyes fájlok titkosítását.

git-secret

git-secretegy olyan eszköz, amely a helyi gépen működik, és titkosít bizonyos fájlokat, mielőtt azokat a lerakatba tolná. A színfalak mögött git-secretegy shell szkript található, amely a GNU Privacy Guard (GPG) protokollt használja az esetlegesen érzékeny információkkal rendelkező fájlok titkosításához és visszafejtéséhez.

git-crypt

Egy másik megoldás az git-crypt. Működésében nagyon hasonlít a git-secret-re, de érdekes különbségei vannak.

Először észre kell venni git-crypt, hogy ez egy bináris futtatható fájl, és nem shell parancsfájl, ahogy a git-secret is. Ha bináris futtatható, az azt jelenti, hogy a használatához először össze kell fordítanod, vagy bináris disztribúciót kell találnod a géped számára.

Ha Mac-et használ, akkor szerencsés, mert a HomeBrew git-crypttelepítésre kész csomagot kínál. Csak annyit kell tennie, hogy futtatja a sörfőzést git-cryptegy terminálon.

Fekete doboz

A BlackBox a Stack Overflow által létrehozott eszköz. Ez a cég áll az olyan népszerű Q & A közösségek mögött, mint maga a Stack Overflow, a Server Fault és a Super User. A BlackBox egy robusztus eszköz, mivel működik a Gittel, valamint más verzióvezérlő rendszerekkel, mint például a Mercurial és a Subversion.

Támogatja a kis karakterláncok és nemcsak a teljes fájlok titkosítását. Ezt teszi, amikor a Puppet-nel dolgozik, és a Puppet Hiera-t használja, egy kulcsérték-kereső eszközt a konfigurációs adatokhoz.

Az egyedi karakterláncok titkosításának és visszafejtésének képességével a BlackBox nagyszerű megoldást kínál az API kulcsok és titkok biztonságára.

Heroku konfiguráció és konfigurálás Vars

Ha a Herokuval dolgozik, ne tároljon semmilyen bizalmas információt, például API kulcsokat és titkokat a Git tárhelyein. A Heroku olyan megoldást kínál, amely lehetővé teszi a konfigurációs változók beállítását.

Az alkalmazás futás közben elérheti az adott konfigurációs változók tartalmát a megfelelő környezeti változók elérésével. Annak ellenére, hogy az értékek nincsenek titkosítva, ez a megoldás lehetővé teszi, hogy ne használja a Git adattárat az API kulcsok tárolásához.

A Dokku, egy olyan nyílt forráskódú megoldás, mint a Heroku, ugyanazokat a képességeket kínálja.

Docker titkai

A lehetséges megoldások spektrumának végén a Docker titkai találhatók. Ezt a megoldást a Docker vezette be 2017 februárjában. Azóta népszerűségre tett szert.

A Docker titkok lehetővé teszik a titkosított változók meghatározását, és futás közben elérhetővé teszik azokat az egyes szolgáltatások számára. A titkokat a szállítás és a nyugalom alatt is titkosítják.

Ez a megközelítés teszi a Docker titkait tökéletes megoldássá az API kulcsok és titkok biztonságos és titkosított tárolásához és használatához.

Összegzés

Mostanra tisztában kell lennie az érzékeny információk, például az API-kulcsok és a titkok nyilvános és magán Git-tárolókban történő tárolásának veszélyeivel.

A tárolók lehetséges kitettségének megértése kulcsfontosságú az információszivárgásokkal kapcsolatos kockázatok felmérésében és enyhítésében.

Ez a cikk néhány különböző megoldást is javasol, amelyek lehetővé teszik az API kulcsok és titkok titkosítását, hogy biztonságosan használhassa a kódtárakat.

Biztos vagyok benne, hogy vannak még olyan megoldások, amelyek segíthetnek elérni ugyanazokat az eredményeket.