Miscellaneous Flashcards
Attack surface e differenza con exposed attack surface.
L’attack surface si riferisce a tutte le possibili vie d’attacco. Si compone di:
- network surface;
- software surface;
- humanware surface.
L’exposed attack surface invece fa riferimento a solo le parti dell’attack surface effettivamente accessibili o esposte.
Mac hardening, problema generale e soluzioni
Problemi: condivisione non autorizzata di file e risorse di rete.
Nell’ambito dell’hardening, MAC è molto valido, in quanto riduce le vulnerabilità rispetto ad attacchi interni ed implementa dunque un meccanismo di sandboxing. Purtroppo però, nei moderni sistemi linux si utilizza principalmente DAC, che però non sempre è sufficiente. Di conseguenza sono state strutturate 3 soluzioni:
- SELinux;
- AppArmor;
- grSecurity.
rainbow table, descrizione tecnica e countermeasures
Una rainbow table è una tecnica utilizzata nel campo della crittografia per accelerare il processo di decrittazione di password crittografate o di altri dati sensibili. Per comprendere come funziona una rainbow table, è necessario capire alcuni concetti di base sulla crittografia delle password.
Quando un utente crea una password per un sistema, di solito questa viene crittografata utilizzando un algoritmo di hash crittografico. L’hash è una sequenza di caratteri generata a partire dalla password originale attraverso una funzione di hash. L’obiettivo dell’hashing è quello di rendere difficile per un potenziale attaccante risalire alla password originale conoscendo solo l’hash.
Tuttavia, le rainbow table sono un metodo che può invertire questo processo in modo efficiente. Le rainbow table sono essenzialmente una collezione pre-calcolata di coppie di valori: password originali e i rispettivi hash corrispondenti. Questa tabella viene generata in anticipo e può essere utilizzata per cercare l’hash di una password crittografata e ottenere così la password originale.
Ecco come funziona:
Generazione della tabella arcobaleno: per creare una rainbow table, vengono generate una serie di password casuali, e per ognuna di queste password viene calcolato l’hash corrispondente. Questi valori (password originali e hash) vengono archiviati in una tabella.
Riduzione delle funzioni: quando una password viene inserita in un sistema, viene applicata una “funzione di riduzione” ripetutamente per ridurre la password a una forma più corta. Questo processo è reversibile, il che significa che è possibile ottenere la password originale a partire dalla forma ridotta.
Lookup nella tabella: per invertire l’hashing, viene eseguita una ricerca nella rainbow table utilizzando l’hash della password crittografata. Se l’hash viene trovato nella tabella, viene restituita la password originale corrispondente. In caso contrario, l’attaccante dovrà utilizzare altre tecniche per ottenere la password.
Le contromisure per proteggersi dalle attacchi delle rainbow table includono:
Salted Hashing: invece di utilizzare semplici funzioni di hash, si possono utilizzare funzioni di hash con il “salt” (sale). Il salt è una stringa casuale univoca che viene aggiunta alla password prima dell’hashing. Questo rende ogni hash unico, anche per le stesse password, impedendo l’utilizzo delle rainbow table.
Iterazioni e stretching delle funzioni di hash: utilizzare funzioni di hash che possono essere eseguite più volte in modo iterativo, rallentando il processo di hashing. Ciò rende più costoso per gli attaccanti generare e utilizzare rainbow table efficaci.
Uso di algoritmi di hash robusti: utilizzare algoritmi di hash crittografici sicuri e resistenti agli attacchi noti.
Lunghezza e complessità delle password: incoraggiare l’uso di password lunghe e complesse, che rendono più difficile per gli attaccanti utilizzare rainbow table efficaci.
Monitoraggio degli accessi e rilevamento delle intrusioni: monitorare attentamente i tentativi di accesso non autorizzati e adottare misure per rilevare e prevenire attacchi basati sulle rainbow table.
È importante notare che anche se le contromisure possono rendere più difficile l’utilizzo delle rainbow table, è sempre consigliabile utilizzare pratiche di sicurezza complete, come l’autenticazione a due fattori, per proteggere efficacemente i sistemi e le informazioni sensibili.
KISS
La KISS Rule, letteralmente Keep It Simple and Stupid, significa che bisogna mantenere il sistema il più semplice possibile, andando a spezzare le complessità. Questo perché, maggiore è la complessità di un sistema, maggiori sono le vulnerabilità che si possono presentare, per via di errori di progettazione, di
implementazione. La complessità del sistema quindi deve essere divisa in comparti, in modo da poter manutenere e gestire il tutto in maniera semplice.
Problemi di sicurezza e descrizione del SUID
Boh basta che parli del SUID e della necessità di implementare meccanismi basati su capabilities per evitare buchi.
security is not a product but a process, explain
Questa frase va ad indicare che la sicurezza informatica è un qualcosa che va pensato in fase di progettazione del sistema, e non aggiunto successivamente. Questo perché, durante il design e l’implementazione del
sistema, bisogna andare a tenere conto di metodi e approcci che hanno lo scopo di rendere il sistema sicuro (o almeno, il più possibile) come il suddividere le funzionalità in compartimenti e renderli modulari, indipendenti. Infatti non è possibile aggiungere la sicurezza in un secondo momento, in quanto un approccio
che cerca di “tappare i buchi” lasciati dalle vulnerabilità del sistema, non è assolutamente accettabile. La sicurezza è infatti un processo in quanto va costantemente aggiornata, per eliminare i problemi e va affiancata con l’educazione dell’utente finale, che deve cercare di non andare contro le norme di sicurezza e buonsenso, come ad esempio nella scelta delle password.
is it possible to sniff and decrypt https? how?
tutorial pharming attack, punto 2.
Attacchi attivi vs attacchi passivi, con esempi e contromisure
Un attacco passivo mira a raccogliere informazioni che vengono trasmesse. Due tipi di attacchi passivi sono ad esempio la release of message contents e la traffic analysis. Release of message contents significa acquisire informazioni direttamente facendo per esempio
sniffing di pacchetti su una determinata rete. In questo caso viene minata la
confidenzialità dell’informazione. Traffic Analysis significa raccogliere determinate
informazioni all’interno dei messaggi per cercare pattern da poter sfruttare
successivamente. Nel caso di messaggi crittografati l’attaccante può cercare di capire come è strutturato il messaggio per cercare per esempio di rompere la crittografia (stile
enigma).
Solitamente si mira a prevenire questa tipologia di attacchi, adottando specifiche strategie, piuttosto che rilevarli (più difficile) e attuare contromisure.
Un attacco attivo è un tentativo deliberato di alterare le risorse di un sistema o le sue
operazioni. Un attacco attivo è per esempio un attacco Brute force per cercare di trovare la password dell’account amministratore di un sistema, un attacco dos (riduco il numero di richieste per persona) o phishing (formazione personale e detect mail fraudolente).
Sicurezza fisica
L’hardening relativo alla sicurezza fisica si riferisce a una serie di misure e precauzioni che vengono adottate per rendere un sistema o un’infrastruttura meno vulnerabile agli attacchi fisici o alle intrusioni. Questo tipo di sicurezza si concentra sulla protezione degli asset fisici, come edifici, strutture, apparecchiature e dati archiviati su supporti fisici.
Implementabile attraverso:
- Controllo degli accessi: accesso consentito solo a persone autorizzate.
Differenza fra data confidentiality e privacy
-Riservatezza del dato:Assicura che le informazioni private o
riservate siano non resi disponibili o divulgati a persone non
autorizzate;
-Privacy: assicura che le informazioni che appartengono a
determinate persone possano essere accedute solo da esse.
Come si può inviare una mail garantendo l’autenticità? Includere passaggi tecnici e considerazioni teoriche, comprendendo le possibili minacce.
si può fare attraverso l’apporto della firma digitale, si può inoltre rendere signed ed encrypted attraverso la crittografia a chiave pubblica.
Multi-factor authentication: which are the pros/cons and the threats to this model
La multi-factor authentication (MFA), o autenticazione a più fattori, è un metodo di sicurezza informatica che richiede l’utilizzo di più elementi di verifica per accedere a un sistema o a un account. L’obiettivo della MFA è rendere più difficile l’accesso non autorizzato a un account o a un sistema, anche nel caso in cui uno dei fattori di autenticazione sia compromesso.
Pro: Sicurezza (minore rischio di accesso non autorizzato), password meno vulnerabili
Contro: Maggiore complessità (costo e risorse), possibilità di furto dei dispositivi fisici
Tutorial 6 - how to use John the ripper
tutorial
Hardening: read only root-file System
“Read-only root file system” (filesystem di sola lettura per la root) è una tecnica di hardening utilizzata per proteggere la parte principale del sistema operativo, chiamata root file system, rendendola inaccessibile alla scrittura e consentendo solo operazioni di lettura.
Il root file system contiene i file e le directory fondamentali necessari per l’avvio e il funzionamento del sistema operativo. Questa area critica del sistema è soggetta a potenziali minacce, come l’inserimento di file dannosi o la modifica di configurazioni sensibili. L’impostazione del root file system come “read-only” (sola lettura) limita la possibilità di alterare o compromettere i file di sistema.
Quando il root file system è configurato come read-only, i processi e gli utenti normali non possono scrivere o modificare direttamente i file nella root. Ciò significa che le modifiche ai file di sistema o alle configurazioni devono essere eseguite attraverso meccanismi speciali, come l’accesso con privilegi di amministratore o l’uso di comandi specifici.
I vantaggi dell’uso di un read-only root file system includono:
Riduzione dei rischi: impedendo la scrittura diretta nella root, si riduce il rischio di modifiche indesiderate, errori umani o attacchi malevoli che potrebbero compromettere il sistema operativo.
Maggiore stabilità: poiché i file di sistema fondamentali non possono essere modificati, si garantisce la stabilità del sistema operativo nel tempo, evitando modifiche accidentali o non autorizzate che potrebbero causare problemi.
Resistenza agli attacchi: un root file system di sola lettura rende più difficile per gli attaccanti introdurre o alterare file di sistema dannosi o eseguire exploit che sfruttano vulnerabilità dei file di sistema.
Tuttavia, è importante notare che il root file system in sola lettura può presentare alcune limitazioni. Ad esempio, non è possibile apportare modifiche permanenti ai file di configurazione o aggiornare il software nella root senza adottare contromisure specifiche. In tal caso, è possibile utilizzare tecniche come l’uso di file temporanei o partizioni separate montate in modalità scrittura.
L’hardening del sistema mediante un filesystem di sola lettura per la root è una pratica consigliata per migliorare la sicurezza e la stabilità dei sistemi operativi, soprattutto in contesti in cui la modifica dei file di sistema è limitata o controllata attentamente.
File system Intrusion Detection Hardening
“File system intrusion detection hardening” (hardening con rilevamento delle intrusioni nel file system) si riferisce a un insieme di tecniche e misure di sicurezza utilizzate per proteggere il file system di un sistema da intrusioni e attività malevole, nonché per rilevare e rispondere alle intrusioni che possono verificarsi.
Il file system di un sistema operativo è l’area in cui vengono archiviati i file e le directory, inclusi i file di sistema critici. Quando si parla di hardening con rilevamento delle intrusioni del file system, ci si riferisce a una serie di misure progettate per rendere il file system più resiliente agli attacchi e per individuare eventuali tentativi di accesso non autorizzato o modifiche malevole ai file di sistema.
Le attività che possono essere svolte nel contesto del file system intrusion detection hardening includono:
Monitoraggio dell’integrità del file system: viene eseguito un monitoraggio costante del file system per rilevare eventuali modifiche o alterazioni non autorizzate ai file o alle directory. Ciò può essere realizzato attraverso la creazione di firme o hash dei file di sistema e la verifica periodica per rilevare eventuali discrepanze.
Controllo degli accessi e delle autorizzazioni: vengono applicate rigorose politiche di accesso e autorizzazioni sui file di sistema per limitare l’accesso solo ai privilegi necessari. Ciò riduce la superficie di attacco e impedisce agli utenti non autorizzati di modificare o accedere a file critici.
Logging e auditing: vengono abilitati registri di sistema e meccanismi di audit per registrare le attività nel file system. Questo aiuta a individuare potenziali intrusioni, fornendo un tracciamento delle azioni eseguite sugli elementi del file system.
Rilevamento delle intrusioni: vengono utilizzati strumenti e sistemi di rilevamento delle intrusioni per individuare e rispondere a comportamenti sospetti o attività malevole nel file system. Questi strumenti possono analizzare i log di sistema, monitorare i cambiamenti nei file di sistema e rilevare attività inconsuete o anomalie.
Patching e aggiornamenti regolari: il file system deve essere mantenuto aggiornato applicando patch di sicurezza e aggiornamenti forniti dai fornitori del sistema operativo. Ciò assicura che le vulnerabilità note siano corrette e riduce il rischio di intrusioni attraverso exploit noti.
L’obiettivo del file system intrusion detection hardening è quello di proteggere il file system da modifiche non autorizzate, prevenire l’accesso non autorizzato ai file critici e rilevare tempestivamente eventuali intrusioni. Queste misure aumentano la sicurezza del sistema operativo e contribuiscono a garantire l’integrità e la confidenzialità dei dati archiviati nel file system.