不安全的加密存储和安全 | .Secure Code Warrior

发布日期:2019年03月07日
作者:Jaap Karan Singh
案例研究

不安全的加密存储和安全 | .Secure Code Warrior

发布日期:2019年03月07日
作者:Jaap Karan Singh
查看资源
查看资源

数据是企业的命脉。它是企业生存、赚钱和为客户提供服务所需的基础信息。在这个越来越注重数字的社会中,开发人员作为这些珍贵信息的管理人负有巨大的责任。当开发人员不保护机密数据时,企业就会成为不安全的加密存储的牺牲品。

让我们来看看如何安全地存储数据,以及当你不这样做的时候会发生什么。

了解不安全的加密存储

当攻击者获得一个系统的访问权时,他们通常在寻找有价值的数据。你知道--那种可以用来接管某人的账户,或用来执行另一次攻击的数据。有时,这类数据只是在黑市上出售,以获得快速现金。

不安全的加密存储不是像SQL注入或XSS那样的单一漏洞。它是没有以你需要保护的方式保护你应该保护的数据的后果。

敏感信息必须得到保护。当你以明文方式存储密码和信用卡信息时,你是在用你的业务玩俄罗斯轮盘赌

如果一个黑客闯入你的数据库并使用SQL注入XML注入或任何其他攻击方式窃取数据,他们就会拥有一切。然而,如果你对你的数据进行加密,他们将更难真正利用这些数据。

值得注意的是,违规行为并不总是由恶意的外部人员造成。如果数据没有被加密,一个无赖的内部人员也可以轻松地窃取数据。你公司的员工不需要看到数据库中的一切,不充分的访问控制或暴露的敏感数据会导致彻底的盗窃。

还要记住,所有的加密都是不一样的。使用错误的加密算法与完全不使用它们一样危险。已知的薄弱算法将对精明的攻击者提供很少的阻力。

为什么不安全的加密存储是危险的?

许多公司被另一个漏洞(如SQL注入)所破坏,最终无法隐藏被盗的数据。这使得一个可怕的情况变得更加糟糕。

  • 成人交友网站被攻破,泄露了4.12亿个账户。这些账户的密码是用弱的SHA-1散列算法保护的。他们在一个月内就被攻击者轻易破解。
  • Uber被攻破,泄露了5700万用户记录和60万司机记录。个人信息被丢失。发生这种情况是因为Uber的GitHub账户有一个包含Uber的AWS账户用户名和密码的存储库被公开......不是一个好主意。Uber的估值下降了200亿美元,主要是由于这一漏洞。
  • 索尼的PlayStation网络被攻破,泄露了7700万个账户。其中1200万个账户包含未加密的信用卡信息。索尼后来就该漏洞的1500万美元集体诉讼案达成和解。

不适当地存储敏感数据显然会有严重的后果。

索尼被起诉,这是一个重大的惩罚。然而,即使你没有被起诉,声誉和监管方面的损害对企业来说可能是灾难性的。

打败不安全的加密存储

开发人员如何防止类似上述的数据泄露事件发生?

第一步是首先要确定哪些数据需要加密。毕竟,不是所有的数据都是一样的。对你的数据进行分类,然后在适当的地方使用加密。

一般来说,像社会安全号码、密码和信用卡细节等个人信息必须得到保护。根据你的业务性质,你可能需要保护健康记录或其他被视为隐私的信息。

一旦你知道哪些数据需要保护,下一步就是使用正确的工具来确保其安全性。一般来说,坚持使用经得起时间考验的、被认为是强大的加密算法是很好的。

无论怎样,都不要自己编写加密函数。它们很可能包含攻击者可以用来破解加密的缺陷。

要对社会安全号码或信用卡数据等数据进行加密,请使用AES。AES有不同的操作模式,在撰写本文时,强烈推荐的模式是伽罗瓦/计数器模式(GCM)。另一个提示是,对于要求你选择填充类型的库,要确保不使用填充物。

对于密码,使用散列算法来散列密码,因为散列算法不能被逆转。对于一个强散列值,攻击者无法检索到创建该值的原始文本。Argon2Bcrypta被认为是散列密码的可靠选择。请记住,在散列前一定要用随机值对密码进行 "加盐",这样同一密码就不会有两个相同的散列值。

这些函数将为所有主要的编程语言/框架提供实现。请查阅你的特定语言或框架的文档,了解如何有效地使用它们。

密钥的生成、存储和管理是密码学的重要组成部分。管理不善的密钥可能会被暴露,并被用来解密你的数据。一些框架有助于密钥管理,如ASP.NET的数据保护API。关于密钥管理的一般最佳实践,请查看OWASP的小抄。

安全地存储你的数据是你防止昂贵的、令人尴尬的数据泄露的方法。在最坏的情况下,如果攻击者能够窃取你的数据,他们将更难看到或使用它来达到任何邪恶的目的。

将你的数据隐藏在众目睽睽之下

让我们快速回顾一下如何保护你的数据。

  • 对你的数据进行分类,以便你知道什么需要保护
  • 使用强大的、经过行业审核的算法来加密敏感数据
  • 使用强大的单向哈希值存储你的密码

要进一步研究这个问题,请查看我们的学习资源。当你准备好深入学习和练习时,请用你喜欢的语言试试我们的平台。我们涵盖了很多内容!

有了这些工具,你可以防止你的数据被盗,并防止你的公司损失金钱和损害其声誉。

准备好现在就找到并修复不安全的加密存储了吗?前往竞技场,测试你的技能 [从这里开始]

