
Los programadores conquistan la infraestructura de seguridad con la serie Code: almacenamiento de contraseñas en texto plano
Cuando se trata de implementar una infraestructura segura como código en su propia organización, ¿cómo le va? Puede que sea una especie de curva de aprendizaje, pero aprender los entresijos será una gran oportunidad para mejorar tus habilidades y destacar entre tus compañeros, y mantenga seguros más datos de los usuarios finales.
Antes de comenzar con el siguiente capítulo de nuestra última serie Coders Conquer Security, me gustaría invitarlos a jugar un desafío gamificado sobre la vulnerabilidad del almacenamiento de datos confidenciales; juegue ahora y elija entre Kubernetes, Terraform, Ansible, Docker o CloudFormation:
¿Cómo fue eso? Si tus conocimientos necesitan algo de trabajo, sigue leyendo:
La clave de la mayoría de la seguridad informática en estos días son las contraseñas. Incluso si se emplean otros métodos de seguridad, como la autenticación de dos factores o la biometría, la mayoría de las organizaciones siguen empleando la seguridad basada en contraseñas como un elemento de su protección. Para muchas empresas, las contraseñas se utilizan exclusivamente.
Usamos tanto las contraseñas que incluso tenemos reglas sobre cómo crearlas. Se supone que esto las hace menos vulnerables a los ataques de fuerza bruta o incluso a las conjeturas descabelladas. Por supuesto, algunas personas todavía usan contraseñas débiles, como lo demuestra un reciente informe de NordPass. Cuesta creer que en 2020 la gente siga usando 12345, así como un montón de otras palabras que se pueden adivinar, como chocolate, contraseña y Dios, para proteger sus activos más confidenciales.
Siempre habrá quienes no quieran usar contraseñas seguras, pero la mayoría de las organizaciones profesionales obligan a los usuarios a crear sus palabras o frases de acceso de ciertas maneras. Ya todos conocemos las reglas según las cuales las contraseñas deben tener al menos ocho caracteres y estar compuestas por letras mayúsculas y minúsculas, con al menos un número y un carácter especial.
Lo malo es que, incluso si los usuarios respetan las reglas para crear contraseñas más seguras, es posible que no sirva de nada si todas se almacenan en texto plano. ¡La contraseña 12345 es tan mala como la de Nuts53! Spike&dog12 si un hacker puede leer todo el archivo de contraseñas.
¿Por qué es peligroso almacenar contraseñas en texto plano?
Almacenar las contraseñas en texto plano es malo porque pone en riesgo tanto al sistema como a los usuarios. Evidentemente, conseguir que un pirata informático pueda encontrar y leer todas y cada una de las contraseñas utilizadas para acceder a un sistema sería un desastre. Podrían simplemente encontrar a un usuario con credenciales de administrador y comprometer todo el sistema o el sitio. Y dado que utilizarían nombres de usuario y contraseñas correctos, es posible que la seguridad interna no detecte la intrusión o no la detecte mucho después de que se haya producido el daño.
Facilitar a los atacantes el robo de contraseñas almacenadas en texto plano también perjudica a los usuarios, ya que muchas personas reutilizan las contraseñas. Debido a que hemos hecho que sea tan difícil crear contraseñas, muchas personas recurren a reutilizar las que pueden recordar en varios sitios. Si un atacante pone en peligro un archivo de contraseñas, es casi seguro que intentará acceder a otros sistemas con el mismo nombre y contraseña, lo que expone a los usuarios a un gran riesgo de cometer delitos secundarios.
Es relativamente fácil almacenar accidentalmente contraseñas en texto plano o no darse cuenta de que esto podría causar problemas importantes en el futuro. Por ejemplo, el siguiente código es un método común que se emplea para almacenar contraseñas al definir un recurso de AWS mediante plantillas de Terraform:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «s3.cr3t.admin.p2ss»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la contraseña utilizada para administrar la instancia de base de datos MySQL en AWS se almacena en texto sin formato. Esto significa que cualquier persona con acceso al repositorio de código fuente puede leerlo o incluso copiarlo.
La protección de las contraseñas varía según el marco, pero existen métodos de protección para todas las plataformas. Por ejemplo, la contraseña de MySQL se puede almacenar en un almacenamiento seguro como AWS Secrets Manager:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «$ {data.aws_secretsmanager_secret_version.password.secret_string}»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la plantilla de Terraform obtendrá la contraseña del servicio AWS Secrets Manager y nunca se almacenará en texto plano en los archivos de plantilla.
Proteger las contraseñas evitando el almacenamiento de texto sin formato
Las contraseñas son las claves de tu reino y nunca deben guardarse en texto plano. Ni siquiera las personas que forman parte de una organización deberían tener acceso a un repositorio de contraseñas grande y desprotegido, ni tampoco debería ser un protocolo empresarial aceptado (hoy en día hay muchos gestores de contraseñas que permiten compartir credenciales cifradas, ¡sin excusas!). También existe el peligro de que personas con información privilegiada malintencionadas husmeen los archivos y accedan a sitios donde no deberían.
Y con un ataque externo, imagínese el golpe por partida doble que sería posible si se descubre una puerta trasera a su base de datos mediante algo tan simple como una vulnerabilidad de inyección de SQL, y ellos también obtienen acceso al directorio donde están almacenadas las contraseñas. ¿Cree que son demasiados pasos plagados de errores como para llevarlos a buen puerto? Lamentablemente, este escenario exacto ocurrió en La violación de Sony en 2011. Más de un millón de contraseñas de clientes se almacenaron en texto plano, y el grupo de hackers de Lulzsec accedió a ellas y a muchas más mediante un ataque común de inyección de SQL.
Todas las contraseñas deben estar protegidas por las defensas disponibles en el marco de soporte. Para Terraform, las contraseñas nunca deben almacenarse en archivos de plantilla. Se recomienda utilizar un almacenamiento seguro como AWS Secrets Manager o Azure Key Vault, según el proveedor de infraestructura.
Obligar a los usuarios a crear contraseñas seguras es una buena idea, pero también debes hacer tu parte en el backend. Mantener las contraseñas fuera del almacenamiento de texto sin formato contribuirá en gran medida a proteger a los usuarios y los sistemas. El principal peligro del almacenamiento de contraseñas en texto plano es el deficiente control de acceso; básicamente, cualquiera puede verlas. Es imprescindible (especialmente en un entorno de iAC, en el que, de repente, más personas tienen acceso a la información confidencial) que se controlen adecuadamente y que solo se conceda el acceso a aquellos que absolutamente lo necesitan.
Eche un vistazo a la Secure Code Warrior páginas de blog 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 otras fallas y vulnerabilidades de seguridad. También puedes prueba un desafío iAC de demostración dentro de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


La clave de la mayoría de la seguridad informática en estos días son las contraseñas. Incluso si se emplean otros métodos de seguridad, como la autenticación de dos factores o la biometría, la mayoría de las organizaciones siguen empleando la seguridad basada en contraseñas como un elemento de su protección.
Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
预约演示Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。
马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。


Cuando se trata de implementar una infraestructura segura como código en su propia organización, ¿cómo le va? Puede que sea una especie de curva de aprendizaje, pero aprender los entresijos será una gran oportunidad para mejorar tus habilidades y destacar entre tus compañeros, y mantenga seguros más datos de los usuarios finales.
Antes de comenzar con el siguiente capítulo de nuestra última serie Coders Conquer Security, me gustaría invitarlos a jugar un desafío gamificado sobre la vulnerabilidad del almacenamiento de datos confidenciales; juegue ahora y elija entre Kubernetes, Terraform, Ansible, Docker o CloudFormation:
¿Cómo fue eso? Si tus conocimientos necesitan algo de trabajo, sigue leyendo:
La clave de la mayoría de la seguridad informática en estos días son las contraseñas. Incluso si se emplean otros métodos de seguridad, como la autenticación de dos factores o la biometría, la mayoría de las organizaciones siguen empleando la seguridad basada en contraseñas como un elemento de su protección. Para muchas empresas, las contraseñas se utilizan exclusivamente.
Usamos tanto las contraseñas que incluso tenemos reglas sobre cómo crearlas. Se supone que esto las hace menos vulnerables a los ataques de fuerza bruta o incluso a las conjeturas descabelladas. Por supuesto, algunas personas todavía usan contraseñas débiles, como lo demuestra un reciente informe de NordPass. Cuesta creer que en 2020 la gente siga usando 12345, así como un montón de otras palabras que se pueden adivinar, como chocolate, contraseña y Dios, para proteger sus activos más confidenciales.
Siempre habrá quienes no quieran usar contraseñas seguras, pero la mayoría de las organizaciones profesionales obligan a los usuarios a crear sus palabras o frases de acceso de ciertas maneras. Ya todos conocemos las reglas según las cuales las contraseñas deben tener al menos ocho caracteres y estar compuestas por letras mayúsculas y minúsculas, con al menos un número y un carácter especial.
Lo malo es que, incluso si los usuarios respetan las reglas para crear contraseñas más seguras, es posible que no sirva de nada si todas se almacenan en texto plano. ¡La contraseña 12345 es tan mala como la de Nuts53! Spike&dog12 si un hacker puede leer todo el archivo de contraseñas.
¿Por qué es peligroso almacenar contraseñas en texto plano?
Almacenar las contraseñas en texto plano es malo porque pone en riesgo tanto al sistema como a los usuarios. Evidentemente, conseguir que un pirata informático pueda encontrar y leer todas y cada una de las contraseñas utilizadas para acceder a un sistema sería un desastre. Podrían simplemente encontrar a un usuario con credenciales de administrador y comprometer todo el sistema o el sitio. Y dado que utilizarían nombres de usuario y contraseñas correctos, es posible que la seguridad interna no detecte la intrusión o no la detecte mucho después de que se haya producido el daño.
Facilitar a los atacantes el robo de contraseñas almacenadas en texto plano también perjudica a los usuarios, ya que muchas personas reutilizan las contraseñas. Debido a que hemos hecho que sea tan difícil crear contraseñas, muchas personas recurren a reutilizar las que pueden recordar en varios sitios. Si un atacante pone en peligro un archivo de contraseñas, es casi seguro que intentará acceder a otros sistemas con el mismo nombre y contraseña, lo que expone a los usuarios a un gran riesgo de cometer delitos secundarios.
Es relativamente fácil almacenar accidentalmente contraseñas en texto plano o no darse cuenta de que esto podría causar problemas importantes en el futuro. Por ejemplo, el siguiente código es un método común que se emplea para almacenar contraseñas al definir un recurso de AWS mediante plantillas de Terraform:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «s3.cr3t.admin.p2ss»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la contraseña utilizada para administrar la instancia de base de datos MySQL en AWS se almacena en texto sin formato. Esto significa que cualquier persona con acceso al repositorio de código fuente puede leerlo o incluso copiarlo.
La protección de las contraseñas varía según el marco, pero existen métodos de protección para todas las plataformas. Por ejemplo, la contraseña de MySQL se puede almacenar en un almacenamiento seguro como AWS Secrets Manager:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «$ {data.aws_secretsmanager_secret_version.password.secret_string}»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la plantilla de Terraform obtendrá la contraseña del servicio AWS Secrets Manager y nunca se almacenará en texto plano en los archivos de plantilla.
Proteger las contraseñas evitando el almacenamiento de texto sin formato
Las contraseñas son las claves de tu reino y nunca deben guardarse en texto plano. Ni siquiera las personas que forman parte de una organización deberían tener acceso a un repositorio de contraseñas grande y desprotegido, ni tampoco debería ser un protocolo empresarial aceptado (hoy en día hay muchos gestores de contraseñas que permiten compartir credenciales cifradas, ¡sin excusas!). También existe el peligro de que personas con información privilegiada malintencionadas husmeen los archivos y accedan a sitios donde no deberían.
Y con un ataque externo, imagínese el golpe por partida doble que sería posible si se descubre una puerta trasera a su base de datos mediante algo tan simple como una vulnerabilidad de inyección de SQL, y ellos también obtienen acceso al directorio donde están almacenadas las contraseñas. ¿Cree que son demasiados pasos plagados de errores como para llevarlos a buen puerto? Lamentablemente, este escenario exacto ocurrió en La violación de Sony en 2011. Más de un millón de contraseñas de clientes se almacenaron en texto plano, y el grupo de hackers de Lulzsec accedió a ellas y a muchas más mediante un ataque común de inyección de SQL.
Todas las contraseñas deben estar protegidas por las defensas disponibles en el marco de soporte. Para Terraform, las contraseñas nunca deben almacenarse en archivos de plantilla. Se recomienda utilizar un almacenamiento seguro como AWS Secrets Manager o Azure Key Vault, según el proveedor de infraestructura.
Obligar a los usuarios a crear contraseñas seguras es una buena idea, pero también debes hacer tu parte en el backend. Mantener las contraseñas fuera del almacenamiento de texto sin formato contribuirá en gran medida a proteger a los usuarios y los sistemas. El principal peligro del almacenamiento de contraseñas en texto plano es el deficiente control de acceso; básicamente, cualquiera puede verlas. Es imprescindible (especialmente en un entorno de iAC, en el que, de repente, más personas tienen acceso a la información confidencial) que se controlen adecuadamente y que solo se conceda el acceso a aquellos que absolutamente lo necesitan.
Eche un vistazo a la Secure Code Warrior páginas de blog 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 otras fallas y vulnerabilidades de seguridad. También puedes prueba un desafío iAC de demostración dentro de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

Cuando se trata de implementar una infraestructura segura como código en su propia organización, ¿cómo le va? Puede que sea una especie de curva de aprendizaje, pero aprender los entresijos será una gran oportunidad para mejorar tus habilidades y destacar entre tus compañeros, y mantenga seguros más datos de los usuarios finales.
Antes de comenzar con el siguiente capítulo de nuestra última serie Coders Conquer Security, me gustaría invitarlos a jugar un desafío gamificado sobre la vulnerabilidad del almacenamiento de datos confidenciales; juegue ahora y elija entre Kubernetes, Terraform, Ansible, Docker o CloudFormation:
¿Cómo fue eso? Si tus conocimientos necesitan algo de trabajo, sigue leyendo:
La clave de la mayoría de la seguridad informática en estos días son las contraseñas. Incluso si se emplean otros métodos de seguridad, como la autenticación de dos factores o la biometría, la mayoría de las organizaciones siguen empleando la seguridad basada en contraseñas como un elemento de su protección. Para muchas empresas, las contraseñas se utilizan exclusivamente.
Usamos tanto las contraseñas que incluso tenemos reglas sobre cómo crearlas. Se supone que esto las hace menos vulnerables a los ataques de fuerza bruta o incluso a las conjeturas descabelladas. Por supuesto, algunas personas todavía usan contraseñas débiles, como lo demuestra un reciente informe de NordPass. Cuesta creer que en 2020 la gente siga usando 12345, así como un montón de otras palabras que se pueden adivinar, como chocolate, contraseña y Dios, para proteger sus activos más confidenciales.
Siempre habrá quienes no quieran usar contraseñas seguras, pero la mayoría de las organizaciones profesionales obligan a los usuarios a crear sus palabras o frases de acceso de ciertas maneras. Ya todos conocemos las reglas según las cuales las contraseñas deben tener al menos ocho caracteres y estar compuestas por letras mayúsculas y minúsculas, con al menos un número y un carácter especial.
Lo malo es que, incluso si los usuarios respetan las reglas para crear contraseñas más seguras, es posible que no sirva de nada si todas se almacenan en texto plano. ¡La contraseña 12345 es tan mala como la de Nuts53! Spike&dog12 si un hacker puede leer todo el archivo de contraseñas.
¿Por qué es peligroso almacenar contraseñas en texto plano?
Almacenar las contraseñas en texto plano es malo porque pone en riesgo tanto al sistema como a los usuarios. Evidentemente, conseguir que un pirata informático pueda encontrar y leer todas y cada una de las contraseñas utilizadas para acceder a un sistema sería un desastre. Podrían simplemente encontrar a un usuario con credenciales de administrador y comprometer todo el sistema o el sitio. Y dado que utilizarían nombres de usuario y contraseñas correctos, es posible que la seguridad interna no detecte la intrusión o no la detecte mucho después de que se haya producido el daño.
Facilitar a los atacantes el robo de contraseñas almacenadas en texto plano también perjudica a los usuarios, ya que muchas personas reutilizan las contraseñas. Debido a que hemos hecho que sea tan difícil crear contraseñas, muchas personas recurren a reutilizar las que pueden recordar en varios sitios. Si un atacante pone en peligro un archivo de contraseñas, es casi seguro que intentará acceder a otros sistemas con el mismo nombre y contraseña, lo que expone a los usuarios a un gran riesgo de cometer delitos secundarios.
Es relativamente fácil almacenar accidentalmente contraseñas en texto plano o no darse cuenta de que esto podría causar problemas importantes en el futuro. Por ejemplo, el siguiente código es un método común que se emplea para almacenar contraseñas al definir un recurso de AWS mediante plantillas de Terraform:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «s3.cr3t.admin.p2ss»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la contraseña utilizada para administrar la instancia de base de datos MySQL en AWS se almacena en texto sin formato. Esto significa que cualquier persona con acceso al repositorio de código fuente puede leerlo o incluso copiarlo.
La protección de las contraseñas varía según el marco, pero existen métodos de protección para todas las plataformas. Por ejemplo, la contraseña de MySQL se puede almacenar en un almacenamiento seguro como AWS Secrets Manager:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «$ {data.aws_secretsmanager_secret_version.password.secret_string}»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la plantilla de Terraform obtendrá la contraseña del servicio AWS Secrets Manager y nunca se almacenará en texto plano en los archivos de plantilla.
Proteger las contraseñas evitando el almacenamiento de texto sin formato
Las contraseñas son las claves de tu reino y nunca deben guardarse en texto plano. Ni siquiera las personas que forman parte de una organización deberían tener acceso a un repositorio de contraseñas grande y desprotegido, ni tampoco debería ser un protocolo empresarial aceptado (hoy en día hay muchos gestores de contraseñas que permiten compartir credenciales cifradas, ¡sin excusas!). También existe el peligro de que personas con información privilegiada malintencionadas husmeen los archivos y accedan a sitios donde no deberían.
Y con un ataque externo, imagínese el golpe por partida doble que sería posible si se descubre una puerta trasera a su base de datos mediante algo tan simple como una vulnerabilidad de inyección de SQL, y ellos también obtienen acceso al directorio donde están almacenadas las contraseñas. ¿Cree que son demasiados pasos plagados de errores como para llevarlos a buen puerto? Lamentablemente, este escenario exacto ocurrió en La violación de Sony en 2011. Más de un millón de contraseñas de clientes se almacenaron en texto plano, y el grupo de hackers de Lulzsec accedió a ellas y a muchas más mediante un ataque común de inyección de SQL.
Todas las contraseñas deben estar protegidas por las defensas disponibles en el marco de soporte. Para Terraform, las contraseñas nunca deben almacenarse en archivos de plantilla. Se recomienda utilizar un almacenamiento seguro como AWS Secrets Manager o Azure Key Vault, según el proveedor de infraestructura.
Obligar a los usuarios a crear contraseñas seguras es una buena idea, pero también debes hacer tu parte en el backend. Mantener las contraseñas fuera del almacenamiento de texto sin formato contribuirá en gran medida a proteger a los usuarios y los sistemas. El principal peligro del almacenamiento de contraseñas en texto plano es el deficiente control de acceso; básicamente, cualquiera puede verlas. Es imprescindible (especialmente en un entorno de iAC, en el que, de repente, más personas tienen acceso a la información confidencial) que se controlen adecuadamente y que solo se conceda el acceso a aquellos que absolutamente lo necesitan.
Eche un vistazo a la Secure Code Warrior páginas de blog 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 otras fallas y vulnerabilidades de seguridad. También puedes prueba un desafío iAC de demostración dentro de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

点击下方链接,下载此资源的PDF文件。
Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
查看报告预约演示Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。
马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。
Cuando se trata de implementar una infraestructura segura como código en su propia organización, ¿cómo le va? Puede que sea una especie de curva de aprendizaje, pero aprender los entresijos será una gran oportunidad para mejorar tus habilidades y destacar entre tus compañeros, y mantenga seguros más datos de los usuarios finales.
Antes de comenzar con el siguiente capítulo de nuestra última serie Coders Conquer Security, me gustaría invitarlos a jugar un desafío gamificado sobre la vulnerabilidad del almacenamiento de datos confidenciales; juegue ahora y elija entre Kubernetes, Terraform, Ansible, Docker o CloudFormation:
¿Cómo fue eso? Si tus conocimientos necesitan algo de trabajo, sigue leyendo:
La clave de la mayoría de la seguridad informática en estos días son las contraseñas. Incluso si se emplean otros métodos de seguridad, como la autenticación de dos factores o la biometría, la mayoría de las organizaciones siguen empleando la seguridad basada en contraseñas como un elemento de su protección. Para muchas empresas, las contraseñas se utilizan exclusivamente.
Usamos tanto las contraseñas que incluso tenemos reglas sobre cómo crearlas. Se supone que esto las hace menos vulnerables a los ataques de fuerza bruta o incluso a las conjeturas descabelladas. Por supuesto, algunas personas todavía usan contraseñas débiles, como lo demuestra un reciente informe de NordPass. Cuesta creer que en 2020 la gente siga usando 12345, así como un montón de otras palabras que se pueden adivinar, como chocolate, contraseña y Dios, para proteger sus activos más confidenciales.
Siempre habrá quienes no quieran usar contraseñas seguras, pero la mayoría de las organizaciones profesionales obligan a los usuarios a crear sus palabras o frases de acceso de ciertas maneras. Ya todos conocemos las reglas según las cuales las contraseñas deben tener al menos ocho caracteres y estar compuestas por letras mayúsculas y minúsculas, con al menos un número y un carácter especial.
Lo malo es que, incluso si los usuarios respetan las reglas para crear contraseñas más seguras, es posible que no sirva de nada si todas se almacenan en texto plano. ¡La contraseña 12345 es tan mala como la de Nuts53! Spike&dog12 si un hacker puede leer todo el archivo de contraseñas.
¿Por qué es peligroso almacenar contraseñas en texto plano?
Almacenar las contraseñas en texto plano es malo porque pone en riesgo tanto al sistema como a los usuarios. Evidentemente, conseguir que un pirata informático pueda encontrar y leer todas y cada una de las contraseñas utilizadas para acceder a un sistema sería un desastre. Podrían simplemente encontrar a un usuario con credenciales de administrador y comprometer todo el sistema o el sitio. Y dado que utilizarían nombres de usuario y contraseñas correctos, es posible que la seguridad interna no detecte la intrusión o no la detecte mucho después de que se haya producido el daño.
Facilitar a los atacantes el robo de contraseñas almacenadas en texto plano también perjudica a los usuarios, ya que muchas personas reutilizan las contraseñas. Debido a que hemos hecho que sea tan difícil crear contraseñas, muchas personas recurren a reutilizar las que pueden recordar en varios sitios. Si un atacante pone en peligro un archivo de contraseñas, es casi seguro que intentará acceder a otros sistemas con el mismo nombre y contraseña, lo que expone a los usuarios a un gran riesgo de cometer delitos secundarios.
Es relativamente fácil almacenar accidentalmente contraseñas en texto plano o no darse cuenta de que esto podría causar problemas importantes en el futuro. Por ejemplo, el siguiente código es un método común que se emplea para almacenar contraseñas al definir un recurso de AWS mediante plantillas de Terraform:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «s3.cr3t.admin.p2ss»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la contraseña utilizada para administrar la instancia de base de datos MySQL en AWS se almacena en texto sin formato. Esto significa que cualquier persona con acceso al repositorio de código fuente puede leerlo o incluso copiarlo.
La protección de las contraseñas varía según el marco, pero existen métodos de protección para todas las plataformas. Por ejemplo, la contraseña de MySQL se puede almacenar en un almacenamiento seguro como AWS Secrets Manager:
recurso «aws_db_instance» «predeterminado» {
motor = «mysql»
almacenamiento_asignado = 10
clase_instancia = «db.t2.micro»
nombre de usuario = «admin»
contraseña = «$ {data.aws_secretsmanager_secret_version.password.secret_string}»
db_subnet_group_name = aws_db_subnet_group.default.name
vpc_security_group_ids = [aws_security_group.default.id]
}
En ese ejemplo, la plantilla de Terraform obtendrá la contraseña del servicio AWS Secrets Manager y nunca se almacenará en texto plano en los archivos de plantilla.
Proteger las contraseñas evitando el almacenamiento de texto sin formato
Las contraseñas son las claves de tu reino y nunca deben guardarse en texto plano. Ni siquiera las personas que forman parte de una organización deberían tener acceso a un repositorio de contraseñas grande y desprotegido, ni tampoco debería ser un protocolo empresarial aceptado (hoy en día hay muchos gestores de contraseñas que permiten compartir credenciales cifradas, ¡sin excusas!). También existe el peligro de que personas con información privilegiada malintencionadas husmeen los archivos y accedan a sitios donde no deberían.
Y con un ataque externo, imagínese el golpe por partida doble que sería posible si se descubre una puerta trasera a su base de datos mediante algo tan simple como una vulnerabilidad de inyección de SQL, y ellos también obtienen acceso al directorio donde están almacenadas las contraseñas. ¿Cree que son demasiados pasos plagados de errores como para llevarlos a buen puerto? Lamentablemente, este escenario exacto ocurrió en La violación de Sony en 2011. Más de un millón de contraseñas de clientes se almacenaron en texto plano, y el grupo de hackers de Lulzsec accedió a ellas y a muchas más mediante un ataque común de inyección de SQL.
Todas las contraseñas deben estar protegidas por las defensas disponibles en el marco de soporte. Para Terraform, las contraseñas nunca deben almacenarse en archivos de plantilla. Se recomienda utilizar un almacenamiento seguro como AWS Secrets Manager o Azure Key Vault, según el proveedor de infraestructura.
Obligar a los usuarios a crear contraseñas seguras es una buena idea, pero también debes hacer tu parte en el backend. Mantener las contraseñas fuera del almacenamiento de texto sin formato contribuirá en gran medida a proteger a los usuarios y los sistemas. El principal peligro del almacenamiento de contraseñas en texto plano es el deficiente control de acceso; básicamente, cualquiera puede verlas. Es imprescindible (especialmente en un entorno de iAC, en el que, de repente, más personas tienen acceso a la información confidencial) que se controlen adecuadamente y que solo se conceda el acceso a aquellos que absolutamente lo necesitan.
Eche un vistazo a la Secure Code Warrior páginas de blog 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 otras fallas y vulnerabilidades de seguridad. También puedes prueba un desafío iAC de demostración dentro de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
目录
Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。
预约演示下载



%20(1).avif)
.avif)
