Wat je moet weten over Shellshock
De situatie rond de Shellshock-bug is zo vloeibaar en gecompliceerd dat zelfs insiders het lastig vinden om alles duidelijk te houden. Onderstaande vragen en antwoorden geven je wellicht een beter inzicht in de bug – of eigenlijk bugs – en wat je eraan kunt doen.
De primaire auteur voor deze vragen en antwoorden is Michael Lin, security research engineer bij FireEye. Dit bedrijf onderzoekt en beveiligt producten om ze te beschermen tegen bedreigingen.
[related_article id=”161920″]
Wat is Shellshock?
Shellshock is de bijnaam voor een bug in de Bash (Bourne Again SHell) commandlijnvertolker, ook bekend als de shell. De Bash-shell is wijdverspreid als de standaard vertolker op veel besturingssystemen, waaronder de meeste versies van Linux, sommige van BSD en Apples OS X (sinds 10.3). De Bash-shell kan ook op vele andere systemen gevonden worden, van Android tot Windows. Daar is het echter niet standaard geïnstalleerd.
Sinds de aankondiging van de eerste Shellshock-bug (CVE-2104-6271) zijn er gerelateerde bugs gevonden in Bash door verschillende onderzoekers. Onder aan het artikel staat een zo volledig mogelijke lijst. De eerste versie blijft de relevantste. Daar gaat het in dit artikel ook om, tenzij specifiek een andere versie vermeld staat.
Wie is kwetsbaar?
In theorie zijn alle gebruikers van Bash kwetsbaar, maar alleen de mensen die verbonden zijn met het internet zijn potentieel blootgesteld aan misbruik. Daarnaast is bepaalde software nodig om de aanvaller een route te geven om Bash te bereiken.
Systemen die internetservers draaien zijn het kwetsbaarst en hebben de grootste kans doelwit te worden van een aanval. Thuisgebruikers die Bash op hun pc hebben kunnen ook blootgesteld worden als ze via een onbetrouwbaar netwerk (bijvoorbeeld een open wifitoegangspunt) verbinden met het internet.
De gemiddelde gebruiker van Windows, Mac OS, iOS of Android loopt geen gevaar. Android is niet kwetsbaar, in ieder geval niet standaard. Je loopt wel risico dat je favoriete en veelgebruikte internetservers en -diensten aangevallen worden. Die kunnen dan gebruikt worden om aanvallen uit te voeren op de gebruikers, en vertrouwelijke informatie kan inzichtelijk zijn voor de hackers.
Waar vindt de bug plaats?
De bug is te vinden in de parsercode van Bash. Er zit een fout in de manier waarop op Bash omgaat met bepaalde variabelen tijdens zijn initialisatie. Alles wat in staat is deze variabelen te manipuleren heeft het potentieel om deze zwakke vector uit te buiten.
Hoe maakt de bug je kwetsbaar?
De Bashbug stelt een aanvaller in staat om dezelfde commando"s uit te voeren als de legitieme gebruiker. Dit geeft een succesvolle hacker dus de mogelijkheid om zo ongeveer alles te doen wat de gebruiker ook kan. Een aanvaller die toegang heeft tot een vector op afstand kan het systeem zonder verdere authenticatie opdrachten geven.
Merk hierbij wel op dat de hacker (in ieder geval in het begin) gelimiteerd is door het privilegeniveau van de Bash-gebruiker. Zodra de aanvaller echter voet aan de grond heeft in je systeem heeft hij meerdere opties om zijn privileges te vergroten en toegang te krijgen tot je root.
Hoe ernstig is het?
Op het moment dat de bug voor het eerst publiekelijk bekend werd gemaakt waren verschillende honderdduizend met internet verbonden servers kwetsbaar. Dat is een conservatieve inschatting. Het is zeer aannemelijk dat veel van die servers inmiddels aangevallen zijn.
De bug is zeer eenvoudig om te misbruiken. Je hebt er geen speciale tools of aangepaste code voor nodig. Daarnaast is het eenvoudig te begrijpen, vanuit een conceptueel niveau. Alles wat je nodig hebt is eenvoudig te krijgen.
De gevolgen van de zwakke plek zijn zeer ernstig, omdat een aanvaller bijna volledig controle krijgt over het systeem. Zonder verdere authenticatie. Dus zodra ze een vector hebben gevonden is het slechts nog een peulenschil om in te breken.
Deze bug is al meer dan twintig jaar in de Bash-code te vinden. Het is mogelijk dat diverse mensen dit al eerder ontdekten, maar besloten het voor zich te houden. Het is dus ook mogelijk dat de bug al langere tijd gebruikt wordt voor kwaadaardige praktijken. Daarnaast is de kans net zo groot dat de bug nog bij niemand bekend was voor de onthulling.
De combinatie van een grote hoeveelheid kwetsbare servers, eenvoudige toegang tot de benodigde aanvalstools en de ernstige gevolgen van een succesvolle overname betekent dat deze zwakke plek verschrikkelijk slecht is.
Hoe kun je een server beschermen?
Patch het systeem. Zorg dat je via je verkoper de laatste patch krijgt en breng Bash naar zijn laatste versie. Houd er rekening mee dat er nog steeds nieuwe patches verschijnen en dat nog niet alle lekken gedicht zijn.
Kijk of je kwetsbaar bent. Red Hat heeft een prima gids om te bepalen of je systeem kwetsbaar is en of je nog moet patchen. Als je Bash niet kunt patchen of er is voor je platform geen patch beschikbaar, overweeg dan over te stappen naar een andere shell.
Ik draai Windows. Ben ik immuun?
Over het algemeen wel. Er is geen bewijs dat Windows beschikt over een vector waar misbruik van gemaakt kan worden, maar in theorie kan die er wel zijn. Hoewel het mogelijk is Bash op Windows te installeren, heb je een specifieke set van instellingen en applicaties nodig om de hackers een route naar je pc te geven.
Ik werk op een Mac. Ben ik kwetsbaar?
Strikt genomen, ja. Apple heeft reeds een eerste update vrijgegeven om de eerste gaten te dichten. In de praktijk moet je bepaalde diensten geactiveerd hebben, zoals webserver met CGI. Dit heeft de doorsnee Macgebruiker niet.
De patch is geïnstalleerd. Ben ik nu veilig?
Niet per se. Alle grote Linux-distributies hebben patches beschikbaar voor CVE-2014-6271 en CVE-2014-7169. Diverse gerelateerde gaten in Bash blijven voorlopig nog open. Er zijn nog geen publieke meldingen dat mensen misbruik maken van deze zwakke plekken omdat ze moeilijker zijn om te gebruiken.
Wat zijn de CVE"s voor Shellshock?
CVE-2104-6271: De oorspronkelijke Shellshock-bug. Wanneer mensen het hebben over de Bashbug of Shellshock, is de kans groot dat ze het hierover hebben.
CVE-2014-7169: Deze CVE is toegeschreven aan de niet volledige patch voor de oorspronkelijke bug.
CVE-2014-7186 en CVE-2014-7187: Deze twee CVE"s zijn voor bugs ontdekt in relatie tot de eerste Bashbug. De syntax is nagenoeg hetzelfde als bij de oorspronkelijke bug, maar in plaats van het geven van commando"s, krijg je toegang tot het geheugen. Er is momenteel geen bewijs dat deze bugs van op afstand toegankelijk zijn.
CVE-2014-6277 en CVE-2014-6278: Veiligheidsonderzoekers ontdekten nog twee extra bugs. Beide hebben het potentieel voor het eenvoudig geven van commando"s, vergelijkbaar met de oorspronkelijke Bashbug. Verdere details zijn echter nog niet publiekelijk bekendgemaakt. Dit om tijd te krijgen voor het ontwikkelen van patches.