Rootkit: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
ZimbuBot (discussione | contributi)
m WPCleaner v2.04 - Fixed using WP:CW (Interlink nel testo della voce)
FrescoBot (discussione | contributi)
Riga 31:
I rootkit con il loro [[Payload (malware)|payload]], possono avere diversi utilizzi:
* Forniscono all'attaccante un accesso non autorizzato e completo tramite backdoor, con lo scopo, per esempio, di rubare o falsificare documenti. Uno dei possibili metodi per raggiungere tale scopo è quello di alterare il meccanismo di login, che per i sistemi [[Unix-like|UNIX-like]] può essere il programma /bin/login oppure [[Graphical identification and authentication|GINA]] per i sistemi Windows. Il sostituto sembra funzionare normalmente, ma accetta anche una combinazione di login (username e password) segreta che permette all'attaccante un accesso diretto al sistema con privilegi di amministratore, bypassando così l'autenticazione standard e i meccanismi di autorizzazione.
* Nascondere altri malware, in particolar modo i [[keylogger]]s in grado di rubare password e i virus informatici<ref>{{Cita web|url=http://www.windowsitpro.com/Article/ArticleID/46266/46266.html|titolo=Unearthing Root Kits|sito=www.windowsitpro.com|accesso=8 giugno 2016|urlmorto=sì|urlarchivio=https://archive.is/20120918/http://www.windowsitpro.com/Article/ArticleID/46266/46266.html|dataarchivio=18 settembre 2012}}</ref>.
* Si appropriano della macchina compromessa rendendola un [[computer zombie]] per poterla così sfruttare per attacchi ad altri computer (l'attacco parte dal computer zombie invece che direttamente dal computer dell'attaccante, rendendo così molto difficile, se non impossibile, rintracciare l'autore. I computer “zombie” fanno tipicamente parte di una vasta [[botnet]] che può lanciare attacchi di tipo DDoS ([[Denial of Service|Distributed Denial of Service]]), [[spam]] di [[Posta elettronica|mail]] distribuito, [[click fraud]], ecc.
* Forzatura dei [[Digital rights management|DRM]] (Digital Rights Management)
Riga 39:
* Software di emulazione avanzata e di sicurezza<ref>{{Cita web|url=https://blogs.technet.microsoft.com/b/markrussinovich/archive/2006/02/06/using-rootkits-to-defeat-digital-rights-management.aspx|titolo=Using Rootkits to Defeat Digital Rights Management|sito=Mark's Blog|accesso=8 giugno 2016|urlmorto=sì}}</ref>. [[Alcohol 120%]] e [[Daemon Tools]] sono esempi di rootkit commerciali non ostili usati per superare i sistemi di protezione dalla copia come SafeDisc o SecuROM. Anche il software antivirus Kaspersky usa tecniche che lo fanno assomigliare ad un rootkit per proteggere sé stesso da azioni malevole. Infatti lui carica dei suoi [[driver]]s per intercettare le attività di sistema ed impedire che queste vadano a danneggiarlo. I suoi processi non sono nascosti ma non possono essere terminati con metodi standard (Può essere terminato tramite Process Hacker)
* Protezione antifurto: I portatili possono avere un software rootkit a livello di BIOS che periodicamente riferiscono ad una autorità centrale, permettendo così di monitorare, cancellare o rendere inaccessibili le informazioni sulla macchina in caso di furto<ref>{{Cita pubblicazione|autore=|titolo=Deactivate the Rootkit: Attacks on BIOS anti-theft technologies|rivista=https://www.blackhat.com/presentations/bh-usa-09/ORTEGA/BHUSA09-Ortega-DeactivateRootkit-PAPER.pdf}}</ref>.
* Bypassare il [[Microsoft Product Activation]]<ref>{{Cita web|url=http://www.stoned-vienna.com/downloads/The%2520Rise%2520of%2520MBR%2520Rootkits%2520&%2520Bootkits%2520in%2520the%2520Wild.pdf|titolo=Peter Kleissner|cognome=Kleissner|nome=Peter|sito=www.stoned-vienna.com|accesso=8 giugno 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20120618160853/http://www.stoned-vienna.com/downloads/The%20Rise%20of%20MBR%20Rootkits%20%26%20Bootkits%20in%20the%20Wild.pdf|dataarchivio=18 giugno 2012}}</ref>
 
== Tipologie ==
Riga 51:
* [[Debugger]]s
* Sfruttamento di vulnerabilità di sicurezza
* [[Hooking]] delle funzioni o patch delle API usate più comunemente, ad esempio, per nascondere un processo in esecuzione o un file all'interno del file system<ref>{{Cita web|url=http://www.phrack.org/issues.html?issue=62&id=12|titolo=.:: Phrack Magazine ::.|sito=www.phrack.org|accesso=8 giugno 2016}}</ref>.
<blockquote>…fino a quando le applicazioni in modalità utente eseguiranno solo nel loro spazio riservato, il rootkit avrà bisogno di modificare lo spazio di memoria di ogni singola applicazione. Inoltre, il rootkit ha bisogno di monitorare il sistema per scoprire ogni nuova applicazione che esegue e modificare anche la sua memoria, solo così potrà eseguire in maniera ottimale.</blockquote><blockquote>—Window Rootkit Overview, Symantec</blockquote>
 
Riga 57:
I rootkit in modalità [[kernel]] (kernel-mode) lavorano con i privilegi più alti nel sistema operativo (anello 0), avendo così la possibilità di aggiungere codice o rimpiazzare porzioni fondamentali del sistema operativo, che comprendono sia il kernel, sia i driver dei dispositivi associati. La maggior parte dei sistemi operativi consentono ai driver dei dispositivi di operare in modalità kernel, quindi di lavorare con gli stessi privilegi del sistema operativo stesso. Per questa ragione molti rookit in kernel-mode sono sviluppati come driver per dispositivi o moduli caricabili, come quelli per il kernel ([[loadable kernel module]]s) su sistemi Linux o driver per dispositivi su sistemi Windows. Questa classe di rootkit ha un accesso completo senza restrizioni di sicurezza, ma sono molto più difficili da sviluppare<ref name=":4">{{Cita pubblicazione|autore=|titolo=understanding anti-malware technologies|rivista=https://download.microsoft.com/download/a/b/e/abefdf1c-96bd-40d6-a138-e320b6b25bd3/understandingantimalwaretechnologies.pdf}}</ref>. La loro elevata complessità rende i bug abbastanza comuni ed un qualunque bug a livello kernel può avere un pesante impatto sulla stabilità del sistema, portando così alla scoperta del rootkit<ref name=":4" />. Uno dei più noti rootkit a livello kernel è stato sviluppato per Windows NT 4.0 e pubblicato sulla rivista [[Phrack]] da Greg Hoglund nel 1999<ref>{{Cita web|url=http://phrack.org/issues.html?issue=55&id=5|titolo=.:: Phrack Magazine ::.|sito=phrack.org|accesso=8 giugno 2016}}</ref><ref>{{Cita web|url=https://www.helpnetsecurity.com/2008/09/01/rootkit-evolution/|titolo=Rootkit Evolution|cognome=Shevchenko|nome=Alisa|sito=Help Net Security|data=1º settembre 2008|accesso=8 giugno 2016}}</ref><ref>{{Cita pubblicazione|autore=|titolo=An overview of Unix Rootkits|rivista=http://www.megasecurity.org/papers/Rootkits.pdf}}</ref>.
 
I rootkit di questo tipo possono essere particolarmente ostici da trovare e rimuovere in quanto operano allo stesso [[Protection ring|livello di sicurezza]] del sistema operativo e sono quindi in grado di intercettare e sovvertire anche operazioni trusted (fidate) del sistema operativo. Qualunque software, come ad esempio un [[antivirus]], che opera su un sistema compromesso è anch'esso vulnerabile<ref>{{Cita web|url=https://www.symantec.com/connect/articles/windows-rootkits-2005-part-two|titolo=Windows rootkits of 2005, part two {{!}} Symantec Connect|sito=www.symantec.com|accesso=8 giugno 2016}}</ref>. In una situazione di questo tipo, nessun componente del sistema operativo può essere ritenuta affidabile.
 
Un rootkit può modificare strutture dati nel kernel di Windows usando un metodo conosciuto come DKOM ([[direct kernel object manipulation]])<ref>{{Cita web|url=https://www.symantec.com/connect/articles/windows-rootkits-2005-part-one|titolo=Windows rootkits of 2005, part one {{!}} Symantec Connect|sito=www.symantec.com|accesso=8 giugno 2016}}</ref>. Questo sistema può essere usato per nascondere processi. Un rootkit in kernel mode può poi agganciare la System Service Descriptor Table (SSDT), o modificare le “porte” per passare da user-mode a kernel-mode per nascondersi<ref name=":1" />. In modo del tutto analogo nei sistemi Linux, un rootkit può modificare la [[Chiamata di sistema|system call table]] per intervenire sulle funzionalità del kernel<ref>{{Cita web|url=https://www.symantec.com/connect/articles/detecting-rootkits-and-kernel-level-compromises-linux|titolo=Detecting Rootkits And Kernel-level Compromises In Linux {{!}} Symantec Connect|sito=www.symantec.com|accesso=8 giugno 2016}}</ref>. Non è raro che un rootkit crei un file system nascosto e criptato nel quale nascondere altri malware o le copie originali dei file infettati<ref>{{Cita pubblicazione|autore=|titolo=ZeroAccess – an advanced kernel mode rootkit|rivista=http://pxnow.prevx.com/content/blog/zeroaccess_analysis.pdf}}</ref>.
 
I sistemi operativi si stanno evolvendo per far fronte alla minaccia dei rootkit in modalità kernel. Per esempio, le versioni 64bit di Microsoft Windows ora implementano una firma obbligatoria per tutti i drivers che operano sullo stesso livello del kernel, in modo da rendere molto più difficile, per il codice non verificato, eseguire con privilegi così alti<ref>{{Cita web|url=https://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx|titolo=Driver Signing Requirements for Windows - Windows 10 hardware dev|sito=www.microsoft.com|accesso=8 giugno 2016}}</ref>.
 
==== Bootkits ====
Una variante del rootkit in kernel-mode è il bootkit, il quale può infettare il codice di avvio, come il [[Master boot record]] (MBR), [[Volume boot record|Volume Boot Record]](VBR) oppure il [[Boot sector|settore di boot]] ed in questo modo può essere usato per attaccare sistemi [[Disk encryption|full disk encryption]], ovvero sistemi con hard disk completamente criptati. Un esempio è l'“Evil Maid Attack”, nel quale l'attaccante installa il bootkit su un pc incustodito e rimpiazza il boot loader originale con un altro sotto al suo controllo. Tipicamente il loader del malware sopravvive al passaggio attraverso il [[Modalità protetta|protected mode]], quando il kernel è già stato caricato ed è quindi in grado di scavalcare questa protezione<ref>{{Cita web|url=http://www.eeye.com/Resources/Security-Center/Research/Tools/BootRoot|titolo=Security Tools {{!}} eEye Digital Security|data=17 agosto 2013|accesso=8 giugno 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20130817055752/http://www.eeye.com/Resources/Security-Center/Research/Tools/BootRoot|dataarchivio=17 agosto 2013}}</ref><ref>{{Cita web|url=https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html|titolo="Evil Maid" Attacks on Encrypted Hard Drives - Schneier on Security|sito=www.schneier.com|accesso=8 giugno 2016}}</ref><ref>{{Cita web|url=https://www.blackhat.com/presentations/bh-europe-07/Kumar/Whitepaper/bh-eu-07-Kumar-WP-apr19.pdf|titolo=VBootkit:Compromising Windows Vista security|autore=|data=|accesso=}}</ref><ref>{{Cita web|url=http://www.nvlabs.in/archives/5-BOOT-KIT-Custom-boot-sector-based-Windows-2000XP2003-Subversion.html|titolo=BOOT KIT: Custom boot sector based Windows 2000/XP/2003 Subversion - NVlabs {{!}} Analyzing Security|data=10 giugno 2010|accesso=8 giugno 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20100610194454/http://www.nvlabs.in/archives/5-BOOT-KIT-Custom-boot-sector-based-Windows-2000XP2003-Subversion.html|dataarchivio=10 giugno 2010}}</ref>. Per esempio lo “Stoned Bootkit” riesce a sovvertire il sistema utilizzando un [[boot loader]] compromesso in grado di intercettare le chiavi di cifratura e le password<ref>{{Cita web|url=http://www.stoned-vienna.com/|titolo=Peter Kleissner|cognome=Kleissner|nome=Peter|sito=www.stoned-vienna.com|accesso=8 giugno 2016}}</ref>. Più recentemente l'Alureon rootkit è riuscito a superare con successo la protezione su Windows 7, basata sulla firma dei driver, per evitare rootkit in kernel-mode nelle architetture a 64bit. Questo risultato è stato ottenuto mediante la modifica del [[master boot record]]<ref>{{Cita web|url=https://www.theregister.co.uk/2010/11/16/tdl_rootkit_does_64_bit_windows/|titolo=World's most advanced rootkit penetrates 64-bit Windows|cognome=Exploit Code|accesso=8 giugno 2016}}</ref>. Altri malware, anche se non intesi come qualcosa che compie azioni indesiderate dall'utente, possono essere alcuni “Vista Loader” o “Windows Loader” che lavorano in maniera molto simile, iniettando una [[Advanced Configuration and Power Interface|tabella ACPI]] SLIC (System Licensed Internal Code) nella versione caricata in RAM del BIOS durante il boot, in modo tale da scavalcare il processo di [[Microsoft Product Activation|attivazione di Windows Vista e Windows 7]]<ref>{{Cita web|url=http://windows-loader.software.informer.com/|titolo=Windows Loader. Get the software safe and easy.|sito=Software Informer|accesso=8 giugno 2016}}</ref>. Questo vettore di attacco è stato reso inutile nelle versioni (non server) di [[Windows 8]], il quale usa una chiave unica, specifica per ogni macchina, in ogni sistema. La chiave può essere utilizzata solo sulla macchina a cui appartiene<ref>{{Cita web|url=https://www.theregister.co.uk/2012/08/03/windows_oem_activation_30/|titolo=Microsoft tightens grip on OEM Windows 8 licensing|cognome=Android|accesso=8 giugno 2016}}</ref>.
 
L'unica difesa nota contro i bootkit è la prevenzione contro gli accessi fisici alla macchina non autorizzati, un problema per i dispositivi portatili, oppure l'utilizzo di un [[Trusted Platform Module]] configurato per proteggere i file di avvio<ref>{{Cita libro|nome=Joel|cognome=Scambray|titolo=Hacking Exposed Windows: Microsoft Windows Security Secrets and Solutions, Third Edition: Microsoft Windows Security Secrets and Solutions, Third Edition|url=https://books.google.com/books?id=-bkRryv377QC&pg=PA371&lpg=PA371&dq=TPM+rootkit+boot+sector&hl=en|accesso=8 giugno 2016|data=25 dicembre 2007|editore=McGraw Hill Professional|lingua=en|ISBN=978-0-07-159669-5}}</ref>.
Riga 85:
I rootkit impiegano varie tecniche per prendere il controllo di un sistema; il tipo di rootkit va ad influire sulla scelta del vettore di attacco. La tecnica più comune è quella di fare leva su una [[vulnerabilità informatica|vulnerabilità di sicurezza]] per ottenere un aumento dei privilegi non desiderato. Un altro approccio è quello che utilizza un [[Trojan (informatica)|cavallo di troia]] (trojan), ingannando l'utente di un computer facendogli credere che l'installazione del rootkit è in realtà un'installazione benigna<ref name=":4" /> — in questo caso è la social engineering a convincere l'utente che l'installazione è benefica. Il compito di installazione è ancora più semplice se il [[principio del privilegio minimo]] non viene applicato, poiché in questo caso il rootkit non deve richiedere esplicitamente dei permessi elevati (livello amministratore). Altre classi di rootkit possono essere installate solamente da qualcuno con accesso fisico al sistema bersaglio. Alcuni rootkit possono anche essere installati intenzionalmente dal proprietario del sistema o da qualcun altro autorizzato dal proprietario, con lo scopo, ad esempio, di monitorare gli impiegati, rendendo le tecniche sovversive inutili<ref>{{Cita libro|autore=John Wiley & Sons|titolo=Professional Rootkits|anno=2007|editore=|città=|p=244|ISBN=978-0-470-14954-6}}</ref>.
 
L'installazione di rootkit malevoli è commercialmente guidata, con un metodo di compensazione [[Compensation methods#PPI|pay-per-install]] tipico per la distribuzione<ref>{{Cita pubblicazione|autore=|titolo=TDL3: The Rootkit of All Evil?|rivista=https://www.eset.com/resources/white-papers/TDL3-Analysis.pdf}}</ref><ref>{{Cita web|url=https://www.eset.com/us/resources/white-papers/The_Evolution_of_TDL.pdf|titolo=IT Security Resources{{!}} News, Whitepapers & Videos {{!}} ESET {{!}} ESET|sito=www.eset.com|accesso=8 giugno 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20150729043339/http://www.eset.com/us/resources/white-papers/The_Evolution_of_TDL.pdf|dataarchivio=29 luglio 2015}}</ref>.
 
Una volta installato un rootkit prende misure attive per oscurare la sua presenza all'interno del sistema ospite attraverso la sovversione o l'evasione degli strumenti standard di sicurezza del sistema e delle API usate per la diagnosi, scansione e monitoraggio. I rootkit ottengono questo con la modifica del comportamento delle parti fondamentali di un sistema operativo attraverso il caricamento di codice nei processi, l'installazione o la modifica di drivers o moduli kernel. Le tecniche di offuscamento includono il nascondere i processi in esecuzione ai meccanismi di monitoraggio del sistema e nascondere i file di sistema e altri dati di configurazione<ref>{{Cita web|url=https://www.usenix.org/publications/login/1999-9/features/rootkits.html|titolo=USENIX {{!}} The Advanced Computing Systems Association|sito=www.usenix.org|accesso=8 giugno 2016}}</ref>. Non è raro per un rootkit disabilitare la capacità di [[Event Viewer|event logging]] di un sistema operativo, nel tentativo di nascondere le prove di un attacco. I Rootkit possono, in teoria, sovvertire ogni attività del sistema operativo<ref name=":7">{{Cita pubblicazione|autore=|titolo=Hacking Exposed Malware & Rootkits (Chapter10)|rivista=http://www.mhprofessional.com/downloads/products/0071591184/0071591184_chap10.pdf}}</ref>. Il “rootkit perfetto” può essere pensato come il “[[Perfect crime|crimine perfetto]]”: quello che nessuno si rende conto che ha avuto luogo.
 
I rootkit inoltre prendono una serie di misure, oltre alla installazione nel Ring 0 (kernel-mode), per assicurarsi la loro sopravvivenza contro il rilevamento e la pulizia da parte di software antivirus. Questo include il [[Virus polimorfo|polimorfismo]], tecniche di occultamento, rigenerazione, blocco di software anti-malware<ref>{{Cita pubblicazione|autore=|titolo=Trlokom Rootkit Defense White Paper|rivista=http://www.trlokom.com/pdf/TrlokomRootkitDefenseWhitePaper.pdf}}</ref> e la non installazione su macchine virtuali, nelle quali sono più facili da scoprire e analizzare per i ricercatori.
Riga 96:
La identificazione può utilizzare diversi approcci differenti, incluse firme (es. Software Antivirus), check di integrità (es. [[Firma digitale|firme digitali]]), rilevamento basato su differenze (es. risultato del confronto atteso vs risultati effettivi) e rilevamento comportamentale (es. monitoraggio dell'utilizzo della CPU o del traffico di rete). Per i rootkit in kernel mode, la scoperta è da considerarsi più complessa, essa richiede infatti un'attenta analisi della System Call Table alla ricerca di [[Hooking|hooked function]] dove il malware potrebbe compromettere il comportamento del sistema<ref>{{Cita pubblicazione|autore=|titolo=SANS Institute InfoSec Reading Room. Kernel Rootkits|rivista=https://web.archive.org/web/20120910164327/http://www.sans.org:80/reading_room/whitepapers/threats/kernel-rootkits_449}}</ref> oppure l'analisi della memoria alla ricerca di pattern che indicano processi nascosti.
 
I software per il rilevamento dei rootkit su sistemi Unix includono Zeppo<ref>{{Cita web|url=https://sourceforge.net/projects/zeppoo/|titolo=zeppoo|sito=SourceForge|accesso=8 giugno 2016}}</ref>, [[Chkrootkit|chrootkit]], [[rkhunter]], e [[OSSEC]]. Su ambiente Windows, i software di questo tipo sono Microsoft Sysinternals, [[RootkitRevealer]]<ref>{{Cita web|url=https://technet.microsoft.com/en-us/sysinternals/bb897445.aspx|titolo=RootkitRevealer|sito=technet.microsoft.com|accesso=8 giugno 2016}}</ref>, [[Avast!|Avast! Antivirus]], [[Sophos]] Anti-Rootkit<ref>{{Cita web|url=https://www.sophos.com/products/free-tools/sophos-anti-rootkit.aspx|titolo=Anti-Rootkit Scanner {{!}} Free Rootkit Detection and Removal Tool {{!}} Sophos Virus Protection|sito=www.sophos.com|accesso=8 giugno 2016}}</ref>, [[F-Secure]]<ref>{{Cita web|url=http://www.f-secure.com/en_UK/security/security-lab/tools-and-services/blacklight/index.html|titolo=F-Secure UK and Ireland {{!}} Switch on Freedom|sito=www.f-secure.com|accesso=8 giugno 2016}}</ref>, Radix<ref>{{Cita web|url=http://www.usec.at/rootkit.html|titolo=Radix|autore=|data=|accesso=}}</ref>, [[GMER]]<ref>{{Cita web|url=http://www.gmer.net/|titolo=GMER - Rootkit Detector and Remover|sito=www.gmer.net|accesso=8 giugno 2016}}</ref> e [[WindowsSCOPE]]. Ogni software di questo tipo, con la scoperta di nuovi malware, migliora la sua stessa efficacia, ma allo stesso modo gli autori dei malware adattano e testano il loro codice per evitare di essere scoperti dagli strumenti più noti.
 
La scoperta attraverso un esame della memoria, mentre il sistema operativo preso in esame non sta operando, può mancare i rootkit non conosciuti dal software utilizzato, in quanto neanche il rootkit sta operando e quindi non sono rilevati i comportamenti sospetti. I software anti-malware convenzionali, che operano insieme al rootkit, potrebbero fallire se il rootkit si nasconde in modo efficace.