Beskytt det som er essensielt for din virksomhet.
Det er mange aspekter å vurdere når du håndterer containere, Kubernetes, skyen og sensitive data. Det er nødvendig å benytte og knytte seg til beste praksis innen identitets- og tilgangsadministrasjon, samt å selektere og implementere passende verktøy.
Uavhengig av om du er utvikler eller systemadministrator, er det kritisk å forsikre seg om at du har de rette verktøyene for å sikre dine miljøer. Applikasjoner krever tilgang til konfigurasjonsdata for å operere korrekt. Mens de fleste konfigurasjonsdata ikke er sensitive, er det avgjørende at enkelte deler forblir konfidensielle. Disse konfidensielle strengene kalles «hemmeligheter».
Jeg håper virkelig du ikke lagrer hemmeligheter i GitHub lengre.
Dersom du utvikler en pålitelig applikasjon, er det sannsynlig at funksjonene dine vil trenge tilgang til hemmeligheter eller annen sensitiv informasjon du besitter.
Disse kan omfatte:
- API-nøkler
- Databaselegitimasjon
- Krypteringsnøkler
- Sensitive konfigurasjonsinnstillinger (e-postadresse, brukernavn, feilsøkingsflagg etc.)
- Passord
Å håndtere disse hemmelighetene på en sikker måte kan derimot vise seg å være en utfordring. Her følger noen råd for utviklere og systemadministratorer:
Oppdatering av funksjonsavhengigheter
Sørg for alltid å overvåke bibliotekene som brukes i dine funksjoner og identifiser sårbarheter ved å kontinuerlig overvåke dem.
Benytt API-gatewayer som et sikkerhetslag
Unngå å eksponere funksjoner direkte for brukerinteraksjon. Dra nytte av skyprovidernes API-gateway-funksjoner for å legge til et ekstra sikkerhetsnivå i tillegg til dine funksjoner.
Sikre og verifiser data under overføring
Bruk HTTPS for en trygg kommunikasjonskanal, og verifiser SSL-sertifikater for å beskytte den eksterne identiteten.
Følg regler for sikker koding av applikasjonskode
Uten servere å angripe, vil hackere rette oppmerksomheten mot applikasjonslaget, så vær særlig nøye med å beskytte koden din.
Administrer hemmeligheter i sikker lagring
Sensitiv informasjon kan lett lekkes, og utdatert legitimasjon er mottakelig for regnbuetabellangrep hvis du forsømmer å bruke ordentlige løsninger for hemmelighetsadministrasjon. Unngå å lagre hemmeligheter i applikasjonssystemet, miljøvariabler eller kildekodestyringssystemet.
Nøkkelhåndtering i en samarbeidsverden kan være svært problematisk, delvis grunnet manglende kunnskap og ressurser. Noen selskaper velger å legge inn krypteringsnøkler og andre hemmeligheter direkte i kildekoden til applikasjonen som bruker dem, og dermed introdusere en risiko for avsløring.
Grunnet mangelen på ferdige løsninger har mange selskaper forsøkt å utvikle sine egne verktøy for hemmelighetsadministrasjon. Her er noen alternativer du kan vurdere:
Vault
HashiCorp Vault er et verktøy som muliggjør sikker lagring og tilgang til hemmeligheter.
Det tilbyr et enhetlig grensesnitt for hemmelighetsadministrasjon, samtidig som det opprettholder streng tilgangskontroll og en omfattende revisjonslogg. Det er et verktøy som beskytter brukerapplikasjoner og baser for å minimere angrepsflaten og tiden angrep tar.
Det leverer et API som gir tilgang til hemmeligheter basert på definerte retningslinjer. Enhver bruker av API-et må autentisere seg, og vil kun se de hemmelighetene de har tillatelse til å se.
Vault krypterer data ved hjelp av 256-bit AES med GCM.
Den kan lagre data i forskjellige backends som Amazon DynamoDB, Consul og flere. Vault støtter logging til en lokal fil for revisjonstjenester, en Syslog-server eller direkte til en socket. Vault logger informasjon som hvem som utførte handlingen, klientens IP-adresse, selve handlingen og tidspunktet for den.
Oppstart/omstart krever at en eller flere operatører åpner seglingen av Vault. Det fungerer primært med tokens. Hvert token er knyttet til en policy som kan begrense handlinger og stier. Vault sine nøkkelfunksjoner omfatter:
- Krypterer og dekrypterer data uten å lagre dem.
- Kan generere hemmeligheter på forespørsel for spesifikke operasjoner, som for eksempel AWS- eller SQL-databaser.
- Tillater replikering på tvers av flere datasentre.
- Har innebygd beskyttelse for tilbakekalling av hemmeligheter.
- Fungerer som et sikkert depot med detaljert tilgangskontroll.
AWS Secrets Manager
Du forventet vel AWS på denne listen, eller?
AWS har en løsning på de fleste problemer.
AWS Secrets Manager lar deg raskt rotere, administrere og hente databaselegitimasjon, API-nøkler og andre passord. Ved å bruke Secrets Manager kan du sikre, analysere og administrere hemmeligheter som kreves for å få tilgang til AWS Cloud-funksjoner, tredjepartstjenester og lokale ressurser.
Secrets Manager gir deg muligheten til å styre tilgang til hemmeligheter med fine, detaljerte tillatelser. Nøkkelfunksjonene til AWS Secrets Manager er:
- Krypterer hemmeligheter i hvile ved hjelp av krypteringsnøkler.
- Dekrypterer hemmelighetene og overfører dem sikkert over TLS.
- Leverer kodeeksempler som forenkler kall til Secrets Manager API-er.
- Har bufferbiblioteker på klientsiden som øker tilgjengeligheten og reduserer forsinkelsen ved bruk av hemmelighetene.
- Mulighet til å konfigurere Amazon VPC (Virtual Private Cloud) endepunkter for å holde trafikk innenfor AWS-nettverket.
Akeyless Vault
Akeyless Vault er en helhetlig, SaaS-basert plattform for hemmelighetsadministrasjon som beskytter alle former for legitimasjon, både statiske og dynamiske, inkludert sertifikatautomatisering og krypteringsnøkler. Den tilbyr også en unik løsning for å sikre ekstern tilgang (null-tillit) til alle ressurser på tvers av eldre, multi-sky- og hybridmiljøer.
Akeyless beskytter hemmeligheter og nøkler med innebygd FIPS 140-2-sertifisert teknologi; de har ingen kunnskap om kundenes hemmeligheter og nøkler.
Nøkkelfunksjoner inkluderer:
- Globalt tilgjengelig, SaaS-basert plattform som tilbyr innebygd høy tilgjengelighet (HA) og katastrofegjenoppretting (DR) ved å bruke skybasert arkitektur på tvers av flere regioner og skytjenester.
- Avansert hemmelighetsbehandling gir et trygt depot for statiske og dynamiske hemmeligheter som passord, legitimasjon, API-nøkler, tokens osv.
- Akeyless Vault muliggjør tilrettelegging og injeksjon av alle typer hemmeligheter til alle servere, applikasjoner og arbeidsbelastninger, med et bredt spekter av plugins som lar deg koble til dine DevOps- og IT-plattformer, som CI/CD, konfigurasjonsadministrasjon og orkestreringsverktøy som Kubernetes og Docker.
Raskere tid til produksjon på grunn av:
- SaaS – ingen distribusjon, installasjon eller vedlikehold nødvendig.
- Umiddelbar ombordstigning med automatisk migrering av hemmeligheter fra eksisterende depoter.
Plattformen støtter også:
- Zero-Trust Application Access (også kjent som Remote Access) ved å tilby enhetlig autentisering og rettferdig tilgangslegitimasjon, slik at du kan sikre applikasjoner og infrastruktur utenfor nettverksperimeter.
- Encryption as-a-Service lar kunder beskytte sensitive person- og forretningsdata ved å benytte avansert FIPS 140-2-sertifisert kryptering på app-nivå.
Keywhiz
Square Keywhiz hjelper til med infrastrukturhemmeligheter, GPG-nøkkelringer og databaselegitimasjon, inkludert TLS-sertifikater og -nøkler, symmetriske nøkler, API-tokens og SSH-nøkler for eksterne tjenester. Keywhiz er et verktøy for å administrere og dele hemmeligheter.
Automatiseringen i Keywhiz muliggjør sømløs distribusjon og oppsett av essensielle hemmeligheter for våre tjenester, som krever et konsistent og sikkert miljø. Keywhiz sine nøkkelfunksjoner er:
- Keywhiz Server leverer JSON API-er for å samle inn og administrere hemmeligheter.
- Den lagrer alle hemmeligheter kun i minnet og lagrer de aldri på disk.
- Brukergrensesnittet er utviklet med AngularJS, slik at brukere kan validere og bruke brukergrensesnittet.
Confidant
Confidant er et åpen kildekode-verktøy for hemmelighetsadministrasjon som opprettholder brukervennlig lagring og sikker tilgang til hemmeligheter. Confidant lagrer hemmeligheter på en additiv måte i DynamoDB, og genererer en unik KMS-datanøkkel for hver endring, ved hjelp av Fernet symmetrisk autentisert kryptografi.
Den leverer et AngularJS-webgrensesnitt som gjør at sluttbrukere effektivt kan administrere hemmeligheter, formene på hemmeligheter for tjenester og registrere endringer. Noen av funksjonene inkluderer:
- KMS-autentisering
- Hvilekryptering av versjonsbaserte hemmeligheter
- Et brukervennlig webgrensesnitt for hemmelighetsadministrasjon.
- Generering av tokens for tjeneste-til-tjeneste-autentisering eller for å sende krypterte meldinger mellom tjenester.
SOPS
La meg presentere SOPS, et fantastisk verktøy jeg nylig har oppdaget. Det er en kryptert filredigerer som støtter formater som YAML, JSON, ENV, INI og BINARY. Det beste? Den kan kryptere filene dine med AWS KMS, GCP KMS, Azure Key Vault, age og PGP.
Og nå til det interessante. Tenk deg at du arbeider på en maskin som ikke har direkte tilgang til krypteringsnøkler som PGP-nøkler. Ikke bekymre deg! SOPS har en nøkkeltjenestefunksjon som fikser dette. Du kan gi SOPS tilgang til krypteringsnøkler lagret på en ekstern maskin ved å videresende en socket. Det er som å ha en bærbar GPG-agent!
SOPS opererer med en klient-server-modell for kryptering og dekryptering av datanøkkelen. Som standard kjører den en lokal nøkkeltjeneste i prosessen. Klienten sender krypterings- eller dekrypteringsforespørsler til nøkkeltjenesten via gRPC og Protocol Buffers. Ikke bekymre deg; disse forespørslene inneholder ingen kryptografiske nøkler, hverken offentlige eller private.
Det er viktig å påpeke at nøkkeltjenesteforbindelsen for øyeblikket mangler autentisering og kryptering. Det er anbefalt å autentisere og kryptere forbindelsen på andre måter, for eksempel en SSH-tunnel, for å sikre sikkerheten.
Men det er mer! SOPS kan generere revisjonslogger for å spore filtilgang i et kontrollert miljø. Når aktivert, registrerer den dekrypteringsaktivitet i en PostgreSQL-database, inkludert tidsstempel, brukernavn og dekryptert fil. Smart, ikke sant?
SOPS tilbyr også to nyttige kommandoer for overføring av dekrypterte hemmeligheter til en ny prosess: exec-env og exec-file. Den første injiserer utdataene inn i miljøet til en underprosess, mens den siste lagrer utdataene i en midlertidig fil.
Husk at filtypen bestemmer krypteringsmetoden som benyttes av SOPS. Hvis du krypterer en fil i et spesifikt format, sørg for å opprettholde original filtype for dekryptering. Det er den enkleste måten å sikre kompatibilitet.
SOPS har hentet inspirasjon fra verktøy som hiera-eyaml, credstash, sneakers og password store. Det er en utmerket løsning som eliminerer bryet med manuell håndtering av PGP-krypterte filer.
Azure Key Vault
Er du vert for dine applikasjoner på Azure? Da er dette et godt valg.
Azure Key Vault gjør det mulig for brukere å administrere alle hemmeligheter (nøkler, sertifikater, tilkoblingsstrenger, passord osv.) for skyapplikasjonene sine på ett sentralt sted. Det er integrert ut av boksen med opprinnelsen og målene til hemmelighetene i Azure. Applikasjoner utenfor Azure kan også benytte det.
Du kan også øke ytelsen ved å redusere ventetiden for dine skyapplikasjoner ved å lagre kryptografiske nøkler i skyen i stedet for lokalt.
Azure kan hjelpe deg å oppnå databeskyttelse og samsvarskrav.
Docker-hemmeligheter
Docker-hemmeligheter lar deg enkelt legge til hemmeligheter i klyngen, og de deles kun via gjensidig autentiserte TLS-forbindelser. Data i Docker-hemmeligheter er tilgjengelige for manager-noden, og de lagres automatisk i den interne Raft-butikken, noe som sikrer at dataene er kryptert.
Docker-hemmeligheter kan enkelt brukes for å administrere dataene og overføre de samme til containere som har tilgang til dem. Dette forhindrer at hemmeligheter lekker når applikasjonen bruker dem.
Knox
Knox ble utviklet av Pinterest for å løse deres problem med manuell nøkkelhåndtering og behovet for et revisjonsspor. Knox er skrevet i Go, og klienter kommuniserer med Knox-serveren via et REST API.
Knox bruker en flyktig, midlertidig database for lagring av nøkler. Den krypterer dataene som er lagret i databasen med AES-GCM og en masterkrypteringsnøkkel. Knox er også tilgjengelig som et Docker-bilde.
Doppler
Tusenvis av organisasjoner, fra oppstartsbedrifter til store selskaper, bruker Doppler for å synkronisere hemmeligheter og appkonfigurasjon på tvers av miljøer, teammedlemmer og enheter.
Det er ikke nødvendig å dele hemmeligheter via e-post, zip-filer, git eller Slack. La teamene dine samarbeide slik at de har tilgang umiddelbart etter at hemmeligheten er lagt til. Doppler automatiserer prosessen og sparer tid.
Du kan etablere referanser til de mest brukte hemmelighetene, slik at en enkelt oppdatering med visse intervaller vil gjøre alt arbeidet for deg. Enten du benytter hemmelighetene i Serverless, Docker eller andre steder, vil Doppler fungere sømløst. Når du videreutvikler teknologien din, vil Doppler fortsatt være kompatibel og tillate deg å starte opp i løpet av minutter.
Doppler CLI vet alt om å hente hemmeligheter basert på din prosjektkatalog. Hvis noe endres, kan du enkelt angre skadelige endringer med ett klikk eller via CLI og API.
Med Doppler kan du jobbe smartere og få din hemmelighetsadministrasjonsprogramvare GRATIS. Hvis du er ute etter flere funksjoner, kan du velge en startpakke til $6/måned/sete.
Konklusjon
Jeg håper det ovenstående gir deg en oversikt over de beste programvarene for å administrere applikasjonslegitimasjon.
Nå kan du undersøke inventar- og overvåkningsløsninger for digitale aktiva.