
Progetto di ricerca sulla sicurezza per il fuzzing di libpng con OSS-Fuzz. Include l'analisi del seed corpus, fuzzer personalizzati di lettura/scrittura e un exploit proof-of-concept per CVE-2014-9495.
Progetto di Ricerca sulla Sicurezza di Gruppo
Informazioni sul Fuzzing: Il fuzzing è una tecnica automatizzata di test del software che fornisce dati non validi, inattesi o casuali a un programma per scoprire bug e vulnerabilità. Il fuzzing guidato dalla copertura utilizza il feedback della copertura del codice per esplorare in modo intelligente diversi percorsi di esecuzione.
Informazioni su OSS-Fuzz: OSS-Fuzz è il servizio di fuzzing continuo di Google per software open-source. Utilizza LibFuzzer e altri motori di fuzzing per testare automaticamente progetti open-source critici e segnalare vulnerabilità.
Questo progetto dimostra il fuzzing guidato dalla copertura, l'analisi della copertura del codice e lo sfruttamento delle vulnerabilità utilizzando il framework OSS-Fuzz di Google sulla libreria libpng.
Obiettivo: libpng v1.6.48 (fuzzing), v1.5.20 (sfruttamento)
Per la metodologia dettagliata e il report completo: vedi report.pdf
Per le istruzioni complete: vedi Instructions.md

Miglioramento 1 - Fuzzer di Lettura Potenziato (submit_improve1)
pngread.c, +73 righe in pngtrans.cMiglioramento 2 - Fuzzer di Scrittura (submit_improve2)

Sfruttato con successo il buffer overflow heap in libpng v1.5.20:
part4/run.poc.sh├── part1/ # Seed corpus impact analysis
│ ├── run.w_corpus.sh # Run with seed corpus
│ ├── run.w_o_corpus.sh # Run without seed corpus
│ └── report/ # Coverage reports
├── part3/ # Custom fuzzer improvements
│ ├── improve1/ # Enhanced read fuzzer
│ └── improve2/ # New write fuzzer
└── part4/ # CVE-2014-9495 exploitation
├── run.poc.sh # Run exploit
└── write_exploit.c # PoC code
# Part 1: Fuzzing experiments (4 hours each)
cd part1
./run.w_corpus.sh # or ./run.w_o_corpus.sh
# Part 3: Test improvements (4 hours each)
cd part3/improve1 && ./run.improve1.sh
cd part3/improve2 && ./run.improve2.sh
# Part 4: Exploit CVE
cd part4 && ./run.poc.sh
Visualizza i report di copertura:
firefox part1/report/w_corpus/linux/index.html
Questo progetto di ricerca sulla sicurezza è stato completato in collaborazione da:
| Metrica | CON Corpus | SENZA Corpus | Miglioramento |
|---|
| Copertura delle Linee | 41.83% | 24.76% | +17.07% |
| Copertura dei Rami | 35.49% | 21.03% | +14.46% |
| Copertura delle Funzioni | 50.75% | 34.75% | +16.00% |