This commit is contained in:
@@ -1,22 +1,22 @@
|
||||
## Gli Attacchi APT (Advanced Persistent Threats)
|
||||
# Gli Attacchi APT (Advanced Persistent Threats)
|
||||
|
||||
Con il passare degli anni e l'avvento delle nuove tecnologie il modo per sferrare gli attacchi è mutato ed è diventato pìiù sofisticato, e così sono nate le gli **attacchi APT**.
|
||||
Gli attacchi APT vengono definiti come tecniche di hacking mirate e sofisticate, usate per **sabotaggio o spionaggio a lungo termine** e sono solitamente basati sul **Social Engineering**.
|
||||
Prevedono 7 fasi precise:
|
||||
|
||||
* Ricognizione
|
||||
### Ricognizione
|
||||
Vengono raccolte una serie di informazioni aggiornate e pubbliche riguardanti il target tramite **social engineering** per capire al meglio la struttura e il funzionamento del sistema che si vuole attaccare e le sue debolezze (spesso è proprio il lato umano la maggiore debolezza).
|
||||
* Armamento
|
||||
### Armamento
|
||||
L'attaccante pianifica l'attacco creando le cosiddette "armi" e identificando nello specifico i fronti di attacco
|
||||
* Distribuizione
|
||||
### Distribuizione
|
||||
L'attaccante invia il malware al target tramite tecniche note di iniezione, quali sql injection, xss, allegati malevoli inviati via mail, phishing etc...
|
||||
* Sfruttamento
|
||||
### Sfruttamento
|
||||
Il payload dannoso apre un varco nel sistema sfruttando una specifica vulnerabilità
|
||||
* Installazione
|
||||
### Installazione
|
||||
Vengono istanziate delle backdoor sulla macchina target infetta e ciò permette agli attaccanti di prendere le info sensibili necessarie al proseguimento dell'attacco quali credenziali, registri di sistema etc...
|
||||
* Comando e Controllo
|
||||
### Comando e Controllo
|
||||
Tramite le credenziali rubate gli attaccanti accedono ai **dati riservati** del sistema e li esfiltrano, tutti i dati interessanti vengono inviati a server intermedi e crittografati prima di venire inviati al team esterno che usa questi dati per operazioni illecite
|
||||
* Azioni sull'obiettivo
|
||||
### Azioni sull'obiettivo
|
||||
Tutti i precedenti processi vengono "occultati" ai membri del sistema perchè lo scopo è rimanere dentro il più possibile in modo da poter captare una grande mole di dati, **è l'esatto motivo per cui questi attacchi sono così complicati da gestire !!**
|
||||
|
||||
Questa catena viene anche detta **Cyber Kill Chain** e viene utilizzata per descrivere il ciclo di vita di un attacco informatico.
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
## Minacce TCP/IP
|
||||
# Minacce TCP/IP
|
||||
|
||||
Il protocollo **TCP/IP** è la base della comunicazione su Internet. Proprio per la sua natura aperta e universale, è soggetto a numerosi attacchi che sfruttano debolezze nel design dei protocolli di rete.
|
||||
|
||||
### Principali attacchi sul protocollo TCP/IP
|
||||
## Principali attacchi sul protocollo TCP/IP
|
||||
|
||||
#### IP Spoofing
|
||||
### IP Spoofing
|
||||
L'attaccante **falsifica l'indirizzo IP sorgente** dei pacchetti per impersonare un host fidato o nascondere la propria identità.
|
||||
|
||||
#### SYN Flood (DoS/DDoS)
|
||||
### SYN Flood (DoS/DDoS)
|
||||
Sfrutta il meccanismo di **handshake a tre vie** di TCP:
|
||||
1. Il client invia SYN
|
||||
2. Il server risponde con SYN-ACK e alloca risorse
|
||||
@@ -15,25 +15,25 @@ Sfrutta il meccanismo di **handshake a tre vie** di TCP:
|
||||
|
||||
Il server accumula connessioni "semiaperte" fino all'esaurimento delle risorse.
|
||||
|
||||
#### Man-in-the-Middle (MitM)
|
||||
### Man-in-the-Middle (MitM)
|
||||
L'attaccante si **interpone nella comunicazione** tra due host, potendo intercettare, modificare o iniettare pacchetti in tempo reale.
|
||||
|
||||
#### Teardrop
|
||||
### Teardrop
|
||||
Invio di frammenti di pacchetti IP **corrotti** che il sistema non riesce a riassemblare, mandandolo in tilt.
|
||||
|
||||
#### Botnet e DDoS
|
||||
### Botnet e DDoS
|
||||
Una rete di **dispositivi infetti** (botnet) controllati all'insaputa dei proprietari, usati per lanciare attacchi **DDoS (Distributed Denial of Service)**, mirati a disattivare un servizio sovraccaricandolo di richieste.
|
||||
|
||||
#### Session Hijacking
|
||||
### Session Hijacking
|
||||
Furto del **token di sessione TCP** per impersonare un utente autenticato senza conoscerne le credenziali.
|
||||
|
||||
#### DNS Poisoning / Spoofing
|
||||
### DNS Poisoning / Spoofing
|
||||
Corruzione della cache DNS per **reindirizzare l'utente** verso siti malevoli pur digitando un indirizzo legittimo.
|
||||
|
||||
#### Packet Sniffing
|
||||
### Packet Sniffing
|
||||
Intercettazione passiva del traffico di rete. Particolarmente pericolosa su reti non cifrate (HTTP, FTP, Telnet).
|
||||
|
||||
### Contromisure
|
||||
## Contromisure
|
||||
- Utilizzo di **TLS/SSL** per cifrare le comunicazioni
|
||||
- **Firewall** e sistemi IDS/IPS
|
||||
- **IPSec** per autenticazione e cifratura a livello di rete
|
||||
|
||||
@@ -18,6 +18,52 @@ TLS 1.3 si compone di un'architettura strutturata principalmente su due macro-li
|
||||
|
||||
---
|
||||
|
||||
## 2. Il Flusso di Handshake in TLS 1.3 (1-RTT)
|
||||
## Il Flusso di Handshake TLS (Transport Layer Security)
|
||||
|
||||
Il protocollo **TLS (Transport Layer Security)**, l'evoluzione di SSL, è il pilastro fondamentale della sicurezza su Internet. Permette a due parti (tipicamente un client come un browser web e un server) di comunicare in modo sicuro tramite cifratura, autenticazione e integrità dei dati.
|
||||
|
||||
### 1. ClientHello
|
||||
Il client avvia la connessione inviando un pacchetto di saluto (ClientHello). Questo messaggio contiene:
|
||||
|
||||
Versioni TLS: L'elenco delle versioni del protocollo supportate (prediligendo TLS 1.3).
|
||||
|
||||
Cipher Suites: L'elenco degli algoritmi di cifratura supportati dal client.
|
||||
|
||||
Client Random: Una stringa di byte casuali utilizzata successivamente per prevenire attacchi di tipo replay.
|
||||
|
||||
Key Share (Estensione): A differenza di TLS 1.2, il client assume l'algoritmo di scambio chiavi che verrà scelto (es. X25519 o P-256) e invia immediatamente la sua parte della chiave pubblica Diffie-Hellman. Questo permette di risparmiare un intero viaggio di rete (RTT).
|
||||
|
||||
### 2. ServerHello
|
||||
Il server riceve il ClientHello, elabora le informazioni e risponde con il ServerHello:
|
||||
|
||||
Seleziona la versione TLS 1.3 e la Cipher Suite migliore tra quelle comuni.
|
||||
|
||||
Genera il proprio Server Random.
|
||||
|
||||
Invia il proprio Server Key Share, completando lo scambio di chiavi Diffie-Hellman. Da questo preciso momento in poi, sia il client che il server possiedono i dati necessari per calcolare la Master Secret (chiave simmetrica) e tutta la comunicazione successiva viene cifrata.
|
||||
|
||||
### 3. Messaggi Cifrati del Server (Server Encrypted Handshake)
|
||||
Sotto la protezione della chiave appena generata, il server invia:
|
||||
|
||||
EncryptedExtensions: Estensioni del server che non devono essere lette in chiaro.
|
||||
|
||||
Certificate: Il certificato digitale SSL/TLS del server (rilasciato da una CA fidata), che contiene la chiave pubblica del server.
|
||||
|
||||
CertificateVerify: Una firma crittografica creata dal server utilizzando la sua chiave privata. Dimostra che il server possiede effettivamente la chiave privata corrispondente al certificato inviato.
|
||||
|
||||
Finished: Un hash di tutti i messaggi dell'handshake scambiati finora, che conferma che nessuno ha manomesso i dati.
|
||||
|
||||
### 4. Verifica del Client e Finished
|
||||
Il client esegue i seguenti controlli:
|
||||
|
||||
Verifica la validità del Certificato (scadenza, catena di fiducia della CA, dominio corrispondente).
|
||||
|
||||
Verifica la firma in CertificateVerify usando la chiave pubblica del certificato.
|
||||
|
||||
Se tutto è corretto, genera le chiavi simmetriche finali di sessione.
|
||||
|
||||
Invia il proprio messaggio di Finished al server, anch'esso protetto e contenente l'hash dei messaggi scambiati.
|
||||
|
||||
### Passaggio alla Fase di Record
|
||||
Entrambe le parti passano all'invio dei dati applicativi (es. richieste HTTP nel protocollo HTTPS) cifrati con algoritmi simmetrici veloci e sicuri come AES-GCM o ChaCha20-Poly1305.
|
||||
|
||||
A differenza di TLS 1.2 che richiedeva due passaggi completi (2-RTT), TLS 1.3 riduce la latenza a un solo Round-Trip Time (**1-RTT**) effettuando l'ipotesi ottimistica dei parametri crittografici da utilizzare.
|
||||
|
||||
@@ -27,24 +27,24 @@ La sicurezza si avvale di team specializzati di white hat hackers che simulano a
|
||||
Come già specificato prima gli attacchi informatici sfruttano delle minacce tramite exploits per causare un impatto su un sistema.
|
||||
Distinguiamo tre macro-tipologie di attacchi, derivanti da specifiche minacce:
|
||||
|
||||
## I Malware
|
||||
### I Malware
|
||||
|
||||
Il termine deriva da *malicious software*. È un codice malevolo progettato per penetrare illecitamente in un sistema per rubare, alterare dati, spiare o assumere il controllo del dispositivo. Spesso l'infezione richiede l'inconsapevole complicità dell'utente (social engineering).
|
||||
|
||||
## I Keylogger
|
||||
### I Keylogger
|
||||
|
||||
Un **keylogger** è uno strumento — hardware o software — che **registra ogni tasto premuto** dall'utente a sua insaputa, con l'obiettivo di sottrarre credenziali, dati sensibili e informazioni riservate.
|
||||
|
||||
## Attacchi a Livello TCP/IP
|
||||
### Attacchi a Livello TCP/IP
|
||||
|
||||
Il protocollo **TCP/IP** è la base della comunicazione su Internet. Proprio per la sua natura aperta e universale, è soggetto a numerosi attacchi che sfruttano debolezze nel design dei protocolli di rete.
|
||||
|
||||
## Errori Umani
|
||||
### Errori Umani
|
||||
|
||||
Gli errori umani rappresentano storicamente la **causa principale** delle violazioni di sicurezza. Non si tratta di attacchi tecnici, ma di comportamenti che aprono vulnerabilità sfruttabili da attori malevoli — o che causano danni diretti senza alcun intervento esterno ai quali purtroppo non c'è una soluzione immediata.
|
||||
|
||||
|
||||
## Gli Attacchi APT (Advanced Persistent Threats)
|
||||
### Gli Attacchi APT (Advanced Persistent Threats)
|
||||
|
||||
Gli attacchi APT vengono definiti come tecniche di hacking mirate e sofisticate, usate per **sabotaggio o spionaggio a lungo termine** e sono solitamente basati sul **Social Engineering**.
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ La crittografia **asimmetrica** nasce per risolvere il problema dello scambio de
|
||||
|
||||
La differenza fondamentale tra quest'ultima e la crittografia simmetrica è proprio la chiave: questa volta ogni utente ne possiederà due:
|
||||
|
||||
* La**chiave pubblica**: una chiave che è utilizzabile a tutti e utilizzata per comunicare con l'utente, nella cifratura dei dati
|
||||
* La **chiave pubblica**: una chiave che è utilizzabile a tutti e utilizzata per comunicare con l'utente, nella cifratura dei dati
|
||||
|
||||
* La**chiave privata**: una chiave che è accessibile solamente all'utente che la possiede e viene usata nella decifratura
|
||||
* La **chiave privata**: una chiave che è accessibile solamente all'utente che la possiede e viene usata nella decifratura
|
||||
|
||||
Queste due chiavi sono legate da relazioni matematiche dette **"unidirezionali con trappola"** (*trapdoor one-way functions*):
|
||||
operazioni facili da eseguire in un senso, ma computazionalmente impossibili da invertire, a meno che non si conosca un'informazione specifica chiamata "trappola" (la chiave privata).
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
## Errori Umani
|
||||
# Errori Umani
|
||||
|
||||
Gli errori umani rappresentano storicamente la **causa principale** delle violazioni di sicurezza. Non si tratta di attacchi tecnici, ma di comportamenti che aprono vulnerabilità sfruttabili da attori malevoli — o che causano danni diretti senza alcun intervento esterno ai quali purtroppo non c'è una soluzione immediata.
|
||||
|
||||
### Categorie di errori umani
|
||||
## Categorie di errori umani
|
||||
|
||||
#### Vittime di Phishing e Social Engineering
|
||||
### Vittime di Phishing e Social Engineering
|
||||
L'utente viene **manipolato psicologicamente** per rivelare credenziali, cliccare su link malevoli o eseguire azioni dannose. Include:
|
||||
- Phishing via email
|
||||
- Vishing (voice phishing)
|
||||
- Smishing (SMS phishing)
|
||||
- Pretexting e impersonificazione
|
||||
|
||||
#### Gestione inadeguata delle credenziali
|
||||
### Gestione inadeguata delle credenziali
|
||||
- Password deboli o riutilizzate su più servizi
|
||||
- Condivisione di credenziali tra colleghi
|
||||
- Mancato aggiornamento delle password dopo una violazione
|
||||
- Post-it con password attaccati al monitor
|
||||
|
||||
#### Configurazioni errate (Misconfiguration)
|
||||
### Configurazioni errate (Misconfiguration)
|
||||
- Permessi troppo permissivi su file, cartelle o database
|
||||
- Servizi esposti su internet senza necessità
|
||||
- Bucket cloud (S3, Azure Blob) lasciati pubblici per errore
|
||||
- Default credentials non modificate
|
||||
|
||||
#### Installazione di software non autorizzato
|
||||
### Installazione di software non autorizzato
|
||||
- Download di applicazioni da fonti non ufficiali
|
||||
- Uso di software craccato contenente malware
|
||||
- Estensioni browser malevole installate inconsapevolmente
|
||||
|
||||
#### Smaltimento non sicuro dei dati
|
||||
### Smaltimento non sicuro dei dati
|
||||
- Hard disk eliminati senza formattazione sicura
|
||||
- Documenti sensibili cestinati senza distruzione
|
||||
- Dispositivi aziendali venduti o donati senza sanificazione
|
||||
|
||||
#### Shadow IT
|
||||
### Shadow IT
|
||||
Utilizzo di strumenti, app o servizi cloud **non approvati dall'IT aziendale**, che sfuggono a qualsiasi controllo di sicurezza.
|
||||
|
||||
> 💡 **Il fattore umano** non si elimina con la tecnologia, ma con **formazione continua, cultura della sicurezza e processi chiari**. Il 95% delle violazioni di sicurezza ha una componente umana (fonte: IBM Cyber Security Intelligence Index).
|
||||
@@ -4,7 +4,7 @@ La **crittologia** è la scienza che studia le scritture segrete e si divide in:
|
||||
* 1. **Crittografia:** Studio degli algoritmi per offuscare (cifrare) le informazioni.
|
||||
* 2. **Crittoanalisi:** Tecniche usate per violare i sistemi crittografici.
|
||||
|
||||
* ## Il Funzionamento alla Base
|
||||
## Il Funzionamento alla Base
|
||||
Il **Testo in chiaro** (leggibile) viene trasformato in **Testo cifrato** tramite un **Algoritmo di cifratura** e una **Chiave** (una stringa di bit).
|
||||
|
||||
> **Principio di Kerckhoffs:** La sicurezza di un sistema crittografico non deve dipendere dalla segretezza dell'algoritmo (che deve poter essere pubblico), ma esclusivamente dalla segretezza della chiave.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
## 2. I Keylogger
|
||||
# I Keylogger
|
||||
|
||||
Un **keylogger** è uno strumento di monitoraggio diagnostico o spionistico espressamente progettato per intercettare, registrare e memorizzare sequenzialmente gli input generati da una tastiera.
|
||||
|
||||
### Tipologie di keyloggers
|
||||
## Tipologie di keyloggers
|
||||
|
||||
I keylogger possono fare parte di due categorie:
|
||||
|
||||
@@ -16,19 +16,19 @@ I keylogger possono fare parte di due categorie:
|
||||
- Invisibile a qualsiasi antivirus
|
||||
- Richiede accesso fisico alla macchina
|
||||
|
||||
### Keylogger Software
|
||||
## Keylogger Software
|
||||
I keylogger software intercettano i tasti premuti inserendosi a vari livelli dell'architettura del sistema operativo:
|
||||
|
||||
#### 1. Windows Hooks (`SetWindowsHookEx`)
|
||||
### 1. Windows Hooks (`SetWindowsHookEx`)
|
||||
Utilizza le API native del sistema operativo Windows per installare una procedura di filtro all'interno della catena di gestione dei messaggi. Registrando l'hook di tipo `WH_KEYBOARD` o `WH_KEYBOARD_LL` (Low-Level), il keylogger riceve una copia esatta di ogni messaggio di input (`WM_KEYDOWN`, `WM_KEYUP`) prima ancora che questo venga consegnato alla finestra dell'applicazione attiva.
|
||||
|
||||
#### 2. Polling dello Stato dei Tasti (`GetAsyncKeyState`)
|
||||
### 2. Polling dello Stato dei Tasti (`GetAsyncKeyState`)
|
||||
Il malware esegue un ciclo continuo (*loop*) ad alta frequenza interrogando lo stato fisico di ciascun tasto tramite la funzione `GetAsyncKeyState`. Se il bit più significativo restituito dall'API è impostato a 1, significa che il tasto è attualmente premuto. Questo metodo non richiede l'iniezione di DLL ma è esoso in termini di cicli CPU se non ottimizzato.
|
||||
|
||||
#### 3. Kernel-Mode Filter Drivers
|
||||
### 3. Kernel-Mode Filter Drivers
|
||||
È il metodo più avanzato e difficile da rilevare. Il keylogger si installa come un driver di filtro di alto livello sopra il driver di classe della tastiera (es. `kbdclass.sys` in Windows). Intercetta direttamente i pacchetti di richiesta di I/O (IRP - *I/O Request Packets*) generati dall'hardware prima che transitino nel sottosistema user-mode.
|
||||
|
||||
#### Funzionalità accessorie avanzate
|
||||
### Funzionalità accessorie avanzate
|
||||
I moderni keylogger non limitano l'azione ai tasti, ma implementano:
|
||||
* **Form Grabbing:** Intercettazione dei dati inseriti nei form dei browser prima che vengano cifrati dal protocollo HTTPS.
|
||||
* **Clipboard Hijacking:** Monitoraggio costante degli appunti di sistema (`Ctrl+C` / `Ctrl+V`) per catturare password o sostituire al volo indirizzi di wallet di criptovalute.
|
||||
@@ -36,7 +36,7 @@ I moderni keylogger non limitano l'azione ai tasti, ma implementano:
|
||||
|
||||
---
|
||||
|
||||
### Keylogger Hardware
|
||||
## Keylogger Hardware
|
||||
I dispositivi hardware operano a livello fisico e sono totalmente indipendenti dal sistema operativo e dal file system della macchina bersaglio.
|
||||
* **Architettura Interna:** Sono costituiti da un microcontrollore miniaturizzato (es. architettura ARM o AVR) e da una memoria flash non volatile (da pochi megabyte fino a diversi gigabyte). Il dispositivo si interpone fisicamente tra il cavo della tastiera e la porta USB/PS2 del computer.
|
||||
* **Meccanismo di Funzionamento:** Agisce come un analizzatore di bus trasparente. Intercetta i pacchetti di report HID (*Human Interface Device*) inviati dalla tastiera, decodifica gli *Scan Codes* dei tasti premuti e li memorizza nella memoria flash interna in formato testuale. Al contempo, inoltra i pacchetti originari immutati verso il PC, garantendo che l'utente non sperimenti alcun ritardo nell'input.
|
||||
@@ -46,23 +46,23 @@ I dispositivi hardware operano a livello fisico e sono totalmente indipendenti d
|
||||
|
||||
### Matrice dei Target Informativi
|
||||
I dati esfiltrati subiscono una classificazione interna da parte del malware (tramite espressioni regolari o *regex*) per identificare stringhe ad alto valore:
|
||||
* **Credenciales d'accesso:** Analisi contestuale dei tasti digitati subito dopo l'apertura di finestre con titoli come "Login", "Sign In" o URL bancari.
|
||||
* **Credenziali d'accesso:** Analisi contestuale dei tasti digitati subito dopo l'apertura di finestre con titoli come "Login", "Sign In" o URL bancari.
|
||||
* **Dati Finanziari:** Stringhe numeriche di 16 cifre che soddisfano l'algoritmo di Luhn (numeri di carte di credito) associate a date di scadenza e codici CVV/CVC.
|
||||
* **Informazioni Sensibili:** Stringhe testuali scambiate su client di messaggistica aziendale, email o elaboratori di testi (spionaggio industriale).
|
||||
|
||||
---
|
||||
|
||||
### Contromisure Sperimentali
|
||||
## Contromisure Sperimentali
|
||||
|
||||
#### A. Autenticazione a Più Fattori (MFA / 2FA)
|
||||
### A. Autenticazione a Più Fattori (MFA / 2FA)
|
||||
Rende inutile la sottrazione della sola password. Anche se un keylogger intercetta le credenziali statiche, l'attaccante non potrà accedere al sistema senza il token dinamico OTP (One-Time Password) generato da un'app crittografica (Google Authenticator) o tramite chiavi hardware (YubiKey basate su standard FIDO2/WebAuthn).
|
||||
|
||||
#### B. Tastiere Virtuali Dinamiche (A Schermo)
|
||||
### B. Tastiere Virtuali Dinamiche (A Schermo)
|
||||
L'inserimento dei dati avviene tramite clic del mouse su una tastiera grafica. Per contrastare lo *screen scraping* associato, i sistemi bancari evoluti randomizzano la posizione dei tasti sulla matrice grafica ad ogni clic, rendendo inutile il tracciamento delle coordinate spaziali del mouse.
|
||||
|
||||
#### C. Antimalware con Moduli Euristici e Keystroke Encryption
|
||||
### C. Antimalware con Moduli Euristici e Keystroke Encryption
|
||||
* **Analisi Euristica e Comportamentale:** Monitoraggio delle chiamate API. Se un processo non firmato tenta di eseguire `SetWindowsHookEx` o di aprire l'handle del driver di tastiera, l'EDR/Antivirus blocca preventivamente l'applicazione.
|
||||
* **Keystroke Encryption:** Software di sicurezza specializzati iniettano un driver a livello kernel che cifra i tasti premuti non appena vengono generati dall'hardware. I dati viaggiano cifrati lungo tutto il sistema operativo e vengono decifrati solo all'interno del processo del browser legittimo protetto, lasciando a un eventuale keylogger software solo un flusso di caratteri casuali privi di significato.
|
||||
|
||||
#### D. Ispezione Fisica e Controllo degli Accessi
|
||||
### D. Ispezione Fisica e Controllo degli Accessi
|
||||
Ispezione visiva sistematica del retro dei computer aziendali per rilevare la presenza di dongle intermedi estranei inseriti nelle porte USB. Implementazione di policy di sicurezza fisiche (blocco delle porte USB inutilizzate, case dei PC chiusi a chiave) per impedire ad attori malintenzionati l'innesto di hardware ostile.
|
||||
@@ -1,4 +1,4 @@
|
||||
## L'Autenticazione e l'Integrità nella Crittografia Simmetrica
|
||||
# L'Autenticazione e l'Integrità nella Crittografia Simmetrica
|
||||
|
||||
Nella crittografia simmetrica, algoritmi come AES (in modalità ECB o CBC) garantiscono esclusivamente la **riservatezza**: un attaccante non può leggere il messaggio, ma potrebbe comunque alterare i bit del testo cifrato causando la decifratura di dati corrotti o malevoli.
|
||||
|
||||
@@ -6,11 +6,11 @@ Per proteggersi da questo tipo di attacchi, la crittografia simmetrica introduce
|
||||
|
||||
---
|
||||
|
||||
### 1. MAC (Message Authentication Code)
|
||||
## MAC (Message Authentication Code)
|
||||
|
||||
Un **MAC** (noto anche come *tag di autenticazione*) è una firma simmetrica. Viene generato prendendo in input il messaggio e la chiave segreta simmetrica condivisa tra le parti.
|
||||
|
||||
#### Il Meccanismo
|
||||
### Il Meccanismo
|
||||
Il mittente calcola il tag e lo appende al messaggio:
|
||||
$$\text{Tag} = \text{MAC}(K, M)$$
|
||||
|
||||
@@ -19,20 +19,20 @@ Il destinatario riceve la coppia $(M, \text{Tag})$, ricalcola il MAC sul messagg
|
||||
|
||||
---
|
||||
|
||||
### 2. HMAC (Hash-based MAC)
|
||||
## HMAC (Hash-based MAC)
|
||||
|
||||
L'**HMAC** (RFC 2104) è un'implementazione specifica del MAC che utilizza come motore interno una funzione di hash crittografica (come SHA-256).
|
||||
|
||||
Non è sicuro calcolare un MAC semplicemente concatenando la chiave e il messaggio all'interno di un hash (es. $H(K \parallel M)$), perché molte funzioni di hash sono vulnerabili ai cosiddetti *Length Extension Attacks* (attacchi di estensione della lunghezza). HMAC risolve questo problema applicando la funzione di hash **due volte** e introducendo due costanti di riempimento (*padding*).
|
||||
|
||||
|
||||
### 3. AEAD (Authenticated Encryption with Associated Data)
|
||||
## AEAD (Authenticated Encryption with Associated Data)
|
||||
|
||||
Storicamente, per ottenere sia riservatezza che autenticazione, gli sviluppatori combinavano un cifrario (es. AES-CBC) e un MAC (es. HMAC) in passaggi separati. Questo approccio empirico ha causato gravissimi bug di sicurezza (come i famosi attacchi *Padding Oracle*).
|
||||
|
||||
La moderna crittografia simmetrica ha risolto il problema introducendo i cifrari **AEAD** (standardizzati nell'RFC 5116). Un algoritmo AEAD esegue **cifratura e autenticazione simultaneamente** in un unico passaggio atomico e sicuro. Inoltre, permette di autenticare dei dati associati in chiaro ($A$), come gli header di un pacchetto di rete, che non devono essere cifrati ma non devono subire alterazioni.
|
||||
|
||||
#### La Formula Matematica
|
||||
### La Formula Matematica
|
||||
|
||||
$$(C, T) = \text{AEAD-Encrypt}(K, N, P, A)$$
|
||||
|
||||
@@ -46,6 +46,6 @@ Dove:
|
||||
|
||||
In fase di decifratura, l'algoritmo elabora l'input ed estrae il testo in chiaro originale **solo se** il tag $T$ risulta valido. Se il tag è alterato, l'intero blocco viene scartato prima ancora di mostrare i dati corrotti.
|
||||
|
||||
#### Gli Standard più Utilizzati oggi
|
||||
## Gli Standard più Utilizzati oggi
|
||||
* **AES-GCM** (Galois/Counter Mode): Lo standard industriale utilizzato ovunque (HTTPS, TLS 1.3, IPsec). Sfrutta la parallelizzazione ed è velocissimo sui processori moderni grazie all'accelerazione hardware.
|
||||
* **ChaCha20-Poly1305**: Un'alternativa software estremamente performante e sicura, utilizzata nativamente in protocolli come WireGuard e come suite di riserva in TLS.
|
||||
|
||||
@@ -7,46 +7,46 @@ In generale, un malware è composto da due parti funzionali (assimilabili a un m
|
||||
1. **Vettore (Carrier):** Il mezzo attraverso cui il malware si diffonde (un file allegato, un link, una chiavetta USB) e che serve a superare le difese del sistema sfruttando una vulnerabilità.
|
||||
2. **Carico utile (Payload):** Le istruzioni specifiche (la "testata esplosiva") che il malware esegue una volta dentro il sistema bersaglio (es. cifrare i file, rubare password, attivare la fotocamera).
|
||||
|
||||
### 1.2 Tassonomia Specifica delle Tipologie di Malware
|
||||
## Tipologie di Malware
|
||||
|
||||
L'ecosistema delle minacce si articola in categorie distinte in base al meccanismo di replicazione, occultamento ed esecuzione:
|
||||
|
||||
#### A. Virus
|
||||
### Virus
|
||||
Un virus è un frammento di codice parassita non autonomo. Richiega l'inserimento all'interno di un file eseguibile ospite (*host*) legittimo.
|
||||
* **Meccanismo:** Quando l'utente esegue il file infetto, il controllo della CPU passa temporaneamente alla routine del virus, che infetta altri eseguibili sovrascrivendone le sezioni (es. `.text`) o inserendosi in coda (*Appending*), per poi restituire il controllo al programma originale.
|
||||
* **Esempio storico:** *ILOVEYOU* (sfruttava script VBScript allegati).
|
||||
|
||||
#### B. Worm
|
||||
### Worm
|
||||
A differenza dei virus, i worm sono programmi completamente autonomi che non necessitano di un file ospite né dell'interazione umana per replicarsi.
|
||||
* **Meccanismo:** Scansionano attivamente la rete alla ricerca di porte aperte e servizi vulnerabili. Una volta individuata una falla (es. un buffer overflow in un servizio di rete), inviano un exploit, eseguono una shellcode e scaricano una copia di se stessi sul target, propagandosi in modo esponenziale.
|
||||
* **Esempio storico:** *WannaCry* (sfruttava l'exploit EternalBlue sul protocollo SMBv1).
|
||||
|
||||
#### C. Trojan Horse (Cavallo di Troia)
|
||||
### Trojan Horse (Cavallo di Troia)
|
||||
Software provvisto di funzionalità apparentemente lecite, utili o attraenti, che nasconde codice malevolo non visibile all'utente.
|
||||
* **Meccanismo:** Sfrutta tecniche di ingegneria sociale per indurre l'utente all'installazione (es. finti crack software o utility di sistema). Non si autoconcatena ad altri file e non si replica in rete da solo, ma funge da "apripista" per l'installazione di moduli ben più pericolosi, come i RAT (*Remote Access Trojan*).
|
||||
|
||||
#### D. Ransomware
|
||||
### Ransomware
|
||||
Malware focalizzato sulla distruzione della disponibilità dei dati a scopo di estorsione finanziaria.
|
||||
* **Meccanismo:** I moderni ransomware utilizzano una **cifratura ibrida**. Generano localmente una chiave simmetrica ultra-veloce (es. ChaCha20 o AES-256) per cifrare i file della vittima sul disco. Successivamente, cifrano la chiave simmetrica stessa con una chiave pubblica asimmetrica (es. RSA-4096 o ECC) il cui rispettivo segreto privato si trova esclusivamente sul server C2 dell'attaccante. Senza quella chiave privata, la decifratura è matematicamente impossibile. Inoltre, applicano la *Double Extortion*: esfiltrano i dati prima di cifrarli, minacciando di pubblicarli.
|
||||
* **Esempi attuali:** *LockBit*, *Ryuk*, *BlackCat*.
|
||||
|
||||
#### E. Spyware & Adware
|
||||
### Spyware & Adware
|
||||
* **Spyware:** Progettato per violare la riservatezza monitorando silenziosamente i canali di input, la navigazione web, le credenziali memorizzate nei browser e i file locali, per poi inviarli all'attaccante. Opera in background cercando di mantenere il consumo di CPU minimo per non destare sospetti.
|
||||
* **Adware:** Meno distruttivo ma altamente invasivo, dirotta i vettori di rendering del browser o del sistema operativo per iniettare banner pubblicitari non richiesti, modificando spesso i motori di ricerca predefiniti e tracciando le abitudini di navigazione commerciale dell'utente.
|
||||
|
||||
#### F. Rootkit
|
||||
### Rootkit
|
||||
Insieme di strumenti software progettati per nascondere la presenza di processi, file o chiavi di registro malevole modificando i flussi di esecuzione del sistema operativo.
|
||||
* **Rootkit a livello User (Kernel-land vs User-land):** Intercettano e alterano le API di sistema (es. eseguendo l'hooking delle funzioni `NtQuerySystemInformation` in Windows) in modo che i Task Manager non mostrino il processo malware.
|
||||
* **Rootkit a livello Kernel:** Operano nel Ring 0 del processore. Modificano direttamente le strutture dati del kernel (es. la *System Service Descriptor Table* - SSDT) o caricano driver malevoli capaci di disattivare i software antivirus alla radice.
|
||||
|
||||
#### G. Backdoor & Botnet
|
||||
### Backdoor & Botnet
|
||||
* **Backdoor:** Un punto di acesso logico che bypassa i normali controlli di autenticazione del sistema (come i login SSH o RDP). Può essere intenzionalmente inserita da sviluppatori corrotti o creata da un malware per consentire il rientro futuro dell'attaccante.
|
||||
* **Botnet:** Una rete geodistribuita di migliaia o milioni di dispositivi compromessi (definiti *Zombie* o *Bot*). Rispondono in modo sincrono ai comandi impartiti da un singolo attaccante tramite un server C2. Vengono utilizzate per sferrare attacchi DDoS (*Distributed Denial of Service*) massivi, campagne di spam o brute-forcing su larga scala.
|
||||
* **Esempio:** La botnet *Mirai*, che infettava dispositivi IoT sfruttando credenziali di fabbrica predefinite.
|
||||
|
||||
---
|
||||
|
||||
### 1.3 Vettori di Infezione Tecnici
|
||||
## Vettori di Infezione Tecnici
|
||||
* **Phishing e Malicious Attachments:** Sfruttamento di macro VBA in documenti Office, file d'archivio protetti da password (per eludere i gateway email) o file ISO/VHD contenenti scorciatoie malevole LNK.
|
||||
* **Drive-by Downloads:** Infezione trasparente che avviene semplicemente visitando un sito web compromesso o malevolo, all'interno del quale è inserito un *Exploit Kit* che sfrutta vulnerabilità note del browser o delle sue estensioni.
|
||||
* **Supply Chain Attacks:** Compromissione dei server di aggiornamento di un software legittimo. Gli utenti scaricano un aggiornamento ufficiale che però contiene al suo interno il payload malevolo (es. il caso *SolarWinds* o la vulnerabilità *XZ Utils*).
|
||||
|
||||
@@ -16,11 +16,11 @@ PGP unisce i due mondi:
|
||||
|
||||
---
|
||||
|
||||
## 2. Il Flusso Operativo: Invio e Ricezione
|
||||
## Il Flusso di Dati
|
||||
|
||||
Immaginiamo che il mittente (Alice) voglia firmare e cifrare un messaggio $M$ per il destinatario (Bob).
|
||||
|
||||
### Operazioni del Mittente (Alice)
|
||||
### Lato Mittente (Alice)
|
||||
|
||||
1. **Generazione della Firma**: Alice calcola l'hash del messaggio e lo cifra con la propria chiave privata ($K_{privA}$), generando la firma digitale $S$:
|
||||
$$S = E_{K_{privA}}(h(M))$$
|
||||
@@ -33,7 +33,7 @@ Immaginiamo che il mittente (Alice) voglia firmare e cifrare un messaggio $M$ pe
|
||||
|
||||
Il pacchetto finale inviato a Bob è la concatenazione dei due blocchi cifrati: $C_{final} = C_{key} \parallel C_{data}$.
|
||||
|
||||
### Operazioni del Destinatario (Bob)
|
||||
### Lato Destinatario (Bob)
|
||||
|
||||
1. **Decifratura della Chiave**: Bob riceve il pacchetto e usa la propria chiave privata ($K_{privB}$) per estrarre la chiave di sessione:
|
||||
$$K_{sess} = D_{K_{privB}}(C_{key})$$
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# La Sicurezza nelle Reti: Protocolli e Strumenti di Difesa
|
||||
|
||||
Per garantire la sicurezza nelle reti nel corso degli anni sono stati sviluppati una serie di strumenti sia a livello applicativo, nel contesto dei protocolli, sia a livello fisico nel contesto delle apparecchiature.
|
||||
|
||||
---
|
||||
|
||||
## Sicurezza dei Protocolli di Rete
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
## Vulnerabilità, Minacce ed Exploit
|
||||
# Vulnerabilità, Minacce ed Exploit
|
||||
|
||||
Per comprendere a fondo la cybersecurity è essenziale distinguere tre concetti spesso confusi tra loro: **vulnerabilità**, **minaccia** ed **exploit**.
|
||||
|
||||
### Vulnerabilità
|
||||
## Le Vulnerabilità
|
||||
|
||||
Una **vulnerabilità** è una debolezza o un difetto presente in un sistema, un'applicazione o un processo che può essere sfruttata per comprometterne la sicurezza. Le vulnerabilità possono essere di natura:
|
||||
|
||||
@@ -13,7 +13,7 @@ Una **vulnerabilità** è una debolezza o un difetto presente in un sistema, un'
|
||||
|
||||
Le vulnerabilità vengono catalogate a livello internazionale attraverso il sistema **CVE (Common Vulnerabilities and Exposures)**, un registro pubblico mantenuto dal MITRE che assegna a ogni vulnerabilità nota un identificatore univoco (es. `CVE-2021-44228` per *Log4Shell*). La gravità di ciascuna viene misurata tramite il punteggio **CVSS (Common Vulnerability Scoring System)**, su una scala da 0 a 10.
|
||||
|
||||
### Minacce ed Exploit
|
||||
## Le Minacce e gli Exploit
|
||||
|
||||
Una **minaccia** è qualsiasi evento o agente – interno o esterno – potenzialmente in grado di sfruttare una vulnerabilità e causare un danno. Le minacce possono essere **intenzionali** (attacchi mirati, malware, insider threat) o **accidentali** (errori umani, guasti hardware, calamità naturali).
|
||||
|
||||
@@ -31,7 +31,7 @@ La relazione tra questi tre elementi può essere sintetizzata così:
|
||||
> *Una **minaccia** sfrutta una **vulnerabilità** tramite un **exploit** per causare un impatto sul sistema.*
|
||||
|
||||
|
||||
#### Il processo di gestione delle vulnerabilità
|
||||
### Il Processo di Gestione delle Vulnerabilità
|
||||
|
||||
La gestione proattiva delle vulnerabilità (Vulnerability Management) prevede un ciclo continuo articolato in quattro fasi:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user