Blog

Stel de toekomst van je software veilig met GitHub

In eerdere artikelen van deze serie hebben we het concept van "Shifting Left" besproken en wat dat betekent voor je bedrijf. We hebben het wat, waarom en hoe van "Shifting Left" onderzocht. We hebben ook een kijkje genomen in een aantal van de beschikbare tools binnen Azure DevOps. In dit artikel zullen we onze focus op links verschuiven voortzetten door de voordelen te verkennen van het gebruik van GitHub om jouw software ontwikkelingspraktijken te beveiligen.

  • In het eerste artikel bespraken we hoe belangrijk automatisering was voor 'shifting left'. Vergelijkbaar met het laatste artikel, over Azure DevOps, zullen de tools die we hier verkennen je helpen bij het automatiseren van de detectie en, in sommige gevallen, het verhelpen van kwetsbaarheden in je codebase.
  • Sommige van de eerder genoemde tools zijn toepasbaar op zowel Azure DevOps als GitHub. Met dat in gedachten, laten we eens kijken naar wat GitHub-specifieke functionaliteit die je nuttig kan vinden. Veel van de hieronder genoemde tools zijn al ingebouwd in het GitHub-aanbod en vereisen niet noodzakelijkerwijs betrokkenheid van derden.

  • Het is belangrijk om op te merken dat sommige van deze functionaliteiten specifiek zijn voor bepaalde licentieniveaus. Openbare repositories, zoals Open-Source projecten, kunnen ook profiteren van extra functies in vergelijking met privé repositories.

Voor meer details over de prijsstructuur versus de functieset, kan je de prijzen van Github bekijken.

 

Secret Scanning in GitHub

Het klinkt misschien als een van de makkelijkste dingen om goed te doen, maar het per ongeluk vrijgeven van geheimen (gebruikersnamen en wachtwoorden, API tokens, of andere credentials) is een veel voorkomende fout bij het ontwikkelen van software. Dit is vooral het geval als je teams onder druk staan om tegen een deadline te leveren.

Dit is waar de geautomatiseerde geheimscan van onschatbare waarde kan zijn. Deze ingebouwde functie (met Advanced Security licentie) vertrouwt op patronen geleverd door partners en organisaties zoals die van jou. Als secret scanning is ingeschakeld, scant GitHub commits naar een repo op geheimen en genereert waarschuwingen als er gevonden worden.

Je zou kunnen denken dat het scannen van commits nadat de commit is gemaakt, hetzelfde is als de schuurdeur sluiten nadat het paard al is weggelopen. Je zou gelijk kunnen hebben, maar tegen die tijd heb je je credentials of tokens misschien al blootgesteld. Je kunt ook "Push Protectie" inschakelen om er zeker van te zijn dat alle commits die geheimen bevatten geblokkeerd worden.

Je kunt al deze instellingen openen in de "Code Beveiliging en Analyse" instellingen voor je repository. Zoek gewoon naar de "GitHub Geavanceerde Beveiliging" sectie.

 

Code Scanning opties in GitHub

Code Scanning, een andere ingebouwde functie voor bedrijven met de Advanced Security-licentie, analyseert jouw code repositories op coderingsproblemen en kwetsbaarheden.

Standaard maakt code scanning gebruik van GitHub's eigen CodeQL engine, maar je kunt iedere third-party tool gebruiken die SARIF data ondersteunt. Bekijk de docs voor meer informatie.

Code scanning is een andere waardevolle bron in je gereedschapskist als je veilige software probeert te ontwikkelen. Je kunt CodeQL configureren om je code te scannen en te testen volgens een schema of het kan getriggerd worden door een Pull Request. Net als bij secret scanning genereert dit waarschuwingen voor je ontwikkelaars om door te werken.

Je kunt dan gebruik maken van Branch Protection regels om ervoor te zorgen dat Pull Requests niet samengevoegd kunnen worden als je code scanning mislukt. Zie hieronder voor de instelling die je nodig hebt binnen je beschermingsregels:

 style=

Selecteer in de bovenstaande sectie de exacte controles die moeten slagen voordat een samenvoeging kan worden voltooid.

 

