Delen via


Geheim scannen

Blootgestelde referenties in technische systemen bieden eenvoudig exploiteerbare mogelijkheden voor aanvallers. Ter bescherming tegen deze bedreiging scant GitHub Advanced Security voor Azure DevOps naar referenties en andere gevoelige inhoud in uw broncode. Met pushbeveiliging voorkomt u ook dat referenties in de eerste plaats worden gelekt.

Het scannen van geheimen voor uw opslagplaats scant op geheimen die mogelijk al bestaan in uw broncode in de geschiedenis en pushbeveiliging voorkomt dat nieuwe geheimen worden weergegeven in broncode.

GitHub Advanced Security voor Azure DevOps werkt met Azure-opslagplaatsen. Als u GitHub Advanced Security wilt gebruiken met GitHub-opslagplaatsen, raadpleegt u GitHub Advanced Security.

Over waarschuwingen voor geheim scannen

Wanneer Advanced Security is ingeschakeld, worden er opslagplaatsen gescand op geheimen die zijn uitgegeven door een groot aantal serviceproviders en worden waarschuwingen voor geheimscans gegenereerd.

Als toegang tot een resource gekoppelde referenties vereist, kan geheim scannen alleen een waarschuwing maken wanneer beide delen van het paar worden gedetecteerd in hetzelfde bestand. Koppelen zorgt ervoor dat de meest kritieke lekken niet verborgen zijn achter informatie over gedeeltelijke lekken. Koppelen helpt ook fout-positieven te verminderen, omdat beide elementen van een paar samen moeten worden gebruikt om toegang te krijgen tot de resource van de provider.

Het tabblad Geavanceerde beveiliging op Opslagplaatsen>Geavanceerde beveiliging in Azure DevOps is de hub om uw beveiligingswaarschuwingen weer te geven. Selecteer het tabblad Geheimen om waarschuwingen voor het scannen van geheimen weer te geven. U kunt filteren op status- en geheimtype. U kunt naar een waarschuwing navigeren voor meer informatie, inclusief herstelrichtlijnen. Nadat Advanced Security is ingeschakeld, wordt een scan gestart voor de geselecteerde opslagplaats, inclusief alle historische doorvoeringen. Na verloop van tijd worden waarschuwingen weergegeven wanneer de scan vordert.

Er is geen invloed op de resultaten als de naam van vertakkingen wordt gewijzigd. Het kan tot 24 uur duren voordat de nieuwe naam wordt weergegeven.

Schermopname met waarschuwingen voor het scannen van actieve geheimen

Als u blootgestelde geheimen wilt herstellen, maakt u de weergegeven referentie ongeldig en maakt u er een nieuwe. Het zojuist gemaakte geheim moet vervolgens veilig worden opgeslagen op een manier die het niet rechtstreeks naar de code pusht. Het geheim kan bijvoorbeeld worden opgeslagen in Azure Key Vault. De meeste resources hebben zowel een primaire als een secundaire referentie. De methode voor het uitrollen van een primaire referentie ten opzichte van een secundaire referentie is identiek, tenzij anders vermeld.

Waarschuwingen voor geheim scannen beheren

Waarschuwingen voor een opslagplaats weergeven

Iedereen met inzendermachtigingen voor een opslagplaats kan een overzicht bekijken van alle waarschuwingen voor een opslagplaats op het tabblad Geavanceerde beveiliging onder Opslagplaatsen. Selecteer op het tabblad Geheimen om alle waarschuwingen voor het scannen van geheimen weer te geven.

Als Advanced Security onlangs is ingeschakeld voor uw opslagplaats, ziet u mogelijk een kaart die aangeeft dat Advanced Security uw opslagplaats nog steeds scant.

Schermopname van scannen op geheimen

Zodra de scan is voltooid, worden alle resultaten weergegeven. Er wordt één waarschuwing gegenereerd voor elke gedetecteerde unieke referentie, in alle vertakkingen en geschiedenis van uw opslagplaats. Er zijn geen vertakkingsfilters omdat ze in één waarschuwing worden samengevouwen.

Geheimen die geen provider zijn, kunnen worden weergegeven door 'Overige' te selecteren in de vervolgkeuzelijst betrouwbaarheid op het tabblad Geheim scannen.

Schermopname van het betrouwbaarheidsfilter voor het scannen van geheimen in GitHub Advanced Security.

Meldingsdetails

Wanneer u naar een waarschuwing navigeert, wordt er een gedetailleerde waarschuwingsweergave weergegeven en ziet u meer informatie over het zoeken en geeft u specifieke herstelrichtlijnen op om de waarschuwing op te lossen.

Schermopname met details voor een waarschuwing voor het scannen van geheimen

