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
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.
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.