Dependabot maakt je bewust van onveilige dependencies

Zie Dependabot als je vriendelijke, betrouwbare, buurtrobot die je code repositories nauwlettend in de gaten houdt.

Dependabot kan je helpen om ervoor te zorgen dat je je bewust bent van eventuele onveilige afhankelijkheden. Je kan Dependabot standaard inschakelen voor alle nieuwe repositories vanuit uw persoonlijke account- of organisatie-instellingen. Zie de code beveiliging en analyse afbeelding hieronder voor details.

 style=

Je kunt nog verder gaan met Dependabot door beveiligingsupdates te configureren, waarbij het automatisch Pull Requests aanmaakt zodra het een kwetsbare dependency detecteert. Dit stelt je in staat om snel te handelen als een pakket waarop je vertrouwt om je applicatie te maken een kwetsbaarheid bevat.

Je kunt Dependabot zelfs meer verantwoordelijkheid geven door gebruik te maken van de versie updates functie. Deze functie is vergelijkbaar met de beveiligingsupdates functie hierboven genoemd, maar, met versie-updates, creëert het pull-verzoeken wanneer afhankelijkheden nieuwe versies beschikbaar hebben, ongeacht of het kwetsbaar is of niet.

 

Aan de slag met GitHub Docs

Zoals met de meeste van de tools en diensten die in de loop van deze artikelen genoemd worden, is het belangrijk om er praktijkervaring mee op te doen. Het is belangrijk om te leren hoe ze werken en welke voordelen of beperkingen ze kunnen bieden voor je bedrijf.

Je kunt aan de slag met de hierboven genoemde tools door naar de GitHub Docs te gaan. Hier vind je ook gidsen en leerpaden.

Git Guardian: een alternatief

Voor degenen die niet al hun eieren in één mandje willen stoppen, is er een derde partij optie genaamd Git Guardian die integreert met je GitHub organisatie. Ik ben nog maar net begonnen met het bekijken van de mogelijkheden met Git Guardian, dus je ervaring kan variëren. Ik wilde het hier vermelden voor de juiste balans. Kom meer te weten over Git Guardian.

 

Het belang van tooling en automatisering

Ik heb het al een paar keer genoemd in deze korte serie over "Shifting Left", maar het moet nog eens herhaald worden. De tools, extensies, en diensten die in deze serie genoemd zijn, zijn slechts een momentopname van wat er beschikbaar is in het ecosysteem. Naarmate je verder opschuift naar links, worden de tools die je gebruikt een integraal onderdeel van je succes. Naarmate je reis vordert, zal je bepalen welke groep van tools en diensten werken voor jouw organisatie. Die zullen niet altijd hetzelfde zijn als die van het andere team of bedrijf.

Als een team van ontwikkelaars of DevOps ingenieurs, is het onmogelijk om alle kwetsbaarheden en technische schuld alleen op te sporen en te verhelpen. Dit is waar de door jouw gekozen tooling zeer belangrijk wordt. Door te kiezen voor tooling die de detectie en, waar mogelijk, het herstel automatiseert, wordt het voor je team makkelijker om tijd te besteden aan je backlog in plaats van aan het najagen van kwetsbaarheden. Het kiezen van de juiste tooling zal uiteindelijk voordelen opleveren in flexibiliteit, efficiëntie en time to market.

Tot slot...

Het doel van deze serie artikelen was om het belang van "shifting left" als software ontwikkelaar of ontwikkelteam te belichten. We verkennen het wat, waarom en hoe van links verschuiven, evenals praktische tips voor het voortzetten van die reis in Azure DevOps en GitHub.

Een belangrijk punt om mee te nemen uit deze serie is dat, net als je software ontwikkelingsprocessen, beveiliging en shifting left een iteratief proces is. Deze reis zal er een zijn van vele cycli, waarbij je jouw processen, tooling en automatisering met elke herhaling verbetert.

Intercept helpt klanten elke dag met hun reis naar de cloud. Neem gerust contact op voor advies en/of sparringsessies met ons deskundige team.