
코드 시리즈로 보안 인프라를 정복한 코더: 불충분한 전송 계층 보호
Si usted es un desarrollador que busca aprender más sobre los pasos que puede tomar para comenzar a desplegar una infraestructura segura como código (IaC) en su organización, entonces ha llegado al lugar correcto. Este es el siguiente capítulo de nuestra serie de IaC, diseñada para que te pongas al día en las mejores prácticas de seguridad de IaC.
Antes de empezar, ¿cómo te fue con el desafío de la última entrega? Si dominas la criptografía insegura, veamos cómo te va con la protección insuficiente de la capa de transporte antes de entrar en detalles:
¿Quieres saber más y conseguir una puntuación perfecta? Sigue leyendo:
En nuestro último artículo, hablamos de la importancia de tener una criptografía segura para proteger cualquier dato importante o personal almacenado por aplicaciones y programas. Si tienes una encriptación fuerte, actúa como una perfecta última línea de defensa. Incluso si un atacante es capaz de robar esos datos, si están fuertemente encriptados, entonces la información encerrada dentro de esos archivos sigue estando protegida.
Sin embargo, la protección de los datos en reposo es sólo una parte de una defensa completa de los datos. Siempre que los usuarios válidos necesiten acceder a los datos protegidos, hay que enviárselos. A veces, las aplicaciones también compartirán datos con otros programas como parte de una carga de trabajo general. A menos que la capa de transporte esté protegida, la hace vulnerable tanto al fisgoneo externo como a la visualización interna no autorizada. Por lo tanto, tener una protección insuficiente de la capa de transporte puede causar graves problemas.
Es un problema común. La organización de seguridad OWASP incluso mantiene una página completa sobre la insuficiente protección de la capa de transporte.
¿Por qué es peligrosa una protección insuficiente de la capa de transporte?
Si no proteges suficientemente tus capas de transporte, es relativamente fácil para los hackers expertos interceptar la información que fluye entre tus usuarios y tus aplicaciones utilizando técnicas como los ataques man-in-the-middle. Probablemente el aspecto más peligroso de este tipo de fisgoneo es que es casi completamente invisible para cualquier plataforma o escáner de ciberseguridad interno porque ocurre fuera de su red y de su control.
Por ejemplo, en un entorno Docker desplegando un servicio Nginx:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
La configuración del servicio Nginx no cifrará ni protegerá la conexión, lo que hará que toda la información intercambiada a través del enlace sea vulnerable a diversos ataques o al espionaje.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
A menudo, la primera señal de que alguien podría estar fisgoneando a través de sus capas de transporte es cuando se utiliza un gran número de contraseñas de usuario robadas en ataques posteriores. Si otros datos, como la información de los clientes, los registros financieros o los secretos importantes de la empresa, son robados a través de una capa de transporte insegura, es posible que nunca se dé cuenta de que ha sido comprometida.
Y no es sólo la capa de transporte entre usuarios y aplicaciones la que requiere protección. En el backend, muchas aplicaciones se comunican entre sí y con servidores más avanzados en la cadena del flujo de trabajo. Aunque estas comunicaciones internas no suelen ser vulnerables al espionaje externo, pueden exponer los datos a usuarios que pueden tener permiso para entrar en la red pero no están autorizados a ver cierta información altamente protegida o sensible.
Asegurar adecuadamente las capas de transporte para una protección total de los datos
La protección de las capas de transporte se realiza mejor mientras se crean las aplicaciones. Este proceso empieza por tener una infraestructura backend segura. En el caso de los sitios web, todo debe hacerse utilizando HTTPS. Nunca mezcles la infraestructura HTTP y HTTPS. Incluso deberías configurar tus sitios para que dirijan automáticamente las peticiones HTTP no seguras a la infraestructura HTTPS.
En el ejemplo anterior, un método adecuado para proteger la capa de transporte sería:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
En ese ejemplo, todas las conexiones con el servicio Nginx están fuertemente encriptadas. La sección del servidor de la configuración de Nginx solo incluye listen 8443 ssl para forzar que SSL proteja las conexiones.
Para proteger sus datos de las amenazas internas, los desarrolladores deben emplear un protocolo de cifrado de capa de transporte fuerte como TLS 1.2. Una vez que se haya implantado TLS 1.2 o su equivalente, los protocolos más débiles como SSL v2 deberían eliminarse por completo de la infraestructura y prohibirse automáticamente su uso.
Y tenga siempre en cuenta que la seguridad de una aplicación no es completa hasta que tanto los datos en reposo como las capas de transporte están suficientemente protegidos. De este modo, podrá garantizar una protección completa de extremo a extremo para los datos, tanto a nivel interno como cuando fluyan hacia usuarios externos autorizados.
Consulte las páginas del Secure Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.


