cerca
Tema d'Esame di Sicurezza e Privatezza - 10/06/2008
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Tema d'Esame di Sicurezza e Privatezza - 10/06/2008

Torna alla pagina di Sicurezza & Privatezza


 :: Appello d'esame di Sicurezza e Privatezza - 10/06/2008 ::

Domande

Rispondere brevemente ma in modo completo alle seguenti domande.

  1. Dire cosa si intende per salami attack e fornire un esempio.
  2. Nell’ambito dei sistemi operativi Unix-based, descrivere il significato dei privilegi setuid e setgid. Illustrare inoltre come tali privilegi possano consentire ad un utente di modificare la propria password.
  3. In relazione al problema della sicurezza delle password, dire cosa si intende per: spoofing; snooping; sniffing; masquerading.
  4. Nell’ambito del modello di Biba, descrivere la politica low-water mark per soggetti ed i principali problemi di tale politica.
  5. Spiegare in sintesi l’attacco SQL injection fornendo un esempio e quali contromisure possono essere adottate.
  6. Nell’ambito del sistema Kerberos, dire quali sono i tre compiti principali dell’Authentication Server (AS) ed i tre compiti principali del Ticket Granting Server (TGS).
  7. Descrivere le caratteristiche base degli IDS di tipo anomaly detection e misuse detection elencando i vantaggi e svantaggi di ognuno.
  8. Descrivere il processo di autenticazione e segretezza di PGP.

SOLUZIONE

1.
Il Salami Attack consiste in un insieme di piccoli crimini informatici che uniti danno luogo a crimini significativi. Parte da qualcosa di insignificante che però applicato molte volte porta a qualcosa di significativo.
Esempio: piccole somme di denaro che vengono trasferite su di un conto(quello dell'attaccante ovviamente). Queste somme prese singolarmente sono talmente piccole che non vengono considerate, passano inosservate e possono essere ad esempio quelle calcolate per gli interessi del conto bancario.
Il Salami Attack solitamente è causato dalle correzioni che i programmatori inseriscono nei programmi per correggere gli inevitabili errori di calcolo.

2.
Setuid e Setgid sono privilegi addizionali. Setuid significa che l'UID del processo che esegue il file coincide con l'UID del file.
Setgid significa che il GID del processo che esegue il file coincide con il GID del file.
Entrambi si rappresentano tramite una s se l'utente(es: rws --- ---) o il gruppo(es: rwx rws ---) hanno privilegio di esecuzione sul file, tramite una S se l'utente(es: r-S --- ---) o il gruppo(es: rwx r-S ---) non hanno privilegio di esecuzione sul file.

3.

  • spoofing: password acquisite da terze parti che impersonano l'interfaccia di login. Avremo quindi una interfaccia di login fasulla creata dall'attaccante.
  • snooping: password acquisite da persone che osservano gli utenti legittimi mentre le scrivono.
  • sniffing: password acquisite da terze parti nella comunicazione lungo la rete.
  • masquerading: quando un utente in possesso di password altrui impersonifica gli altri utenti.

4.
Politica low-water mark per soggetti:

  • il soggetto S può scrivere un oggetto O se e solo se: λ(s) > λ(o)
  • il soggetto S può leggere qualsiasi oggetto, però questo va a modificare la sua affidabilità: λ(s) = glb{λ(s),λ(o)}

Svantaggio: l'ordine delle operazioni modifica i privilegi del soggetto. Infatti abbiamo visto che il soggetto può leggere qualsiasi cosa, però questo va a modificare la sua classe d'integrità, cioè la sua affidabilità. Quindi può capitare che un soggetto S, che prima poteva scrivere un determinato oggetto O, non sia più in grado di farlo dopo aver letto un altro oggetto che ha fatto diminuire la sua classe di integrità.

5.
L'SQL injection è un attacco rivolto alle applicazioni web e coinvolge non solo SQL, ma qualsiasi linguaggio di programmazione e qualsiasi DBMS.
L'attacco consiste nell'inserimento di codice maligno nelle query SQL, sfruttando la mancanza di controlli sui dati da input dell'applicazione web.
L'input può essere trasmesso in tre modi:

  • URL (query string)
  • form HTML
  • cookie costruito su misura

L'attacco provoca:

  • manipolazione indesiderata dei dati
  • accesso ad aree riservate
  • visualizzazione di dati riservati

Esempio:
Abbiamo una variabile $id presa in input dalla query string, teoricamente di tipo intero, ma non validata.
$sql = "SELECT * from articoli WHERE id=$id";
se un attaccante in $id inserisce
$id = 1; DROP table articoli; la query diventerà:
$sql = "SELECT * from articoli WHERE id = 1; DROP table articoli;
che ovviamente provoca la cancellazione della tabella articoli.

Contromisure possibili sono:

  • controlli sul tipo di dato: tramite l'utilizzo di alcune funzioni si forza una variabile ad appartenere ad un certo tipo.
  • creazione di filtri tramite espressioni regolari: i dati in input vengono descritti da una espressione regolare. Ad esempio controllare che l'input sia formato solo dalle lettere dalla A alla Z.
  • eliminazione di caratteri potenzialmente dannosi: si eliminano i caratteri che hanno un significato in un'interrogazione SQL, quindi , ; " '
  • escape(\) di caratteri potenzialmente dannosi: il carattere sul quale viene effettuato il quoting (\) viene interpretato letteralmente.

Torna alla pagina di Sicurezza & Privatezza