Codice dannoso: cos'è e come prevenirlo?
Cos'è un codice dannoso?
Il panorama odierno delle minacce informatiche è diventato più sofisticato e impegnativo. Il numero di attacchi informatici e violazioni dei dati è salito alle stelle negli ultimi anni, sia in termini di dimensioni che di portata. Le recenti statistiche sul malware mostrano che il malware rappresenta ancora un problema significativo in tutto il mondo. Al centro di queste sfide alla sicurezza c’è un’applicazione sinistra chiamata codice dannoso. Un codice dannoso o malware è qualsiasi software creato intenzionalmente per agire contro gli interessi dell'utente del computer causando danni al sistema informatico o compromettendo i dati memorizzati sul computer.
Da quando l’accesso a Internet a banda larga è diventato onnipresente, il software dannoso è stato progettato sempre più frequentemente per assumere il controllo dei computer degli utenti a scopo di lucro e per altri scopi illeciti come la modifica dei dati, il furto, la distruzione, il sabotaggio o la presa di ostaggi. La maggior parte del malware può installarsi sul sistema della vittima, fare copie di se stesso e diffondersi ad altre vittime, utilizzare un evento per avviare l'esecuzione del payload (rubare o eliminare file, installare backdoor, ecc.), rimuoversi dopo che il payload è stato eseguito, e utilizza tutti i tipi di tecniche di evasione per evitare di essere scoperto. Alcuni dei metodi utilizzati per eludere il rilevamento includono:
- Evasione del rilevamento tramite rilevamento delle impronte digitali dell'ambiente quando eseguito.
- Confondere gli strumenti di rilevamento automatico come i software antivirus basati su firma modificando il server utilizzato dal malware.
- Eseguire seguendo azioni specifiche intraprese dall'utente o durante specifici periodi vulnerabili, come durante il processo di avvio, rimanendo inattivo per il resto del tempo
- Stanno offuscando i dati interni in modo che gli strumenti automatizzati non rilevino il malware.
- Utilizzare tecniche di occultamento delle informazioni come la steganografia per eludere il rilevamento (stegomalware)
Come si verificano le infezioni da malware?
Le infezioni malware possono colpire il computer, l'applicazione o l'intera rete. Le infezioni avvengono attraverso una varietà di mezzi, inclusi quelli fisici e virtuali. Gli autori di malware utilizzano spesso trucchi per cercare di convincere gli utenti a scaricare e aprire file dannosi. Per esempio, attacchi di phishing sono un metodo comune di distribuzione di malware in cui e-mail camuffate da messaggi legittimi contengono collegamenti o allegati dannosi che possono consegnare il file eseguibile del malware a utenti ignari.
Il malware può diffondersi anche attraverso unità rimovibili infette come unità flash USB o dischi rigidi esterni. Il malware può essere installato automaticamente quando colleghi l'unità infetta al PC. Inoltre, alcuni malware vengono forniti in bundle con altri software scaricati. Ciò include software di siti Web di terzi, file condivisi tramite reti peer-to-peer, programmi utilizzati per generare chiavi software (keygen), barre degli strumenti del browser e plug-in, tra gli altri.
Gli aggressori possono trarre vantaggio dai difetti (vulnerabilità) del software esistente dovuti a pratiche di codifica non sicure per infettare la tua applicazione con codici dannosi. Il codice dannoso può presentarsi sotto forma di attacchi injection ( SQL Injection , Iniezione JSON, scripting cross-site, ecc. ), attacchi di attraversamento delle directory , falsificazione di richieste intersito (CSRF) attacchi, tra gli altri. Un tipico esempio di difetto nel software è il vulnerabilità del buffer overflow . Molti malware sfruttano le vulnerabilità del buffer overflow per compromettere le applicazioni o i sistemi di destinazione.
Gli attacchi malware sofisticati spesso prevedono l'uso di un server di comando e controllo che consente agli autori malintenzionati di comunicare e controllare i sistemi infetti in un botnet per rubare dati sensibili o convincerli a eseguire i loro ordini.
Come puoi sapere che il tuo computer è stato infettato da un codice dannoso? Un utente potrebbe essere in grado di rilevare un'infezione da malware se osserva qualsiasi attività insolita come un'improvvisa perdita di spazio su disco, velocità prolungate, strani movimenti del cursore e clic del mouse, negazione dell'accesso al dispositivo o ai dati, comparsa di applicazioni sconosciute mancata installazione, traffico di rete anomalo, tra gli altri.
Il malware colpisce Mac, Linux e i dispositivi mobili?
La maggior parte degli utenti ritiene che solo le macchine Windows siano vulnerabili ai malware. Presumono che gli utenti di dispositivi Linux e Mac siano immuni e non debbano prendere precauzioni. La verità è che il malware può colpire i dispositivi Windows, Linux e persino i Mac.
I dispositivi Windows sono considerati un bersaglio più grande per il malware rispetto alle altre piattaforme perché dominano la quota di mercato, il che li ha resi il bersaglio più significativo e più accessibile per gli autori malintenzionati. Oggi i Mac non sono sicuri come una volta. Man mano che la popolarità dei dispositivi Mac cresce, gli autori di malware sembrano concentrarsi maggiormente su di essi. Secondo Rapporto sullo stato del malware 2020 di Malwarebytes , la quantità di malware sui Mac sta superando per la prima volta quella sui PC.
Esistono anche codici dannosi che prendono di mira specificamente i sistemi operativi di dispositivi mobili come tablet, smartphone e smartwatch. Questi tipi di malware si basano sugli exploit di particolari sistemi operativi mobili. Sebbene il malware mobile non sia così pervasivo come quello che prende di mira le workstation, sta diventando una preoccupazione crescente per i dispositivi consumer.
I dispositivi Apple iOS come gli iPhone hanno meno probabilità di essere infettati da malware rispetto ai dispositivi Android. Questo perché i dispositivi iOS sono altamente bloccati e le app vengono sottoposte a controlli approfonditi prima di accedere all'App Store. Tuttavia, sappiamo che alcuni governi e criminali sofisticati sono armati di strumenti di hacking da milioni di dollari in grado di penetrare negli iPhone. Ciononostante, i dispositivi iOS sono generalmente più sicuri e diventeranno più vulnerabili solo se sottoposti a jailbreak.
Quali sono i tipi comuni di malware?
Codice dannoso è un termine ampio che si riferisce a una varietà di programmi malware. Gli esempi includono virus informatici, worm, spyware, adware, rootkit, bombe logiche, malware fileless, cavalli di Troia e ransomware.
Virus informatici sono piccole applicazioni o stringhe di codici dannosi che infettano i sistemi informatici e le applicazioni host. I virus informatici non si diffondono automaticamente; richiedono un supporto o un supporto come USB o Internet per propagarsi e quasi sempre corrompere o modificare i file su un computer di destinazione. I virus informatici sono disponibili in diverse forme, alcune delle quali includono:
- Virus polimorfico: il virus polimorfico tenta di eludere le applicazioni antivirus basate sulla firma modificando la propria firma in caso di infezione di un nuovo sistema.
- Virus di compressione: un virus che si aggiunge ai file eseguibili del sistema e li comprime utilizzando le autorizzazioni dell'utente.
- Virus macro: un virus scritto in linguaggi macro come le macro di Microsoft Office o Excel.
- Virus del settore di avvio: un virus che infetta il settore di avvio di un PC e si carica all'avvio del sistema.
- Virus multipart: un virus che si diffonde tramite più vettori. Chiamato anche virus multiparte.
- Virus invisibile: un virus che si nasconde dai sistemi operativi come applicazioni antivirus.
Vermi : I worm sono malware che si replicano per diffondersi su altri computer. Sono più contagiosi dei virus e spesso utilizzano una rete di computer per propagarsi, basandosi su difetti di sicurezza del computer di destinazione per accedervi. I worm sono pericolosi a causa del codice dannoso che trasportano (carico utile) e del loro potenziale di causare il degrado della larghezza di banda o addirittura la negazione del servizio a causa di un'autopropagazione aggressiva. Uno dei worm informatici più famosi è Stuxnet , che mirava ai sistemi SCADA di Siemens. Si ritiene che sia responsabile di aver causato danni sostanziali al programma nucleare iraniano.
Spyware e adware: Lo spyware è un tipo di software dannoso installato segretamente per raccogliere informazioni (comprese le abitudini di navigazione) su un particolare utente o entità, che poi invia a un'altra entità per intenti dannosi come furto di identità, spamming, pubblicità mirata, ecc.
Adware è un software che genera entrate per i suoi sviluppatori generando automaticamente pubblicità online. Gli annunci possono essere forniti tramite popup, componenti dell'interfaccia utente o schermate presentate durante il processo di installazione. L'obiettivo dell'adware è generare ricavi dalle vendite, non svolgere attività dannose, ma alcuni adware utilizzano misure invasive che possono causare problemi di sicurezza e privacy.
Rootkit: Un rootkit è una raccolta di strumenti software dannosi progettati per consentire l'accesso root a un computer o a un'area del suo software che non sarebbe altrimenti consentita. I rootkit vengono caricati sul sistema compromesso per consentire all'aggressore di svolgere attività dannose nascondendone le tracce. L'aggressore di solito sostituisce gli strumenti di sistema predefiniti con nuovi strumenti compromessi, che condividono nomi simili.
I rootkit possono risiedere a livello utente o kernel del sistema operativo. Può anche risiedere nel firmware o in un hypervisor di un sistema virtualizzato. Un rootkit a livello utente ha privilegi minimi e quindi non può causare tanti danni. Se un rootkit risiede nell'hypervisor di un sistema, può sfruttare le funzionalità di virtualizzazione dell'hardware e prendere di mira i sistemi operativi host. I rootkit nel firmware sono difficili da rilevare perché il controllo dell'integrità del software solitamente non si estende al livello del firmware. Rilevamento e rimozione dei rootkit può essere complicato perché il rootkit potrebbe essere in grado di sovvertire il software destinato a trovarlo. I metodi di rilevamento includono metodi basati sul comportamento, scansione basata sulla firma e analisi del dump della memoria.
Bombe logiche: Una bomba logica è un codice dannoso inserito intenzionalmente in un sistema software per attivare una funzione negativa quando vengono soddisfatte condizioni specifiche. Il software della bomba logica può avere molti trigger che attivano l'esecuzione del carico utile in un momento specifico o dopo che un utente ha eseguito una particolare azione. Ad esempio, un utente malintenzionato potrebbe installare e configurare una bomba logica per eliminare tutte le prove digitali nel caso in cui vengano eseguite attività forensi.
Malware senza file: Malware senza file , come suggerisce il nome, non scrive nessuna parte della sua attività sui file presenti sul disco rigido del computer; funziona invece esclusivamente dalla memoria del computer della vittima. Poiché non ci sono file da scansionare, è più difficile da rilevare rispetto al malware tradizionale. Inoltre, l’analisi forense diventa più difficile perché il malware scompare quando il computer della vittima viene riavviato.
Poiché non sono presenti file da analizzare da parte di antivirus e strumenti forensi, il rilevamento di tale malware può essere difficile. Nel 2017, Kaspersky Lab ha pubblicato un rapporto sugli attacchi malware senza file che colpiscono 140 reti aziendali in tutto il mondo, con banche, società di telecomunicazioni e organizzazioni governative come obiettivi principali.
Cavallo di Troia: UN cavallo di Troia è qualsiasi malware che si maschera da programma legittimo per ingannare gli utenti riguardo alle sue vere intenzioni. I cavalli di Troia svolgono le normali funzioni previste oltre alle funzioni dannose in background. Gli utenti vengono generalmente indotti con l'inganno da qualche forma di ingegneria sociale a caricare ed eseguire trojan sui loro sistemi. Una volta installati, i trojan possono anche utilizzare esche per mantenere l'illusione di essere legittimi.
Ad esempio, quando viene eseguito, un trojan camuffato da sfondo o da applicazione di gioco verrà in genere eseguito come sfondo o applicazione di gioco. Mentre l'utente è distratto da queste esche, il trojan può tranquillamente eseguire azioni dannose in background. I trojan vengono classificati in base al tipo di azioni dannose che eseguono. Gli esempi includono trojan bancari, trojan di accesso remoto (RAT) , trojan backdoor, trojan FakeAV, ecc. Esempi notevoli di trojan includono Zeus, MEMZ e FinFisher.
Ransomware: Il ransomware è un tipo di malware che minaccia di pubblicare i dati della vittima o di bloccarne perennemente l’accesso crittografando i file della vittima a meno che non venga pagato un riscatto. Gli attacchi ransomware vengono in genere eseguiti come parte di una truffa di phishing o utilizzando un trojan camuffato da file legittimo che l'utente è indotto a scaricare o aprire quando arriva come allegato di posta elettronica. L'aggressore procede a crittografare informazioni specifiche che possono essere aperte solo tramite una chiave matematica a lui nota. Quando l'aggressore riceve il pagamento, i dati vengono sbloccati.
Notevoli attacchi ransomware includono Voglio piangere (2017) e REvil (2020). Il ransomware WannaCry si è diffuso attraverso Internet nel 2017, infettando più di 230.000 computer in più di 150 paesi e richiedendo 300 dollari per computer. REvil è un privato ransomware come servizio (RaaS) operazione che minaccia di pubblicare i dati delle vittime sul loro blog ( doxxing ) a meno che non venga pagato un riscatto. Nell'aprile 2021, REvil ha rubato i progetti dei prossimi prodotti Apple e minacciò di pubblicarli a meno che non fosse stato pagato un riscatto di 50 milioni di dollari. Sia WannaCry che REvil sono stati rimossi.
Come puoi prevenire e proteggere le tue risorse IT dalle infezioni malware?
Proteggere il tuo dispositivo, le applicazioni critiche e l'intera rete da questi lunghi elenchi di malware richiede molto più della semplice implementazione di un software antivirus. Al giorno d’oggi, gli antivirus e un altro approccio alla sicurezza basato sulle firme non sono più considerati sufficienti per proteggere i sistemi dalle moderne minacce informatiche. Con oltre Ogni giorno vengono scoperti 350.000 nuovi malware , è praticamente impossibile per le applicazioni antivirus tenere sotto controllo queste minacce nuove ed emergenti.
Questo è il motivo per cui le organizzazioni devono sviluppare un programma di sicurezza delle informazioni basato sul rischio che abbracci i principi del modello di sicurezza Zero Trust nella loro strategia di sicurezza per aumentare la resilienza informatica. Un programma di sicurezza dovrebbe affrontare i problemi di rischio da un punto di vista strategico, tattico e operativo. Ciò include la progettazione e l’implementazione di controlli amministrativi, fisici e tecnici per proteggere le risorse digitali critiche, come dettagliato nella Tabella 1.0 di seguito. I controlli amministrativi si concentrano su politiche, procedure e linee guida di sicurezza, formazione sulla consapevolezza della sicurezza e altri fattori umani di sicurezza che definiscono il personale o le pratiche aziendali in linea con gli obiettivi di sicurezza dell’organizzazione. I controlli fisici sono misure messe in atto per impedire l'accesso fisico non autorizzato alle risorse IT critiche. I controlli tecnici si concentrano su componenti hardware o software come antivirus, firewall, IPS/IDS, elenchi di controllo degli accessi (ACL) , whitelist delle applicazioni , eccetera.
Fisico | Controllo degli accessi fisici | Registri delle telecamere CCTV e di sorveglianza | Riparare e ripristinare beni fisicamente danneggiati |
Amministrativo | Gestione del rischio, politiche e procedure di sicurezza, piano di backup, ecc. | Controllo, gestione eventi di sicurezza, gestione modifiche, ecc. | Piano di risposta agli incidenti, DR/BCP. |
Tecnico | Antivirus, IPS, soluzione MFA, aggiornamenti, whitelist, ACL, ecc | IDS, honeypot, scanner di vulnerabilità, test statici, ecc. | Patching, blacklist, tecniche di quarantena, ecc |
Tabella 1.0 | Confronto tra controlli di sicurezza amministrativi, fisici e tecnici
Per le organizzazioni che sviluppano applicazioni business-critical, un modo per evitare che codice dannoso rovini le applicazioni è adottare soluzioni innovative pratiche di codifica sicure , inclusa l'analisi statica del codice nel ciclo di vita dello sviluppo del software. L'analisi statica viene utilizzata per proteggere le applicazioni esaminando il codice sorgente quando non è in esecuzione per identificare codici dannosi o prove di pratiche non sicure note. È uno dei modi più efficaci per impedire che codice dannoso causi danni alle applicazioni critiche della tua azienda. Strumenti automatizzati come Invincibile , Acunetix , Veracode , CheckMarx e altri implementano l'analisi statica del codice per rilevare e prevenire codici dannosi come backdoor, bombe logiche, rootkit, ecc.
Gli utenti che desiderano proteggere e impedire che codici dannosi infettino i propri PC possono installare software antimalware come ulteriore livello di sicurezza. Oltre a ciò, gli utenti possono evitare il malware adottando un comportamento sicuro sui propri computer o altri dispositivi personali. Ciò include mantenere aggiornato il software, utilizzare il più possibile account non amministrativi, fare attenzione a scaricare programmi e allegati sconosciuti che potrebbero contenere malware in forma mascherata, tra gli altri.