Chapter-5-Hardening Flashcards

1
Q

Cos’è una sandbox?

A

Con il termine sandbox, nel mondo della sicurezza informatica, si intende un ambiente sterile costituito da una macchina virtuale isolata dal resto del computer, in cui è possibile lanciare software potenzialmente dannosi, senza rischiare di danneggiare il computer o la rete. Viene utilizzato:

  • nei browser moderni;
  • da utenti specifici per ciascun servizio (es. www-data (utente base apache) -> riduzione dei privilegi, postfix -> servizio di mail che riduce i privilegi);
  • in macchine virtuali/container con singola funzionalità;
  • meccanismi di Mandatory Access Control (MAC, si verifica nella riduzione dei privilegi)… Nei moderni sistemi linux si utilizza DAC, a volte però non è sufficiente. Alcune soluzioni:
    • SELinux;
    • AppArmor;
    • grsecurity.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quali applicazioni ha il sandboxing?

A

La sandbox ha diverse applicazioni in due ambiti principali: il software testing e la cybersicurezza.

  • Nel software testing, le sandbox svolgono un ruolo importante nel collaudo di nuovi software. La virtualizzazione dei sistemi di calcolo aiuta i programmatori a sviluppare applicazioni sicure ed efficienti, consentendo loro di testarle in diversi ambienti. Le principali caratteristiche della sandbox per il software testing includono:
    • Isolamento: La sandbox crea un ambiente isolato che impedisce al software in fase di test di interagire con il sistema operativo o altri programmi. Ciò riduce i rischi di eventuali danni.
    • Ripristino: La sandbox consente di ripristinare facilmente lo stato iniziale del sistema dopo i test, eliminando eventuali modifiche o danni causati dal software in esecuzione nella sandbox.
  • Gli esperti informatici utilizzano la tecnologia sandbox anche per analizzare i malware e le loro conseguenze sul sistema operativo. Questo approccio consente di eseguire il codice dannoso all’interno di un ambiente controllato, evitando che possa infettare il sistema principale.
  • Per quanto riguarda la cybersicurezza, le sandbox rappresentano una soluzione apprezzata anche per la sicurezza dei browser, insieme ai sistemi di sicurezza firewall. I browser moderni basati su Chromium lavorano con processi sandbox separati per ogni pagina web o plug-in caricato, al fine di prevenire exploit del browser. Le sandbox nei browser offrono i seguenti vantaggi:
    • Isolamento delle risorse: Ogni pagina web o plug-in viene eseguito in una sandbox separata, isolata dagli altri processi del browser e dal sistema operativo. Ciò impedisce la propagazione di eventuali attacchi o infezioni da una pagina all’altra.
    • Controllo dei privilegi: Le sandbox limitano i privilegi di esecuzione dei processi web, consentendo solo le azioni necessarie per il corretto funzionamento della pagina. Ciò riduce il rischio di exploit o abusi delle risorse di sistema.

L’implementazione di una sandbox può essere suddivisa in tre componenti principali: l’interprete del linguaggio di base, le librerie standard e il codice dell’applicazione non attendibile. Solitamente, le librerie standard rappresentano il punto debole del meccanismo, rendendo le sandbox vulnerabili. Ad esempio, l’utilizzo di codice Java o C# per scrivere librerie che gestiscono funzionalità importanti può portare a vulnerabilità a causa dei difetti intrinseci di questi due linguaggi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa intendiamo per hardening? Perché serve?

A

Intendiamo una serie di procedure che mirano a configurare il sistema operativo e le applicazioni di un host per ridurre le sue debolezze in ambito sicurezza. L’obiettivo è dunque minimizzare la probabilità di essere affetti da vulnerabilità.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come si applica l’hardening nel caso in cui si abbia a che fare con un problema di sicurezza fisica?

A

Se hai un problema di sicurezza fisica, devi considerare anche la possibilità di compromissione di quei dispositivi. Utilizza la crittografia ovunque sia possibile. Tuttavia, se hai un problema di sicurezza fisica, hai anche un problema di crittografia. Come gestisci la chiave crittografica? Utilizza hardware in grado di memorizzarla internamente. La crittografia completa del disco impedisce l’avvio del sistema se qualcuno richiede la password e tenta di ottenere l’accesso con violenza fisica. Un punto essenziale dell’hardening è la minimizzazione della superficie d’attacco, che comporta l’eliminazione di tutto ciò che non è necessario, tra cui protocolli, servizi e interfacce che non sono strettamente necessari all’interno del sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hardening SUID/GUID.

