La importancia de los ingenieros de plataforma en un programa de seguridad
13 de abril de 2023
0 minutos de lecturaEs necesario empoderar a los ingenieros de plataforma dentro del programa de seguridad de una organización. Su trabajo tiene una enorme influencia en la postura de seguridad de un producto y, posiblemente, un impacto tan grande (algunos dirían que incluso mayor) como el de las vulnerabilidades de las aplicaciones. A pesar de la importancia de su trabajo, su función en los programas de seguridad no está bien definida. Si bien los proveedores de servicios en la nube publican modelos de responsabilidad compartida bien definidos para sus clientes, las organizaciones rara vez especifican quién es responsable de la seguridad: los desarrolladores de aplicaciones o los ingenieros de plataforma.
En esta publicación, exploraremos qué hace un ingeniero de plataforma y destacaremos algunos de los desafíos que los equipos de seguridad de productos deben conocer.
¿Qué hace un ingeniero de plataforma?
Los ingenieros de plataforma crean herramientas y sistemas para que los desarrolladores puedan trabajar de forma autónoma en sus organizaciones. Diseñan «caminos pavimentados» que permiten a los desarrolladores renunciar a algunas opciones a cambio de una menor carga cognitiva, una experiencia más sencilla y un ciclo de vida de desarrollo de software menos complejo. Al dejar atrás la paradoja de la elección y las curvas de aprendizaje pronunciadas, los desarrolladores de aplicaciones pueden concentrarse mejor en deleitar a sus clientes.
Los ingenieros de plataforma toman muchos componentes de infraestructura complejos y fragmentados y los convierten en un conjunto más pequeño de componentes sencillos, con menos funciones. En esencia, combinan bloques de Lego para crear algo parecido a Duplo.
Cuando se hace bien, los desarrolladores de aplicaciones obtienen toda la personalización que necesitan para el 80 % de su trabajo sin tener que convertirse en expertos en infraestructura.
¿Qué tiene que ver la ingeniería de plataformas con la seguridad?
Al abstraer los detalles de la infraestructura, los ingenieros de plataforma deciden cómo debe configurarse desde el principio. Estas decisiones tienen un enorme impacto en la postura de seguridad de la organización. Se podría argumentar que los errores de diseño y las configuraciones incorrectas afectan la postura del programa de seguridad más que una vulnerabilidad de una aplicación. De hecho, en el informe Estado de la seguridad de las aplicaciones nativas de la nube de 2021 de Snyk, descubrimos que el 45 % de las personas encuestadas tenía vulnerabilidades causadas por configuraciones incorrectas.
Considera todos los errores que podrían ocurrir al diseñar e implementar cada capa de una plataforma interna de desarrollo típica:
Administración de aplicaciones: agentes de registro, CD, orquestación de contenedores, administración de secretos, replicación de imágenes, ciclos de vida y copias de seguridad de datos, compilación y almacenamiento de artefactos
Computación de aplicaciones: clústeres de contenedores, máquinas virtuales, balanceo de carga, certificados
Red: DNS, redes aisladas, conectividad a Internet, reglas de entrada y salida
Acceso: identidad, privilegios
Y esa lista no hará más que crecer si le preguntas a un ingeniero de plataforma. Veamos ahora algunos de los problemas que pueden enfrentar los ingenieros de plataformas.
Es difícil proteger una caja cada vez más grande de piezas de Lego cada vez más complejas
El conjunto de componentes es grande y sigue creciendo. Cada componente se vuelve más sofisticado. Además, los microservicios se están transformando en SaaS, a medida que los clientes delegan componentes de su arquitectura a proveedores de software externos.
Los ingenieros de plataforma suelen ser generalistas, con conocimientos más profundos en algunas áreas. En cuanto a las vulnerabilidades de seguridad, enfrentan una brecha de conocimientos similar a la de los desarrolladores de aplicaciones. Sin embargo, podría decirse que sus brechas son más variadas y difíciles de entender, ya que suelen requerir un conocimiento profundo del servicio de un proveedor y de su configuración.
Una administración compleja de cambios, agravada por prácticas de prueba poco maduras
Los desarrolladores de aplicaciones conocen bien las pruebas y las realizan ampliamente. Se espera que escriban pruebas para su código y que entiendan las ventajas y desventajas de las distintas estrategias de prueba a lo largo de la pirámide de pruebas. Por eso, el costo de incorporar correcciones de seguridad de aplicaciones es relativamente bajo: las organizaciones pueden confiar en la madurez de sus pruebas para evitar regresiones. Esto significa que, a menudo, basta con que una compilación sea exitosa para incorporar un parche de seguridad.
La situación es distinta en la ingeniería de plataformas. La codificación de la infraestructura avanza lentamente en los distintos sectores y dentro de las empresas. Incluso más allá de este requisito básico —el control de versiones, necesario para realizar algún tipo de prueba—, las prácticas para probar cambios en la infraestructura no están bien definidas. Como resultado, el riesgo asociado a cada cambio es alto. Para complicar aún más las cosas, no todos los atributos de un cambio de configuración son iguales. Algunas actualizaciones, omisiones y adiciones de atributos activan la sustitución de recursos, lo que puede tener consecuencias graves para los recursos dependientes, las aplicaciones a las que dan servicio y sus usuarios.
Hoy cuesta más corregir las vulnerabilidades de la infraestructura. Los ingenieros de plataforma revisan cada cambio con nerviosismo, pues consideran que es la mejor manera de evitar problemas al implementarlos. Esta práctica no es escalable, pero la incipiente comunidad de ingeniería de plataformas aún no ha definido las mejores prácticas.
El autoservicio genera problemas de implementación
La ingeniería de plataformas, o plataforma como producto, como suele llamarse, consiste en ofrecer a los usuarios un camino pavimentado y permitir que los desarrolladores trabajen de forma autónoma. Los propios ingenieros de plataforma implementan algunos cambios en la plataforma, incluidos los cambios en la configuración de la infraestructura en las distintas instancias de la empresa. Sin embargo, otros cambios dependen de que los equipos de desarrollo de aplicaciones los adopten e instalen, como nuevos gráficos de Helm, módulos de terraform, orbs o complementos de implementación, bibliotecas de instrumentación y muchos otros.
La postura de seguridad de la organización varía entre estas versiones, y las demoras en las actualizaciones de apenas unos equipos pueden generar desafíos para todo el programa de seguridad que el equipo de seguridad de aplicaciones desconoce.
Resumen
Ante estos desafíos, los ingenieros de plataforma necesitan herramientas que les permitan encontrar configuraciones incorrectas en las primeras etapas de su SDLC, además de ayuda para ir más allá de las pruebas y mejorar el diseño de sus caminos pavimentados.
Los ingenieros de plataforma tendrán una enorme influencia en la postura de seguridad de sus organizaciones y, en términos más generales, en el mundo del software impulsado por SaaS y con múltiples proveedores. Las mejores prácticas emergentes y las inversiones en la madurez de las plataformas eliminarán y mitigarán los riesgos de seguridad, además de permitir que los desarrolladores de aplicaciones corrijan las vulnerabilidades de sus aplicaciones con menor costo y mayor rapidez que nunca.
Empieza con Capture the Flag
Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.



