Hemlig genomsökning

Exponerade autentiseringsuppgifter i tekniksystem ger lättangripliga möjligheter för angripare. För att skydda sig mot det här hotet genomsöker GitHub Advanced Security för Azure DevOps autentiseringsuppgifter och annat känsligt innehåll i källkoden. Push-skydd förhindrar också att autentiseringsuppgifter läcker ut från början.

Hemlig genomsökning efter lagringsplatsen söker efter hemligheter som redan finns i källkoden i historiken och push-skydd förhindrar att nya hemligheter exponeras i källkoden.

GitHub Advanced Security för Azure DevOps fungerar med Azure Repos. Om du vill använda GitHub Advanced Security med GitHub-lagringsplatser läser du GitHub Advanced Security.

Om aviseringar om hemlig genomsökning

När Advanced Security är aktiverat genomsöker den lagringsplatser efter hemligheter som utfärdats av en mängd olika tjänsteleverantörer och genererar aviseringar om hemlig genomsökning.

Om åtkomst till en resurs kräver kopplade autentiseringsuppgifter kan hemlig genomsökning endast skapa en avisering när båda delarna av paret identifieras i samma fil. Parkoppling säkerställer att de mest kritiska läckorna inte döljs bakom information om partiella läckor. Parmatchning hjälper också till att minska falska positiva identifieringar eftersom båda elementen i ett par måste användas tillsammans för att få åtkomst till providerns resurs.

Fliken Avancerad säkerhet på Repos>Advanced Security i Azure DevOps är hubben för att visa dina säkerhetsaviseringar. Välj fliken Hemligheter för att visa aviseringar om hemlighetsgenomsökning. Du kan filtrera efter tillstånd och hemlig typ. Du kan navigera till en avisering för mer information, inklusive reparationsvägledning. När du har aktiverat Avancerad säkerhet startar en genomsökning för den valda lagringsplatsen, inklusive alla historiska incheckningar. Med tiden börjar aviseringar visas när genomsökningen fortskrider.

Resultatet påverkas inte om grenar byts namn – det kan ta upp till 24 timmar innan det nya namnet visas.

Skärmbild som visar aviseringar om aktiv hemlighetsgenomsökning

Om du vill åtgärda exponerade hemligheter ogiltigförklarar du de exponerade autentiseringsuppgifterna och skapar en ny i dess ställe. Den nyligen skapade hemligheten bör sedan lagras säkert på ett sätt som inte direkt skickar tillbaka den till koden. Hemligheten kan till exempel lagras i Azure Key Vault. De flesta resurser har både en primär och sekundär autentiseringsuppgift. Metoden för att rulla över en primär autentiseringsuppgift jämfört med en sekundär autentiseringsuppgift är identisk, om inget annat anges.

Hantera aviseringar för hemlig genomsökning

Visa aviseringar för en lagringsplats

Alla med deltagarbehörigheter för en lagringsplats kan visa en sammanfattning av alla aviseringar för en lagringsplats på fliken Avancerad säkerhet under Lagringsplatser. Välj på fliken Hemligheter för att visa alla aviseringar för hemlig genomsökning.

Om Advanced Security nyligen har aktiverats för lagringsplatsen kan du se ett kort som anger att Advanced Security fortfarande genomsöker lagringsplatsen.

Skärmbild som visar genomsökning efter hemligheter

När genomsökningen är klar visas eventuella resultat. En enda avisering genereras för varje identifierad unik autentiseringsuppgift i alla grenar och historik för din lagringsplats. Det finns inga grenfilter eftersom de samlas in i en avisering.

Icke-providerhemligheter kan visas genom att välja "Annat" i listrutan konfidens på fliken hemlig genomsökning.

Skärmbild av säkerhetsfiltret för hemlighetsgenomsökning i GitHub Advanced Security.

Aviseringsinformation

När du navigerar till en avisering visas en detaljerad aviseringsvy och visar mer information om sökningen och ger specifik reparationsvägledning för att lösa aviseringen.

Skärmbild som visar information om en avisering om hemlig genomsökning

