De cloud container scanning wedstrijd: Welke tool is de beste?

30.08

Als DevOps engineer is security een van de belangrijkste aspecten bij het zorgen voor een succesvolle cloud migratie. Zorgen voor de veiligheid en betrouwbaarheid van je container images is van vitaal belang om je cloud-native applicaties te beschermen tegen mogelijke kwetsbaarheden. Er bestaan hier echter veel tools voor, dus het kiezen van de juiste is niet altijd eenvoudig.  

Om je te helpen beslissen, hebben we een grondige vergelijking gemaakt van vier populaire tools die aan container scanning doen: Gripe, Trivy, Microsoft Defender for Containers en Snyk. We bespreken wat hun belangrijkste – en extra – functies zijn en welke integratieopties ze bieden. Laten we erin vliegen! 

De kanshebbers 

Vooraleer we in de details duiken van onze vergelijkende studie, stellen we je even de kanshebbers voor: 

  1. Grype is een scanner die uitkijkt voor kwetsbaarheden in de meest populaire Common Vulnerabilities & Exposures database (CVE). Het wordt aangedreven door Syft, een tool die een Software Bill of Materials (SBOM) genereert. Beide tools zijn open source, ontwikkeld door Anchore en gefocust op container images en bestandssystemen.
  2. Trivy is een andere security scanner die niet alleen kwetsbaarheiden opspoort, maar ook configuratieproblemen. Het kan, bijvoorbeeld, verifiëren hoe geheimen en andere gevoelige informatie in je set-up worden behandeld. Het is een integraal opensourceproject en de broncode wordt gehost op GitHub.
  3. Microsoft Defender for Containers is een specifiek onderdeel van Microsoft Defender for Cloud dat focust op container scanning. Het wordt vooral gebruikt bij cloud resources zoals Azure Kubernetes Service (AKS), maar heeft ook een beschikbare preview voor Amazon Web Services (AWS) en Google Cloud Platform (GCP). Het biedt zelfs lokale ondersteuning via Azure Arc.
  4. Snyk is een gekende security scanning tool die een containerspecifieke oplossing biedt met z’n Snyk Container product. Het onderscheidt zich van andere tools door een developerfirst aanpak. Naast het identificeren van kwetsbaarheden, gidst het ontwikkelaars ook bij het oplossen van dergelijke problemen, en het zal die trouwens ook zelf proberen oplossen. 
Grype1 Trivy1 Microsoft Defender for Containers1 Snyk Container1
Company Anchore Aquasecurity Microsoft Snyk
Free Yes Yes Only compute cost 100 container tests/month
GitHub stars 5.7k 17.2k
GitHub contributors 60 299
Documentation site GitHub README GitHub pages Microsoft Learn Snyk docs
Support OSes
Alpine Linux
Amazon Linux
Busybox
CentOs
Debian GNU/Linux
Distroless
Fedora
FreeBSD
OpenSUSE Leap
Oracle Linux
Red Hat (Universal base image)
Red Hat (Enterprise Linux)
Rocky Linux
SUSE Enterprise Linux
Ubuntu

Bijkomende features 

Naast de hoofdkenmerken die we hierboven opsomden, levert elke tool bijkomende features. Laten we eens bekijken wat Snyk, Gripe, Trivy en de Microsoft Defender for Containers verder nog te bieden hebben. 

Grype Trivy Microsoft Defender for Containers Snyk Container
Container image scan
File system
Find vulnerabilities in language-specific packages
IaC scanning
Sensitive information scanning
Software licenses

Trivy en Snyk Container blinken enorm uit met hun uitgebreide feature sets. Microsoft Defender for Containers ondersteunt niet even veel features, maar het is wel de moeite waard om even te duiden dat er andere delen zijn van Microsoft Defender die dat wel doen, zoals Microsoft Defender for DevOps. Tegelijk kunnen we aanhalen dat Snyk verschillende andere producten in de aanbieding heeft die de features in deze tabel ondersteunen, zoals Snyk Code, Snyk Infrastructure as Code, Snyk Cloud en Snyk Open Source. 

Integraties 

