Verdedig uw commits tegen bekende CVE's met GitGuardian SCA en Git Hooks

Alle ontwikkelaars willen veilige en betrouwbare software maken. Ze moeten trots zijn om hun code vrij te geven in het volste vertrouwen dat ze geen zwakke punten of antipatronen in hun applicaties hebben geïntroduceerd. Helaas schrijven ontwikkelaars tegenwoordig voor het grootste deel niet meer hun eigen code. 96% van alle software bevat een aantal open-sourcecomponenten, en open-sourcecomponenten vormen tussen de 70% en 90% van elk stuk moderne software. Helaas voor onze op veiligheid gerichte ontwikkelaars komen de meeste moderne kwetsbaarheden voort uit deze softwarecomponenten.

Naarmate er nieuwe kwetsbaarheden opduiken en publiekelijk worden gerapporteerd als Common Vulnerabilities and Exposures (CVE's), hebben beveiligingsteams weinig andere keus dan de ontwikkelaar te vragen de code te herstructureren en verschillende versies van de afhankelijkheden op te nemen. Niemand is blij met deze situatie, omdat het nieuwe functies blokkeert en het gek kan zijn om componentversies terug te draaien in de hoop dat er niets kapot gaat. Ontwikkelaars hebben een manier nodig om dat te doen snel bepalen of een component die ze willen gebruiken een bekende kwetsbaarheid heeft voordat ze een pull-verzoek indienen.

Gelukkig voor ontwikkelaars en beveiligingsteams is het nu gemakkelijker en sneller dan ooit om lokaal, automatisch en voordat er commits worden gedaan, lokaal naar CVE's te scannen.

Begrijpen wat er in uw code staat voordat deze wordt vastgelegd

Broncodeanalyse (SCA) komt meestal ter sprake in discussies over Software Bill Of Materials (SBOM's) en in gesprekken over compliance, en normaal gesproken veel later dan het daadwerkelijke schrijven van code. Met GitGuardian Software Composition Analysis (SCA) zoeken ontwikkelaars op elk moment in hun werk rechtstreeks vanaf hun terminal naar problemen, dankzij ggshield, de GitGuardian CLI. Met één snel commando kunnen programmeurs testen of een bepaalde versie van een afhankelijkheid een bekende kwetsbaarheid introduceert. GitGuardian laat zelfs zien of er een oplossing beschikbaar is.

In dit voorbeeld hebben we een vereiste toegevoegd voor de 'doorzetter'-bibliotheek en versie 1.7.1 gespecificeerd. Er kunnen veel redenen zijn waarom een ​​ontwikkelaar die versie zou hebben gebruikt, zoals het kopiëren van een oudere tutorial of een online bericht waarin de functionaliteit van die bibliotheek wordt uitgelegd. Een eenvoudige SCA-scan laat zien dat deze versie niet alleen een bekende kwetsbaarheid introduceert, maar dat er ook een oplossing beschikbaar is in versie 1.7.4.

Scan automatisch alleen de nieuwe wijzigingen

Hoewel het lokaal scannen op CVE's in onze code zeer krachtig is, is het nog steeds een handmatig proces. Mensen zijn geweldig in creatief zijn, maar we zijn niet geweldig als het gaat om het consequent herhaaldelijk uitvoeren van elke stap in een proces, vooral de vervelende. Het is een goede zaak dat elke ontwikkelaar een heel automatiseringsplatform rechtstreeks in zijn favoriete bronbeheerbeheertool, Git Hooks, heeft ingebouwd.

GitGuardian SCA-scannen kan automatisch worden geactiveerd tijdens de pre-commit- of pre-push-fase van Git's workflow. Het ideale moment om een ​​probleem in de code op te sporen, is voordat het ooit in de geschiedenis van uw project terechtkomt. Als het nooit wordt vastgelegd, is het niet waarschijnlijk dat een beveiligingsscan later een probleem in de CI/CD-pijplijn of productie zal detecteren. Hoewel er dagelijks nieuwe CVE's verschijnen, moeten we er alles aan doen om ervoor te zorgen dat we geen bekende CVE's aan onze code toevoegen.

Het scannen van precies de juiste omvang van het werk

Je zult in het voorbeeld van de git hook zien dat we het commando `ggshield sca scan pre-commit` gebruiken in plaats van `ggshield sca scan all` zoals we in het handmatige voorbeeld gebruikten. Deze variant op de SCA-scan beperkt de scan tot alleen de huidige werkmap, dat wil zeggen alleen de wijzigingen die zijn aangebracht sinds de laatste commit. Op deze manier zullen uw wijzigingen niet worden geblokkeerd als er bestaande kwetsbaarheden in de codebase zijn die nog niet kunnen worden verholpen. Alleen nieuwe problemen met afhankelijkheden worden geïdentificeerd en de commit wordt dan stopgezet.

In dit voorbeeld gebeurt niet alleen de commit niet, maar vertelt het bericht van GitGuardian ons dat er een oplossing beschikbaar is in een latere versie. Het enige dat onze ontwikkelaar hoeft te doen is één teken in het geïdentificeerde bestand wijzigen, het opslaan en dan kunnen ze met succes de nieuwe commit uitvoeren.

Naar links verschuiven betekent problemen eerder oplossen

Hoewel voor beveiliging de hele organisatie nodig is, kan het uitrusten van uw ontwikkelteam met de juiste tools om beveiligingsproblemen in een vroeg stadium op te sporen en te ondervangen veel kopzorgen later in het softwareleveringsproces wegnemen. Hoe dichter u bij de productie een probleem ontdekt, hoe duurder het wordt om het probleem op te lossen. Dit is de reden waarom we GitGuardian SCA beschikbaar hebben gemaakt als een pre-commit Git Hook, zodat elke ontwikkelaar kan voorkomen dat hij een bekende kwetsbaarheid aan de pijplijn en uiteindelijk de productie toevoegt.

GitGuardian SCA is beschikbaar voor een gratis proefperiode van 2 weken na een kort gesprek met ons team. SCA is slechts een van de zorgen die de productsuite van GitGuardian aanpakt. We integreren ook een reeks beveiligingstools, waaronder Secrets Detection, Public Monitoring, Infra as Code Security en Honeytoken.

Thijs Van der Does