Continuando con las publicaciones en relación al OWASP TOP 10, en esta oportunidad abordaremos el número 2, el cual hace referencia a problemas de validación de los mecanismos de autenticación. Los mecanismos de autenticación permiten –como su nombre lo dice– autenticar a un usuario o a un sistema, con el fin de autorizar su acceso […]
Continuando con las publicaciones en relación al OWASP TOP 10, en esta oportunidad abordaremos el número 2, el cual hace referencia a problemas de validación de los mecanismos de autenticación.
Los mecanismos de autenticación permiten –como su nombre lo dice– autenticar a un usuario o a un sistema, con el fin de autorizar su acceso a ciertas funcionalidades. Existen diversos mecanismos de autenticación, el más tradicional es el uso de usuario/contraseña. Existen mecanismos basados en identidades digitales, basados en llaves compartidas, basados en la confianza, etc. Es importante entender los diversos mecanismos de autenticación que existen y definir adecuadamente cual es el que usaremos.
Por lo general, una vez que se realiza de forma exitosa el proceso de autenticación, se genera un token el cual será utilizado posteriormente en cada una de las acciones que se realice. Este token debe cumplir una serie de requisitos con el fin de proteger la integridad y la confidencialidad de los datos. En este análisis nos referiremos a las cookies de sesión.
Una sesión es un elemento utilizado para identificar al usuario que se encuentra operando el sistema. A nivel de navegador, por el lado del cliente, estas sesiones se almacenan en las cookies y por el lado del servidor en archivos o bien en memoria.
Un manejo correcto de sesiones debe considerar la creación, manipulación y destrucción de la información relacionada a dicha sesión.
Por otro lado, las Listas de Control de Acceso permiten determinar a qué sección o funcionalidad del sistema es posible acceder. El momento de ingresar al sistema, se genera la sesión correspondiente y de acuerdo a su perfil, se les otorga acceso a ciertas funcionalidades del sistema. Una correcta implementación de Listas de Control de Acceso debe prevenir que el usuario autenticado pueda acceder a funcionalidades que no le fueron otorgadas.
Para esto se debe considerar:
Los equipos de QA deben validar que los usuarios autenticados puedan realizar las acciones permitidas y tambien deben verificar que no puedan realizar aquellas que no les corresponde.
Además, se debe considerar el almacenamiento de la contraseña, ya que el tratamiento de contraseñas es un tema delicado al momento de exponer un sistema a internet, es por esto que se recomiendan los siguientes aspectos:
De manera opcional, se recomienda implementar los siguientes mecanismos de apoyo al usuario:
Se debe considerar que el sistema y los operadores del mismo nunca deben tener acceso a la contraseña del usuario final. Cuando se requiera una recuperación de contraseña o bien un resrteo, existen dos opciones:
Finalmente, se debe tener en consideración que no se deben utilizar contraseñas en duro en el código fuente, ya sea a nivel de servidor o a nivel del cliente.
Desde hace un par de décadas, durante la primera quincena de agosto, la colorida cuidad de Las Vegas, Nevada, recibe a sus visitantes más atípicos, por montones. Es notorio el cambio, puesto que las hordas de turistas fiesteros en technicolor dan paso a miles y miles de geeks con poleras negras, peinados exóticos, artículos electrónicos […]