Cuando se habla de tener un modelo de riesgos y amenazas, generalmente suele venir a la mente un modelo para gestionar la seguridad de la información, pero estos temas se pueden extender para considerar el desarrollo de aplicaciones seguras y evitar problemas de seguridad haciendo un modelamiento de amenazas.
Lo interesante de identificar las amenazas es que permite construir sistemas seguros, pues es posible conocer los riesgos que pueden afectar el normal funcionamiento de la aplicación. De esta forma se puede mitigar el impacto al cual puede verse expuesta la operatoria normal del negocio.
Este paso adicional, que resulta sencillo de realizar, implica un gasto de tiempo importante pero ayuda a determinar los aspectos que puedan resultar importantes para la seguridad de la aplicación. Y al igual que pasa con gestión de la seguridad corporativa, si no se hace un trabajo juicioso se pueden obtener resultados vulnerables.
Aspectos a tener en cuenta para su implementación
Si bien son muchas las amenazas que pueden llegar a afectar la integridad de una aplicación, podemos tener en cuenta una serie de seis riesgos que pueden afectar los requerimientos mínimos de seguridad con los que debería cumplir una aplicación.
En lo que se conoce como el modelo STRIDE se pueden encontrar las amenazas que como mínimo se deben mitigar para que la aplicación cumpla con las características mínimas de seguridad:
- Controlar la autenticación para evitar que un tercero, de forma malintencionada, logre autenticarse y acceder al sistema.
- Contar con las medidas adecuadas para garantizar la integridad de la información, controlando que no se puedan hacer manipulaciones no autorizadas de los datos que fluyen por la aplicación.
- Poder identificar claramente los usuarios que realizan actividades en la aplicación para permitir el seguimiento en caso que se presenten actividades poco usuales.
- La confidencialidad de la información es un aspecto muy sensible, por lo que se deben considerar los controles necesarios para evitar la divulgación no autorizada de la información.
- Una aplicación debe garantizar su disponibilidad para permitir la operación del negocio, por lo tanto las amenazas derivadas de los ataques de denegación de servicio (DDoS) deben considerarse para implementar los controles adecuados.
- Evitar la elevación de privilegios dentro de la aplicación permite controlar que no se realicen actividades no autorizadas dentro los flujos normales de la información en las aplicaciones.
Lecciones aprendidas: base para el análisis
Dentro de los aspectos importantes para lograr que este tipo de análisis arrojen resultados exitosos, está utilizar la experiencia en el desarrollo de aplicaciones similares para determinar cuáles han sido los fallos de seguridad y cómo se han solucionado.
Aunque pueda parecer obvio partir de las lecciones aprendidas, sean propias o de desarrollos ajenos, es un punto de partida que brinda ventaja sobre lo que se quiere realizar y que muchas veces no se aprovecha de la forma más adecuada.
Son diversos los enfoques que se pueden tomar para garantizar que nuestra aplicación cuenta con niveles adecuados de seguridad. Lo más importante es adoptar una postura que considere la variedad de amenazas que puede llegar a afectar la seguridad de la información y que teniendo en cuenta estos aspectos desde el principio, se pueden evitar problemas más adelante.