Als er iéts is dat er echt toe doet wanneer je probeert te beslissen welke container scanning tool je wil gebruiken, zijn het wel integraties. Hoe meer integraties een tool te bieden heeft, hoe gestroomlijnder de container security workflow zal zijn. 

  • Command-Line Interface (CLI) tools kunnen gebruikt worden om kwetsbaarheiden lokaal te onderzoeken.
  • Source Code Management (SCM) kan scannen op kwetsbaarheden in Git repositories. 
  • Continuous Integration (CI) kan beveiliging bewerkstelligen door builds te breken wanneer er kwetsbaarheden zijn gevonden. 
  • Container registries kunnen geïntegreerd worden om een scan uit te voeren op alle images. 
  • Kubernetes kunnen gebruikt worden om scans uit te voeren op de workload die bezig is binnen de containers. 

Laten we eens kijken hoe het staat met de integratieopties van elke tool op zich. Het antwoord is niet altijd eenduidig, dus bekijk zeker de uitleg onder de tabel en hou in je achterhoofd dat nieuwe opties nog continu worden toegevoegd. 

Grype Trivy Microsoft Defender for Containers Snyk Container
IDE
CLI2
SCM3
CI4
Container registries5
Kubernetes6
API

Grype biedt integratie met VS-Code en een CLI-versie voor een sterkere ontwikkelervaring, maar lijkt het direct scannen van een repository niet meteen te ondersteunen. Het biedt wel een GitHub action, maar die onttrekt simpelweg beelden uit een repository en doet geen direct scan zoals Snyk for Containers. 

Trivy voorziet ook een sterke VS-Code extensie om vlot te scannen binnen de editor, en die kan gebruikt worden als CLI. Repository scanning is beschikbaar en goed gedocumenteerd, en er zijn verschillende GitHub repositories voor de GitHub action en Kubernetes operator. Containerregisters worden nergens in de documentatie vermeld. 

Microsoft Defender for Containers focust op cloud resources en biedt dus geen ondersteuning voor IDE, SCM of CI. Het biedt dan weer wel support om het te laten draaien op Azure Container Registry (ACR) of Amazon Elastic Container Registry (ECR). Er is ook een optionele toevoeging voor Azure Kubernetes Service (AKS) clusters die specifiek gewijd zijn aan Kubernetes data plane hardening. 

Tot slot is er Snyk Container, die opvalt met z’n breed aanbod aan integraties die allemaal op één pagina gedocumenteerd staan. Zoals men kan verwachten van een betalende tool, dekt het alle nodige principes. Van IDE’s en SCM’s tot CI/CD pipelines, containerregisters en Kubernetes: als je ervoor wil betalen, kan Snyk Container het voor je regelen. 

Conclusie 

Na rijp beraad en overwegen van alle features en integratieopties, denken wij dat Trivy de beste keuze is voor de meesten, maar niet voor allen. De VS-Code extensie en CLI-integratie maken het een makkelijke tool om mee te werken, en vermits de broncode wordt gehost op GitHub is het goed gedocumenteerd en duidelijk. 

Desalniettemin draait het uiteindelijk allemaal om je specifieke use case, technologie-stack, budget en persoonlijke voorkeur. Zorg ervoor dat je alle documentatie en elk aanbod van iedere tool die we aankaartten even bekeken hebt, zodat je een geïnformeerde beslissing kan maken. 

Heb je nog vragen? Aarzel dan zeker niet ons te contacteren voor meer inzichten en ondersteuning bij jouw cloud migratie en container security-ondernemingen. Wij zijn gespecialiseerd in het Azure

 

 

Bronnen:

  1. Checked on GitHub on 2023-05-08 ↩︎ ↩︎ ↩︎ ↩︎
  2. CLI: Can be used for local investigation of vulnerabilities ↩︎
  3. SCM: Can scan for vulnerabilities in Git repositories ↩︎
  4. CI: Can break a build when vulnerabilities are found ↩︎
  5. Container registries: Can scan a container registry and perform a scan on all of its images ↩︎
  6. Kubernetes: Runs scans on the running workfload inside Kubernetes ↩︎
Smokescreen