17 nov 2014

Informe: Recomendaciones (Parte I)

En una auditoria tenemos que tener claro que todo es importante, desde la recolección de información como el desarrollo técnico, como por supuesto la presentación de resultados a través de la generación de los informes. Quizá esto último es lo que más "pereza" pueda dar a la mayoría de auditores, pero hay que tener en cuenta que por muy bueno que sea el trabajo, si no podemos explicarlo o comunicarlo tendremos un problema.

En esta cadena de artículos se pretende mostrar las recomendaciones que los auditores, generalmente, tendrán que tener en cuenta en las auditorias que lleven a cabo. Por ejemplo, para este primer artículo hablaremos de medidas correctoras en auditoria perimetral. En función de la auditoría que se esté llevando a cabo, las recomendaciones siempre cambiarán, aunque algunas de ellas se pueden extrapolar a otros ámbitos, por lo que se pueden enunciar en ambas auditorías.

Las primeras contramedidas o recomendaciones que el auditor debe contar en el informe son las soluciones a las vulnerabilidades que se han podido encontrar en la propia auditoría perimetral. Las podemos clasificar como se muestran a continuación: 
  • Acceso
  • Autenticación
  • Sesiones
  • Criptografía
  • Datos sensibles
  • Comunicación y protocolos
  • Entradas, codificación y errores
Por supuesto, podemos utilizar algunas guías, como por ejemplo la de OWASP que nos proporcionan una serie de buenas prácticas. Se recomienda su lectura. La guía se puede encontrar en la siguiente dirección URL https://www.owasp.org/index.php/ESAPI_Secure_Coding_Guideline.

Acceso

Los servicios perimetrales disponen de una capa de acceso la cual debería cumplir con unas premisas en cuanto a seguridad se refiere.Los usuarios que acceden a los recursos o datos de las aplicaciones o servicios deben poseer una autorización de acceso, la cual se regirá por la característica de mínimo privilegio posible en todo instante.

En definitiva cualquier entidad que ejecute código en una máquina o servidor deberá ejecutar siempre con el mínimo privilegio posible y controlar los parámetros de entrada. La captura y gestión de excepciones debe estar implementada siempre y de manera segura, por ejemplo no mostrando información de debug hacia el exterior. 

La capa de acceso se implementará de manera centralizada para proteger el acceso a cada tipo de recurso. Tener distribuida la capa de acceso puede desembocar en la generación de fallos de configuración o de aplicación de permisos debido a la propagación o replicación que hay que llevar de éstos. 

Autenticación

La identificación y autenticación de usuarios es un proceso crítico que debe disponer de unas medidas de seguridad, las cuales deben ser conocidas por los auditores para poder presentar contramedidas en la corrección o implementación de aplicativos web.

Siempre hay que tener en cuenta que el acceso a datos de carácter personal se realiza con una sesión de usuario identificado y autenticado. Cuando una aplicación realiza un cambio de credenciales, éste se deberá llevar a cabo de forma segura, al igual que la gestión de errores.

Se debe utilizar una función hash para almacenar las contraseñas en un fichero o en una base de datos. Es casi imprescindible utilizar un algoritmo de la familia SHA, y ya no utilizar MD5. 

Los ataques de fuerza bruta a la autenticación es una de las acciones más comunes. Se debe implementar un mecanismo, como el captcha, con el que superando un número de intentos de accesos consecutivos, se pida al usuario una serie de símbolos a introducir con el fin de comprobar que no es un proceso automatizado quién está realizando la autenticación.

Los token deben generarse para cada petición del usuario en términos de autenticación. Por último, una contramedida que se suele utilizar en el sector de la banca es la utilización de una reautenticación de usuario, o un segundo factor de autenticación para realizar una acción sensible. 

No hay comentarios:

Publicar un comentario