때때로 애플리케이션은 전체 워크로드의 일부로 다른 프로그램과 데이터를 공유하기도 합니다.전송 계층이 보호되지 않으면 외부 스누핑과 내부 무단 보기 모두에 취약해집니다.
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Reserva de demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.


Si usted es un desarrollador que busca aprender más sobre los pasos que puede tomar para comenzar a desplegar una infraestructura segura como código (IaC) en su organización, entonces ha llegado al lugar correcto. Este es el siguiente capítulo de nuestra serie de IaC, diseñada para que te pongas al día en las mejores prácticas de seguridad de IaC.
Antes de empezar, ¿cómo te fue con el desafío de la última entrega? Si dominas la criptografía insegura, veamos cómo te va con la protección insuficiente de la capa de transporte antes de entrar en detalles:
¿Quieres saber más y conseguir una puntuación perfecta? Sigue leyendo:
En nuestro último artículo, hablamos de la importancia de tener una criptografía segura para proteger cualquier dato importante o personal almacenado por aplicaciones y programas. Si tienes una encriptación fuerte, actúa como una perfecta última línea de defensa. Incluso si un atacante es capaz de robar esos datos, si están fuertemente encriptados, entonces la información encerrada dentro de esos archivos sigue estando protegida.
Sin embargo, la protección de los datos en reposo es sólo una parte de una defensa completa de los datos. Siempre que los usuarios válidos necesiten acceder a los datos protegidos, hay que enviárselos. A veces, las aplicaciones también compartirán datos con otros programas como parte de una carga de trabajo general. A menos que la capa de transporte esté protegida, la hace vulnerable tanto al fisgoneo externo como a la visualización interna no autorizada. Por lo tanto, tener una protección insuficiente de la capa de transporte puede causar graves problemas.
Es un problema común. La organización de seguridad OWASP incluso mantiene una página completa sobre la insuficiente protección de la capa de transporte.
¿Por qué es peligrosa una protección insuficiente de la capa de transporte?
Si no proteges suficientemente tus capas de transporte, es relativamente fácil para los hackers expertos interceptar la información que fluye entre tus usuarios y tus aplicaciones utilizando técnicas como los ataques man-in-the-middle. Probablemente el aspecto más peligroso de este tipo de fisgoneo es que es casi completamente invisible para cualquier plataforma o escáner de ciberseguridad interno porque ocurre fuera de su red y de su control.
Por ejemplo, en un entorno Docker desplegando un servicio Nginx:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
La configuración del servicio Nginx no cifrará ni protegerá la conexión, lo que hará que toda la información intercambiada a través del enlace sea vulnerable a diversos ataques o al espionaje.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
A menudo, la primera señal de que alguien podría estar fisgoneando a través de sus capas de transporte es cuando se utiliza un gran número de contraseñas de usuario robadas en ataques posteriores. Si otros datos, como la información de los clientes, los registros financieros o los secretos importantes de la empresa, son robados a través de una capa de transporte insegura, es posible que nunca se dé cuenta de que ha sido comprometida.
Y no es sólo la capa de transporte entre usuarios y aplicaciones la que requiere protección. En el backend, muchas aplicaciones se comunican entre sí y con servidores más avanzados en la cadena del flujo de trabajo. Aunque estas comunicaciones internas no suelen ser vulnerables al espionaje externo, pueden exponer los datos a usuarios que pueden tener permiso para entrar en la red pero no están autorizados a ver cierta información altamente protegida o sensible.
Asegurar adecuadamente las capas de transporte para una protección total de los datos
La protección de las capas de transporte se realiza mejor mientras se crean las aplicaciones. Este proceso empieza por tener una infraestructura backend segura. En el caso de los sitios web, todo debe hacerse utilizando HTTPS. Nunca mezcles la infraestructura HTTP y HTTPS. Incluso deberías configurar tus sitios para que dirijan automáticamente las peticiones HTTP no seguras a la infraestructura HTTPS.
En el ejemplo anterior, un método adecuado para proteger la capa de transporte sería:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
En ese ejemplo, todas las conexiones con el servicio Nginx están fuertemente encriptadas. La sección del servidor de la configuración de Nginx solo incluye listen 8443 ssl para forzar que SSL proteja las conexiones.
Para proteger sus datos de las amenazas internas, los desarrolladores deben emplear un protocolo de cifrado de capa de transporte fuerte como TLS 1.2. Una vez que se haya implantado TLS 1.2 o su equivalente, los protocolos más débiles como SSL v2 deberían eliminarse por completo de la infraestructura y prohibirse automáticamente su uso.
Y tenga siempre en cuenta que la seguridad de una aplicación no es completa hasta que tanto los datos en reposo como las capas de transporte están suficientemente protegidos. De este modo, podrá garantizar una protección completa de extremo a extremo para los datos, tanto a nivel interno como cuando fluyan hacia usuarios externos autorizados.
Consulte las páginas del Secure Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Si usted es un desarrollador que busca aprender más sobre los pasos que puede tomar para comenzar a desplegar una infraestructura segura como código (IaC) en su organización, entonces ha llegado al lugar correcto. Este es el siguiente capítulo de nuestra serie de IaC, diseñada para que te pongas al día en las mejores prácticas de seguridad de IaC.
Antes de empezar, ¿cómo te fue con el desafío de la última entrega? Si dominas la criptografía insegura, veamos cómo te va con la protección insuficiente de la capa de transporte antes de entrar en detalles:
¿Quieres saber más y conseguir una puntuación perfecta? Sigue leyendo:
En nuestro último artículo, hablamos de la importancia de tener una criptografía segura para proteger cualquier dato importante o personal almacenado por aplicaciones y programas. Si tienes una encriptación fuerte, actúa como una perfecta última línea de defensa. Incluso si un atacante es capaz de robar esos datos, si están fuertemente encriptados, entonces la información encerrada dentro de esos archivos sigue estando protegida.
Sin embargo, la protección de los datos en reposo es sólo una parte de una defensa completa de los datos. Siempre que los usuarios válidos necesiten acceder a los datos protegidos, hay que enviárselos. A veces, las aplicaciones también compartirán datos con otros programas como parte de una carga de trabajo general. A menos que la capa de transporte esté protegida, la hace vulnerable tanto al fisgoneo externo como a la visualización interna no autorizada. Por lo tanto, tener una protección insuficiente de la capa de transporte puede causar graves problemas.
Es un problema común. La organización de seguridad OWASP incluso mantiene una página completa sobre la insuficiente protección de la capa de transporte.
¿Por qué es peligrosa una protección insuficiente de la capa de transporte?
Si no proteges suficientemente tus capas de transporte, es relativamente fácil para los hackers expertos interceptar la información que fluye entre tus usuarios y tus aplicaciones utilizando técnicas como los ataques man-in-the-middle. Probablemente el aspecto más peligroso de este tipo de fisgoneo es que es casi completamente invisible para cualquier plataforma o escáner de ciberseguridad interno porque ocurre fuera de su red y de su control.
Por ejemplo, en un entorno Docker desplegando un servicio Nginx:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
La configuración del servicio Nginx no cifrará ni protegerá la conexión, lo que hará que toda la información intercambiada a través del enlace sea vulnerable a diversos ataques o al espionaje.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
A menudo, la primera señal de que alguien podría estar fisgoneando a través de sus capas de transporte es cuando se utiliza un gran número de contraseñas de usuario robadas en ataques posteriores. Si otros datos, como la información de los clientes, los registros financieros o los secretos importantes de la empresa, son robados a través de una capa de transporte insegura, es posible que nunca se dé cuenta de que ha sido comprometida.
Y no es sólo la capa de transporte entre usuarios y aplicaciones la que requiere protección. En el backend, muchas aplicaciones se comunican entre sí y con servidores más avanzados en la cadena del flujo de trabajo. Aunque estas comunicaciones internas no suelen ser vulnerables al espionaje externo, pueden exponer los datos a usuarios que pueden tener permiso para entrar en la red pero no están autorizados a ver cierta información altamente protegida o sensible.
Asegurar adecuadamente las capas de transporte para una protección total de los datos
La protección de las capas de transporte se realiza mejor mientras se crean las aplicaciones. Este proceso empieza por tener una infraestructura backend segura. En el caso de los sitios web, todo debe hacerse utilizando HTTPS. Nunca mezcles la infraestructura HTTP y HTTPS. Incluso deberías configurar tus sitios para que dirijan automáticamente las peticiones HTTP no seguras a la infraestructura HTTPS.
En el ejemplo anterior, un método adecuado para proteger la capa de transporte sería:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
En ese ejemplo, todas las conexiones con el servicio Nginx están fuertemente encriptadas. La sección del servidor de la configuración de Nginx solo incluye listen 8443 ssl para forzar que SSL proteja las conexiones.
Para proteger sus datos de las amenazas internas, los desarrolladores deben emplear un protocolo de cifrado de capa de transporte fuerte como TLS 1.2. Una vez que se haya implantado TLS 1.2 o su equivalente, los protocolos más débiles como SSL v2 deberían eliminarse por completo de la infraestructura y prohibirse automáticamente su uso.
Y tenga siempre en cuenta que la seguridad de una aplicación no es completa hasta que tanto los datos en reposo como las capas de transporte están suficientemente protegidos. De este modo, podrá garantizar una protección completa de extremo a extremo para los datos, tanto a nivel interno como cuando fluyan hacia usuarios externos autorizados.
Consulte las páginas del Secure Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Ver informeReserva de demostraciónMatias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.
Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.
Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.
Si usted es un desarrollador que busca aprender más sobre los pasos que puede tomar para comenzar a desplegar una infraestructura segura como código (IaC) en su organización, entonces ha llegado al lugar correcto. Este es el siguiente capítulo de nuestra serie de IaC, diseñada para que te pongas al día en las mejores prácticas de seguridad de IaC.
Antes de empezar, ¿cómo te fue con el desafío de la última entrega? Si dominas la criptografía insegura, veamos cómo te va con la protección insuficiente de la capa de transporte antes de entrar en detalles:
¿Quieres saber más y conseguir una puntuación perfecta? Sigue leyendo:
En nuestro último artículo, hablamos de la importancia de tener una criptografía segura para proteger cualquier dato importante o personal almacenado por aplicaciones y programas. Si tienes una encriptación fuerte, actúa como una perfecta última línea de defensa. Incluso si un atacante es capaz de robar esos datos, si están fuertemente encriptados, entonces la información encerrada dentro de esos archivos sigue estando protegida.
Sin embargo, la protección de los datos en reposo es sólo una parte de una defensa completa de los datos. Siempre que los usuarios válidos necesiten acceder a los datos protegidos, hay que enviárselos. A veces, las aplicaciones también compartirán datos con otros programas como parte de una carga de trabajo general. A menos que la capa de transporte esté protegida, la hace vulnerable tanto al fisgoneo externo como a la visualización interna no autorizada. Por lo tanto, tener una protección insuficiente de la capa de transporte puede causar graves problemas.
Es un problema común. La organización de seguridad OWASP incluso mantiene una página completa sobre la insuficiente protección de la capa de transporte.
¿Por qué es peligrosa una protección insuficiente de la capa de transporte?
Si no proteges suficientemente tus capas de transporte, es relativamente fácil para los hackers expertos interceptar la información que fluye entre tus usuarios y tus aplicaciones utilizando técnicas como los ataques man-in-the-middle. Probablemente el aspecto más peligroso de este tipo de fisgoneo es que es casi completamente invisible para cualquier plataforma o escáner de ciberseguridad interno porque ocurre fuera de su red y de su control.
Por ejemplo, en un entorno Docker desplegando un servicio Nginx:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
La configuración del servicio Nginx no cifrará ni protegerá la conexión, lo que hará que toda la información intercambiada a través del enlace sea vulnerable a diversos ataques o al espionaje.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
A menudo, la primera señal de que alguien podría estar fisgoneando a través de sus capas de transporte es cuando se utiliza un gran número de contraseñas de usuario robadas en ataques posteriores. Si otros datos, como la información de los clientes, los registros financieros o los secretos importantes de la empresa, son robados a través de una capa de transporte insegura, es posible que nunca se dé cuenta de que ha sido comprometida.
Y no es sólo la capa de transporte entre usuarios y aplicaciones la que requiere protección. En el backend, muchas aplicaciones se comunican entre sí y con servidores más avanzados en la cadena del flujo de trabajo. Aunque estas comunicaciones internas no suelen ser vulnerables al espionaje externo, pueden exponer los datos a usuarios que pueden tener permiso para entrar en la red pero no están autorizados a ver cierta información altamente protegida o sensible.
Asegurar adecuadamente las capas de transporte para una protección total de los datos
La protección de las capas de transporte se realiza mejor mientras se crean las aplicaciones. Este proceso empieza por tener una infraestructura backend segura. En el caso de los sitios web, todo debe hacerse utilizando HTTPS. Nunca mezcles la infraestructura HTTP y HTTPS. Incluso deberías configurar tus sitios para que dirijan automáticamente las peticiones HTTP no seguras a la infraestructura HTTPS.
En el ejemplo anterior, un método adecuado para proteger la capa de transporte sería:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
En ese ejemplo, todas las conexiones con el servicio Nginx están fuertemente encriptadas. La sección del servidor de la configuración de Nginx solo incluye listen 8443 ssl para forzar que SSL proteja las conexiones.
Para proteger sus datos de las amenazas internas, los desarrolladores deben emplear un protocolo de cifrado de capa de transporte fuerte como TLS 1.2. Una vez que se haya implantado TLS 1.2 o su equivalente, los protocolos más débiles como SSL v2 deberían eliminarse por completo de la infraestructura y prohibirse automáticamente su uso.
Y tenga siempre en cuenta que la seguridad de una aplicación no es completa hasta que tanto los datos en reposo como las capas de transporte están suficientemente protegidos. De este modo, podrá garantizar una protección completa de extremo a extremo para los datos, tanto a nivel interno como cuando fluyan hacia usuarios externos autorizados.
Consulte las páginas del Secure Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.
Índice
Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está aquí para ayudar a las organizaciones a proteger el código durante todo el ciclo de vida del desarrollo de software y a crear una cultura que priorice la ciberseguridad. Ya seas administrador de AppSec, desarrollador, CISO o cualquier persona relacionada con la seguridad, podemos ayudarte a reducir los riesgos asociados al código inseguro en tu organización.
Reserva de demostraciónDescargarRecursos útiles para empezar
Temas y contenidos de la formación sobre códigos de seguridad
El mejor contenido del sector evoluciona constantemente para adaptarse al entorno de desarrollo de software en constante cambio, teniendo en cuenta el papel de los clientes. Se ofrecen temas que abarcan desde la inteligencia artificial hasta la inyección de XQuery, para diversas funciones, desde arquitectos e ingenieros hasta gestores de productos y control de calidad. Eche un vistazo al contenido que ofrece el catálogo por temas y funciones.
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos útiles para empezar
Cybermon ha vuelto: la misión de IA para derrotar al jefe ahora está disponible bajo demanda.
Cybermon 2025 Bit the Boss ya está disponible en SCW durante todo el año. Implemente tareas de seguridad avanzadas de IA/LLM para impulsar el desarrollo de IA de seguridad a gran escala.
Explicación de la Ley de Resiliencia Cibernética: El significado del diseño de seguridad en el desarrollo de software
Descubra los requisitos y el ámbito de aplicación de la Ley de Resiliencia Cibernética (CRA) de la UE, y cómo el equipo de ingeniería puede prepararse de forma segura mediante el diseño, las prácticas, la prevención de vulnerabilidades y la creación de un entorno de desarrollo.
Factor de éxito 1: Criterios de éxito definidos y medibles
El habilitador 1 ofrece una serie de 10 partes sobre los habilitadores del éxito, mostrando cómo la codificación segura puede mejorar los resultados empresariales, como la reducción de riesgos y costes y la aceleración de la madurez de los programas a largo plazo.




%20(1).avif)
.avif)
