Format string attack
Il format string attack (vulnerabilità di formato della stringa) sono una classe di vulnerabilità scoperte nel 1999. In breve, si tratta di passare a una funzione che stampa una stringa a schermo, tipicamente una printf del linguaggio C, una stringa che in realtà contiene una serie di parametri di specifica dell'input (tipicamente si usano gli specificatori di formato %s e %x per esaminare il contenuto della memoria e %n per sovrascrivere parti della memoria, in particolare dello stack, questo permette attacchi di tipo stack overflow e return to libc). In pratica, quando si vuole stampare una stringa s usando la printf() o un'altra funzione C che accetta un numero illimitato di specificatori di formato, bisogna scrivere la funzione
printf("%s",StringPointer)
e non scrivere
printf(StringPointer)
in quanto in questo modo l'input dell'utente non viene validato. La stringa StringPointer potrebbe contenere una serie di specificatori di formato. Questo tipo di attacco, comunque, diventa sempre più difficile grazie alla diffusione di una maggiore consapevolezza della necessità di gestire i rischi associati alla programmazione e alla conseguente diffusione di tecniche di programmazione sicura.
Collegamenti esterni
- (EN) scut / team teso Come sfruttare le Format String Vulnerabilities v1.1 March 24, 2001
- (EN) CERT standard di programmazione sicura
- (EN) CERT iniziativa per la programmazione sicura
- (EN) programmazione sicura in C e C++