Wat zijn de risico’s van slechte softwarekwaliteit voor jouw bedrijfscontinuïteit?
Door Barri Jansen / feb 2021 / 1 Min
Door Thomas Kooi / / 2 min
Op 1 november 2021 is er een nieuwe vulnerability bekendgemaakt in het software-landschap, namelijk CVE-2021-42574. Het heeft potentieel een grote impact, zie deze voorbeelden. Deze aanvalsmethode maakt het mogelijk om vulnerabilities te injecteren en verbergen in legitieme source code, zonder dat deze zichtbaar is in code review. Dit is vooral een risico bij open-source dependencies. De impact is dermate groot dat we jullie bewust willen maken van deze kwetsbaarheid. Oftewel, het is een - makkelijk te misbruiken - kwetsbaarheid die het mogelijk maakt om ongemerkt malicious code in een open-source library (dependency) te introduceren.
We willen iedereen die werkt met open-source libraries dringend aanraden om deze samenvatting van de vulnerability door te lezen. Optioneel kun je, voor meer informatie, de bijbehorende paper lezen. Ga vervolgens na waar jullie (mogelijk) geraakt worden door deze kwetsbaarheid en voer zo snel mogelijk updates en security patches door. De aanvalsvector is zeer groot.
Maak je gebruik van een self hosted-oplossing voor je source control software? Zorg er dan voor dat je de laatste patches hebt uitgerold. Ook is het verstandig om alert te zijn op de software dependencies die je binnenhaalt vanaf open source-projecten. Het kan namelijk zijn dat hier al vulnerabilities aan zijn toegevoegd, zonder dat de code owners dit door hebben. Het is belangrijk om snel security patches bij te werken voor software en in brengen te hebben welke vulnerabilities er in je dependencies zitten. Controleer deze op CVE’s. Hiervoor kan je verschillende tooling gebruiken, zoals:
Voorbeeld
Een voorbeeld van een aanvalsvector is een if statement, waarbij de logica aangepast wordt. In VSCode ziet dit er als volgt uit:
Bij het draaien van deze code, ontstaat de volgende output:
❯ go run test.go |
Als je de encoding aanpast naar DOS (CP 437), dan is te zien dat de unicode characters er tussen staan:
De aanval werkt doormiddel van bidirectional unicode characters, waardoor het mogelijk is om tekst te verbergen of logica te veranderen.
Wil je in je source code controleren of deze unicode characters gebruikt worden? De mensen van haveyoudebuggedit hebben een detector gemaakt die de betreffende unicode characters kan detecteren.
Voor Gitlab kan je deze draaien door gebruik te maken van deze job:
trojansource-detector: |
Wil je dit via een Docker run uitvoeren, dan kan je dit doen via het volgende commando:
docker run -v $(pwd):/build ghcr.io/avisi-cloud/trojansourcedetector:1.0.1
|
Hiermee controleer je op de vulnerability voor alle source files binnen de huidige working directory.
Wil je meer informatie over deze CVE? Dan zijn de volgende artikelen ook interessant:
| Security
Door Thomas Kooi / jun 2023
Dan denken we dat dit ook wat voor jou is.