di: Marco Allegretti 15 Dicembre 2004
Cosa può fare quindi il programmatore per evitare tutto ciò? Il rimedio più semplice è utilizzare per la creazione dei file temporanei una directory scrivibile solo da root, ma questo non è risolutivo, non sempre è possibile e non rispetta gli standard.
Per cui è meglio puntare ad altri metodi. La linea di azione più solida è fare in modo che i file temporanei non abbiano nomi predicibili e che il programma effettui un controllo preventivo sull'esistenza del nome scelto.
Il metodo migliore per scegliere un nome non predicibile consiste nell'usare le funzioni e le librerie del proprio linguaggio di programmazione in grado di generare numeri, o meglio stringhe random, ad esempio in Perl si può utilizzare la classica sequenza di funzioni srand() e rand(), oppure ancora meglio il comodo modulo String::Random reperibile su http://search.cpan.org :
use String::Random;
$obj = new String::Random;
$nome = $obj->randregex('[a-zA-Z0-9_]{12}');
open(TEMP, ">/tmp/programma$nome.tmp");
in questo caso avremo il nome del file temporaneo in cui è inserita una stringa casuale di 12 caratteri alfanumerici.
La seconda accortezza possibile è, dopo avere generato il nome del file temporaneo, verificare se ne esiste già uno con lo stesso nome. In caso positivo si può decidere di generare un nuovo nome o di cancellare quello esistente (in quanto file sospetto) e di crearlo ex novo.
Per concludere si può dire che qualunque programmatore responsabile dovrebbe cercare di implementare queste sicurezze minime per evitare che un attaccante possa utilizzare un attacco tanto pericoloso, quanto semplice da evitare.
Guida SQL Injection con SqlmapScopriamo se le nostre applicazioni web sono vulnerabili alle SQL... |
Guida sicurezza applicazioni WebLe tecniche di attacco più comuni, i metodi per verificare la... |
Guida Sicurezza wirelessQuali sono i pericoli di sicurezza di una rete senza filo e quali... |
Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |