Blog

Serie de Infraestructura como Código de Coders Conquer Security: Uso de componentes de fuentes no confiables

June 15, 2020
Dr. Matias Madou

Estamos llegando al final de nuestra serie sobre Infraestructura como Código (IaC), y ha sido un placer ayudar a desarrolladores como tú en su camino hacia la seguridad en IaC.

¿Has estado participando en los desafíos? ¿Cuál es tu puntuación hasta ahora? Antes de empezar, veamos cuánto sabes ya sobre los riesgos de utilizar componentes de fuentes no confiables:

¿Aún te falta un poco? Sigue leyendo:

El comportamiento que genera vulnerabilidades en el que nos centraremos hoy es el uso de código de fuentes no confiables, una práctica aparentemente inofensiva que está causando grandes problemas. El uso de código y recursos de código abierto tiene muchas ventajas. Por lo general, permite que los expertos contribuyan con sus ideas, trabajo e incluso código terminado a repositorios como GitHub para que otros, que tienen dificultades para lograr que un programa o aplicación funcione correctamente, puedan utilizarlos. Usar código terminado para gestionar funciones de programas evita que los desarrolladores tengan que reinventar la rueda cada vez que necesitan crear una nueva aplicación.

Sin embargo, utilizar fragmentos de código de fuentes poco fiables, no verificadas o incluso potencialmente peligrosas conlleva muchos riesgos. De hecho, el uso de código de fuentes no confiables es una de las formas más comunes en que las vulnerabilidades de seguridad, tanto importantes como menores, se infiltran en aplicaciones que, de otro modo, serían seguras. A veces, esas vulnerabilidades son inducidas accidentalmente por sus creadores. También ha habido casos en los que atacantes potenciales han escrito código malicioso. Luego, el código se comparte con la esperanza de atrapar a víctimas que lo incluirán en sus aplicaciones.

¿Por qué es peligroso utilizar código de fuentes no confiables?

Supongamos que un desarrollador tiene prisa y necesita configurar una aplicación que está creando. Ese puede ser un proceso complicado. Así que, en lugar de dedicar mucho tiempo a intentar resolver todas las configuraciones posibles, hace una búsqueda en Google y encuentra a alguien que ya ha completado un archivo de configuración aparentemente perfecto. Aunque el desarrollador no sabe nada sobre la persona que escribió el código, añadirlo a una nueva aplicación es relativamente fácil. Se puede hacer en el entorno Docker con dos líneas:

RUN cd /etc/apache2/sites-available/ && \
   wget -O default-ssl.conf https://gist.githubusercontent.com/vesche/\
   9d372cfa8855a6be74bcca86efadfbbf/raw/\
   fbdfbe230fa256a6fb78e5e000aebded60d6a5ef/default-ssl.conf

Ahora, la imagen de Docker extraerá dinámicamente el archivo de configuración de terceros. E incluso si el archivo se prueba y se considera correcto en ese momento, el hecho de que el puntero esté ahora incrustado en el código de la nueva aplicación significa que existe una dependencia permanente. Días, semanas o meses después, el archivo podría ser alterado por el autor original o por un atacante que haya comprometido el repositorio de código. De repente, el archivo de configuración compartido puede indicar a la aplicación que se comporte de forma muy distinta a la prevista, lo que podría dar acceso a usuarios no autorizados o incluso robar datos directamente y exfiltrarlos.

Una mejor manera de utilizar recursos compartidos

Si tu organización permite el uso de código de fuentes externas, se deben establecer procesos para garantizar que se haga de forma segura. Al evaluar código externo para su posible uso, asegúrate de adquirir componentes únicamente de fuentes oficiales utilizando enlaces seguros. E incluso entonces, nunca deberías enlazar a una fuente externa para extraer ese código, ya que eso elimina el proceso de tu control. En su lugar, el código aprobado debe llevarse a una biblioteca segura y utilizarse únicamente desde esa ubicación protegida. Por lo tanto, en un entorno Docker, el código se vería así:

COPY src/config/default-ssl.conf /etc/apache2/sites-available/

En lugar de depender de archivos de configuración remotos de terceros, esto dependería de una copia local de dichos archivos. Esto evitará que se realicen cambios inesperados o maliciosos.

Además de utilizar una biblioteca de código segura, se debe implementar un proceso de gestión de parches para supervisar continuamente los componentes a lo largo del ciclo de vida del software. Todos los componentes del lado del cliente y del servidor también deben comprobarse en busca de alertas de seguridad utilizando herramientas como NVD o CVE. Por último, elimina cualquier dependencia o función innecesaria o no utilizada que pueda venir incluida con el código externo.

Al seguir estos pasos, los desarrolladores pueden hacer un uso más seguro de los recursos externos sin introducir accidentalmente vulnerabilidades en sus aplicaciones y código.

Consulta las páginas del blog de Secure Code Warrior para obtener más información sobre esta vulnerabilidad y cómo proteger a tu organización y a tus clientes de los estragos de otros fallos de seguridad. También puedes probar una demostración de los desafíos de IaC en la plataforma de formación de Secure Code Warrior para mantener todas tus habilidades de ciberseguridad perfeccionadas y actualizadas.



Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.