En la eliminación de archivos, utilizando el método de eliminación de archivos java, ¿cuál podría ser el problema de seguridad?

1

En mi caso, la herramienta de análisis de código estático muestra el problema cuando encuentra el código de esta manera:

boolean status = file.delete(); 

Emite la vulnerabilidad de seguridad diciendo que se requiere la validación.

Tras una investigación más a fondo, descubrí que los métodos de manipulación de archivos de Java en caso de error devuelven un valor en lugar de lanzar una excepción.

Referencia: FIO02-J. Detectar y manejar errores relacionados con archivos .

Pero no se encuentran explicaciones detalladas sobre seguridad. ¿Podría alguien explicar qué riesgo de seguridad tiene el método Eliminar archivo ?

    
pregunta guru 05.11.2014 - 09:59
fuente

1 respuesta

1

Una eliminación fallida es un riesgo de seguridad solo si se cumple todo lo siguiente:

  • el archivo de destino existe;
  • ese archivo contiene datos confidenciales;
  • la eliminación falla por "alguna razón";
  • en el modelo de ataque asumido, el atacante puede acceder en algún momento al contenido del archivo que se eliminó, pero, por algún motivo, no habría podido acceder a este contenido si el archivo se eliminó.

(La cuarta condición tiene que ver con una característica a menudo pasada por alto de la eliminación de archivos: en realidad no borra los datos, solo marca las ranuras correspondientes en el medio físico como libres para su reutilización, pero los datos sí puede permanecer por un tiempo ilimitado.)

Incluso cuando existe tal riesgo, entonces hay muy poco que puedas hacer. La eliminación falló, por lo que es probable que siga fallando; lanzar una excepción evitaría, en el mejor de los casos, que se produjera el error de eliminación en silencio . Tenga en cuenta que lanzar una excepción o generar algún tipo de alerta también podría ayudar a los ataques, según el contexto: filtrar datos confidenciales es un problema de seguridad; matar aplicaciones en ejecución también es un problema de seguridad (si se puede forzar desde el exterior).

Sería incorrecto marcar cualquier eliminación sin marcar como "un problema de seguridad". En el mejor de los casos, podría estar marcado como "un error que podría ser un problema de seguridad (como cualquier otro error), según las condiciones".

    
respondido por el Thomas Pornin 05.11.2014 - 13:17
fuente

Lea otras preguntas en las etiquetas