Sectie Uitleg
Locatie De sectie Locaties bevat informatie over het pad(en) waar geheim scannen de gelekte referentie heeft gedetecteerd. Mogelijk zijn er meerdere locaties of meerdere doorvoeringen in de geschiedenis die de gelekte referentie bevatten. Al deze locaties en doorvoeringen worden weergegeven onder de locaties met een directe koppeling naar het codefragment en doorvoering waarin het is geïdentificeerd.
Aanbeveling De sectie aanbeveling bevat herstelrichtlijnen of een koppeling naar documentatieherstelrichtlijnen van derden voor de geïdentificeerde referentie.
Waarschuwing sluiten Er is geen gedrag voor automatischfix voor geheime scanwaarschuwingen. Alle waarschuwingen voor het scannen van geheimen moeten handmatig worden getest zoals opgelost via de detailpagina van de waarschuwing. Selecteer de knop Sluiten om te controleren of het geheim is ingetrokken.
Ernst Alle waarschuwingen voor het scannen van geheimen worden ingesteld als kritiek. Elke weergegeven referentie is mogelijk een kans voor een kwaadwillende actor.
Details zoeken Het type referentie en regel dat wordt gebruikt om de referentie te vinden, worden weergegeven onder de zoekdetails op de zijbalk van de pagina met waarschuwingsgegevens.

Bij niet-providergeheimen wordt het vertrouwen: andere tag ook weergegeven met de ernstbadge in de detailweergave van de waarschuwing.

Schermopname van algemene waarschuwingsdetails van het scannen van geheimen in GitHub Advanced Security.

Waarschuwingen voor geheim scannen oplossen

Elk geheim heeft unieke herstelstappen om u te helpen bij het intrekken en opnieuw genereren van een nieuw geheim op zijn plaats. De details van de waarschuwing delen specifieke stappen of documentatie voor elke waarschuwing.

Een geheime scanwaarschuwing blijft geopend totdat deze is gesloten. Ga als volgt te werk om te bevestigen dat een waarschuwing voor geheim scannen is opgelost:

  1. Navigeer naar de waarschuwing die u wilt sluiten en selecteer de waarschuwing.
  2. Selecteer de vervolgkeuzelijst Waarschuwing sluiten.
  3. Als dit nog niet is geselecteerd, selecteert u Vast.
  4. Selecteer Sluiten om de waarschuwing te verzenden en te sluiten.

Schermopname die laat zien hoe u een waarschuwing voor het scannen van geheimen sluit

Waarschuwingen voor geheim scannen sluiten

Als u waarschuwingen in Geavanceerde beveiliging wilt negeren, hebt u de juiste machtigingen nodig. Standaard kunnen alleen projectbeheerders Geavanceerde beveiligingswaarschuwingen negeren. Zie Geavanceerde beveiligingsmachtigingen beheren voor meer informatie over Geavanceerde beveiligingsmachtigingen.

Een waarschuwing negeren:

  1. Navigeer naar de waarschuwing die u wilt sluiten en selecteer de waarschuwing.
  2. Selecteer de vervolgkeuzelijst Waarschuwing sluiten.
  3. Als dit nog niet is geselecteerd, selecteert u Risico geaccepteerd of Fout-positief als reden voor sluiting.
  4. Voeg een optionele opmerking toe aan het tekstvak Opmerking .
  5. Selecteer Sluiten om de waarschuwing te verzenden en te sluiten.
  6. De waarschuwingsstatus verandert van Open naar Gesloten en geeft uw ontslagreden weer.

Schermopname met ontslaggegevens voor een waarschuwing voor het scannen van geheimen

Elke waarschuwing die eerder is gesloten, kan handmatig opnieuw worden geopend.

Gecompromitteerde geheimen beveiligen

Zodra een geheim is doorgevoerd in een opslagplaats, wordt het geheim gecompromitteerd. Microsoft raadt de volgende acties aan voor gecompromitteerde geheimen:

  • Voor een gecompromitteerd persoonlijk Azure DevOps-toegangstoken verwijdert u het gecompromitteerde token, maakt u een nieuw token en werkt u alle services bij die gebruikmaken van het oude token.
  • Voor alle andere geheimen controleert u eerst of het geheim dat is doorgevoerd in Azure-opslagplaatsen geldig is. Als dat het geval is, maakt u een nieuw geheim, werkt u alle services bij die gebruikmaken van het oude geheim en verwijdert u het oude geheim.
  • identificeer alle acties die worden uitgevoerd door het gekraakte token op de resources van uw onderneming.

Wanneer u een geheim bijwerkt, moet u het nieuwe geheim veilig opslaan en ervoor zorgen dat het altijd wordt geopend en nooit als tekst zonder opmaak wordt opgeslagen. Een mogelijkheid kan zijn via Azure Keyvault of andere oplossingen voor geheimbeheer.

Geheime pushbeveiliging