Avsnitt Förklaring
Plats Avsnittet Platser beskriver sökvägarna där hemlig genomsökning upptäckte den läckta autentiseringsuppgiften. Det kan finnas flera platser eller flera incheckningar i historiken som innehåller den läckta autentiseringsuppgiften. Alla dessa platser och incheckningar visas under Platser med en direktlänk till kodfragmentet och checka in det identifierades i.
Rekommendation Rekommendationsavsnittet innehåller vägledning om reparation eller länk till vägledning för dokumentationsreparation från tredje part för identifierade autentiseringsuppgifter.
Stäng aviseringar Det finns inget autofixbeteende för aviseringar om hemlig genomsökning. Alla aviseringar för hemlig genomsökning måste manuellt intygas som fasta via aviseringsinformationssidan. Välj knappen Stäng för att kontrollera att hemligheten har återkallats.
Allvarlighet Alla aviseringar för hemlig genomsökning anges som kritiska. Alla exponerade autentiseringsuppgifter är potentiellt en möjlighet för en illvillig aktör.
Hitta information Den typ av autentiseringsuppgifter och regel som används för att hitta autentiseringsuppgifterna visas under sidan Hitta information i sidofältet på sidan med aviseringsinformation.

Med icke-providerhemligheter visas även den andra taggen Konfidens: av allvarlighetsgrad i aviseringsinformationsvyn.

Skärmbild av hemligheten GitHub Advanced Security genomsöker allmän aviseringsinformation.

Åtgärda aviseringar för hemlig genomsökning

Varje hemlighet har unika reparationssteg som hjälper dig att återkalla och återskapa en ny hemlighet i dess ställe. Aviseringsinformationen delar specifika steg eller dokumentation för varje avisering.

En hemlig genomsökningsavisering förblir öppen tills den är stängd. Så här intygar du att en hemlig genomsökningsavisering har åtgärdats:

  1. Gå till den avisering som du vill stänga och välj aviseringen.
  2. Välj listrutan Stäng avisering.
  3. Om du inte redan har valt väljer du Fast.
  4. Välj Stäng för att skicka och stänga aviseringen.

Skärmbild som visar hur du stänger en avisering om hemlig genomsökning

Stänga aviseringar för hemlig genomsökning

Om du vill stänga aviseringar i Avancerad säkerhet behöver du rätt behörigheter. Som standard kan endast projektadministratörer stänga av avancerade säkerhetsaviseringar. Mer information om avancerade säkerhetsbehörigheter finns i Hantera avancerade säkerhetsbehörigheter.

Så här stänger du en avisering:

  1. Gå till den avisering som du vill stänga och välj i aviseringen.
  2. Välj listrutan Stäng avisering.
  3. Om du inte redan har valt väljer du antingen Risk accepterad eller Falsk positiv som stängningsorsak.
  4. Lägg till en valfri kommentar i textrutan Kommentar .
  5. Välj Stäng för att skicka och stänga aviseringen.
  6. Aviseringstillståndet ändras från Öppna till Stängd och visar orsaken till uppsägningen.

Skärmbild som visar information om uppsägning för en hemlig genomsökningsavisering

Alla aviseringar som tidigare avvisats kan öppnas manuellt.

Skydda komprometterade hemligheter

När en hemlighet har checkats in på en lagringsplats komprometteras hemligheten. Microsoft rekommenderar följande åtgärder för komprometterade hemligheter:

  • För en komprometterad personlig åtkomsttoken för Azure DevOps tar du bort den komprometterade token, skapar en ny token och uppdaterar alla tjänster som använder den gamla token.
  • För alla andra hemligheter kontrollerar du först att hemligheten som har checkats in på Azure Repos är giltig. I så fall skapar du en ny hemlighet, uppdaterar alla tjänster som använder den gamla hemligheten och tar sedan bort den gamla hemligheten.
  • identifiera åtgärder som vidtas av den komprometterade token på företagets resurser.

När du uppdaterar en hemlighet bör du lagra den nya hemligheten på ett säkert sätt och se till att den alltid används och aldrig lagras som klartext. En möjlighet kan vara via Azure Keyvault eller andra lösningar för hemlig hantering.

Hemligt push-skydd

