Terwijl we samen op verkenning gaan, zal ik specifieke tools vermelden. Er zijn vaak meerdere tools die hetzelfde of een soortgelijk doel bereiken. Het is aan jou en je bedrijf om de opties te evalueren en te beslissen welke het beste past.
In het vorige artikel bespraken we hoe belangrijk automatisering was om links te verschuiven. De tools die we hier onderzoeken zullen je helpen bij het automatiseren van de detectie en, in sommige gevallen, het verhelpen van kwetsbaarheden in jouw codebase. We duiken in de volgende tools en onderwerpen:
- Gitleaks
- SonarQube
- Whitesource Bolt
- Container beveiliging
- Het belang van tooling
- De conclusie
- DevOps met Intercept
Gitleaks
Gitleaks is een SAST (Static Application Security Testing) project dat je git repo's scant op hardcoded geheimen. Deze geheimen kunnen variëren van credentials (gebruikersnamen/wachtwoorden) tot API sleutels en tokens. Kom meer te weten over het Gitleaks project.
Je kunt Gitleaks lokaal installeren en pre-commit hooks gebruiken om er zeker van te zijn dat je geen secrets commit naar je git repositories.
Daarnaast kan je Gitleaks ook opnemen in je Azure DevOps Pipelines door gebruik te maken van de Gitleaks extensie. Als je een YAML-gebaseerde pipeline gebruikt, zou je met het volgende fragment kunnen beginnen om je bron repository te scannen.
![Gitleaks code](/media/a1vjwkgo/microsoftteams-image-11.png?width=494&height=187&mode=max)
Als je al gecommitteerde secrets in je repository vindt, is het essentieel om ze volledig uit je repository te verwijderen, zowel de git history als de codebase zelf. Op dit punt zou je alle gecommitteerde secrets als gecompromitteerd moeten beschouwen en ze onmiddellijk moeten veranderen. GitHub heeft goede documentatie over het verwijderen van gevoelige data.
SonarQube
SonarQube is een tool waarmee je codebase continu wordt geïnspecteerd, met als doel je project of applicatie te beschermen tegen slechte kwaliteit code, beveiligingslekken en technische schuld. Het is in staat om meerdere talen te analyseren, waaronder C#, C++, Java, Python, en meer.
Met behulp van de SonarQube Azure DevOps extensie kan je "Quality Gates" introduceren in jouw pipelines. Hiermee kan je een build of pipeline laten mislukken als je een mislukte analyse hebt. Dit helpt om te voorkomen dat je naar productie gaat met problemen in jouw codebase.
Een zeer nuttige functie is de mogelijkheid om het samenvoegen van een Pull Request te blokkeren als er een mislukte Quality Gate is. Je kunt meer informatie vinden over hoe dit te configureren in de SonarQube Docs pages.
WhiteSource Bolt
Als je open-source software maakt of werkt met open-source afhankelijkheden, heb je misschien wel eens gehoord van WhiteSource Bolt. WhiteSource Bolt is een gratis Azure DevOps-extensie die open-source componenten in je codebase detecteert. Het scant vervolgens op bekende kwetsbaarheden en licentie problemen.
Volgens hun documentatie, stelt de extensie je in staat om:
- Kwetsbare open-source componenten te detecteren en te verhelpen;
- Een uitgebreid open-source inventarisatierapport per build genereren;
- Naleving van open-source licenties af te dwingen, inclusief afhankelijkheden.
Je kunt WhiteSource Bolt opnemen in jouw Azure DevOps pipelines. Zie de hierboven gelinkte documentatie voor details over het gebruik; je kunt beginnen met de onderstaande snippet om WhiteSource Bolt in jouw pipeline definities te gebruiken.
![](/media/z52nmg0k/microsoftteams-image-12.png?width=550&height=146&mode=max)
WhiteSource biedt ook een "volledige oplossing" die meer talen en tools ondersteunt, naast andere feature toevoegingen.
Container Beveiliging
Container Security is een Azure DevOps uitbreiding van Aqua Security. Als je Azure DevOps pipelines gebruikt om je container images te bouwen, dan vind je deze uitbreiding wellicht nuttig.
De uitbreiding laat je toe om een stap toe te voegen aan jouw container image build proces. Deze stap controleert images op problemen en kwetsbaarheden voordat ze naar het container register van je keuze worden gepushed.
Het belang van tooling
De bovenstaande tools en extensies zijn slechts een selectie van wat er beschikbaar is in het ecosysteem. Hoe verder je opschuift naar links, is de tooling die je gebruikt een belangrijk onderdeel van je succes. Als een team van ontwikkelaars of DevOps ingenieurs, is het onmogelijk om alle kwetsbaarheden en technische problemen alleen op te sporen en te verhelpen. Dit is waar de gekozen tooling zeer belangrijk wordt.
Door tooling te kiezen die detectie en, waar mogelijk, herstel automatiseert, wordt het voor jouw team gemakkelijker om tijd te besteden aan de backlog in plaats van aan het opsporen van kwetsbaarheden. Het kiezen van de juiste tooling zal uiteindelijk agility, efficiëntie en time to market voordelen opleveren.
Tot slot...
Het doel van dit artikel was om een aantal van de tools/extensies te belichten die beschikbaar zijn binnen het Azure DevOps ecosysteem en die je zouden kunnen helpen in je reis als je naar links verschuift. Zoals hierboven vermeld, zijn dit niet de enige beschikbare tools en worden ze enkel vermeld om een idee te geven van wat mogelijk is door het extensie ecosysteem te verkennen.
In het volgende artikel zullen we het hebben over praktische manieren waarop je "links kunt verschuiven" door gebruik te maken van tooling, extensies, en automatisering binnen GitHub.