Monthly Archives: gennaio 2014

Lezione su Buffer Overflow di Giulio Picierro

Articoli, Documentazione, Eventi Leave a reply

Qualche giorno fa, Giulio, nuovo componente del LUG, ha avuto la possibilità di tenere una lezione nella nostra università, sul Buffer Overflow nella programmazione software e come questo possa comportare problemi di sicurezza.

A fine divulgativo, pubblichiamo sul sito il suo materiale della lezione accompagnato da qualche suo appunto 🙂 Buona lettura!

Download

In un mondo in cui tutti siamo connessi con tutti e tutti cominciano a conservare i propri dati su Internet, la sicurezza informatica è sicuramente uno dei temi sentiti maggiormente, basti pensare al caso eclatante dell’NSA, la National Security Agency americana che ha destato scandalo in tutto il mondo per via di intercettazioni e spionaggio non solo di privati ma anche di industrie e capi di stato stranieri.

Mentre nella nostra università sono presenti 2-3 corsi dedicati interamente alla sicurezza di internet e più in generale delle reti, dalla crittografia antica a quella moderna, a mio parere si fa sentire la mancanza di un corso di sicurezza del software, che insegni come sviluppare codice sicuro, o che quantomeno possa illustrare quali siano stati gli errori del passato e come evitarli in futuro.

Proprio la scorsa settimana mi è stata data l’occasione di trattare un argomento, quello del buffer overflow, al corso di Fondamenti di Informatica tenuto dall’Ingegner Lorenzo Bracciale per le classi del primo anno di Ingegneria Elettronica e Ingegneria delle Tecnologie di Internet.

La lezione ha voluto mostrare come sia possibile sfruttare una possibile vulnerabilità derivante dal buffer overflow per eseguire codice arbitrario.

Allego le slides proiettate a lezione e il codice relativo, se trovate errori o inesattezze vi prego di comunicarmelo in maniera che vengano corretti. Sono ben accetti commenti e/o critiche.

Colgo l’occasione per ringraziare Lorenzo Bracciale per l’opportunità che mi ha dato di tenere una (anzi due) lezione all’università, che non è cosa di tutti i giorni per me.

Ringrazio inoltre tutti coloro che mi sono stati vicino e mi hanno sopportato durante questa esperienza.

Giulio

Anno nuovo, kernel nuovo!

Life logs Leave a reply

Come i più appassionati di voi ricorderanno, qualche mese fa sulla pagina Facebook del Roma2LUG è apparso il seguente post:

fb

 

Quello nella foto non è un semplice computer, ma l’attuale router che si occupa di gestire la rete all’interno dell’auletta del Roma2LUG. Nonostante questo compito sia già di vitale importanza per la vita quotidiana del nostro LUG, questo si occupa anche di ospitare alcuni servizi importanti, come il meccanismo di registrazione delle presenze, esposto in un precedente articolo.

Andandone a vedere le caratteristiche, si può notare come questo sia un vero pezzo di storia dell’informatica. La scheda madre su cui è montato è una Asus P2L97 (manual), che ospita un Intel Pentium II da 266 MHz ed è dotato di 312 Mb di memoria RAM. Essendo dedicato al reindirizzamento della rete, questo è stato fornito di due schede ethernet: una D-Link DFE-530TX ed una D-Link  DFE-528TX.

Risulta evidente che l’hardware in uso non è precisamente di ultima generazione e che, seppur dedicato semplicemente al compito di router e poco più, anche un’installazione minima di Debian 7 possa mettere a dura prova le risorse esigue.

Queste riflessioni sono state fatte anche all’interno del LUG e si è deciso di agire al fine di migliorare al massimo la situazione. E così, proprio ieri è stata approntata una modifica importante e decisiva: la compilazione di un kernel dedicato. Abbiamo recuperato dalla rete il sorgente del kernel 3.10.26 e facendo attenti test, verificando di includere tutti i moduli necessari al funzionamento base del pc, sono stati esclusi tutti gli extra evidentemente non utilizzati da hardware cosi datato e dalla configurazione attuale della macchina. C’è da sottolineare che allo stato attuale non esiste alcun modulo esterno, poiché tutti inclusi staticamente all’interno della nuova compilazione. Questo ha portato ad un kernel di poco più di 2.1 MiB.

Seppure questo traguardo risulti molto soddisfacente, non vogliamo fermarci. Il nostro obiettivo è aumentare ancora di più le prestazioni del pc, identificando solamente i moduli necessari alla configurazione attuale per ridurre la grandezza del kernel. Soglia dei 2 MiB ti oltrepasseremo!!

Se siete interessati, potete scaricare l’attuale configurazione dal repository GitHub corrispondente. Per ulteriori informazioni, non esitate a contattarci sui nostri canali!