Push-skydd kontrollerar eventuella inkommande push-meddelanden för hemligheter med hög konfidens och förhindrar att push-överföringen går igenom. Ett felmeddelande visar alla identifierade hemligheter där du kan ta bort dem eller fortsätta att skicka hemligheterna om det behövs.

Om push-skyddsaviseringar

Push-skyddsaviseringar är användaraviseringar som rapporteras av push-skydd. Hemlig genomsökning som ett push-skydd söker för närvarande igenom lagringsplatser efter hemligheter som utfärdats av vissa tjänstleverantörer.

Om åtkomst till en resurs kräver kopplade autentiseringsuppgifter kan hemlig genomsökning endast skapa en avisering när båda delarna av paret identifieras i samma fil. Parkopplingen säkerställer att de mest kritiska läckorna inte döljs bakom information om partiella läckor. Parmatchning hjälper också till att minska falska positiva identifieringar eftersom båda elementen i ett par måste användas tillsammans för att få åtkomst till providerns resurs.

Push-skydd kanske inte blockerar äldre versioner av vissa token eftersom dessa token kan generera ett högre antal falska positiva identifieringar än den senaste versionen. Push-skydd kanske inte heller blockerar äldre token. För token som Azure Storage Keys stöder Advanced Security endast nyligen skapade token, inte token som matchar de äldre mönstren.

Push-skydd från kommandoraden

Push-skydd är inbyggt i Azure DevOps Git. Om dina incheckningar innehåller en identifierad hemlighet visas ett fel om att push-överföringen avvisades.

Skärmbild som visar en git-push som blockeras från VS Code

Push-skydd från webbgränssnittet

Push-skydd fungerar också från webbgränssnittet. Om en hemlighet identifieras i en incheckning visas följande felblock som hindrar dig från att skicka ändringarna:

Skärmbild som visar en git-push som blockeras från AzDO-webbgränssnittet

Vad du ska göra om push-överföringen har blockerats

Push-skydd blockerar hemligheter som finns i oformaterade textfiler som vanligtvis (men inte är begränsade till) textfiler som källkod eller JSON-konfigurationsfiler. Dessa hemligheter lagras i klartext. Om en dålig aktör får åtkomst till filerna och de publiceras till en offentlig lagringsplats kan alla använda hemligheterna.

Vi rekommenderar att du tar bort hemligheten från den flaggade filen och sedan tar bort hemligheten från incheckningshistoriken. Om den flaggade hemligheten är en platshållare eller exempelhemlighet rekommenderar vi att du uppdaterar den falska hemligheten för att förbereda strängen Placeholder framför den falska hemligheten.

Om hemligheten lades till i din omedelbara tidigare incheckning ändrar du incheckningen och skapar en ny incheckning:

  1. Ta bort hemligheten från koden.
  2. Genomför ändringarna med hjälp av git commit --amend
  3. Skicka ändringarna igen.

Om hemligheten lades till längre tillbaka i historiken redigerar du dina incheckningar med hjälp av en interaktiv ombasering:

  1. Använd git log för att avgöra vilken incheckning du använde när du först checkade in hemligheten.
  2. Utför en interaktiv ombasering: git rebase -i [commit ID before credential introduction]~1
  3. Identifiera incheckningen för redigering genom att ändra pick till edit på den första textraden som visas i redigeraren.
  4. Ta bort hemligheten från koden.
  5. Checka in ändringen med git commit --amend.
  6. Slutför ombasen genom att köra git rebase --continue.

Push-överför en blockerad hemlighet

Att kringgå flaggade hemligheter rekommenderas inte eftersom kringgånde kan äventyra företagets säkerhet. Om du bekräftar att en identifierad hemlighet inte är en falsk positiv identifiering bör du ta bort hemligheten från hela grenhistoriken innan du försöker skicka ändringarna igen.

Om du tror att en blockerad hemlighet är en falsk positiv eller säker push-överföring kan du kringgå push-skydd. Inkludera strängen skip-secret-scanning:true i incheckningsmeddelandet. Även om du kringgår push-skydd genereras en hemlig genomsökningsavisering i aviserings-UX när hemligheten har push-överförts.