Validación de extensión y código en formularios de carga de archivos

La programación segura no es mas que las buenas practicas o metodologías aplicadas al desarrollo de software, las validaciones de código o en este caso de las extensiones de los archivos que los usuarios suben a través de un formulario diseñado para este propósito no se deben obviar.

Hoy en día es lamentable ver como grandes compañías, continúan omitiendo las buenas practicas, como también las de contar con personas especializadas en seguridad o RedTeam, para las pruebas de seguridad a las aplicaciones que están por salir a producción.

Escribo este articulo, ya que hace casi un año identifique un simple error en un formulario de carga de archivo en una gran compañía de telecomunicaciones en Colombia. la cual permite otorgar un acceso al servidor y posteriormente acceso completo a traves de uno de los usuarios y su llave SSH, el cual notifique en su momento. y es mas lamentable que a dia de hoy esta vulnerabilidad siga presente.

Correo de notificación:



En su momento se recibió una respuesta, pero al parecer las diferentes áreas no se comunican o su dpto de ciberseguridad esta muy verde o simplemente no existe.

A pesar de ser una vulnerabilidad de hace décadas es la falta de validación la que permite que hoy en dia se puedan seguir explotando.

¿Como evitarlo?
Existen miles de forma de realizar validaciones a las extensiones o archivos que se estén subiendo de acuerdo al tipo de archivo y del lenguaje de programación.
  1. Hacer uso de .htaccess: Este simple archivo siempre sera un aliado y puede ser una capa mas de seguridad en el caso de contar con mejores opciones. de lo posible siempre ubicar el archivo en la raiz no en la misma carpeta que se desea proteger.
  2. Realice validaciones del lado cliente y servidor: Las validaciones no pueden ser en un solo lado, siempre optar por validar tanto del lado cliente como en el servidor, valide el MIME Type, valide el encabezado, compruebe las expresiones regulares del archivo, compruebe las extensiones, limpie las dobles o multiples extensiones
  3. Realice listas blancas, nunca lista negras: Las listas negras siempre tendrán como desventajas el tratar de conocer lo desconocido. opte por lo que conoce.
  4. Realice pruebas de seguridad: Siempre es bueno contratar los servicios de un tercero para realizar pruebas de ethical hacking cuando el servicio o aplicación saldrá a producción y sera accesible por miles o millones de usuarios.







Written by

0 comentarios :

Comentarios en GooglePlus

Reacciones en G+