GHAS gebruiken om de meeste impact te krijgen

Voltooid

In deze les bekijken we het volgende:

  • Inzicht in de afhankelijkheidsgrafiek
  • Reageren op GHAS-waarschuwingen
  • Wie heeft toegang tot waarschuwingen

Laten we eens kijken hoe Dependabot werkt, te beginnen met de afhankelijkheidsgrafiek.

De afhankelijkheidsgrafiek is centraal in de beveiliging van de toeleveringsketen. De afhankelijkheidsgrafiek identificeert alle upstream-afhankelijkheden en openbare downstreamafhankelijkheden van een opslagplaats of pakket. U kunt de afhankelijkheden van uw opslagplaats en enkele van hun eigenschappen, zoals informatie over beveiligingsproblemen, zien in de afhankelijkheidsgrafiek voor de opslagplaats.

GitHub bekijkt de expliciete afhankelijkheden van een opslagplaats die zijn gedeclareerd in het manifest en de vergrendelingsbestanden om de afhankelijkheidsgrafiek te genereren. Wanneer deze optie is ingeschakeld, parseert de afhankelijkheidsgrafiek automatisch alle bekende pakketmanifestbestanden in de opslagplaats en gebruikt deze scan om een grafiek te maken met bekende afhankelijkheidsnamen en versies.

Belangrijke punten over de afhankelijkheidsgrafiek zijn:

  • Bevat informatie over uw directe afhankelijkheden en transitieve afhankelijkheden.
  • Afhankelijkheidsgrafiek wordt automatisch bijgewerkt wanneer u een doorvoering naar GitHub pusht waarmee een ondersteund manifest of vergrendelingsbestand wordt toegevoegd aan de standaardbranch. Het wordt ook automatisch bijgewerkt wanneer iemand een wijziging naar de opslagplaats van een van uw afhankelijkheden pusht.
  • U kunt de afhankelijkheidsgrafiek zien door de hoofdpagina van de opslagplaats op GitHub te openen en naar het tabblad Inzichten te navigeren.
  • Als u ten minste leestoegang tot de opslagplaats hebt, kunt u de afhankelijkheidsgrafiek voor de opslagplaats exporteren als een MET SPDX compatibele Software Bill of Materials (SBOM), via de GitHub-gebruikersinterface of GitHub REST API. Zie 'Een softwarefactuur van materialen voor uw opslagplaats exporteren' voor meer informatie.

Daarnaast kunt u de API voor het verzenden van afhankelijkheden (bèta) gebruiken om afhankelijkheden te verzenden van pakketbeheer of ecosysteem van uw keuze, zelfs als het ecosysteem niet wordt ondersteund door een afhankelijkheidsgrafiek voor manifest- of vergrendelingsbestandsanalyse. Afhankelijkheden die zijn verzonden naar een project met behulp van de API voor het indienen van afhankelijkheden (bèta) laten zien welke detector is gebruikt voor hun inzending en wanneer ze zijn verzonden.

Andere supply chain-functies op GitHub zijn afhankelijk van de informatie die wordt verstrekt door de afhankelijkheidsgrafiek, waaronder:

  • Afhankelijkheidsbeoordeling: gebruikt de afhankelijkheidsgrafiek om afhankelijkheidswijzigingen te identificeren en u inzicht te geven in de beveiligingsimpact van deze wijzigingen wanneer u pull-aanvragen bekijkt.
  • Dependabot-waarschuwingen: Dependabot vergelijkt afhankelijkheidsgegevens die worden geleverd door de afhankelijkheidsgrafiek met de adviezenlijst die is gepubliceerd in de GitHub Advisory Database. De afhankelijkheidsgrafiek scant uw afhankelijkheden en genereert Dependabot-waarschuwingen wanneer een mogelijk beveiligingsprobleem wordt gedetecteerd.
  • Dependabot-beveiligingsupdates: maakt gebruik van de afhankelijkheidsgrafiek en Dependabot-waarschuwingen om u te helpen afhankelijkheden bij te werken met bekende beveiligingsproblemen in uw opslagplaats.

Hoewel de versie-updates van Dependabot de afhankelijkheidsgrafiek niet gebruiken, is het nog steeds de moeite waard om te vermelden. Afhankelijke versie-updates zijn afhankelijk van de semantische versiebeheer van afhankelijkheden. Afhankelijke versie-updates helpen u om uw afhankelijkheden bijgewerkt te houden, zelfs wanneer ze geen beveiligingsproblemen hebben.

Reageren op GHAS-waarschuwingen

Met zijn uitgebreide set hulpprogramma's biedt GHAS holistische zichtbaarheid in het beveiligingspostuur van een organisatie en de mogelijkheid om beveiligingsacceptatie af te dwingen, waardoor nauwkeurige en effectieve prioriteitstelling en het beheer van beveiligingsrisico's mogelijk is.

Een van de vele hulpprogramma's die de beveiliging tijdens het ontwikkelingsproces garanderen, zijn alle waarschuwingen die GHAS uw organisatie biedt.

Laten we ze eens bekijken:

