Dokumentation

Läckta hemligheter

Så hittar Säkerhet autentiseringsuppgifter i ändringar och historik utan att spara dem, varför en läckt hemlighet förblir öppen tills någon intygar att den har roterats och hur du åtgärdar den.

En autentiseringsuppgift som har nått en pushad commit är redan läckt, även om en senare commit tar bort den. Säkerhet hittar autentiseringsuppgifter i dina ändringar och din historik, sparar inga av dem och behandlar var och en som öppen tills någon bekräftar att den har roterats eller återkallats.

Vad som genomsöks

  • Varje ändring: ändringarna från varje pull request, som en del av Coroid Security -kontrollen, och ändringarna från Coroids egna agenter innan de committas.
  • Standardbranchen: varje push samt hela dess historik en gång. Genomsökningen av historiken startar när ett repository ansluts eller Läckta hemligheter aktiveras.
  • Pull request-brancher: en autentiseringsuppgift som pushas till en pull request-branch skapar också en iakttagelse, eftersom den redan finns i repositoryt.

En branch som pushas utan en pull request genomsöks inte.

Genomsökningen av historiken läser alla nåbara commits, med den senaste först, och läser varje filversion en gång. Den arbetar i omgångar och fortsätter där den slutade. Varje repository har gränser för hur mycket historik som läses (commits, byte, tid och filstorlek); ett repository som överskrider gränserna får ofullständig täckning.

Vad som upptäcks

Autentiseringsuppgifter från leverantörer i kända format (AWS-åtkomstnycklar, GitHub- och GitLab-token, OpenAI-nycklar med flera), auktoriseringstoken, autentiseringsuppgifter tilldelade namn som password eller api_key, privata nycklar, autentiseringsuppgifter i URL:er och långa strängar med hög entropi. Autentiseringsuppgifter som tilldelas i kod matchas endast när värdet är en literal, inte en variabel eller ett funktionsanrop.

Coroid sparar aldrig värdet

Ett upptäckt värde går direkt från detektorn till Coroids autentiseringsuppgiftsförmedlare, som returnerar ett nycklat fingeravtryck och kastar värdet. Endast fingeravtrycket lagras. Det nycklas separat per organisation, så det kan inte jämföras mellan organisationer eller gissas offline.

Överallt där en hemlighet annars skulle visas (iakttagelser, kontroller, granskningskommentarer, loggar) visar Coroid endast regeln, längden och platsen, till exempel [redacted secret: named_credential, 40 characters]. Ingen del av värdet visas, inte ens de första tecknen.

Coroid provar aldrig en autentiseringsuppgift som det hittar för att se om den fungerar.

En autentiseringsuppgift, en iakttagelse

En autentiseringsuppgift som förekommer i många commits blir en iakttagelse med många förekomster. Samma autentiseringsuppgift i två repositoryn blir två iakttagelser, en per repository. När du intygar en visar Säkerhet de andra med samma autentiseringsuppgift, så att du kan intyga dem tillsammans. Det görs aldrig automatiskt.

En hemlighet stängs endast genom intygande

Om du tar bort en autentiseringsuppgift från koden försvinner dess förekomster, men iakttagelsen förblir öppen: någon som läste repositoryt tidigare kan fortfarande ha den. Den stängs endast när en ägare eller administratör intygar vad som har gjorts:

  • Roterad eller återkallad;
  • datumet då det gjordes;
  • en valfri anteckning.

Säkerhet registrerar vem som intygade och när, och visar det på iakttagelsen: ”Roterad den 28 oktober, intygad av Alex den 29 oktober”. Iakttagelsen ändras till Rotation intygad.

Åtgärda en läckt hemlighet

Skapa checklistuppgiften skapar en uppgift i projektet med följande steg:

  1. Rotera eller återkalla autentiseringsuppgiften hos leverantören.
  2. Flytta den dit projektet lagrar sina hemligheter.
  3. Ta bort den från koden.
  4. Intyga rotationen i Säkerhet.

Uppgiften provar eller återanvänder aldrig autentiseringsuppgiften. Den skriver inte om git- historiken: det är teamet som avgör om en autentiseringsuppgift ska tas bort ur historiken, och det gör inte en läckt autentiseringsuppgift säker igen.

Riktig autentiseringsuppgift eller inget problem

För en iakttagelse om en hemlighet svarar ägare och administratörer på frågan Var detta en riktig autentiseringsuppgift?

  • Riktig autentiseringsuppgift håller iakttagelsen öppen tills den intygas.
  • Inget problem registrerar ett undantag för falska positiva resultat som döljer iakttagelsen, till exempel för testdata. Riktig autentiseringsuppgift tar bort undantaget igen.

Dessa svar hjälper också till att kalibrera detektorerna.

Blockering

Läckta hemligheter övervakar som standard. Funktionen blockerar först när detektorerna har genomgått kalibreringen och blockering är aktiverad. Se Skydd och blockering.

Organisationer som hade den tidigare genomsökningen efter hemligheter aktiverad i sin organisationspolicy fortsätter att blockeras av den, med dess detektorversion, tills de nya detektorerna har genomgått kalibreringen. Den tidigare genomsökningen skapar inga iakttagelser, så ett undantag eller ett intygande kan inte dölja det som den blockerar.

I organisationens standardinställningar anges Blockera nya hemligheter och den största ändringen som genomsöks under Läckta hemligheter.

Aviseringar

Iakttagelser om hemligheter skickar ännu inga aviseringar. De visas under Säkerhet → Iakttagelser och i Översikt.

GitHub-genomsökning efter hemligheter

Om GitHubs egen genomsökning efter hemligheter är aktiverad för ett repository kan Säkerhet importera dess aviseringar. En avisering från GitHubs genomsökning efter hemligheter förblir öppen tills någon löser den på GitHub, så en sammanfogning av en korrigering stänger den inte där. Se GitHub-säkerhetsaviseringar.