¿Cómo prioriza los problemas de seguridad de las aplicaciones?


Como desarrollador consciente de la seguridad, contribuir a un proyecto de desarrollo de sistemas heredados es un verdadero dolor de cabeza. Es como comenzar a trabajar en una casa vieja en ruinas que se asienta sobre cimientos agrietados. ¿Por dónde empezar cuando los problemas encontrados son tan variados como críticos?

La seguridad de una aplicación en un sistema heredado puede verse amenazada por dependencias no mantenidas con versiones anteriores de bibliotecas de software, configuración incorrecta o incluso el uso de protocolos inseguros y componentes de código abierto con vulnerabilidades conocidas, como el recientemente descubierto CVE-2021-44228 (log4d).

Si continuamos con la analogía de la casa, podemos comparar las dependencias sin mantenimiento con un techo dañado. Si no lo atendemos de inmediato, el problema se agravará hasta volverse crítico. El uso de protocolos inseguros es como una cerradura de puerta rota y, por lo tanto, representa una bendición para los intrusos. Los cimientos agrietados recuerdan a las bibliotecas vulnerables de código abierto. Un desastre puede ocurrir en cualquier momento, un actor malintencionado que ataca una aplicación tendrá los mismos efectos que una tormenta que derriba una casa. Por lo tanto, priorizar los problemas de seguridad parece complicado, si no imposible, y puede ser tentador para los desarrolladores optar por destruir todo para comenzar desde cero.

En la misma categoría

Descripción general de una computadora.

El comportamiento online de un francés se comparte una media de 340 veces al día

Medir el impacto y los esfuerzos a realizar

Adoptar un sistema simple para priorizar las acciones a tomar es un primer paso. Evaluando los beneficios que puede tener una corrección según la gravedad de la vulnerabilidad, se podrá así priorizar aquellas que son críticas y aquellas que solo requieren una buena ciberhigiene.

Después de priorizar los problemas de seguridad, ahora es necesario evaluar los esfuerzos que requerirán para ser resueltos. Por ejemplo, reemplazar gran parte de la funcionalidad vulnerable será mucho más oneroso que reemplazar una dependencia con otra versión actualizada.

Después de configurar este proceso de evaluación, la lista de tareas pendientes se divide en cuatro categorías principales:

  • Se debe dar prioridad a las tareas con un alto impacto pero que no requieren mucho esfuerzo de remediación porque rápidamente marcarán una gran diferencia en el nivel de seguridad de la aplicación.
  • Las tareas de alto impacto y complicadas de afrontar son las que hay que atender en el segundo tiempo después de las más fáciles de corregir
  • Las tareas de bajo impacto y fácilmente manejables deben quedar en un segundo plano, deben ser atendidas puntualmente entre dos tareas más importantes.
  • Las tareas complejas sin mayores consecuencias deben colocarse al final de la lista. Es interesante dar un paso atrás en este tipo de tareas para definir el mejor enfoque para actuar de la manera más eficiente posible.

No te olvides de la usabilidad

Evaluar el esfuerzo y el impacto puede ayudar a ordenar la lista de tareas pendientes de manera eficiente. Sin embargo, esta política no funciona para listas muy largas o cuando se aplica por primera vez el cumplimiento de seguridad a una aplicación. Entonces es necesario incluir una tercera dimensión que puede ser la explotabilidad.

Es probable que una aplicación tenga vulnerabilidades excepcionales, como problemas de larga data que involucran a casi todos los sistemas operativos y lenguajes de programación o casos extremos con muchas bibliotecas comunes de código abierto. Sin embargo, si no se cumplen todas las condiciones necesarias para explotar las vulnerabilidades, es menos urgente abordarlas. Este es particularmente el caso de las vulnerabilidades que no son visibles para los atacantes cibernéticos y los comandos con una vulnerabilidad que no está relacionada con ningún proyecto. Tenga en cuenta que, tarde o temprano, todas las vulnerabilidades deberán corregirse porque el contexto puede evolucionar y exponer una vulnerabilidad que no era explotable hasta ahora.

Agregar una tercera dimensión permite ordenar y priorizar las vulnerabilidades para enfrentarlas de manera efectiva, independientemente del grado de avance del proyecto. Para ello necesitará herramientas, especialmente cuando la lista de correcciones es larga. Aquí es cuando la automatización se vuelve particularmente importante para ayudar a las empresas a combatir las ciberamenazas. Ordenar y priorizar las correcciones y cambios necesarios es esencial para mejorar la seguridad de una aplicación. Aplicar métodos y soluciones al servicio de los desarrolladores permite acelerar sus pasos necesarios para garantizar la seguridad continua de las aplicaciones.



ttn-es-4