Uso de la gesti贸n y mitigaci贸n de riesgos en el desarrollo web

    Introducci贸n

    Los clientes y las partes interesadas clave depositan mucha confianza en la fiabilidad de su aplicaci贸n web. Conf铆an en que sus datos est谩n a salvo de accesos no deseados en los servidores, al mismo tiempo que permiten sin problemas el acceso deseado mientras los usan.

    Pueden suceder muchas cosas que comprometan la seguridad de los datos y la confiabilidad de las aplicaciones. Algunos de estos son comunes y otros son raros, pero es un hecho que son inevitables. No puede evitar que los usuarios malintencionados intenten explotar los agujeros en la armadura de su aplicaci贸n.

    Por ejemplo, un ataque de denegaci贸n de servicio (DoS) puede desconectar su servicio al sobrecargar el tr谩fico que pueden tomar sus servidores. En la pr谩ctica, estos ataques se distribuyen (Distributed DoS o DDoS para abreviar) a trav茅s de una gran red de atacantes, lo que los hace a煤n m谩s dif铆ciles de rastrear.

    Mientras el servicio est谩 inactivo, el mejor de los casos es que los usuarios no est茅n satisfechos. En el peor de los casos, los usuarios perder铆an una cantidad obscena de dinero debido a la falta de servicios.

    Estos ataques se contrarrestan filtrando y seleccionando las conexiones no v谩lidas y neg谩ndoles el acceso al servicio.

    Otro ataque com煤n es el ataque Man-in-the-middle (MitM), donde un usuario malintencionado act煤a como intermediario entre los datos que se env铆an entre un cliente (usuario) y sus servidores.

    Hay varios tipos de ataques MitM, como ARP Spoofing, IP Spoofing y DNS Spoofing. Adem谩s, pueden rastrear los datos que se env铆an, secuestrar la sesi贸n y tomar el control de ella o incluso inyectar paquetes para comprometer el paquete de datos original.

    Estos datos pueden ser triviales, pero tambi茅n pueden ser muy sensibles, como la tarjeta de cr茅dito o la informaci贸n personal.

    Estos ataques se contrarrestan con un cifrado adecuado de los datos que se transfieren. Incluso si hay un intermediario recogi茅ndolo, no pueden encontrarle sentido. Adem谩s, el uso de canales seguros como HTTPS sobre HTTP tambi茅n ayuda.

    Los servicios basados 鈥嬧媏n bases de datos son m谩s propensos a los ataques de inyecci贸n SQL, donde un usuario no deseado obtiene privilegios en su base de datos. Es suficiente tener los privilegios de base de datos m谩s b谩sicos para poder extraer suficiente informaci贸n para causar estragos, dependiendo de qu茅 tan sensibles sean los datos.

    Estos ataques son posibles incluso con la m谩s m铆nima supervisi贸n en el dise帽o y la arquitectura de la aplicaci贸n y la falta de verificaci贸n de consultas en el back-end.

    Cross-site Scripting (XSS), ataques de escuchas clandestinas, ataques de malware, phishing, tunelizaci贸n de DNS: hay una gran cantidad de ataques bien conocidos a los que su aplicaci贸n puede estar sujeta. Y nuevamente, es inevitable experimentar al menos uno solo.

    Dicho esto, de principio a fin, la integridad de los datos y la seguridad de las aplicaciones no deben ser una ocurrencia tard铆a. Centrarse en la gesti贸n de riesgos es una parte esencial para garantizar la seguridad y satisfacci贸n del cliente. Depende de usted y su equipo identificar a qu茅 ataques ser谩 propensa su aplicaci贸n y qu茅 medidas de protecci贸n implementar谩.

    A continuaci贸n, se explica c贸mo puede utilizar la gesti贸n y mitigaci贸n de riesgos para aumentar la confiabilidad de su aplicaci贸n web.

    Comience con la evaluaci贸n de riesgos

    El primer paso para lograr gesti贸n de riesgos eficaz es crear una lista de los riesgos a los que se enfrenta su aplicaci贸n web.

    Si su aplicaci贸n transfiere informaci贸n confidencial entre clientes y servidores, espere un ataque MitM. Si su aplicaci贸n env铆a muchos correos electr贸nicos con archivos adjuntos, espere un ataque de phishing. Si su aplicaci贸n maneja transacciones basadas en el tiempo, como los corredores de bolsa, un ataque DDoS puede poner todo patas arriba.

    A continuaci贸n, deber谩 cuantificar los riesgos a los que se enfrenta la aplicaci贸n. La cuantificaci贸n facilita la comparaci贸n de riesgos, la identificaci贸n de los m谩s impactantes y la selecci贸n de las medidas adecuadas de control de riesgos.

    Al cuantificar el riesgo, deber谩 calificar el valor de su activo, la gravedad del riesgo y la probabilidad de que ocurra. En la mayor铆a de los casos, una calificaci贸n de escala que va del 1 al 10 ser谩 suficiente, siendo 10 el peso mayor.

    Para cuantificar un posible riesgo, simplemente use esta ecuaci贸n:

    $$
    R = V * I * L
    $$

    Donde: R = riesgo de un ataque, V = valor de la aplicaci贸n web o activo, I = impacto del riesgo y L = probabilidad de que ocurra el riesgo.

    Por ejemplo, tome un servidor cuyo valor est谩 clasificado en 10. Si el impacto de su ca铆da debido a un ataque DDoS es 10 y la probabilidad de que suceda tambi茅n es de 10, el riesgo se calcula como:

    $$
    R = 10 * 10 * 10
    $$

    Este es el riesgo m谩s alto al que puede estar expuesta su empresa (1000). No debes pasar por alto esto. Aborde el elefante en la habitaci贸n y concentre los recursos y la experiencia en este tema para reducir las posibilidades de que cobre vida. Riesgos como estos siempre deben tener la m谩xima prioridad.

    En cambio, imagina que tu negocio se basa en ofrecer contenido, como un blog o un sitio web informativo. Los 煤nicos datos que se env铆an entre sus usuarios y la aplicaci贸n son simples solicitudes HTTP al servidor para devolver el contenido solicitado.

    Un ataque como un MitM no proporcionar谩 ninguna informaci贸n importante al atacante, aparte de la direcci贸n IP del usuario, que no es tan 煤til en la gran mayor铆a de los casos.

    Por lo tanto, el valor del servidor es 10 (es fundamental para brindar datos a los usuarios), pero el impacto del ataque MitM no es demasiado alto. Digamos, le asignamos un 5. Dado que tal ataque no le da mucho valor al atacante, la probabilidad de que suceda tampoco es demasiado alta, as铆 que asignemos un 5 para eso tambi茅n.

    Por tanto, el riesgo de este ataque ser铆a:

    $$
    R = 10 * 5 * 5
    $$

    El valor de riesgo de este ataque (250) es significativamente menor que el ataque mencionado anteriormente.

    Elecci贸n de opciones de mitigaci贸n de riesgos

    Su negocio puede tratar diferentes riesgos de manera diferente, seg煤n los recursos disponibles y el impacto que pueda tener el riesgo. Hay cuatro opciones de tratamiento del riesgo: transferir el riesgo, mitigarlo, ignorarlo y aceptarlo.

    Para los riesgos que se pueden compartir con otra persona u organizaci贸n, considere transferirlos. Por ejemplo, comprar un ciberseguro puede ayudarlo a mitigar los riesgos de muchos tipos de ataques estandarizados. No es necesario implementar soluciones internas para esto, si no tiene el tiempo o los recursos.

    Por supuesto, una cierta cantidad de soluciones internas para problemas comunes no deber铆a ser dif铆cil de implementar, como cifrar los datos de transferencia, usar medios de transferencia seguros, hash de contrase帽as, etc.

    Si un riesgo es demasiado trivial para tener un impacto, debe ignorarlo. Para los riesgos que no pueden da帽ar su proceso de desarrollo web y su aplicaci贸n, sin que tenga soluciones, debe ignorarlos por completo.

    Soluciones a los riesgos del desarrollo web

    Utilice t茅cnicas 谩giles para hacer frente a la deuda t茅cnica

    En aras del costo de desarrollo y el tiempo de comercializaci贸n, los equipos de desarrollo a veces se ven obligados a dejar aplicaciones con algunas lagunas que pueden generar problemas en el futuro. El objetivo es volver a examinar estos problemas m谩s adelante y resolverlos una vez que la aplicaci贸n ya est茅 en el mercado.

    Sin embargo, hay casos en los que se acumulan los problemas no resueltos, lo que hace que resolverlos sea una gran inversi贸n financiera y un compromiso de tiempo. La deuda t茅cnica aumenta con cada paso que da, siempre que no se resuelva un problema subyacente.

    Cuanto m谩s se posponga la soluci贸n de estos problemas, mayor ser谩 la inversi贸n para solucionarlos. Adem谩s, es probable que su equipo est茅 m谩s inclinado a seguir construyendo sobre lo que existe, en lugar de desmantelarlo para arreglar las lagunas. Esto puede conducir f谩cilmente a la pendiente resbaladiza de posponerlo en nombre del costo de desarrollo y el cumplimiento de los plazos, lo que finalmente da como resultado aplicaciones inestables y poco confiables.

    En lugar de esperar para estresar a sus invitados con errores y causar dolores de cabeza a todos en el equipo, podr铆a usar t茅cnicas 谩giles para ayudar a resolver estos problemas desde el principio.

    鈥淪i crees que la buena arquitectura es cara, prueba la arquitectura barata鈥. – Brian Foote

    No aplique una placa de oro a su aplicaci贸n

    Aunque a primera vista parece un buen gesto incluir algunas caracter铆sticas adicionales que no estaban originalmente en la especificaci贸n, esto se considera una mala gesti贸n.

    La mayor铆a de las veces, los equipos apenas tienen tiempo para construir lo que est谩 en la especificaci贸n. Si tiene tiempo de sobra, es probable que se haya pasado por alto algo. En lugar de concentrar tiempo, dinero y energ铆a en actualizaciones fuera de las especificaciones, primero aseg煤rese de que el resto del producto sea lo mejor posible.

    Agregar cualquier tipo de caracter铆stica nueva tambi茅n conlleva sus propios riesgos. Una vez m谩s, la gesti贸n de riesgos no deber铆a ser una ocurrencia tard铆a. Agregar funciones debido al tiempo adicional es una ocurrencia tard铆a.

    Cifre sus datos y tr谩fico

    Aunque los algoritmos de cifrado modernos han demostrado ser virtualmente irrompibles, su bajo uso entre los equipos de desarrollo es alarmante. A diferencia de hace mucho tiempo, los sistemas modernos pueden manejar el cifrado sin afectar el rendimiento de la aplicaci贸n. El cifrado es la primera y una de las formas m谩s b谩sicas de proteger la integridad de sus datos, y definitivamente no se debe omitir.

    Aseg煤rese de cifrar tanto el tr谩fico web como los datos almacenados en su servidor para limitar el da帽o que se puede hacer cuando su aplicaci贸n est谩 expuesta a un riesgo.

    Centrarse en las pruebas y el mantenimiento

    Cualquier soluci贸n de tratamiento de riesgos que elija debe probarse para determinar su eficacia. Establecer los indicadores clave de rendimiento (KPI) correctos lo ayudar谩 a evaluar si es lo suficientemente efectivo o no.

    Este no es el final; necesita controlar la eficacia de estas soluciones a medida que pasa el tiempo. La eficacia de las soluciones de tratamiento de riesgos puede cambiar a medida que surgen nuevas amenazas o una vez que se realizan cambios en la aplicaci贸n. Ser铆a conveniente reevaluar constantemente sus estrategias de gesti贸n de riesgos para asegurarse de que su aplicaci贸n sea lo m谩s confiable posible.

    La gesti贸n de riesgos debe ser una parte innata del desarrollo de aplicaciones web, en lugar de una ocurrencia tard铆a. Al jugar un papel central en el desarrollo de su aplicaci贸n, resulta f谩cil resolver problemas comunes desde su ra铆z mucho antes de que se conviertan en una amenaza.

    Implemente pr谩cticas de gesti贸n de riesgos para mantener la confianza que las partes interesadas clave tienen en su negocio.

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *