Skydda det som är avgörande för din verksamhet.
När man hanterar containrar, Kubernetes, molntjänster och känslig information finns det många aspekter att överväga. Det är viktigt att tillämpa bästa praxis inom identitets- och åtkomsthantering samt att välja lämpliga verktyg för att hantera dessa uppgifter.
Oavsett om du är utvecklare eller systemadministratör är det viktigt att ha rätt verktyg för att säkerställa att dina miljöer är skyddade. Applikationer behöver tillgång till konfigurationsdata för att fungera korrekt. Medan mycket av denna data inte är känslig, finns det viss information som måste skyddas. Dessa känsliga strängar är vad vi kallar hemligheter.
Vi hoppas att du inte fortfarande hanterar dina hemligheter i GitHub.
Om du bygger en pålitlig applikation är det troligt att dina funktioner kräver tillgång till hemligheter eller annan känslig information.
Dessa kan inkludera:
- API-nycklar
- Databasinloggningsuppgifter
- Krypteringsnycklar
- Känsliga konfigurationsinställningar (t.ex. e-postadresser, användarnamn, felsökningsflaggor)
- Lösenord
Att hantera dessa hemligheter på ett säkert sätt kan visa sig vara en utmaning. Här är några tips för utvecklare och systemadministratörer:
Åtgärda beroenden i funktioner
Det är viktigt att hålla koll på vilka bibliotek som används i dina funktioner och regelbundet övervaka dem för att upptäcka sårbarheter.
Använd API-gateways som en säkerhetsbuffert
Exponera inte funktioner direkt för användarinteraktion. Använd API-gatewayfunktioner från dina molntjänstleverantörer för att lägga till ett extra säkerhetslager.
Säkra och verifiera data under överföring
Säkerställ att du använder HTTPS för en säker kommunikationskanal och verifierar SSL-certifikat för att skydda fjärridentiteter.
Följ regler för säker kodning
Eftersom servrar inte är det primära målet för attacker, kommer angripare att fokusera på applikationslagret. Därför är det avgörande att skydda din kod noggrant.
Hantera hemligheter i säker lagring
Känslig information kan lätt läcka ut, och föråldrade autentiseringsuppgifter är sårbara för attacker om du inte använder lämpliga hemlighetshanteringslösningar. Lagra aldrig hemligheter i applikationssystemet, miljövariabler eller källkodshanteringssystem.
Nyckelhantering i samarbetsmiljöer är ofta komplicerad på grund av brist på expertis och resurser. Vissa företag väljer att bädda in krypteringsnycklar och andra programvaruhemligheter direkt i applikationens källkod, vilket ökar risken för exponering.
Bristen på färdiga lösningar har lett till att många företag har försökt att utveckla sina egna verktyg för hemlighetshantering. Här är några verktyg du kan använda för att uppfylla dina behov.
Vault
HashiCorp Vault är ett verktyg som ger en säker plats att lagra och komma åt hemligheter.
Det erbjuder ett enhetligt gränssnitt för hantering av hemligheter med strikt åtkomstkontroll och omfattande revisionsloggar. Vault är designat för att säkra användarapplikationer och databaser, vilket minskar attackytan och tiden för ett potentiellt intrång.
Det tillhandahåller ett API som styr åtkomst till hemligheter baserat på definierade policyer. Alla som använder API:et måste autentisera sig och ser endast de hemligheter de har tillstånd att se.
Vault krypterar data med 256-bitars AES med GCM.
Det kan lagra data i olika backends som Amazon DynamoDB, Consul och många andra. Vault stödjer loggning till en lokal fil för revision, en Syslog-server eller direkt till en socket. Vault loggar information om klienten som vidtog åtgärden, klientens IP-adress, den vidtagna åtgärden och tidpunkten då den utfördes.
Start och omstart kräver alltid att en eller flera operatörer ”låser upp” Vault. Det fungerar huvudsakligen med tokens. Varje token är kopplad till en policy som begränsar de tillåtna åtgärderna och vägarna. De viktigaste funktionerna i Vault är:
- Det krypterar och dekrypterar data utan att lagra den.
- Vault kan generera hemligheter på begäran för vissa operationer, som t.ex. AWS- eller SQL-databaser.
- Stödjer replikering över flera datacenter.
- Har inbyggt skydd för hemlig återkallelse.
- Fungerar som ett säkert arkiv för hemligheter med detaljerad åtkomstkontroll.
AWS Secrets Manager
Du förväntade dig att AWS skulle finnas på den här listan, eller hur?
AWS har en lösning för nästan alla problem.
AWS Secrets Manager gör det enkelt att rotera, hantera och hämta databasautentiseringsuppgifter, API-nycklar och andra lösenord. Med Secrets Manager kan du säkra, analysera och hantera hemligheter som krävs för att få tillgång till AWS Cloud-funktioner, tredjepartstjänster och resurser på plats.
Secrets Manager ger dig möjlighet att hantera åtkomst till hemligheter med detaljerade behörigheter. De viktigaste funktionerna i AWS Secrets Manager är:
- Krypterar hemligheter i vila med hjälp av krypteringsnycklar.
- Dekrypterar hemligheten och sänder den sedan säkert över TLS.
- Tillhandahåller kodexempel som hjälper till att anropa Secrets Manager API:er.
- Har cachningsbibliotek på klientsidan för att förbättra tillgängligheten och minska fördröjningen vid användning av hemligheter.
- Möjliggör konfigurering av Amazon VPC-slutpunkter (Virtual Private Cloud) för att hålla trafiken inom AWS-nätverket.
Akeyless Vault
Akeyless Vault är en enhetlig SaaS-baserad plattform för end-to-end-hantering av hemligheter som skyddar alla typer av autentiseringsuppgifter, både statiska och dynamiska, inklusive certifikatautomatisering och krypteringsnycklar. Den erbjuder även en unik lösning för att säkra fjärråtkomst (nollförtroende) till alla resurser i äldre miljöer, multi-molnmiljöer och hybridmiljöer.
Akeyless skyddar hemligheter och nycklar med en inbyggd FIPS 140-2 certifierad och patenterad teknik; de har noll kunskap om sina kunders hemligheter och nycklar.
De viktigaste funktionerna inkluderar:
- Globalt tillgänglig, SaaS-baserad plattform som erbjuder inbyggd hög tillgänglighet (HA) och katastrofåterställning (DR) genom att utnyttja en molnbaserad arkitektur ovanpå en multiregion- och multi-molntjänst.
- Avancerad hemlighetshantering som tillhandahåller ett säkert valv för statiska och dynamiska hemligheter, inklusive lösenord, autentiseringsuppgifter, API-nycklar, tokens osv.
- Akeyless Vault möjliggör provisionering och injicering av alla typer av hemligheter i dina servrar, applikationer och arbetsbelastningar, med hjälp av ett brett utbud av plugins för att ansluta till DevOps- och IT-plattformar som CI/CD, konfigurationshantering och orkestreringsverktyg som Kubernetes & Docker.
Snabbare tid till produktion tack vare:
- SaaS – ingen distribution, installation eller underhåll krävs.
- Omedelbar onboarding med automatisk migrering av hemligheter från befintliga lagringsplatser.
Plattformen stödjer ytterligare två grundpelare:
- Nollförtroende-applikationsåtkomst (Remote Access) genom att tillhandahålla enhetlig autentisering och ”just-in-time”-autentiseringsuppgifter, vilket möjliggör skydd av applikationer och infrastruktur.
- Kryptering som en tjänst, som låter kunder skydda känslig person- och affärsdata genom att använda avancerad FIPS 140-2-certifierad kryptering på applikationsnivå.
Keywhiz
Square Keywhiz är ett verktyg för hantering och delning av infrastrukturhemligheter, GPG-nyckelringar och databasautentiseringsuppgifter, inklusive TLS-certifikat och -nycklar, symmetriska nycklar, API-tokens och SSH-nycklar för externa tjänster.
Automatiseringen i Keywhiz gör att du sömlöst kan distribuera och konfigurera de viktigaste hemligheterna för dina tjänster, vilket skapar en konsekvent och säker miljö. Nyckelfunktionerna i Keywhiz är:
- Keywhiz Server tillhandahåller JSON API:er för att hämta och hantera hemligheter.
- Det lagrar alla hemligheter i minnet och skriver aldrig tillbaka dem till disken.
- Användargränssnittet är byggt med AngularJS, vilket gör det enkelt för användare att validera och interagera.
Confidant
Confidant är ett verktyg med öppen källkod för hemlighetshantering som ger en säker och användarvänlig lösning för lagring och åtkomst av hemligheter. Confidant lagrar hemligheter i DynamoDB på ett versionshanterat sätt, och genererar en unik KMS-datanyckel för varje ändring med hjälp av Fernet-symmetrisk autentiserad kryptering.
Det tillhandahåller ett AngularJS-webbgränssnitt där användare effektivt kan hantera hemligheter, kopplingar mellan hemligheter och tjänster samt en ändringshistorik. Några av funktionerna inkluderar:
- KMS-autentisering
- Kryptering av versionshanterade hemligheter i vila
- Ett användarvänligt webbgränssnitt för att hantera hemligheter
- Möjlighet att generera tokens som kan användas för tjänst-till-tjänst-autentisering eller för att skicka krypterade meddelanden mellan tjänster.
SOPS
Låt mig presentera SOPS, ett fantastiskt verktyg jag nyligen upptäckt. Det är en krypterad filredigerare som stöder format som YAML, JSON, ENV, INI och BINÄRT. Det bästa? Det kan kryptera dina filer med AWS KMS, GCP KMS, Azure Key Vault, age och PGP.
Här blir det intressant. Tänk dig att du arbetar på en maskin som inte har direkt tillgång till krypteringsnycklar som PGP-nycklar. Inga problem! SOPS löser det med sin nyckeltjänstfunktion. Du kan ge SOPS tillgång till krypteringsnycklar som lagras på en fjärrdator genom att vidarebefordra en socket. Det är som att ha din egen bärbara GPG-agent!
SOPS fungerar som en klient-servermodell för kryptering och dekryptering av datanycklar. Som standard kör den en lokal nyckeltjänst i samma process. Klienten skickar krypterings- eller dekrypteringsförfrågningar till nyckeltjänsten med hjälp av gRPC och Protocol Buffers. Dessa förfrågningar innehåller inga kryptografiska nycklar, vare sig offentliga eller privata.
Det är viktigt att påpeka att anslutningen till nyckeltjänsten för närvarande saknar autentisering eller kryptering. Autentisering och kryptering av anslutningen via t.ex. en SSH-tunnel rekommenderas starkt för att säkerställa säkerheten.
Men det finns mer! SOPS kan generera revisionsloggar för att spåra filåtkomst i din miljö. När det är aktiverat loggar det dekrypteringsaktivitet i en PostgreSQL-databas, inklusive tidsstämpel, användarnamn och dekrypterad fil. Ganska smart, eller hur?
SOPS erbjuder också två användbara kommandon för att skicka dekrypterade hemligheter till en ny process: `exec-env` och `exec-file`. Det första injicerar utdata i miljön för en underordnad process, medan det senare lagrar det i en temporär fil.
Kom ihåg att filtillägget avgör krypteringsmetoden som används av SOPS. Om du krypterar en fil i ett visst format, se till att behålla originalfiländelsen för dekryptering. Det är det enklaste sättet att säkerställa kompatibilitet.
SOPS hämtar inspiration från verktyg som hiera-eyaml, credstash, sneaker och password-store. Det är en utmärkt lösning som eliminerar besväret med att manuellt hantera PGP-krypterade filer.
Azure Key Vault
Vill du hosta dina applikationer i Azure? Då är det här ett bra val.
Azure Key Vault ger användare möjlighet att hantera alla hemligheter (nycklar, certifikat, anslutningssträngar, lösenord etc.) för sin molnapplikation på en centraliserad plats. Det är integrerat med källan och målet för hemligheter i Azure. Applikationer utanför Azure kan också använda det.
Du kan också förbättra prestandan genom att minska latensen för dina molnapplikationer genom att lagra kryptografiska nycklar i molnet istället för lokalt.
Azure kan hjälpa till att uppfylla kraven på dataskydd och regelefterlevnad.
Docker Secrets
Docker Secrets gör det enkelt att lägga till hemligheter i ett kluster, och de delas endast via ömsesidigt autentiserade TLS-anslutningar. Data nås sedan av manager-noden i Docker secrets, och sparas automatiskt i det interna Raft-lagret, vilket säkerställer att data krypteras.
Docker Secrets kan enkelt appliceras för att hantera data och överföra den till containrar med tillgång till den. Det förhindrar läckage av hemligheter när applikationen använder dem.
Knox
Knox utvecklades av det sociala medieplattformen Pinterest för att lösa deras problem med manuell nyckelhantering och revisionsspårning. Knox är skrivet i Go, och klienter kommunicerar med Knox-servern via ett REST API.
Knox använder en flyktig temporär databas för att lagra nycklar. Det krypterar data som lagras i databasen med hjälp av AES-GCM med en huvudkrypteringsnyckel. Knox finns också tillgängligt som en Docker-bild.
Doppler
Från startups till stora företag använder tusentals organisationer Doppler för att hålla sina hemligheter och applikationskonfigurationer synkroniserade mellan olika miljöer, teammedlemmar och enheter.
Du behöver inte längre dela hemligheter via e-post, zip-filer, Git och Slack. Låt dina team samarbeta genom att se till att hemligheter är tillgängliga direkt när de läggs till. Doppler automatiserar processen och sparar tid.
Du kan skapa referenser till vanliga hemligheter så att en enkel uppdatering kommer att gälla för all din verksamhet. Oavsett om du använder hemligheter i serverlösa funktioner, Docker eller någon annanstans, fungerar Doppler med dig. När din stack utvecklas förblir den som den är, och du kan gå live på några minuter.
Doppler CLI vet allt om att hämta dina hemligheter baserat på din projektkatalog. Om något ändras, kan du enkelt återställa felaktiga ändringar med ett enda klick eller via CLI och API.
Med Doppler arbetar du smartare, inte hårdare, och får gratis programvara för hemlighetshantering. Om du vill ha fler funktioner och fördelar kan du välja ett startpaket för 6 dollar/månad/plats.
Slutsats
Jag hoppas att informationen ovan ger dig en översikt över några av de bästa programvarorna för att hantera applikationsautentiseringsuppgifter.
Fortsätt sedan att undersöka lösningar för inventering och övervakning av digitala tillgångar.