On File delete, using java File delete method quale potrebbe essere il problema di sicurezza?

1

Nel mio caso, lo strumento di analisi del codice statico mostra il problema quando fonda il codice in questo modo:

boolean status = file.delete(); 

Emette la vulnerabilità della sicurezza dicendo che è necessaria la convalida.

In seguito a ulteriori indagini, ho scoperto che i metodi di manipolazione dei file di Java in caso di errore restituiscono un valore anziché generare un'eccezione.

Riferimento: FIO02-J. Rileva e gestisce gli errori relativi ai file .

Ma nessuna spiegazione dettagliata trovata considerando la sicurezza
Qualcuno potrebbe spiegare quale sia il rischio per la sicurezza con il metodo Elimina file ?

    
posta guru 05.11.2014 - 09:59
fonte

1 risposta

1

Una cancellazione non riuscita è un rischio per la sicurezza solo se tutti i seguenti elementi sono:

  • esiste il file di destinazione;
  • quel file contiene dati sensibili;
  • la cancellazione fallisce per "qualche motivo";
  • nel modello di attacco presunto, l'attaccante può a un certo punto accedere ai contenuti del file che è stato eliminato, ma, per qualche motivo, non sarebbe stato possibile accedere a questi contenuti se il file è stato cancellato.

(La quarta condizione riguarda una caratteristica spesso trascurata della cancellazione dei file: in realtà non cancella i dati, contrassegna solo gli slot corrispondenti nel supporto fisico come liberi da riutilizzare, ma i dati potrebbe rimanere ancora per un periodo di tempo illimitato.)

Anche quando c'è un tale rischio, allora c'è ben poco che tu possa fare. La cancellazione non è riuscita, quindi è probabile che continui a non riuscire; lanciare un'eccezione, nel migliore dei casi, impedisce che l'errore di cancellazione si verifichi silenziosamente . Nota che lanciare un'eccezione o sollevare qualche tipo di avviso potrebbe anche aiutare gli attacchi, a seconda del contesto: la perdita di dati riservati è un problema di sicurezza; uccidere le applicazioni in esecuzione è anche un problema di sicurezza (se può essere forzato dall'esterno).

Sarebbe sbagliato segnalare qualsiasi cancellazione non controllata come "un problema di sicurezza". Al massimo, potrebbe essere contrassegnato come "un bug che potrebbe essere un problema di sicurezza (proprio come qualsiasi altro bug), a seconda delle condizioni".

    
risposta data 05.11.2014 - 13:17
fonte

Leggi altre domande sui tag