Crear apps más seguras
Las aplicaciones que todos usamos, ya sean móviles, web o empresariales, son un punto de acceso para los ciberdelincuentes a los datos sensibles de los usuarios.
Sin ir más lejos, la Comunidad de Madrid ha lanzado recientemente una aplicación web para solicitar cita para la vacunación contra el COVID y se produjo una brecha de seguridad que reveló datos sanitarios y personales de los ciudadanos de la región.
Para evitar este tipo de amenazas, el usuario debe tomar precauciones a la hora de usar estas aplicaciones pero para los desarrolladores la seguridad de los datos sensibles debe ser una preocupación constante. Según revela un estudio de Gartner, más del 75% de las aplicaciones móviles no superarían las pruebas de seguridad de base, por lo que estarían lejos de cumplir con los compromisos mínimos de seguridad.
Antes de proceder a crear una aplicación y que esté dotada de las herramientas que aseguren la protección de los datos de los usuarios, el punto de partida es conocer de antemano las posibles vulnerabilidades para reforzar la seguridad.
Por este motivo, Nexllence, división de consultoría y soluciones tecnológicas del grupo Glintt, propone 5 claves que los programadores deben tener en cuenta, una vez entrado en la fase de desarrollo de la aplicación:
1. Tener en cuenta los principios generales de seguridad
Cuando la seguridad de las aplicaciones depende de una base de datos para operar, el usuario final debe tener un acceso limitado a ellas, no deberían poder crear o borrar datos. Por este motivo es esencial mantener un historial de datos y accesos para que, en caso de que exista algún problema o interrupción de datos, sea posible identificar rápidamente su origen.
Además, siempre hay que tener precaución en el uso de componentes externos a nuestra herramienta. Si se identifican vulnerabilidades lo ideal será no utilizarlas o tomar precauciones en estas situaciones para no comprometer la aplicación.
Por último, existen fallos básicos al desarrollar una app que se deben tener en cuenta, como permitir que los certificados digitales caduquen, tener puertos abiertos innecesariamente en el servidor web, utilizar protocolos de nivel de seguridad obsoletos, no proteger los archivos dentro del servidor o usar librerías de software antiguas.
2. Integrar la seguridad en el código
Uno de los mayores riesgos de seguridad que cualquier solución de software puede sufrir son los errores de código, ya sea en HTML, Javascript o SQL. Cualquier laguna en la codificación o diseño puede dar acceso a los atacantes a información sensible del usuario, por ello los desarrolladores deben validar los datos para que solo los que cuenten con el formato correcto entren en la estructura de la aplicación web. Este filtro evita el manejo de datos incorrectos o que puedan estar dañados y que desencadenan en un mal funcionamiento de la aplicación. Además, se recomienda llevar a cabo regularmente pruebas simulando ataques para ver cómo reaccionaría la app y comprobar su penetrabilidad.
3. El usuario es una vía de entrada para ciberataques
Cuando se accede a una aplicación, es importante verificar quién intenta entrar a ésta, pero a día de hoy las credenciales básicas de nombre de usuario y contraseña ya no son suficientes y cada vez es más necesario la autenticación multifactorial, que va más allá de la autenticación de doble factor.
El objetivo principal al diseñar una aplicación web es dar a los usuarios la menor cantidad de permisos posibles y generar una jerarquía adaptada a cada situación para garantizar que no todos los usuarios pueden ver y acceder a los mismos datos. Cada usuario debe tener un perfil y sólo tener acceso a un determinado conjunto de funcionalidades de la aplicación.
Es importante que en todo momento, los sistemas que integran una aplicación mantengan un registro de los accesos y acciones que realizan los usuarios. Sobre todo, cuánto más sensible o confidencial sea la naturaleza de los datos. Así, en caso de que aparezca un problema, con esta información será más fácil identificar el origen del problema.
4. Prevenir los ataques de Cross-Site Scripting
El Cross-Site Scripting o XSS es uno de los ataques más frecuentes a una aplicación. Esta vulnerabilidad de seguridad web permite a un hacker poner en peligro las interacciones que los usuarios tienen en un sitio web.
El XSS permite que el ciberdelincuente se haga pasar por un usuario víctima, para llevar a cabo cualquier acción que el usuario pueda realizar y acceder a cualquiera de los datos del usuario. Si la víctima tiene acceso con privilegios dentro de la aplicación, el hacker podría obtener control total de la aplicación.
Para evitar el bloqueo de la aplicación cuando el usuario altera la interfaz mediante la edición de datos en una página web específica, hay que entender por dónde pasan los datos y evitar caminos alternativos. Para prevenir este tipo de ataques puedes aplicar una codificación sensitiva al contexto, es decir, filtrar los datos a la llegada del usuario y codificar los datos a la salida o bien, habilitar una Política de Seguridad de Contenido (CSP) para minimizar las vulnerabilidades de XSS que aún siguen existiendo.
5. Estar siempre prevenidos ante amenazas desconocidas
A medida que el uso de aplicaciones aumenta, las amenazas a la seguridad también evolucionan y pueden aparecer tipos de ataques desconocidos. Por este motivo, hay que estar al día de las últimas tendencias en ciberataques y contar con un plan proactivo para actuar lo antes posible ante un peligro de esta índole.
‘’Cuando estamos hablando de seguridad web, cualquier precaución que podamos tener es poca, cualquier simple movimiento puede ser una vía de entrada para los ciberdelincuentes. Los programadores deben cumplir con las buenas prácticas de seguridad cuando se desarrolla una aplicación, para que, cuando ésta sea usada, no haya ningún tipo de problema durante su utilización y los datos de los usuarios se mantengan siempre protegidos’’, comenta David Faustino, Managing Director de Nexllence.