Memory Corruption

First of all, we need to have a strong understanding of how a program allocates memory during its execution. See Memoria, Memoria virtuale and other notes about Nomi e Scope, Gestione della memoria. The thing you have to remember is that Every new function call allocates a new block, with his local variables. How the calling parameters are stored in the stack How the heap is allocated (common heap algos are in Gestione della memoria) How the stack grows (and how it can overflow it, and overwriting important data). Common attack vectors We use C, as it is the easiest way to show how this could be attacked. ...

3 min · Xuanqiang 'Angelo' Huang

OTP and Stream Ciphers

XOR operation È una operazione binaria abbastanza semplice però ci sarà importante per andare ad analizzare dei cifrari di un certo genere. Come il ONE TIME PAD che faremo fra poco in OTP and Stream Ciphers. Teorema cifratura con XOR Prendiamo $X$ una variabile aleatoria in $\left\{ 0,1 \right\}^{n}$ uniforme, sia $Y$ una variabile aleatoria su uno stesso dominio come vogliamo. Tali per cui $X, Y$ siano indipendenti Allora avremo che $C = X \oplus Y$ è una variabile aleatoria uniforme. ...

15 min · Xuanqiang 'Angelo' Huang

Sicurezza delle reti

Obiettivi della sicurezza (!!!) 🟩 Vogliamo creare delle reti che abbiamo certe garanzie di sicurezza, soprattutto: Confidenzialità, non vorremmo che il nostro messaggio sia intercettabile e leggibili da persone intermedie Integrità: non vogliamo che messaggi possano essere cambiati senza intervento del sender Autenticazione: vorremmo sapere con chi stiamo parlando, e vorremmo essere sicuri che non stiano mentendo sull’identità. Sicurezza operativa(Availability): vorremmo essere in grado di poter continuare a fornire il servizio (quindi non sia possibile dossare, o installare malware che modifichino il comportamento del servizio). Questi sono stati trattati un po’ in Theoretical Notions of Security. ...

10 min · Xuanqiang 'Angelo' Huang

Sicurezza OS

Possiamo classificare tre aree generali quando si parla di sicurezza informatica: Hardware Software human-ware. Non tratteremo in particolare esattamente come ogni campo viene declinato, però possiamo Una altra tendenza generale è che più è complessa più è insicura. e questo senso di insicurezza cresce in modo maggiore rispetto al lineare. Security principles Open Design perché così può essere scrutata da più persone Economy of mechanism spiegata sotto. Fail-safe defaults questo molto importante perché molti sistemi hanno dei default che possono essere exploitati. Complete mediation: così abbiamo qualcosa che tracka tutti gli accessi, che controlla gli accessi. Least privilege questo va a braccetto con il fail-safe. Privilege separation così possiamo mettere in modo indipendente un privilegio per qualcos’altro. CIA properties Ne abbiamo parlato in modo leggermente inverso in Sicurezza delle reti e in Theoretical Notions of Security. In questo caso sono ...

6 min · Xuanqiang 'Angelo' Huang

The Tor protocol

Some notes Mix-based systems🟨 Created in 1981 by David Chaum. Very similar to the previous one, in practice, in the end, it acts as a proxy but not only does it take and receive, but it also mixes together the packets it has received from the sources, applying its key. Disadvantage: The public-private mixing system is very slow. For this reason, a network of nodes is established, each having a symmetric key, making it much faster. ...

3 min · Xuanqiang 'Angelo' Huang