De kern van elke applicatie zijn geheimen. Inloggegevens die communicatie tussen mens en machine en tussen machine en machine mogelijk maken. Machine-identiteiten zijn 45 keer zo talrijk als menselijke identiteiten en vormen de meerderheid van de geheimen waar we ons zorgen over moeten maken. Volgens recent onderzoek van CyberArk had 93% van de organisaties het afgelopen jaar twee of meer identiteitsgerelateerde inbreuken. Het is duidelijk dat we dit groeiende probleem moeten aanpakken. Bovendien is het duidelijk dat veel organisaties het prima vinden om inloggegevens in platte tekst te gebruiken voor deze identiteiten in privé-opslagplaatsen, omdat ze denken dat ze privé blijven. Slechte hygiëne in privécode leidt echter tot openbare lekken, zoals we maar al te vaak in het nieuws zien. Wat kunnen we doen gezien de omvang van het probleem?
Wat we echt nodig hebben is een verandering in onze processen, met name rondom het maken, opslaan en werken met machine-identiteiten. Gelukkig is er een duidelijk pad voorwaarts, waarbij bestaande secrets management-oplossingen en secret detection en remediation tools worden gecombineerd, terwijl we de ontwikkelaars tegemoetkomen waar ze zijn.
Een end-to-end geheimenbeveiligingsplan maken
Wanneer we nadenken over het oplossen van het identiteitsprobleem van machines, ook wel bekend als de wildgroei aan geheime informatie, kunnen we het probleem in een paar zinnen beschrijven.
“We hebben een onbekend aantal geldige langlevende plaintext-geheimen verspreid over onze code, configuraties, CI-pipelines, projectmanagementsystemen en andere bronnen, waar we geen rekening mee kunnen houden, en zonder een coherente rotatiestrategie. Ondertussen blijven ontwikkelaars werken met geheimen in plaintext, omdat het een betrouwbare, hoewel problematische, manier is om de applicatie aan de praat te krijgen.”
Als we deze werkdefinitie goed doordenken, kunnen we een stappenplan maken om elk probleem aan te pakken.
- Detectie van geheimen – Doorzoek code en systemen die betrokken zijn bij de softwareontwikkelingscyclus om bestaande plattetekstreferenties te identificeren en verzamel zoveel mogelijk informatie over elk systeem.
- Geheimenbeheer – Verantwoording van alle bekende geheimen via een gecentraliseerd kluisplatform.
- Workflows voor ontwikkelaars: pas processen en hulpmiddelen aan om het eenvoudiger te maken om geheimen op een veilige manier te maken, op te slaan en aan te roepen.
- Geheimen scannen – Continue controle op nieuwe geheimen die in platte tekst worden toegevoegd.
- Automatische rotatie – Regelmatige vervanging van geldige geheimen verkleint de kans op misbruik door kwaadwillende partijen.
U kunt deze reis stap voor stap maken en dit als een gefaseerde uitrol beschouwen. Voor u het weet, bent u veel dichter bij het elimineren van de geheimenspreiding en het beveiligen van al uw machine-identiteiten.
Het vinden van je geheimen
Het eerste probleem dat elk team tegenkomt bij het proberen grip te krijgen op de geheime wildgroei, is het bepalen welke geheimen ze überhaupt hebben. Een handmatige zoekactie om onbekende geheimen op te sporen zou elk team snel overweldigen, maar gelukkig zijn er tools voor het scannen van geheimen, zoals GitGuardian, die dit proces kunnen automatiseren en inzicht kunnen geven in kritieke details. Vanuit een stabiel platform moet u een communicatiepad bieden om met de ontwikkelaars samen te werken aan herstel.
Implementatie van een gecentraliseerde geheimenkluis
Centraal in elke goede strategie voor geheimenbeheer staat het beheren van de manier waarop geheimen worden opgeslagen en gebruikt. Enterprise vaults stellen u in staat om op transparante wijze alle bekende geheimen te verantwoorden, en deze in rust en tijdens het transport te versleutelen. Een goede vault-oplossing, inclusief Conjure van Cyberark en Hashicorp Vault Enterprise. Als al uw infrastructuur van dezelfde provider is, zoals AWS of GCP, zijn dat ook zeer goede opties.
De workflow van de ontwikkelaar beveiligen
Secrets management is historisch gezien overgelaten aan ontwikkelaars om uit te zoeken, wat heeft geleid tot een breed scala aan oplossingen zoals `.env`-bestanden en, helaas, hardcoding secrets in de codebase. Door gebruik te maken van een gecentraliseerde kluisoplossing krijgen ontwikkelaars een consistente manier om de credentials van hun applicaties veilig aan te roepen in alle omgevingen. Als u een gestandaardiseerde aanpak kunt bieden die net zo eenvoudig te implementeren is als wat ze momenteel doen, zult u merken dat veel ontwikkelaars de kans grijpen om te garanderen dat hun implementaties niet worden geblokkeerd vanwege dit beveiligingsprobleem.
U zult ook willen overwegen om naar links te gaan. Command-line tools, zoals ggshield, stellen ontwikkelaars in staat om automatische Git hooks toe te voegen om te scannen op plaintext credentials voordat er een commit wordt gemaakt. Door te voorkomen dat een secret ooit een commit bereikt, hoeft u later geen incidenten meer aan te pakken en wordt het probleem op het minst kostbare punt in de softwareontwikkelingscyclus opgelost.
Geheim scannen bij elke gedeelde interactie
Je hebt ook een manier nodig om rekening te houden met de realiteit dat er soms ongelukken gebeuren. Doorlopende monitoring is nodig om te letten op nieuwe problemen die ontstaan doordat bestaande ontwikkelaars een fout maken of wanneer er nieuwe teams of onderaannemers worden aangenomen die je processen nog niet kennen. Net als bij de eerste detectie van geheimen, helpt het gebruik van een platform dat de informatie verzamelt in een samenhangend incident je om snel te reageren op deze nieuwe problemen. GitGuardian integreert bijvoorbeeld op het niveau van de coderepository om nieuwe plaintext-referenties in seconden te vangen, automatisch bij elke push of opmerking.
Kortstondige kwalificaties moeten het doel zijn van automatische rotatie
Als een aanvaller een geldig geheim vindt, wordt hun werk een stuk eenvoudiger, omdat ze gewoon alle deuren die ze tegenkomen kunnen ontgrendelen. Als diezelfde aanvaller een ongeldig geheim vindt, kunnen ze er niet veel mee doen. Met een gecentraliseerde kluis kunt u autorotatieplannen instellen. De meeste moderne platforms en services hebben een manier om nieuwe inloggegevens te genereren via een API-aanroep en een manier om bestaande geheimen ongeldig te maken. Met een beetje scripting, volgens een van de vele handleidingen die zijn uitgebracht door platforms zoals AWS of CyberArk, is het mogelijk om de veilige vervanging van elke inloggegevens op een regelmatig, zelfs dagelijks, schema te automatiseren.
End-to-end geheimenbeveiliging vereist een plan
Het beste moment om de problemen rondom end-to-end secrets security aan te pakken is nu. Als u nog geen gameplan hebt, is vandaag het beste moment om die gesprekken te beginnen. Begin met het stellen van vragen als: “Welke geheimen hebben we eigenlijk?” of “Hebt u een kluis?” Uiteindelijk moeten we ontwikkelaars voorzien van workflows en guardrails waarmee ze zich kunnen concentreren op hun ontwikkelingsstroom.
Waakzaam blijven en ervoor zorgen dat nieuwe geheimen onmiddellijk worden ontdekt en aangepakt, is een continu proces. Het vergt inspanning, waaronder het creëren van bewustzijn en het invoeren van de juiste processen en technologieën, maar elk bedrijf kan beter grip krijgen op machine-identiteiten en geheimen, van begin tot eind, in de hele organisatie.