Waarschuwingen voor codescans:

  • CodeQL-analysewaarschuwingen: gegenereerd door CodeQL, de semantische codeanalyse-engine van GitHub, identificeren deze waarschuwingen mogelijke beveiligingsproblemen in de codebasis. Ze hebben betrekking op een breed scala aan problemen, waaronder maar niet beperkt tot SQL-injectie, cross-site scripting en andere codeproblemen.

Waarschuwingen voor geheim scannen:

  • Waarschuwingen voor weergegeven geheimen: deze waarschuwingen worden geactiveerd wanneer mogelijk gevoelige informatie, zoals API-sleutels of referenties, wordt geïdentificeerd in de broncode van de opslagplaats. Het scannen van geheimen helpt onbedoelde blootstelling van vertrouwelijke gegevens te voorkomen.

Afhankelijkheidswaarschuwingen:

  • Dependabot-waarschuwingen: Dependabot detecteert automatisch verouderde afhankelijkheden in een project en maakt pull-aanvragen om ze bij te werken naar de nieuwste, beveiligde versies. Dependabot-waarschuwingen stellen ontwikkelaars op de hoogte van beschikbare updates voor projectafhankelijkheden.

Waarschuwingen voor beveiligingsoverzicht:

  • Het beveiligingsoverzicht biedt een uitgebreid dashboard met een overzicht van de beveiligingsstatus van de opslagplaats.

Waarschuwingen van derden:

  • U kunt hulpprogramma's voor codeanalyse van derden integreren met Het scannen van GitHub-code door gegevens als SARIF-bestanden te uploaden. Meer informatie over dit onderwerp aan het einde van de module met een koppeling naar 'Integreren met codescans'.

Gevolgen van het negeren van een waarschuwing

Het negeren van een beveiligingswaarschuwing vormt aanzienlijke risico's voor het project. Beveiligingsproblemen kunnen worden misbruikt door kwaadwillende actoren, wat leidt tot gegevensschendingen, serviceonderbrekingen of andere beveiligingsincidenten. Het negeren van waarschuwingen kan ook leiden tot meer herstelinspanningen, mogelijk van invloed op projecttijdlijnen en de algehele betrouwbaarheid van de software.

De gevolgen op de lange termijn van het negeren van waarschuwingen kunnen reputatieschade, niet-naleving van regelgeving en financiële verliezen omvatten. Het is van cruciaal belang dat ontwikkelteams onmiddellijk beveiligingswaarschuwingen prioriteren en aanpakken om deze risico's te beperken en de integriteit van de software te behouden.

Wanneer ontwikkelaars een beveiligingswaarschuwing detecteren, is hun directe rol het onderzoeken van de aard en ernst van de waarschuwing. Dit omvat inzicht in de impact op de codebasis, mogelijke misbruikscenario's en eventuele benodigde stappen voor herstel.

Met behulp van GHAS kunnen ontwikkelaars eerder in de levenscyclus van softwareontwikkeling beveiligingsproblemen vinden en oplossen.

Wie heeft toegang tot waarschuwingen?

GHAS biedt gedetailleerde toegangsbeheer, zodat organisaties kunnen definiëren wie waarschuwingen voor verschillende beveiligingsfuncties kan bekijken. Dit zorgt ervoor dat alleen geautoriseerd personeel, zoals beveiligingsteams en relevante belanghebbenden, toegang heeft tot gevoelige beveiligingsinformatie.

Toegangsbeheer is op rollen gebaseerd, met verschillende rollen met verschillende toegangsniveaus voor GHAS-waarschuwingen. Laten we eens wat dieper ingaan op rollen en toegang tot waarschuwingen:

  • Waarschuwingen voor codescans & Dependabot kunnen door iedereen met de Write opslagplaatsrol worden bekeken en gewijzigd
  • Waarschuwingen voor het scannen van geheimen kunnen worden bekeken en gewijzigd door iedereen met de rol van de Admin opslagplaats
  • Elke persoon of elk team kan toegang krijgen om alle waarschuwingen in een opslagplaats te bekijken en te wijzigen, ongeacht de rol van de opslagplaats, door de instellingen 'Toegang tot waarschuwingen' van de opslagplaats te wijzigen

Nu we hebben gecontroleerd welke waarschuwingen kunnen worden gezien door specifieke rollen, is het de moeite waard om te vermelden dat effectief toegangsbeheer de samenwerking verbetert door het juiste zichtbaarheidsniveau voor elk teamlid te bieden. Dit zorgt ervoor dat belanghebbenden zich kunnen richten op de beveiligingsaspecten die relevant zijn voor hun rollen, waardoor een gestroomlijnde en efficiënte reactie op beveiligingswaarschuwingen wordt vergemakkelijkt.

Door inzicht te krijgen in de complexiteit van het identificeren van beveiligingsproblemen, het reageren op waarschuwingen, het erkennen van de implicaties van inactiviteit en het definiëren van rollen en besturingselementen voor toegang, kunnen ontwikkelteams gebruikmaken van GitHub Advanced Security voor het volledige potentieel, waardoor een flexibelere en veiligere ontwikkelomgeving ontstaat.

In de volgende sectie bekijken we hoe gezamenlijk GHAS uw beveiligingsecosysteem kan verbeteren.