Met pushbeveiliging worden binnenkomende pushes gecontroleerd op geheimen met hoge betrouwbaarheid en wordt voorkomen dat de push wordt uitgevoerd. In een foutbericht worden alle geïdentificeerde geheimen weergegeven die u kunt verwijderen of de geheimen zo nodig blijven pushen.

Over pushbeveiligingswaarschuwingen

Pushbeveiligingswaarschuwingen zijn gebruikerswaarschuwingen die worden gerapporteerd door pushbeveiliging. Geheim scannen als pushbeveiliging scant momenteel opslagplaatsen op geheimen die zijn uitgegeven door sommige serviceproviders.

Als toegang tot een resource gekoppelde referenties vereist, kan geheim scannen alleen een waarschuwing maken wanneer beide delen van het paar worden gedetecteerd in hetzelfde bestand. De koppeling zorgt ervoor dat de meest kritieke lekken niet verborgen zijn achter informatie over gedeeltelijke lekken. Koppelen helpt ook fout-positieven te verminderen, omdat beide elementen van een paar samen moeten worden gebruikt om toegang te krijgen tot de resource van de provider.

Pushbeveiliging blokkeert mogelijk geen oudere versies van bepaalde tokens, omdat deze tokens mogelijk een hoger aantal fout-positieven genereren dan de meest recente versie. Pushbeveiliging blokkeert mogelijk ook geen verouderde tokens. Voor tokens zoals Azure Storage-sleutels ondersteunt Advanced Security alleen onlangs gemaakte tokens, niet tokens die overeenkomen met de verouderde patronen.

Pushbeveiliging vanaf de opdrachtregel

Push-beveiliging is ingebouwd in Azure DevOps Git. Als uw doorvoeringen een geïdentificeerd geheim bevatten, ziet u een fout dat uw push is geweigerd.

Schermopname van een git-push die wordt geblokkeerd voor VS Code

Pushbeveiliging tegen de webinterface

Pushbeveiliging werkt ook vanuit de webinterface. Als een geheim wordt geïdentificeerd in een doorvoering, ziet u het volgende foutblok waarmee u uw wijzigingen niet meer pusht:

Schermopname van een git-push die wordt geblokkeerd voor de AzDO-webgebruikersinterface

Wat u moet doen als uw push is geblokkeerd

Met pushbeveiliging worden geheimen in tekstbestanden zonder opmaak geblokkeerd die meestal (maar niet beperkt tot) tekstbestanden zijn, zoals broncode- of JSON-configuratiebestanden. Deze geheimen worden opgeslagen in tekst zonder opmaak. Als een slechte actor toegang krijgt tot de bestanden en ze worden gepubliceerd naar een openbare opslagplaats, zijn de geheimen door iedereen bruikbaar.

Het is raadzaam om het geheim uit het gemarkeerde bestand te verwijderen en vervolgens het geheim uit de doorvoeringsgeschiedenis te verwijderen. Als het gemarkeerde geheim een tijdelijke aanduiding of voorbeeldgeheim is, is het raadzaam dat u het nepgeheim bijwerkt om de tekenreeks Placeholder voor het valse geheim te plaatsen.

Als het geheim is toegevoegd aan uw directe vorige doorvoering, wijzigt u de doorvoering en maakt u een nieuwe doorvoering:

  1. Verwijder het geheim uit uw code.
  2. De wijzigingen doorvoeren met behulp van git commit --amend
  3. Push uw wijzigingen opnieuw.

Als het geheim langer geleden is ingediend, bewerkt u uw indieningen met behulp van een interactieve rebase:

  1. Gebruik git log om te bepalen in welke indiening u het geheim voor het eerst hebt ingediend.
  2. Een interactieve rebase uitvoeren: git rebase -i [commit ID before credential introduction]~1
  3. Identificeer de indiening die u moet bewerken door pick te wijzigen in edit op de eerste regel van de tekst die in de editor wordt weergegeven.
  4. Verwijder het geheim uit uw code.
  5. Dien de wijziging in met git commit --amend.
  6. Voltooi de rebase door uit te voeren git rebase --continue.

Een geblokkeerd geheim pushen

Het omzeilen van geheimen met vlag wordt niet aanbevolen omdat het omzeilen de beveiliging van uw bedrijf in gevaar kan brengen. Als u bevestigt dat een geïdentificeerd geheim geen fout-positief is, moet u het geheim uit de hele vertakkingsgeschiedenis verwijderen voordat u de wijzigingen opnieuw probeert te pushen.

Als u denkt dat een geblokkeerd geheim een fout-positief of veilig is om te pushen, kunt u pushbeveiliging overslaan. Neem de tekenreeks skip-secret-scanning:true op in uw doorvoerbericht. Zelfs als u pushbeveiliging overslaan, wordt er een waarschuwing voor het scannen van geheimen gegenereerd in de waarschuwings-UX zodra het geheim is gepusht.