La Fundación Open Web Application Security Project (OWASP) nos ofrece una enorme cantidad de utilísimo material para el estudio, comprensión y aplicación de las mejores prácticas en el desarrollo seguro de aplicaciones para la Web y Móviles, así como también herramientas de auditoría y detección de vulnerabilidades. Conocimientos fundamentales para el apropiado desarrollo de software, pero que aún está muy lejos de ser la norma y que, como consecuencia natural, permite la proliferación de sitios web vulnerables y aplicaciones transaccionales afectas a la comisión de fraudes, con un tremendo impacto, no sólo en el ámbito tecnológico, sino a nivel de negocio, con perjuicios económicos y muchas veces legales.
El riesgo en ciberseguridad puede ser medido a través de la metodología OWASP para Evaluación de Riesgo, que muy a grandes rasgos, define el Riesgo potencial como el producto entre la Probabilidad de Ocurrencia o Explotación de una Vulnerabilidad y el Impacto de un ataque exitoso, considerando siempre las variables de impacto tecnológico e impacto en el negocio, así como la facilidad de detección, explotación y prevalencia de la vulnerabilidad. Con el análisis de todos estos elementos y con la guía metodológica que se presenta a continuación, es posible, con bastante acertividad, definir el real nivel de riesgo expuesto y a partir de su identificación tomar las medidas para erradicarlo en el mejor caso, o mitigarlo para reducir los potenciales efectos de una explotación.
En la determinación del Riesgo lo primero es identificarlo, y aunque parece obvio es justamente el punto donde menos efectividad se observa. Establecer que existen riesgos, requiere evaluar varios aspectos, algunos técnicos como la presencia de una vulnerabilidad, los agentes de amenaza existentes para su explotación y los tipos de ataque que se podría esperar. Estos antecedentes no son evidentes, sino que requieren de conocimiento sobre las vulnerabilidades y cómo evitar que aparezcan en el desarrollo de aplicaciones. Aquí el primer gran desafío para un desarrollo seguro: si no existe conciencia y conocimiento de las vulnerabilidades, las habituales y las no tanto, difícilmente se puede garantizar un producto libre de Riesgos. Sólo por mencionar aquellas que más dolor de cabeza causan por estos días, se puede citar:
- Inyección SQL, NoSQL, OS o LDAP, que ocurre cuando se envían datos no confiables a un intérprete, ya sea como un comando o como una consulta. Se puede observar habitualmente en cabeceras GET, POST y Formularios que no validan los datos de entrada.
- Pérdida de Autenticación y Gestión de Sesiones implementadas incorrectamente permiten comprometer los datos de usuarios y contraseñas, los token de sesión y así suplantar la identidad, con todas las consecuencias que esto puede acarrear.
- Exposición de Datos Sensibles, particularmente APIs que no protegen los datos de respuesta pueden ser una interesante fuente de información.
- Cross Site Scripting (XSS) que busca secuestrar una sesión redireccionando a la víctima a un sitio malicioso.
Dadas las explicaciones anteriores, entender el Riesgo resulta fundamental para poder enfrentarlo de forma correcta y evitar que un ataque se concrete. Tal como se indicó anteriormente, el Riesgo está compuesto por la Probabilidad de Ocurrencia o Explotación de una Vulnerabilidad y el Impacto de un ataque exitoso, es decir:
Riesgo = Probabilidad de Ocurrencia x Impacto del Ataque
La identificación de la probabilidad de sufrir la explotación de alguna vulnerabilidad pasa por evaluar algunos factores y asignarles una ponderación dependiendo de un escala. En el caso de la metodología OWASP, sería la siguiente:
Este primer grupo de factores tiene por objetivo determinar la probabilidad de concretar un ataque exitoso tomando las características que debe cumplir el agente de amenaza, sea este un atacante, un grupo organizado o incluso una herramienta automatizada. El segundo grupo de factores, que se desglosa en la tabla siguiente, tiene por finalidad determinar la probabilidad del ataque basado en la complejidad de descubrir y explotar alguna vulnerabilidad en particular.
Una vez que se ha logrado determinar el nivel de riesgo que presenta la vulnerabilidad detectada, hay que concentrarse en definir el Impacto que tendría una eventual explotación. Como se indicó anteriormente, el impacto puede ser Técnico, es decir, el efecto sobre las aplicaciones, datos y funciones, sobre el sistema operativo, redes, etc. Pero un ataque exitoso también tendrá un impacto sobre el negocio, afectando directamente en aspectos reputacionales, impacto sobre los clientes y rentabilidad.
De forma similar a lo visto con la vulnerabilidad, existen determinados factores que deben ser analizados para lograr establecer el nivel de impacto. Las tablas siguientes dan una visión de esto.
Nótese que los conceptos considerados en la tabla son la triada básica de Seguridad de la Información – Confidencialidad, Disponibilidad, Integridad – y el factor de Trazabilidad que toma su máxima relevancia en el momento de enfrentar un incidente y más aún si se requiere una investigación forense.
Se debe tener presente que los efectos de un ataque no sólo impactan sobre los aspectos tecnológicos, sino también en el negocio. En los últimos años y con la aparición de gran cantidad de herramientas que automatizan los ataques y captura de información sensible, no es posible abstraerse de este factor. La siguiente tabla es una propuesta de ponderación para el cálculo del impacto sobre el negocio.
Una vez identificados los factores de riesgo y aplicadas las ponderaciones, es factible hacer un simple cálculo para evaluarlo. Se puede utilizar una matriz de riesgo para facilitar la interpretación, pero siempre, el mejor indicador será la experiencia, el criterio bien aplicado. Por esta razón, el conocimiento de las vulnerabilidades es una obligación de los equipos tecnológicos que tienen en sus manos la prevención, que siempre será el mejor aliado para evitar ataques o, frente a un escenario adverso, minimizar el impacto.
————–
¿Quieres saber más al respecto de los riegos y aprender de la ciberseguridad? En la Academia Desafío Latam dictamos un taller de Ciberseguridad en Santiago o comunicate directamente con inscripciones@desafiolatam.com