¡No te pierdas ninguna publicación! Suscríbete a The Softtek Blog
En la actualidad, los procesos manuales de detección de amenazas están quedando obsoletos. La ingeniería de detección puede hacer avanzar las operaciones de seguridad, especialmente la detección como código (DaC), siendo éste un enfoque muy adecuado para la detección de amenazas.
Llevar a cabo detecciones permite definir la lógica para analizar los datos de los diferentes registros de seguridad y descifrar que comportamiento presentan los atacantes. De este modo, con este tipo de detección cuando se cumple una regla de ataque, se envía una alerta al equipo de ciberseguridad para investigarla y solventarla.
DaC es un enfoque flexible y estructurado para escribir detecciones que aplican las mejores prácticas de ingeniería de software a la ciberseguridad. Los equipos pueden crear procesos escalables para escribir y fortalecer detenciones e identificar amenazas sofisticadas en entornos de rápida expansión.
Como sea mencionado, la DaC es un enfoque sistemático y completo para la detección de amenazas impulsada por software, es decir, archivos de definición legibles por máquina y modelos descriptivos.
El enfoque de la detención como código está estructurado para analizar los datos de registro de seguridad que se utilizan para identificar los comportamientos de los ciberdelincuentes. Escribir detenciones expresivas y automatizar respuestas en código permite a los equipos de seguridad crear procesos escalables para identificar amenazas sofisticadas en entornos de rápida expansión.
La combinación de la ingeniería de detección con el conjunto de prácticas y sistemas, pueden ofrecer una detección de amenazas modernas y eficaz para impulsar las operaciones de cualquier compañía, como en su momento ocurrió con DevOps. Un flujo de trabajo de ingeniería de detección sigue los siguientes pasos:
Así pues, la detección como código aparece de la necesidad de seguridad enfoques automatizados, sistemáticos, repetirles y predecibles. De manera que los problemas se pueden ajustar con precisión a los entornos de sistemas particulares. Asimismo, los equipos de seguridad pueden producir alertas de gran calidad que indican rápidamente la posibilidad de amenazas, mediante un código bien escrito, la verificación en el control de fuente y la revisión por pares.
Una primera fase de la implementación de la DaC es establecer un canal que permita a la compañía enviar solicitudes de nuevos detectores, es decir, los empleados deben poder enviar ideas de comunicación a través de la nueva función de solicitud incorporada en una plataforma SCM. Asimismo, deben crear plantillas para garantizar que se ingresen todos los datos que necesitan ingenieros de detección. Estos ingenieros deben configurar sprints de detección para realizar un seguimiento del rendimiento y orientar a toda la compañía sobre los problemas de detección que deben priorizarse.
La segunda fase implica el desarrollo del detector, el ingeniero de detección debe crear una plantilla que se utilizará en la construcción del propio detector. Esta plantilla debe estar escrita en un formato que sea fácil de analizar mediante programación y legible por humanos, como YAML/TOML. Una vez creada esta plantilla, se debe identificar la lógica del detector. Esto puede significar realizar algunas pruebas localizadas en un entorno de prueba para obtener la lógica inicial.
La fase tres es la fase de prueba, donde se ejecutan pruebas contra el nuevo código de detección. Si superan las pruebas estas se integran en la canalización CI/CD. Una vez completadas las pruebas por completo, se realiza una revisión por pares para verificar el código con precisión respecto al problema descrito en la primera fase.
Por último, en la fase cuatro una vez que la rama de desarrollo se ha fusionado con la rama maestra, las herramientas CI/CD leen la configuración del código. Si se establece como “activo”, las herramientas del CD intentan implementar la lógica de la regla en la plataforma de detección que aparece en el archivo de configuración.
Los beneficios de la DaC incluyen la capacidad de general detección, es flexible y personalizado mediante un lenguaje de programación reconocido como puede ser Python. Los lenguajes como Python permiten escribir detecciones más sofisticadas, mediante reglas que tienden a ser más legibles y fáciles de entender según aumenta la complejidad del código.
Un beneficio adicional del uso de lenguajes como Python es la capacidad de utilizar un conjunto de bibliotecas integradas o de terceros para comunicarse con las API, lo que mejora la eficacia de la detección.
Otro de los grandes beneficios que trae consigo este enfoque es la detección de puntos ciegos desde el principio, cubrir las pruebas de falsas alertas y promover la eficiencia en la detección, siempre que exista un control de calidad adecuado para el código. Por tanto, emplear un enfoque de desarrollo basado en pruebas (TDD) facilita a los equipos de ciberseguridad pensar cómo lo haría un atacante, analizar esa información y conocer cómo funciona el ciclo de vida del ataque.
El uso TDD es una validación de la corrección del código que mejora la calidad de este y permite detecciones más modulares y flexibles. Además, se pueden realizar cambios fácilmente en su detección sin interrumpir las alertas ni las operaciones del código.
Por otro lado, cuando se escriben nuevas modificaciones o detecciones, el control de versiones permite a los equipos retroceder al estado anterior e indica si los equipos están empleando la detección más actualizada.
Según se vayan introduciendo nuevos datos y características adicionales al sistema, las detecciones también deben modificarse. Así pues, el control de cambios es fundamental para ajustar las detecciones según sea necesario y garantizar que los cambios están documentados y revisados.
También, el uso de una canalización de CI/CD ayuda a eliminar los silos entre equipos porque trabajan juntos en una plataforma común, revisan el código de los demás y se mantiene una organización adecuada. A su vez, se proporcionan canales de prueba y se automatizan para las detecciones de seguridad. Los equipos pueden seguir trabajando de manera ágil al enfocarse en detecciones precisas.
Por último, la DaC puede fomentar la reutilización del código en un gran conjunto de detecciones. Se emplea esta posibilidad de reutilizar un código para que se lleve a cabo la misma función que tenía o una función muy similar en diferentes detecciones sin necesidad de comenzar un código desde cero. La reutilización del código permite compartir funciones entre elecciones o modificar adaptar detección es el caso de usos específicos.
En resumen, a medida que el departamento de seguridad escribe detecciones durante un periodo de tiempo prolongado, comienza a identificar patrones a medida que van surgiendo y, es aquí, cuando se puede reutilizar el código existente para satisfacer las necesidades de las diferentes detecciones sin empezar de la nada.
En conclusión, cada entorno es diferente y cada uno de ellos necesita un conjunto de soluciones para la detección diferentes. Para que esto sea posible los equipos de ciberseguridad deben crear reglas personalizadas para tener el control de versiones adecuado a sus necesidades.
La flexibilidad de un lenguaje de programación expresivo permite detectar comportamientos avanzados o sencillos, buscar contexto y analizar los acontecimientos ocurridos. DaC permite escribir detecciones flexibles y específicas para cada compañía.
Los equipos de ciberseguridad pueden estructurar y normalizar los registros en un esquema estricto para consultas y analizar grandes volúmenes de datos de seguridad. La DaC junto con la infraestructura como código (IaC) forman la idea emergente de Todo como código (EaC), donde en cada capa de la seguridad, todo se expresa con código.