Si ponemos como premisa el generar un flujo eficiente y normalizado de corrección de errores y parcheo, lo primero que debemos tener en cuenta es que no es lo mismo parchear sistemas que servicios o aplicaciones. Y las implicaciones pueden ser muy distintas (y de muy diversa gravedad). La separación de los mismos a nivel técnico se debe a las características intrínsecas de cada uno de ellos y los ciclos de aplicación de parches de estos elementos han de tener tratamientos diferentes. La intención es automatizar el flujo para no depender de la aprobación de actores externos, agilizando el proceso, así que deberemos analizar qué medidas correctoras debemos aplicar en nuestra arquitectura y las implicaciones que pudiera tener su respectiva aplicación para definir un método de actuación. Tras esto, habrá que confeccionar un inventario robusto que no debe descuidarse y ha de mantenerse siempre actualizado.

Diseñar un ciclo de corrección y su automatización

Una vez identificadas las necesidades de nuestros sistemas, podemos empezar a diseñar un ciclo de trabajo que se adecúe a estas.  Dentro de estos ciclos podemos emplear numerosas herramientas que nos ayuden a automatizar el proceso, agilizando el flujo. Pero no debemos olvidar que ni el más sofisticado de los métodos eliminará por completo las fases más “manuales” del flujo.

Para generar un correcto flujo de implantación de parches de seguridad, podemos identificar varias fases consistentes en la detección de sistemas, servicios y aplicaciones, y el versionado del software; la evaluación del riesgo y la determinación de la mejor manera de realizar dichas evaluaciones; y la corrección, entendida como la definición exacta del flujo de trabajo a la hora de aplicar los parches según la tipología y clasificación del riesgo.

Una clasificación del flujo de parcheo también consiste en una securización del pipeline, centrándonos en el hardening del proceso, seguido de una securización durante el pipeline, en el que se implementarán los requerimientos de seguridad que se deban cumplir durante el mismo. Un detalle que no debe olvidarse es que el proceso de automatización del parcheo ha de ser securizado también: desde el manejo del código de las configuraciones a desplegar, la automatización ante un incidente, securización de backups, monitorización de logs, etc.

Integrar un buen método de testing

En muchos casos, el testing parece relegado al desarrollo de un producto. Pero también ofrece una función importantísima a la hora del patching, lo que asegurará la integridad de la infraestructura. Al fin y al cabo, debemos llevar estas tareas de sistemas y servicios a código, y controlaremos que todo se esté realizando de manera correcta mediante testing. Esto nos permitirá generar calidad en lo que estamos haciendo y garantizar así, al menos en gran parte, que nuestras acciones están siendo securizadas sin depender exclusivamente del factor humano. Por ello, habrá que generar test lo suficientemente robustos, de calidad y con idempotencia suficiente que garantice unos mínimos.

Mantener el control mediante la monitorización

Para tener una visibilidad real de lo que está pasando durante los procesos que ocurren en el sistema o, incluso, cuando existe un ataque, es esencial contar con un buen sistema de monitorización. Por tanto, es imprescindible que nos apoyemos en herramientas de correlación de logs y alarmas. De esta forma, cubriremos por completo el contexto temporal de la monitorización.

Tener claros los roles

Como en cualquier tarea delicada, y todo lo relativo a la seguridad lo es, es esencial contar con responsables claramente identificables. Pero, además, es también crucial el reducir al máximo posible el factor humano, apostando por soluciones que validen de forma programática. Esto evita ineficiencias costosas y pérdidas graves en la programación de tareas. Apoyar el peso de la validación en el testing del que hablábamos anteriormente es algo plausible y eficaz. La idea es llevar todo lo viable a código, automatizarlo. Eso sí, hay que hacerlo siempre tras realizar un análisis en profundidad. Este proceso, como muchos otros, se ha de ir adaptando poco a poco.

En resumen, realizar un parcheado de los sistemas, los servicios y las aplicaciones de nuestra empresa es fundamental para protegerla ante posibles ciberataques. Sin embargo, esta tarea tan relevante no puede desarrollarse a la ligera; es necesario implementar un método de actuación acorde a las características de la arquitectura de nuestra empresa y evaluar las implicaciones de aplicar el parcheado.