查看资源
查看资源

作者

Jaap Karan Singh

想要更多吗?

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

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

查看博客
想要更多吗?

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

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

资源中心

不安全的加密存储和安全 | .Secure Code Warrior

发布日期:2019年03月07日
作者:Jaap Karan Singh

数据是企业的命脉。它是企业生存、赚钱和为客户提供服务所需的基础信息。在这个越来越注重数字的社会中,开发人员作为这些珍贵信息的管理人负有巨大的责任。当开发人员不保护机密数据时,企业就会成为不安全的加密存储的牺牲品。

让我们来看看如何安全地存储数据,以及当你不这样做的时候会发生什么。

了解不安全的加密存储

当攻击者获得一个系统的访问权时,他们通常在寻找有价值的数据。你知道--那种可以用来接管某人的账户,或用来执行另一次攻击的数据。有时,这类数据只是在黑市上出售,以获得快速现金。

不安全的加密存储不是像SQL注入或XSS那样的单一漏洞。它是没有以你需要保护的方式保护你应该保护的数据的后果。

敏感信息必须得到保护。当你以明文方式存储密码和信用卡信息时,你是在用你的业务玩俄罗斯轮盘赌

如果一个黑客闯入你的数据库并使用SQL注入XML注入或任何其他攻击方式窃取数据,他们就会拥有一切。然而,如果你对你的数据进行加密,他们将更难真正利用这些数据。

值得注意的是,违规行为并不总是由恶意的外部人员造成。如果数据没有被加密,一个无赖的内部人员也可以轻松地窃取数据。你公司的员工不需要看到数据库中的一切,不充分的访问控制或暴露的敏感数据会导致彻底的盗窃。

还要记住,所有的加密都是不一样的。使用错误的加密算法与完全不使用它们一样危险。已知的薄弱算法将对精明的攻击者提供很少的阻力。

为什么不安全的加密存储是危险的?

许多公司被另一个漏洞(如SQL注入)所破坏,最终无法隐藏被盗的数据。这使得一个可怕的情况变得更加糟糕。

  • 成人交友网站被攻破,泄露了4.12亿个账户。这些账户的密码是用弱的SHA-1散列算法保护的。他们在一个月内就被攻击者轻易破解。
  • Uber被攻破,泄露了5700万用户记录和60万司机记录。个人信息被丢失。发生这种情况是因为Uber的GitHub账户有一个包含Uber的AWS账户用户名和密码的存储库被公开......不是一个好主意。Uber的估值下降了200亿美元,主要是由于这一漏洞。
  • 索尼的PlayStation网络被攻破,泄露了7700万个账户。其中1200万个账户包含未加密的信用卡信息。索尼后来就该漏洞的1500万美元集体诉讼案达成和解。

不适当地存储敏感数据显然会有严重的后果。

索尼被起诉,这是一个重大的惩罚。然而,即使你没有被起诉,声誉和监管方面的损害对企业来说可能是灾难性的。

打败不安全的加密存储

开发人员如何防止类似上述的数据泄露事件发生?

第一步是首先要确定哪些数据需要加密。毕竟,不是所有的数据都是一样的。对你的数据进行分类,然后在适当的地方使用加密。

一般来说,像社会安全号码、密码和信用卡细节等个人信息必须得到保护。根据你的业务性质,你可能需要保护健康记录或其他被视为隐私的信息。

一旦你知道哪些数据需要保护,下一步就是使用正确的工具来确保其安全性。一般来说,坚持使用经得起时间考验的、被认为是强大的加密算法是很好的。

无论怎样,都不要自己编写加密函数。它们很可能包含攻击者可以用来破解加密的缺陷。

要对社会安全号码或信用卡数据等数据进行加密,请使用AES。AES有不同的操作模式,在撰写本文时,强烈推荐的模式是伽罗瓦/计数器模式(GCM)。另一个提示是,对于要求你选择填充类型的库,要确保不使用填充物。

对于密码,使用散列算法来散列密码,因为散列算法不能被逆转。对于一个强散列值,攻击者无法检索到创建该值的原始文本。Argon2Bcrypta被认为是散列密码的可靠选择。请记住,在散列前一定要用随机值对密码进行 "加盐",这样同一密码就不会有两个相同的散列值。

这些函数将为所有主要的编程语言/框架提供实现。请查阅你的特定语言或框架的文档,了解如何有效地使用它们。

密钥的生成、存储和管理是密码学的重要组成部分。管理不善的密钥可能会被暴露,并被用来解密你的数据。一些框架有助于密钥管理,如ASP.NET的数据保护API。关于密钥管理的一般最佳实践,请查看OWASP的小抄。

安全地存储你的数据是你防止昂贵的、令人尴尬的数据泄露的方法。在最坏的情况下,如果攻击者能够窃取你的数据,他们将更难看到或使用它来达到任何邪恶的目的。

将你的数据隐藏在众目睽睽之下

让我们快速回顾一下如何保护你的数据。

  • 对你的数据进行分类,以便你知道什么需要保护
  • 使用强大的、经过行业审核的算法来加密敏感数据
  • 使用强大的单向哈希值存储你的密码

要进一步研究这个问题,请查看我们的学习资源。当你准备好深入学习和练习时,请用你喜欢的语言试试我们的平台。我们涵盖了很多内容!

有了这些工具,你可以防止你的数据被盗,并防止你的公司损失金钱和损害其声誉。

准备好现在就找到并修复不安全的加密存储了吗?前往竞技场,测试你的技能 [从这里开始]

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

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