💼 Management Samenvatting
GitHub Advanced Security biedt een uitgebreide suite van beveiligingsfuncties die organisaties in staat stelt om code repositories te beveiligen tegen moderne cyberdreigingen door geavanceerde secret scanning, dependency scanning en code scanning te implementeren. Deze oplossing detecteert automatisch gevoelige informatie zoals API-keys, wachtwoorden en tokens die mogelijk zijn gehardcodeerd in code, identificeert kwetsbaarheden in dependencies en voert statische code-analyse uit om beveiligingsproblemen vroeg in de development lifecycle te detecteren. Voor Nederlandse overheidsorganisaties die moeten voldoen aan strikte compliance-vereisten zoals de BIO-normen, ISO 27001 of de NIS2-richtlijn, is het essentieel dat GitHub repositories worden beveiligd met Advanced Security functies die kwetsbaarheden vroeg detecteren en automatisch remediëren.
✓ GitHub Enterprise Cloud
✓ GitHub Enterprise Server
✓ DevOps Platforms
Code repositories vormen een aantrekkelijk doelwit voor cyberaanvallers omdat zij toegang bieden tot source code, credentials en gevoelige informatie die kan worden misbruikt voor verdere aanvallen. Zonder adequate beveiliging kunnen aanvallers misbruik maken van gehardcodeerde secrets in code om toegang te krijgen tot cloud services, kunnen kwetsbare dependencies worden geëxploiteerd om kwaadaardige code uit te voeren, of kunnen beveiligingsproblemen in code worden misbruikt om applicaties te compromitteren. Traditionele security tools focussen vaak op individuele aspecten van repository-beveiliging, zoals dependency scanning of code review, maar bieden geen geïntegreerde aanpak die alle beveiligingsrisico's in één platform combineert. Dit leidt tot security blind spots waarbij beveiligingsproblemen worden gemist of pas laat worden gedetecteerd. Voor Nederlandse overheidsorganisaties die moeten voldoen aan strikte compliance-vereisten zoals de BIO-normen, ISO 27001 of de NIS2-richtlijn, is het essentieel dat GitHub repositories worden beveiligd met geavanceerde scanning tools die secrets detecteren, dependencies analyseren en code scannen op kwetsbaarheden. Het ontbreken van GitHub Advanced Security kan leiden tot niet-naleving van deze vereisten, wat kan resulteren in boetes, reputatieschade of het verlies van vertrouwen bij burgers en stakeholders.
Connection:
GitHub CLI of Personal Access TokenRequired Modules: GitHub CLI
Implementatie
GitHub Advanced Security omvat het implementeren van een geïntegreerde beveiligingsoplossing die secret scanning, dependency scanning en code scanning combineert in één platform. Secret scanning detecteert automatisch gevoelige informatie zoals API-keys, wachtwoorden, tokens en andere credentials die mogelijk zijn gehardcodeerd in code, waarbij real-time alerts worden gegenereerd wanneer secrets worden gedetecteerd. Dependency scanning identificeert kwetsbaarheden in dependencies door Dependabot alerts te genereren voor bekende Common Vulnerabilities and Exposures (CVE) en door automatische security updates aan te bieden voor kwetsbare dependencies. Code scanning voert statische code-analyse uit met behulp van CodeQL, waarbij beveiligingsproblemen worden gedetecteerd voordat code wordt gemerged naar de main branch. Security policies worden geconfigureerd om te waarborgen dat alle repositories voldoen aan beveiligingsvereisten, waarbij pull requests worden geblokkeerd wanneer beveiligingsproblemen worden gedetecteerd. Branch protection rules worden geconfigureerd om te waarborgen dat code reviews worden uitgevoerd en dat security checks worden doorstaan voordat code wordt gemerged. Private vulnerability reporting maakt het mogelijk voor security researchers om kwetsbaarheden te rapporteren zonder deze publiekelijk te maken, waardoor organisaties tijd krijgen om beveiligingsproblemen op te lossen voordat zij worden geëxploiteerd.
Vereisten
Voordat GitHub Advanced Security kan worden geïmplementeerd, moeten organisaties verschillende essentiële vereisten vervullen om een succesvolle implementatie te garanderen. De eerste en meest kritieke vereiste is het ontwikkelen van een GitHub Advanced Security implementatiebeleid dat expliciet definieert welke repositories Advanced Security moeten gebruiken, welke scanning tools moeten worden geactiveerd, en hoe security findings moeten worden opgevolgd en geremedieerd. Dit beleid moet worden ontwikkeld in samenwerking met verschillende stakeholders, waaronder security officers, development leads, DevOps engineers en repository beheerders. Het beleid moet duidelijk maken welke repositories Advanced Security vereisen, welke secret patterns moeten worden gedetecteerd, welke dependency scanning moet worden uitgevoerd, en hoe code scanning moet worden geconfigureerd. Zonder een gedocumenteerd beleid bestaat het risico dat beveiliging inconsistently wordt toegepast across verschillende repositories, wat kan leiden tot gemiste beveiligingsvereisten of conflicten tussen development en security teams.
Een volledige inventarisatie van alle GitHub repositories is essentieel voordat Advanced Security wordt geïmplementeerd. Deze inventarisatie moet alle actieve repositories documenteren, welke code wordt beheerd, welke dependencies worden gebruikt, en welke beveiligingsrisico's hieraan zijn verbonden. Voor elke repository moet worden gedocumenteerd of deze publiek of privé is, welke programmeertalen worden gebruikt, welke dependencies worden gebruikt, en of er gevoelige informatie wordt verwerkt. Repositories die gevoelige code bevatten, kritieke applicaties beheren, of persoonsgegevens verwerken moeten prioriteit krijgen voor Advanced Security implementatie. Deze inventarisatie vormt de basis voor het bepalen welke repositories Advanced Security vereisen, welke scanning tools moeten worden geactiveerd, en hoe security findings moeten worden geïntegreerd in development workflows.
GitHub Advanced Security is beschikbaar voor GitHub Enterprise Cloud en GitHub Enterprise Server, waarbij een licentie vereist is voor elke gebruiker die toegang heeft tot repositories met Advanced Security. Voor GitHub Enterprise Cloud is Advanced Security beschikbaar als een add-on licentie die per gebruiker wordt gefactureerd. Voor GitHub Enterprise Server is Advanced Security beschikbaar als onderdeel van de Enterprise Server licentie. Organisaties moeten ervoor zorgen dat alle gebruikers die toegang hebben tot repositories met Advanced Security beschikken over de juiste licentie. Zonder de juiste licenties kunnen Advanced Security functies niet worden geactiveerd of gebruikt.
Access controls moeten worden geconfigureerd om te waarborgen dat alleen geautoriseerde gebruikers toegang krijgen tot Advanced Security features en security findings. GitHub Role-Based Access Control (RBAC) moet worden geconfigureerd voor repositories, waarbij security teams de rol Security Manager of Repository Administrator krijgen toegewezen voor het beheren van Advanced Security settings. Development teams moeten de rol Developer krijgen toegewezen voor het bekijken van security findings voor hun specifieke repositories, maar mogen geen toegang krijgen tot globale security settings of andere repositories. Service accounts of GitHub Apps moeten worden geconfigureerd voor geautomatiseerde workflows, waarbij least privilege access wordt geïmplementeerd zodat service accounts alleen toegang krijgen tot de resources die zij nodig hebben. Zonder adequate access controls bestaat het risico dat onbevoegde gebruikers toegang krijgen tot gevoelige security information of dat service accounts worden misbruikt voor ongeautoriseerde acties.
GitHub Actions workflows moeten worden geconfigureerd voor geautomatiseerde security scanning, waarbij workflows worden ingesteld die secret scanning, dependency scanning en code scanning uitvoeren bij elke code commit of pull request. Deze workflows moeten worden geconfigureerd met passende permissions, waarbij workflows alleen toegang krijgen tot de resources die zij nodig hebben voor security scanning. Workflows moeten worden geconfigureerd om security findings te rapporteren aan development teams en security teams, waarbij waarschuwingen worden gegenereerd wanneer kritieke beveiligingsproblemen worden gedetecteerd. Zonder correct geconfigureerde workflows kan geautomatiseerde security scanning niet worden uitgevoerd en kunnen beveiligingsproblemen worden gemist.
Implementatie
Gebruik PowerShell-script github-advanced-security.ps1 (functie Invoke-Remediation) – Configureert GitHub Advanced Security volgens best practices.
De implementatie van GitHub Advanced Security begint met het activeren van Advanced Security voor de gewenste repositories. Navigeer naar de repository settings in GitHub, selecteer Security & analysis, en activeer de gewenste Advanced Security functies. Secret scanning moet worden geactiveerd voor alle repositories die mogelijk gevoelige informatie bevatten, waarbij secret patterns worden gedetecteerd die zijn gedefinieerd door GitHub en door organisaties zelf. Dependency scanning moet worden geactiveerd voor alle repositories die dependencies gebruiken, waarbij Dependabot alerts worden gegenereerd voor bekende CVE's en waarbij automatische security updates worden aangeboden. Code scanning moet worden geactiveerd voor alle repositories die code bevatten, waarbij CodeQL wordt gebruikt om statische code-analyse uit te voeren en beveiligingsproblemen te detecteren.
Secret scanning moet worden geconfigureerd om automatisch gevoelige informatie te detecteren die mogelijk is gehardcodeerd in code. GitHub biedt ingebouwde secret patterns voor populaire services zoals AWS, Azure, Google Cloud, en andere cloud providers, waarbij real-time alerts worden gegenereerd wanneer secrets worden gedetecteerd. Organisaties kunnen ook custom secret patterns definiëren voor specifieke services of credentials die worden gebruikt binnen de organisatie. Configureer secret scanning alerts die worden gegenereerd wanneer secrets worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer gevoelige informatie wordt gevonden. Configureer automatische remediatie voor gedetecteerde secrets, waarbij secrets automatisch worden verwijderd uit code of waarbij pull requests worden geblokkeerd wanneer secrets worden gedetecteerd. Verifieer dat secret scanning correct werkt door test secrets toe te voegen aan code en door te controleren of alerts correct worden gegenereerd.
Dependency scanning moet worden geconfigureerd om kwetsbaarheden te detecteren in dependencies. Dependabot analyseert automatisch dependencies in package manifest files zoals package.json, requirements.txt, of Gemfile, waarbij alerts worden gegenereerd voor bekende CVE's. Configureer Dependabot alerts die worden gegenereerd wanneer kwetsbaarheden worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer kritieke kwetsbaarheden worden gevonden. Configureer automatische security updates voor kwetsbare dependencies, waarbij Dependabot automatisch pull requests genereert die dependencies updaten naar veilige versies. Configureer Dependabot security updates voor alle repositories die dependencies gebruiken, waarbij updates worden gegenereerd voor kritieke en hoge severity kwetsbaarheden. Verifieer dat dependency scanning correct werkt door test dependencies toe te voegen met bekende kwetsbaarheden en door te controleren of alerts correct worden gegenereerd.
Code scanning moet worden geconfigureerd om statische code-analyse uit te voeren met behulp van CodeQL. CodeQL analyseert automatisch code op beveiligingsproblemen, waarbij queries worden uitgevoerd die zijn gedefinieerd door GitHub en door organisaties zelf. Configureer CodeQL workflows die worden uitgevoerd bij elke code commit of pull request, waarbij code wordt geanalyseerd op beveiligingsproblemen voordat code wordt gemerged. Configureer CodeQL queries die zijn afgestemd op de programmeertalen die worden gebruikt in repositories, waarbij queries worden uitgevoerd die relevant zijn voor de specifieke codebase. Configureer code scanning alerts die worden gegenereerd wanneer beveiligingsproblemen worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer kritieke beveiligingsproblemen worden gevonden. Configureer pull request blocking wanneer code scanning failures worden gedetecteerd, waarbij pull requests worden geblokkeerd totdat beveiligingsproblemen zijn opgelost. Verifieer dat code scanning correct werkt door test code toe te voegen met bekende beveiligingsproblemen en door te controleren of alerts correct worden gegenereerd.
Security policies moeten worden geconfigureerd om te waarborgen dat alle repositories voldoen aan beveiligingsvereisten. Configureer security policies die bepalen welke Advanced Security functies moeten worden geactiveerd, welke secret patterns moeten worden gedetecteerd, en welke code scanning queries moeten worden uitgevoerd. Configureer policy enforcement die pull requests blokkeert wanneer beveiligingsvereisten niet worden nageleefd, waarbij code niet kan worden gemerged totdat beveiligingsproblemen zijn opgelost. Configureer policy exceptions voor repositories die legitieme redenen hebben om bepaalde beveiligingsvereisten niet na te leven, waarbij exceptions worden gedocumenteerd en gereviewed. Verifieer dat security policies correct werken door test pull requests te maken die beveiligingsvereisten schenden en door te controleren of pull requests correct worden geblokkeerd.
Branch protection rules moeten worden geconfigureerd om te waarborgen dat code reviews worden uitgevoerd en dat security checks worden doorstaan voordat code wordt gemerged. Configureer branch protection rules die vereisen dat pull requests worden gereviewed door ten minste één andere ontwikkelaar, waarbij code niet kan worden gemerged zonder approval. Configureer required status checks die vereisen dat alle security scans worden doorstaan voordat code wordt gemerged, waarbij secret scanning, dependency scanning en code scanning allemaal moeten slagen. Configureer required reviews die vereisen dat security teams pull requests reviewen wanneer beveiligingsproblemen worden gedetecteerd, waarbij security teams kunnen blokkeren of goedkeuren op basis van beveiligingsrisico's. Verifieer dat branch protection rules correct werken door test pull requests te maken die beveiligingsvereisten schenden en door te controleren of pull requests correct worden geblokkeerd.
Private vulnerability reporting moet worden geconfigureerd om security researchers in staat te stellen kwetsbaarheden te rapporteren zonder deze publiekelijk te maken. Configureer private vulnerability reporting voor alle repositories die publiek zijn of die kritieke applicaties beheren, waarbij security researchers een veilige manier hebben om kwetsbaarheden te rapporteren. Configureer vulnerability reporting workflows die bepalen hoe kwetsbaarheden worden verwerkt, wie verantwoordelijk is voor het onderzoeken van kwetsbaarheden, en hoe kwetsbaarheden worden opgelost. Configureer disclosure policies die bepalen wanneer kwetsbaarheden publiekelijk worden gemaakt, waarbij organisaties tijd krijgen om beveiligingsproblemen op te lossen voordat zij worden geëxploiteerd. Verifieer dat private vulnerability reporting correct werkt door test vulnerability reports te maken en door te controleren of reports correct worden verwerkt.
Compliance en Auditing
GitHub Advanced Security is essentieel voor naleving van verschillende compliance-vereisten die van toepassing zijn op Nederlandse organisaties, met name in de publieke sector. De Baseline Informatiebeveiliging Overheid (BIO) bevat in Thema 12.01 specifieke vereisten voor secure development en secure coding practices, waarbij organisaties moeten zorgen dat beveiliging wordt geïntegreerd in development processen en dat code wordt gereviewed op beveiligingsaspecten voordat applicaties in productie worden gebracht. GitHub Advanced Security implementeert deze vereisten door secret scanning te bieden die gehardcodeerde credentials detecteert, door dependency scanning te bieden die kwetsbare dependencies identificeert, en door code scanning te bieden die beveiligingsproblemen detecteert voordat code wordt gemerged. Voor overheidsorganisaties die moeten voldoen aan BIO-normen is documentatie van Advanced Security configuratie, security scanning results en security findings een essentieel onderdeel van audit-evidentie.
ISO 27001:2022 bevat in controle A.14.2.1 specifieke vereisten voor secure development policies, waarbij organisaties moeten zorgen dat beveiliging wordt geïntegreerd in development processen. Controle A.14.2.5 vereist dat organisaties security testing uitvoeren tijdens development en voordat applicaties in productie worden gebracht. GitHub Advanced Security implementeert beide controles door secret scanning te bieden die gehardcodeerde credentials detecteert, door dependency scanning te bieden die kwetsbare dependencies identificeert, en door code scanning te bieden die beveiligingsproblemen detecteert voordat code wordt gemerged. De auditlogs die worden gegenereerd door Advanced Security kunnen worden gebruikt als audit-evidentie om aan te tonen dat organisaties proactief beveiliging integreren in development processen en dat security testing wordt uitgevoerd voor alle code changes.
De NIS2-richtlijn vereist in Artikel 21 dat organisaties passende maatregelen treffen voor beveiliging van systemen en diensten, waarbij secure development een essentieel onderdeel vormt. De richtlijn benadrukt het belang van security-by-design, waarbij beveiliging vanaf het begin wordt meegenomen in development processen. GitHub Advanced Security implementeert dit principe door secret scanning te bieden die gehardcodeerde credentials detecteert, door dependency scanning te bieden die kwetsbare dependencies identificeert, en door code scanning te bieden die beveiligingsproblemen detecteert voordat code wordt gemerged. Voor organisaties die onder NIS2 vallen is het daarom niet alleen aanbevolen maar verplicht om Advanced Security te implementeren voor alle kritieke repositories en om security scanning uit te voeren voor alle code changes.
De Algemene Verordening Gegevensbescherming (AVG) vereist in Artikel 32 dat organisaties passende technische en organisatorische maatregelen implementeren om persoonsgegevens te beschermen, waarbij secure development een essentieel onderdeel vormt. Wanneer applicaties worden ontwikkeld die persoonsgegevens verwerken, is het essentieel dat repositories worden beveiligd met secret scanning om te voorkomen dat credentials worden gehardcodeerd die kunnen leiden tot datalekken. GitHub Advanced Security zorgt ervoor dat beveiliging wordt meegenomen in elke code commit, dat security testing wordt uitgevoerd voordat code in productie wordt gebracht, en dat beveiligingsproblemen vroeg worden gedetecteerd en opgelost. Secret scanning detecteert automatisch gevoelige informatie zoals API-keys en tokens die mogelijk zijn gehardcodeerd in code, waardoor het risico op datalekken wordt geminimaliseerd.
Monitoring
Gebruik PowerShell-script github-advanced-security.ps1 (functie Invoke-Monitoring) – Controleert de implementatie en effectiviteit van GitHub Advanced Security.
Effectieve monitoring van GitHub Advanced Security is essentieel om te waarborgen dat beveiliging correct wordt geïmplementeerd voor alle repositories en dat organisaties altijd beschikken over actuele informatie over beveiligingsstatus van code en dependencies. Monitoring omvat het continu volgen van security findings, het verifiëren dat security scanning wordt uitgevoerd voor alle repositories, het controleren van de effectiviteit van secret detection, en het waarborgen dat alle beveiligingsvereisten worden nageleefd.
Security dashboards vormen het centrale punt voor monitoring van repository-beveiliging. GitHub biedt ingebouwde security dashboards die een overzicht bieden van security findings, secret scanning alerts, dependency scanning alerts en code scanning results voor alle repositories. Configureer custom dashboards die zijn afgestemd op de specifieke behoeften van de organisatie, waarbij metrics worden weergegeven zoals het aantal security findings per repository, het aantal gedetecteerde secrets, het aantal kwetsbare dependencies, of de compliance score. Stel waarschuwingen in voor kritieke of hoge severity security findings die worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer belangrijke beveiligingsproblemen worden gevonden. Genereer wekelijkse of maandelijkse rapporten die een overzicht bieden van security status, trends en verbeterpunten. Monitor ook of security scanning daadwerkelijk wordt uitgevoerd voor alle repositories, waarbij waarschuwingen worden gegenereerd wanneer scans niet worden uitgevoerd of wanneer scans falen.
Monitor regelmatig of secret scanning correct functioneert en of secrets worden gedetecteerd. Verifieer dat secret scanning correct is geconfigureerd voor alle repositories, en dat secret patterns correct zijn gedefinieerd voor de services die worden gebruikt binnen de organisatie. Review regelmatig secret scanning alerts om te identificeren welke secrets worden gedetecteerd, en evalueer of secret patterns effectief zijn in het detecteren van echte credentials. Configureer waarschuwingen die worden gegenereerd wanneer secrets worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer gevoelige informatie wordt gevonden. Verifieer dat gedetecteerde secrets worden geremedieerd door te controleren of secrets zijn verwijderd uit code of of pull requests zijn geblokkeerd wanneer secrets worden gedetecteerd.
Monitor regelmatig of dependency scanning correct functioneert en of kwetsbaarheden worden gedetecteerd. Verifieer dat Dependabot alerts correct zijn geconfigureerd voor alle repositories die dependencies gebruiken, en dat alerts correct worden gegenereerd wanneer kwetsbaarheden worden gedetecteerd. Review regelmatig Dependabot alerts om te identificeren welke dependencies kwetsbaar zijn, en evalueer of security updates effectief zijn in het oplossen van kwetsbaarheden. Configureer waarschuwingen die worden gegenereerd wanneer kritieke kwetsbaarheden worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer belangrijke beveiligingsproblemen worden gevonden. Verifieer dat kwetsbare dependencies worden geüpdatet door te controleren of security updates zijn toegepast of of pull requests zijn gegenereerd voor security updates.
Monitor regelmatig of code scanning correct functioneert en of beveiligingsproblemen worden gedetecteerd. Verifieer dat CodeQL workflows correct zijn geconfigureerd voor alle repositories, en dat workflows correct worden uitgevoerd bij elke code commit of pull request. Review regelmatig code scanning results om te identificeren welke beveiligingsproblemen worden gedetecteerd, en evalueer of CodeQL queries effectief zijn in het detecteren van echte beveiligingsproblemen. Configureer waarschuwingen die worden gegenereerd wanneer kritieke beveiligingsproblemen worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer belangrijke beveiligingsproblemen worden gevonden. Verifieer dat beveiligingsproblemen worden opgelost door te controleren of pull requests zijn geblokkeerd wanneer beveiligingsproblemen worden gedetecteerd of of beveiligingsproblemen zijn opgelost voordat code wordt gemerged.
Voer regelmatig security reviews uit om te verifiëren dat Advanced Security correct is geconfigureerd voor alle repositories en dat security findings worden opgevolgd. Tijdens reviews moeten alle repositories worden gecontroleerd, inclusief of Advanced Security is geactiveerd, of secret scanning wordt uitgevoerd, of dependency scanning wordt uitgevoerd, en of code scanning wordt uitgevoerd. Review ook of security policies correct zijn geconfigureerd, inclusief of branch protection rules correct zijn ingesteld, of pull request blocking correct werkt, en of security findings worden opgevolgd. Tijdens reviews moeten trends worden geïdentificeerd, zoals welke beveiligingsproblemen het meest voorkomen, welke repositories de meeste security findings hebben, en welke verbeteringen nodig zijn in security processes.
Genereer maandelijks compliance-rapporten die een overzicht bieden van de security status van repositories. Deze rapporten moeten informatie bevatten over het aantal security findings per repository, het aantal gedetecteerde secrets, het aantal kwetsbare dependencies, het aantal code scanning results, en eventuele afwijkingen of problemen die zijn geïdentificeerd. Deze rapporten kunnen worden gebruikt voor management reporting, audit-doeleinden, en voor het identificeren van trends of verbeterpunten. Rapporten moeten worden gedistribueerd naar relevante stakeholders, zoals security officers, development leads en repository beheerders.
Remediatie
Gebruik PowerShell-script github-advanced-security.ps1 (functie Invoke-Remediation) – Herstelt GitHub Advanced Security configuraties naar de gewenste staat.
Wanneer tijdens monitoring wordt vastgesteld dat GitHub Advanced Security niet correct is geïmplementeerd of dat beveiligingsproblemen niet worden gedetecteerd, moet direct actie worden ondernomen om de beveiliging te herstellen. Het remediatieproces begint met het identificeren van de specifieke problemen, zoals repositories zonder Advanced Security, secret scanning die niet functioneert, of dependency scanning die niet wordt uitgevoerd. Prioriteer problemen op basis van risico en bedrijfskritiek, waarbij hoog-risico problemen zoals repositories zonder secret scanning of kritieke kwetsbaarheden die niet worden gedetecteerd onmiddellijk moeten worden aangepakt.
Voor repositories zonder Advanced Security moet Advanced Security worden geactiveerd. Navigeer naar de repository settings in GitHub, selecteer Security & analysis, en activeer de gewenste Advanced Security functies. Activeer secret scanning voor alle repositories die mogelijk gevoelige informatie bevatten, waarbij secret patterns worden gedetecteerd die zijn gedefinieerd door GitHub en door organisaties zelf. Activeer dependency scanning voor alle repositories die dependencies gebruiken, waarbij Dependabot alerts worden gegenereerd voor bekende CVE's. Activeer code scanning voor alle repositories die code bevatten, waarbij CodeQL wordt gebruikt om statische code-analyse uit te voeren. Wanneer Advanced Security wordt geactiveerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat Advanced Security correct werkt door test scans uit te voeren en door te controleren of findings correct worden gegenereerd.
Voor secret scanning die niet functioneert moet secret scanning worden geconfigureerd of herconfigureerd. Verifieer dat secret scanning correct is geconfigureerd voor alle repositories, en dat secret patterns correct zijn gedefinieerd voor de services die worden gebruikt binnen de organisatie. Configureer secret scanning alerts die worden gegenereerd wanneer secrets worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer gevoelige informatie wordt gevonden. Configureer automatische remediatie voor gedetecteerde secrets, waarbij secrets automatisch worden verwijderd uit code of waarbij pull requests worden geblokkeerd wanneer secrets worden gedetecteerd. Wanneer secret scanning wordt geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat secret scanning correct werkt door test secrets toe te voegen aan code en door te controleren of alerts correct worden gegenereerd.
Voor dependency scanning die niet wordt uitgevoerd moet dependency scanning worden geconfigureerd of herconfigureerd. Verifieer dat Dependabot alerts correct zijn geconfigureerd voor alle repositories die dependencies gebruiken, en dat alerts correct worden gegenereerd wanneer kwetsbaarheden worden gedetecteerd. Configureer automatische security updates voor kwetsbare dependencies, waarbij Dependabot automatisch pull requests genereert die dependencies updaten naar veilige versies. Configureer Dependabot security updates voor alle repositories die dependencies gebruiken, waarbij updates worden gegenereerd voor kritieke en hoge severity kwetsbaarheden. Wanneer dependency scanning wordt geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat dependency scanning correct werkt door test dependencies toe te voegen met bekende kwetsbaarheden en door te controleren of alerts correct worden gegenereerd.
Voor code scanning die niet functioneert moet code scanning worden geconfigureerd of herconfigureerd. Verifieer dat CodeQL workflows correct zijn geconfigureerd voor alle repositories, en dat workflows correct worden uitgevoerd bij elke code commit of pull request. Configureer CodeQL queries die zijn afgestemd op de programmeertalen die worden gebruikt in repositories, waarbij queries worden uitgevoerd die relevant zijn voor de specifieke codebase. Configureer code scanning alerts die worden gegenereerd wanneer beveiligingsproblemen worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer kritieke beveiligingsproblemen worden gevonden. Configureer pull request blocking wanneer code scanning failures worden gedetecteerd, waarbij pull requests worden geblokkeerd totdat beveiligingsproblemen zijn opgelost. Wanneer code scanning wordt geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat code scanning correct werkt door test code toe te voegen met bekende beveiligingsproblemen en door te controleren of alerts correct worden gegenereerd.
Voor security policies die niet worden nageleefd moeten security policies worden geconfigureerd of herconfigureerd. Verifieer dat security policies correct zijn geconfigureerd voor alle repositories, en dat policies correct worden gehandhaafd. Configureer policy enforcement die pull requests blokkeert wanneer beveiligingsvereisten niet worden nageleefd, waarbij code niet kan worden gemerged totdat beveiligingsproblemen zijn opgelost. Configureer branch protection rules die vereisen dat alle security scans worden doorstaan voordat code wordt gemerged, waarbij secret scanning, dependency scanning en code scanning allemaal moeten slagen. Wanneer security policies worden geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat security policies correct werken door test pull requests te maken die beveiligingsvereisten schenden en door te controleren of pull requests correct worden geblokkeerd.
Documenteer alle remediatie-activiteiten, inclusief welke problemen zijn geïdentificeerd, welke acties zijn ondernomen, wie verantwoordelijk was voor de remediatie, en wanneer de remediatie is voltooid. Deze documentatie is essentieel voor audit-doeleinden en voor het aantonen dat organisaties proactief omgaan met beveiligingsproblemen. Verifieer na remediatie dat de problemen daadwerkelijk zijn opgelost door de configuratie opnieuw te controleren en door te monitoren of er geen nieuwe problemen ontstaan.
Compliance & Frameworks
- BIO: 12.01.01, 12.01.02, 12.01.03 - Secure development en geavanceerde security scanning voor GitHub repositories
- ISO 27001:2022: A.14.2.1, A.14.2.5, A.14.2.8 - Secure development policies, security testing en geavanceerde security scanning in GitHub
- NIS2: Artikel - Beveiliging van systemen en diensten door geavanceerde security scanning voor GitHub repositories
Automation
Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).
Risico zonder implementatie
Management Samenvatting
GitHub Advanced Security biedt geïntegreerde beveiligingsfuncties die secret scanning, dependency scanning en code scanning combineren in één platform. Activeer Advanced Security voor alle repositories, configureer secret scanning voor gehardcodeerde credentials, implementeer dependency scanning voor kwetsbare dependencies, configureer code scanning met CodeQL voor beveiligingsproblemen, en stel security policies en branch protection rules in. Implementatie: 36 uur. Essentieel voor compliance met BIO, ISO 27001 en NIS2.
- Implementatietijd: 36 uur
- FTE required: 0.3 FTE