Esame luglio 2019

Domanda 1
...

Descrivere il funzionamento dello stack nell’architettura Intel IA32 e illustrare due distinti modi di modificare l’esecuzione di un programma mediante stack overflow

Risposta 1
...

La memoria è suddivisa in diverse regioni che comprendono:

  • stack
  • heap
  • BSS segment
  • data segment
  • text segment
    Lo stack è un'area di memoria che cresce da indirizzi più alti a indirizzi più bassi, crescendo dall'alto verso il basso. Nello stack vengono caricate le variabili locali della funzioni, gli argomenti da passare alle funzioni da chiamare e alcuni indirizzi importanti, come l'indirizzo di ritorno e il valore del vecchio frame pointer. Lo stack sfrutta due registri importanti per funzionare:
  • ESP, extended stack pointer: che punta sempre alla cima dello stack;
  • EBP, extended base pointer: che punta sempre alla base dello stack noto anche come frame pointer.
    Lo stack buffer overflow è un'operazione attraverso cui è possibile riempire dei buffer allocati dal programmatore, con lo scopo di accedere a zone di memorie interessanti nello stack.
    Modi per modificare il flusso d'esecuzione di programma sono:
  • riscrittura del return address: con questa modalità si riempie il buffer sino ad accedere all'area di memoria corrispondente con l'indirizzo di ritorno, a cui la funzione chiamata deve ritornare una volta completate le operazioni da effettuare. Modificando l'indirizzo di ritorno si può accedere a zone di memoria diverse: altre parti (esempio: funzioni) del programma stesso o a codice iniettato direttamente dall'attaccante;
  • modifica di variabili nello stack: con questa modalità si riempie il buffer per accedere all'area di memoria corrispondente con variabili, magari utilizzate in qualche ramificazione, modificandole con criterio si riesce ad ottenere un cambiamento nel flusso del programma.

Domanda 2
...

Una certificate revocation list (CRL) elenca:
A) i fingerprint dei certificati che sono stati revocati fino alla data attuale
B) i sequence number dei certificati che sono stati revocati fino alla data attuale
C) i sequence number certificati che sono stati revocati fino alla data dell’ultima modifica
D) i sequence number dei certificati che sono stati revocati fino alla data della prossima modifica
E) i fingerprint dei certificati che sono stati revocati fino alla data della prossima modifica

Domanda 3
...

lo standard ISO 27001 prevede un ciclo con 4 fasi:
A) Plan, Act, Check, Do
B) Plan, Do, Check, Act
C) Plan, Verify, Check, Do
D) Plan, Verify, Do, Check
E) Plan, Verify, Do, Act

Domanda 4
...

Enunciare il Teorema di Eulero e il Piccolo Teorema di Fermat. Dimostrare che il secondo è un corollario del primo.

Risposta 4
...

Il teorema di Eulero afferma che se e sono coprimi, allora .
Il piccolo teorema di Ferma è un corollario di questo teorema perché se è un numero primo . Avendo un , si avrà, per Eulero, che , ovvero che .

Domanda 5
...

Il sistema di scambio chiavi di Diffie-Hellman si basa
A) sulla difficoltà di moltiplicare due numeri primi
B) sulla difficoltà di fattorizzare un numero primo
C) sulla difficoltà di fattorizzare il prodotto di due numeri primi
D) sulla difficoltà di calcolare il logaritmo discreto
E) sulla difficoltà di calcolare l’inverso moltiplicativo di un numero

Domanda 6
...

Scrivere le ACL per un firewall packet filter necessarie per permettere il traffico web (http, porta 80) e pop3 (porta 110), solo se generato da richieste originate da un client interno alla LAN 130.192.0.0/16, e per permettere l’accesso anche dall’esterno a 2 web server interni con IP address 130.192.157.128 e 130.192.157.158.

IP sorgenteIP destinatarioPorta sorgentePorta destinatariaFlagNote
130.192.0.0/16**80*Gli utenti della sottorete specificata possono mandare verso l'esterno (sulla porta 80) qualsiasi tipo di pacchetto.
*130.192.0.0/1680*ACKQualunque server web scelga come destinatario i membri della sottorete specificata, può inviare solo pacchetti ACK (non SYN, per esempio).
130.192.0.0/16**110*Gli utenti possono generare traffico verso qualsiasi server POP3, con qualsiasi tipo di pacchetto.
*130.192.0.0/16110*ACKQualunque server POP3 scelga come destinatario gli utenti potrà inviare solo pacchetti ACK.
*130.192.157.128*80*Dall'esterno sono consentiti pacchetti HTTP verso il server specificato.
*120.192.157.158*80*Dall'esterno sono consentiti pacchetti HTTP verso il server specificato.