A

Il DAC tipico Unix deve prevedere che esistano eseguibili che modifichino il loro
utente/gruppo d’esecuzione a runtime, ma non vogliamo che le applicazioni che lo necessitano lo utilizzino sempre.
● Tutti i binari suid/guid sono a rischio vulnerabilità/sfruttamento da parte degli attaccanti
● Se l’attaccante ottiene i permessi di root, cercherà di mantenerli attraverso un più nascosto binario che sia in grado di acquisire i permessi di root e nascondendolo. (Un account con permessi di root sarebbe troppo evidente)
● Trovare compromissioni in questo caso sarebbe molto complesso e tocca reinstallare tutto, se ci riesci.

Le capabilities permettono un controllo molto fine dei binari, senza dover usare SUID/GUID. Come tutti sappiamo, normalmente in Unix esistono i processi privilegiati e non. Un comando che abbiamo usato tutti, che richiede i permessi di root è ping. Però, almeno che tu non sia un pazzo sgravato, non hai mai lanciato ping come root. Questo è possibile grazie alle capabilities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cosa sono SUID e GUID? A cosa servono?

A

Quando questi bit sono impostati su un file eseguibile, permettono di eseguire il file con i privilegi del proprietario o del gruppo proprietario del file, rispettivamente, anziché con i privilegi dell’utente che lo sta effettivamente eseguendo. Ciò significa che l’utente può ottenere temporaneamente privilegi di amministrazione o di gruppo specifici per l’esecuzione di quel particolare file. Tuttavia, l’utilizzo errato o non sicuro dei file setuid o setgid può portare a gravi vulnerabilità di sicurezza. Un attaccante potrebbe sfruttare un file setuid o setgid compromesso per eseguire comandi malevoli con privilegi elevati, mettendo a rischio l’integrità e la sicurezza del sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cosa sono le capabilities?

A

Le capabilities sono un aspetto importante del “hardening” sui file setuid/guid e meritano sicuramente di essere menzionate. Le capabilities sono un meccanismo di sicurezza introdotto nel kernel Linux per consentire l’assegnazione di privilegi specifici a processi o file senza dover eseguire l’intero processo come root. Invece di concedere tutti i privilegi di root a un processo, le capabilities consentono di assegnare solo le capacità necessarie per svolgere determinate operazioni privilegiate. Quando si parla di hardening sui file setuid/guid, le capabilities possono essere utilizzate per limitare i privilegi dei file eseguibili. Invece di impostare i bit setuid/guid su un file, è possibile assegnare specifiche capabilities a un file, consentendo a un processo di eseguirlo con i privilegi necessari senza dover diventare root. L’utilizzo delle capabilities offre un controllo più fine sui privilegi rispetto all’utilizzo dei bit setuid/guid tradizionali. Questo approccio riduce il rischio di elevazione non intenzionale dei privilegi e limita l’impatto potenziale delle vulnerabilità. Per applicare il concetto di hardening utilizzando le capabilities, è possibile utilizzare strumenti come “setcap” per assegnare le capabilities necessarie a un file eseguibile in modo sicuro e controllato.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Descrivere l’attacco Pharming, i protocolli coinvolti e le ricadute sugli utenti.

A

Il pharming una tecnica di cracking, utilizzata per ottenere l’accesso ad informazioni personali e riservate, con varie finalità. Grazie a questa tecnica, l’utente è ingannato e portato a rivelare inconsapevolmente a sconosciuti i propri dati sensibili, come numero di conto corrente, nome utente, password, numero di carta di credito etc. L’attacco può avvenire sfruttando più approcci, i due protocolli più noti sono DNS ed ARP.

DNS:

L’obiettivo principale consiste nella manipolazione del DNS (by exploiting a vulnerability), al fine di reindirizzare gli utenti verso un sito contraffatto.

  • Una volta compromesso il server DNS, l’attaccante può effettuarne il reindirizzamento (accesso non autorizzato/phishing ai responsabili del dns).
  • Quando un utente cerca di accedere ad un sito legittimo, il DNS (poisoned), risolverà il nome di dominio con l’indirizzo IP malevolo;

ARP:

  • Rappresenta un’alternativa alla compromissione del DNS. Consiste nella manipolazione delle tabelle ARP (associa IP a MAC) all’interno di una rete locale. Questo sempre al fine di reindirizzare il traffico destinato al sito legittimo verso il sito malevolo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly