编码员征服安全基础设施即代码系列。不安全的密码学

2020年5月25日发布
作者:马蒂亚斯-马杜,博士
案例研究

编码员征服安全基础设施即代码系列。不安全的密码学

2020年5月25日发布
作者:马蒂亚斯-马杜,博士
查看资源
查看资源

精明的组织正在接受基础设施即代码的概念,正是像你这样的开发人员可以在制作安全代码方面做出重大贡献,甚至在构建应用程序之外。起初,这似乎是一条漫长的道路,但为了在同行中脱颖而出,这个旅程是值得的。

在我们开始讨论我们最新的Coders Conquer Security系列的下一章之前,我想邀请你玩一个敏感数据存储漏洞的游戏化挑战;现在就玩,从Kubernetes、Terraform、Ansible、Docker或CloudFormation中选择。

那是怎样的?如果你的知识需要一些努力,请继续阅读。

如今,在休息时对密码、个人信息和财务记录等关键数据进行加密是任何网络安全防御的基石。在很多方面,它既是最后一道防线,也是最好的保护方式之一。这是因为,即使攻击者能够突破其他防线并获得关键文件,只要它们被适当地散列和存储,就不会对他们有太大的好处。

这也是对恶意内部人员的坚实的二级保护,因为加密文件可以与网络的其他部分有单独的密钥或密码。在这种情况下,像系统管理员或破坏了管理员证书的黑客可能能够浏览到受保护的目录,但如果加密密钥被保存在其他地方,他们仍然无法解锁在那里发现的加密文件。

当然,所有的加密保护方法都依赖于拥有强大的加密标准,即使是最强大的计算机也无法破解。

为什么不安全的密码学是危险的?

谈到计算机技术,能够创建强大的加密算法和破解算法的能力已经竞争了很长时间。早在1977年,美国联邦政府就开发了数据加密标准(DES),这是一种56位的算法,鉴于计算机的相对功率,在当时被认为是安全的。

但是,计算机在不断发展,人们找到了将它们联网协作的方法,以进一步增加它们的力量。1999年,电子前线基金会与Distributed.net合作,在短短22小时内公开破解了一份受DES保护的文件的加密。突然间,任何受DES加密保护的文件都不再安全了。

信不信由你,一些组织仍然用DES算法或类似的弱加密保护来保护他们的重要文件。虽然1999年需要一个分布式网络来破解56位加密,但今天几乎任何足够强大的独立计算机只要有一点时间就能做到。黑客们还创造了由图形处理器单元(GPU)组成的专用破解机。这些GPU在这项任务上非常出色,获取和本地联网的成本相对较低。

如果你今天选择用不安全或弱的加密算法来保护你的重要文件,那么不用多久,大多数黑客就可以破解这些文件并使其可读。如果你遭受了数据泄露,那么你必须假设,如果文件没有得到充分的保护,最终会被破坏。

例如,下面的Kubernetes代码片段在NGINX ingress控制器层面使用了一种弱加密算法来保护信息。

apiVersion: v1
kind:ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers:DES-CBC3-SHA
ssl-protocols:"TLSv1.2"

在这个例子中,DES密码套件被用来保护信息。然而,攻击者可以轻易地破译它并获取敏感信息。

建议使用强密码算法。在下面的Kubernetes例子中,强密码套件被用来保护NGINX ingress控制器级别的信息。

apiVersion: v1
kind:ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers:|
ecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:
ecdhe-ecdsa-chacha20-poly1305:ecdhe-rsa-chacha20-poly1305:
ecdhe-ecdsa-es128-gcm-sha256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
ssl-protocols:"TLSv1.2"

在这个例子中,为了避免攻击者获得潜在的敏感信息,已经使用了一套强大的密码器。

用强大的加密技术保护关键信息

如今有了几乎无法破解的强大加密技术。2001年,美国国家标准与技术研究所(NIST)创造了一种新的加密技术来取代DES。它被称为高级加密标准(AES),使用三种不同的密钥长度,即128、192或256比特。256位的AES加密是最安全的,尽管鉴于今天的技术,所有这三种加密都被认为是几乎完全不可破解的。用超级计算机进行的测试发现,要破解大多数AES保护的文件,需要数千年的持续工作。

为了适当地保护关键文件,开发人员应首先识别它们。没有必要对网络上的所有文件进行加密,因为这样做可能会因为不断的加密和解密过程而降低操作速度。但像人事记录、客户数据和财务信息这样的关键文件需要充分的保护。从本质上讲,这是一个在安全和拥有一个可行的系统之间的平衡行为。

这些数据应该按照AES标准之一进行加密,对于不应该落入坏人手中的真正关键信息,甚至可以达到256位加密。

还有一点需要考虑的是,增加加密就像给网站增加更多的密码。这意味着,授权用户将需要跟踪加密密钥。为了防止这成为工作流程的瓶颈,考虑实施一个密钥管理平台来跟踪这些密钥并保证其安全。即使你最终没有使用集中的密钥管理,也要确保所有的密钥和密码都受到保护,以确保未经授权的用户不能进入你最安全的数据库。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和你的客户免受其他安全缺陷的蹂躏。你也可以在Secure Code Warrior 培训平台中尝试演示IaC挑战,以保持你所有的网络安全技能得到磨练和更新。


查看资源
查看资源

作者

马蒂亚斯-马杜博士

马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。

马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

编码员征服安全基础设施即代码系列。不安全的密码学

2020年5月25日发布
作者:马蒂亚斯-马杜,博士

精明的组织正在接受基础设施即代码的概念,正是像你这样的开发人员可以在制作安全代码方面做出重大贡献,甚至在构建应用程序之外。起初,这似乎是一条漫长的道路,但为了在同行中脱颖而出,这个旅程是值得的。

在我们开始讨论我们最新的Coders Conquer Security系列的下一章之前,我想邀请你玩一个敏感数据存储漏洞的游戏化挑战;现在就玩,从Kubernetes、Terraform、Ansible、Docker或CloudFormation中选择。

那是怎样的?如果你的知识需要一些努力,请继续阅读。

如今,在休息时对密码、个人信息和财务记录等关键数据进行加密是任何网络安全防御的基石。在很多方面,它既是最后一道防线,也是最好的保护方式之一。这是因为,即使攻击者能够突破其他防线并获得关键文件,只要它们被适当地散列和存储,就不会对他们有太大的好处。

这也是对恶意内部人员的坚实的二级保护,因为加密文件可以与网络的其他部分有单独的密钥或密码。在这种情况下,像系统管理员或破坏了管理员证书的黑客可能能够浏览到受保护的目录,但如果加密密钥被保存在其他地方,他们仍然无法解锁在那里发现的加密文件。

当然,所有的加密保护方法都依赖于拥有强大的加密标准,即使是最强大的计算机也无法破解。

为什么不安全的密码学是危险的?

谈到计算机技术,能够创建强大的加密算法和破解算法的能力已经竞争了很长时间。早在1977年,美国联邦政府就开发了数据加密标准(DES),这是一种56位的算法,鉴于计算机的相对功率,在当时被认为是安全的。

但是,计算机在不断发展,人们找到了将它们联网协作的方法,以进一步增加它们的力量。1999年,电子前线基金会与Distributed.net合作,在短短22小时内公开破解了一份受DES保护的文件的加密。突然间,任何受DES加密保护的文件都不再安全了。

信不信由你,一些组织仍然用DES算法或类似的弱加密保护来保护他们的重要文件。虽然1999年需要一个分布式网络来破解56位加密,但今天几乎任何足够强大的独立计算机只要有一点时间就能做到。黑客们还创造了由图形处理器单元(GPU)组成的专用破解机。这些GPU在这项任务上非常出色,获取和本地联网的成本相对较低。

如果你今天选择用不安全或弱的加密算法来保护你的重要文件,那么不用多久,大多数黑客就可以破解这些文件并使其可读。如果你遭受了数据泄露,那么你必须假设,如果文件没有得到充分的保护,最终会被破坏。

例如,下面的Kubernetes代码片段在NGINX ingress控制器层面使用了一种弱加密算法来保护信息。

apiVersion: v1
kind:ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers:DES-CBC3-SHA
ssl-protocols:"TLSv1.2"

在这个例子中,DES密码套件被用来保护信息。然而,攻击者可以轻易地破译它并获取敏感信息。

建议使用强密码算法。在下面的Kubernetes例子中,强密码套件被用来保护NGINX ingress控制器级别的信息。

apiVersion: v1
kind:ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers:|
ecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:
ecdhe-ecdsa-chacha20-poly1305:ecdhe-rsa-chacha20-poly1305:
ecdhe-ecdsa-es128-gcm-sha256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
ssl-protocols:"TLSv1.2"

在这个例子中,为了避免攻击者获得潜在的敏感信息,已经使用了一套强大的密码器。

用强大的加密技术保护关键信息

如今有了几乎无法破解的强大加密技术。2001年,美国国家标准与技术研究所(NIST)创造了一种新的加密技术来取代DES。它被称为高级加密标准(AES),使用三种不同的密钥长度,即128、192或256比特。256位的AES加密是最安全的,尽管鉴于今天的技术,所有这三种加密都被认为是几乎完全不可破解的。用超级计算机进行的测试发现,要破解大多数AES保护的文件,需要数千年的持续工作。

为了适当地保护关键文件,开发人员应首先识别它们。没有必要对网络上的所有文件进行加密,因为这样做可能会因为不断的加密和解密过程而降低操作速度。但像人事记录、客户数据和财务信息这样的关键文件需要充分的保护。从本质上讲,这是一个在安全和拥有一个可行的系统之间的平衡行为。

这些数据应该按照AES标准之一进行加密,对于不应该落入坏人手中的真正关键信息,甚至可以达到256位加密。

还有一点需要考虑的是,增加加密就像给网站增加更多的密码。这意味着,授权用户将需要跟踪加密密钥。为了防止这成为工作流程的瓶颈,考虑实施一个密钥管理平台来跟踪这些密钥并保证其安全。即使你最终没有使用集中的密钥管理,也要确保所有的密钥和密码都受到保护,以确保未经授权的用户不能进入你最安全的数据库。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和你的客户免受其他安全缺陷的蹂躏。你也可以在Secure Code Warrior 培训平台中尝试演示IaC挑战,以保持你所有的网络安全技能得到磨练和更新。


我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。