Il mio soprannome “KGB” ha origini scacchistiche (v.
Le origini di KGB) ma, come più volte spiegato, mi piace perché ricorda altre mie caratteristiche come l'attenzione ai dettagli, l'estrema riservatezza, la diffidenza e un pizzico di paranoia tipiche delle spie.
Dalla scorsa settimana mi è parso di iniziare a sentire un suono di attività intenso e regolare (pochi attimi ogni 10 minuti esatti) provenire dal disco rigido del mio calcolatore. Dico “mi è parso” perché non ho l'assoluta certezza che questo suono non ci sia sempre stato!
Dubito che la maggior parte delle persone lo avrebbero notato o se ne sarebbero preoccupati ma, come spiegato nella premessa, non mi chiamo KGB per caso: ho subito iniziato a pensare che “probabilmente non è nulla... ma se fosse un virus che ha preso il controllo del mio calcolatore e sta adesso esaminando tutti i miei archivi?”
Così ho iniziato a fare delle ricerche...
Il primo tentativo è stato quello di lanciare:
sudo iotop
che mostra l'accesso al disco rigido dei vari processi.
Ovviamente più il nome del processo era strano e più mi insospettivo. Fra questi nomi spiccava ad esempio [jbd2/sda1-8] che ogni pochi secondi si attivava per scrivere qua e là.
Eppure in corrispondenza del suono che sentivo non era mostrata alcuna attività particolare. Ho quindi supposto che potesse trattarsi di un processo che riusciva a rendersi invisibile a
iotop. Cercando in rete ho trovato maniere un po' più esoteriche per monitorare l'attività sul disco:
sudo su -
sync
echo 1 > /proc/sys/vm/block_dump
dmesg -c
In questa maniera si ordina al
kernel di loggare tutta l'attività sul disco rigido. Ogni accesso viene quindi registrato sull'archivio di loggaggio di sistema visionabile tramite il comando
dmesg -c.
Ovviamente prima di fare questo tentativo avevo chiuso tutti i programmi aperti in maniera da minimizzare l'accesso al disco e individuare più facilmente il colpevole.
Ero molto speranzoso ma di nuovo non riuscii a individuare nessuna attività particolare in corrispondenza del suono molesto.
Possibile che il virus riuscisse a evitare anche questo loggaggio di livello così basso? Mi sembrava improbabile ma, visto che mi chiamo KGB, pensavo già che potesse trattarsi di programmi governativi semi legali con i quali si era preso il controllo del mio calcolatore sfruttando qualche falla del sistema.
C'è da aprire una parentesi: per natura sto molto attento quando navigo in rete, nell'aprire epistole sospette e, sicuramente, ad esempio non lancerei mai un programma minimamente sospetto. Diffido ad esempio dei
downloader (in
KGB vs la OpenGL 1/?? spiego che inizialmente non installai la IDE QT_Creator per generici dubbi ma parte del motivo è la mia diffidenza verso i
downloader (*1)) e per questo ritengo più probabile essere vittima di una falla nella sicurezza del sistema piuttosto che di una mia imprudenza: dopo tutto sul mio calcolatore ho installati dei programmi che considero “rischiosi” come Steam (per i giochini!), Flash (per i video) ma anche Chrome per non parlare dei
driver video chiusi della nVidia (la mia scheda video: devo usare i
driver proprietari perché più efficienti di quelli aperti... sempre per colpa dei giochini).
E come mai, anche se mi chiamo KGB, uso tutti questi programmi “pericolosi”?
Semplicemente perché non ho niente da nascondere! Devo dire però che la tentazioni di farmi un sistema “sicuro” (per quanto possibile) è sempre più forte: ha poco senso perché sarebbe come avere in casa una cassaforte blindata ultrasicura senza aver nessun gioiello o contante da nascondere al suo interno eppure... l'idea di essere spiato mi è talmente intollerabile che prima o poi lo farò...
Più o meno in quei giorni contattai anche l'amico (ingegnere) esperto di informatica.
Con molta pazienza rispose alle mie domande e formulò anche un'ipotesi molto verosimile: ovvero che il rumore di attività del disco rigido che sentivo a intervalli regolari (10 minuti e qualche secondo) fosse dovuto a un meccanismo
hardware. Nei portatili, per risparmiare batteria, gli HD si spengono dopo un periodo fissato di inutilizzo: l'idea era che, per qualche motivo, il calcolatore riavviasse immediatamente il disco rigido e che quindi il rumore che sentivo fosse semplicemente la sua accensione.
L'idea era buona anche se in verità, a me sembrava più il suono di scrittura/lettura che di avvio, comunque iniziai a fare vari esperimenti.
Ah, dimenticavo! Oltre all'HD principale ne ho anche uno secondario che di solito non è neppure montato nel
file system. Ovviamente era questo secondo HD quello sospettato di spegnersi per risparmiare energia ed essere poi immediatamente riavviato dal sistema operativo!
Provai quindi a usarlo intensamente pochi minuti prima di udire lo strano rumore (che essendo ogni 10 minuti è facilmente prevedibile) in maniera da far ripartire un eventuale
timer per lo spegnimento automatico ma, come al solito, non ottenni niente.
Lo stesso amico ingegnere mi confermò (avevo già sbirciato su Google) che il processo [jbd2/sda1-8] stava probabilmente svolgendo un'attività legittima visto che si tratta di un programma che mantiene il
file system...
Anche in questo caso feci una riprova: l'archivio di loggaggio del sistema di accesso al disco non mi indicava sempre i nomi degli archivi coinvolti ma il nodo fisico sul disco rigido. Così, cercando in rete, trovai la maniera per risalire dal nodo all'archivio vero e proprio:
debugfs -R 'ncheck NUM_NODO' /dev/sda1 2>/dev/null
Ma i blocchi su cui operava [jbd2/sda1-8] non risultavano appartenere a nessun archivio: ed è logico visto il suo scopo...
Non ricordo più bene quando ma, già che c'ero, iniziai a rimuovere tutti i servizi che mi sembravano inutili. Ma non risolsi niente.
Ebbi poi l'idea che il problema fosse dato da qualche processo di basso livello (tanto da sfuggire alla tracciatura del sistema operativo) di gestione del disco rigido. Considerato che (colpa dei giochi di Steam!) una delle mie partizioni sull'HD principale è quasi piena mi venne in mente che i rumori che sentivo in sottofondo potessero essere dovuti alla deframmentazione eseguita in
background. Avevo infatti verificato che la percentuale di archivi “non-contigui” era circa del 12% mentre, per dare l'idea, nell'altra partizione dello stesso disco rigido, solo dello 0.5%...
A dire il vero, per capire se l'ipotesi è verosimile, bisognerebbe sapere come si comportano i
file system ext3 ed ext4 che ho montato su queste due partizioni: avevo chiesto al mio amico ingegnere ma non mi ha più risposto forse stufo della mia fissazione su questo problema...
Contemporaneamente ho pensato potesse trattarsi di una causa
hardware e ho quindi iniziato a investigare sulla modalità SMART dei dischi rigidi. In pratica si tratta di un sistema di autocontrollo con cui si cerca di prevedere possibili guasti e dare così tempo all'utente di salvare altrove i propri dati. In realtà, leggendo in rete, tale sistema di autodiagnosi funziona più o meno solo il 50% delle volte. Comunque al momento sembrò tutto a posto e anzi, il solito amico ingegnere, mi disse di non perderci tempo...
Stressato per non aver risolto il problema, nei giorni successivi usai il calcolatore il meno possibile, in genere scollegato dalla rete, e ascoltando della musica ad alto volume in maniera da non udire il gracchio del disco rigido.
Ieri sera avevo fatto nuovi esperimenti e
pensavo di aver risolto l'arcano...
Col comando:
udisksctl monitor
è possibile controllare l'attività del processo che gestisce i dischi e ho cosi potuto notare che, ogni
10 minuti, viene segnalata dell'attività:
Viene controllata la temperatura dei dischi (gradi fahrenheit forse?) e, se troppo bassa, viene avviato per alcuni secondi (per riscaldarlo?) il disco rigido (vedi "SmartPowerOnSeconds", ieri sera molto più frequente). Guarda caso qualche giorno fa era stato più freddo del solito ed era quindi plausibile che lo strano suono si sentisse più spesso, ovvero ogni dieci minuti...
Stamani ho però ricontrollato e, almeno negli orari indicati, non c'è corrispondenza fra quanto riportato da udisksctl e il fastidioso rumore.
Nel pomeriggio ho fatto un nuovo esperimento: ho avviato il calcolatore da una chiavetta USB appena creata scaricando una distribuzione linux dalla rete, ho montato i miei dischi rigidi e mi sono messo in ascolto.
L'idea è che la distribuzione appena scaricata dalla rete dovrebbe essere “pulita” e quindi senza virus o programmi di spionaggio.
Comunque anche in questo caso, ogni dieci minuti, c'è il solito inconfondibile suono che proviene dal disco rigido.
Quest'ultima prova mi ha rassicurato, non completamente perché mi chiamo KGB e continuo a sospettare l'improbabile, ma abbastanza.
Non credo quindi di voler reinstallare un nuovo sistema operativo anche se forse sarò comunque costretto a farlo visto che, in preda al sospetto, avevo adocchiato un misterioso processo che si era azzardato ad accedere improvvisamente al disco rigido con una grande attività di lettura e scrittura.
Il suo nome era apt-xapian-index e soprattutto il suffisso “index” lo leggo come “pericolo” o “attenzione” e anche “xapian” sa di cinese come “(Deng) Xiaoping” (*2)...
Così sono andato in rete a cercare informazioni e l'ho trovato menzionato in un filone di un forum: il primo suggerimento che ho trovato era quello di rimuoverlo con:
sudo apt-get autoremove --purge apt-xapian-index
sudo apt-get autoremove --purge
Solo in seguito, continuando nella lettura, ho scoperto che si tratta di un processo utile che serve a mantenere la banca dati dei pacchetti installati sul calcolatore: insomma era un programma (apparentemente!) benigno...
Ma come scrissi al mio amico ingegnere non è che io legga con troppa attenzione i testi di informatica. In particolare l'amico protestava per il fatto che lui aveva scritto “partizioni” e non “dischi” e io mi ero così giustificato:
Quando leggo una tua email in genere faccio:
1) lettura veloce, interpretazione tropologica del testo.
2) Copia e incolla di eventuale codice.
3) Mi lamento (anche via email) che non funziona.
4) Rilettura veloce della email, interpretazione allegorica.
5) Modifico il codice in base a quanto suggerito dall'allegoria.
6) Mi lamento che non funziona;
7) Copio e incollo su Google;
8) Interpretazione tropologica del primo collegamento fornito da Google
9) Copio e incollo eventuale codice;
10) I passi 8 e 9 possono venire iterati molte volte; talvolta fondo insieme codice di collegamenti diversi; successive riletture seguono lo stesso collaudato schema di interpretazione metafisica.
11) Constato che non funziona;
12) Rilettura veloce della tua email; interpretazione anagogica del testo.
13) Modifico il codice in base alla realtà intelligibile e futura che ho intuito dalle tue parole.
14) funziona!
15) Penso: "Certo che H. [l'amico] non riesce a essere chiaro..."
Insomma l'interpretazione letterale non è il mio forte... ;-)
Sal.
KGB (*3)
Conclusione: qualche giorno fa ero ospite di un amico ingegnere (un altro) che mi diceva che aveva notato quanto io fossi diffidente dai miei pezzi sulla OpenGL (qualcuno li ha letti!). Non mi ricordo esattamente a cosa si riferisse ma io gli confermai che aveva completamente ragione. Ma una cosa è ammettere un proprio difetto e un'altra è cercare di eliminarlo... Ma la diffidenza è davvero un difetto? Un altro mio amico (non ingegnere ma che spesso passa come tale!) mi disse un giorno un proverbio di sua ideazione: “Gatto prudente, gatto vivente”. Penso che si riferisse principalmente ai felini che vivono presso strade dal traffico molto intenso ma io credo si possa applicare anche a KGB!
Nota (*1): lo so, non ha senso: se si vuole inserire del codice “nocivo” lo si può mettere direttamente nel programma vero e proprio. Probabilmente anzi l'attività di un
downloader è più facilmente controllabile e quindi meno adatto a nasconderci qualcosa... Però continuo a non fidarmi...
Nota (*2): di nuovo sono consapevole che se dovessi dare un nome a un virus non lo chiamerei “trojan-index-spy” ma userei qualcosa di innocente che passi inosservato... però...
Nota (*3): il riferimento all'
ermeneutica è chiaro vero?