天天看点

国家注册软件安全开发人员_软件开发人员的3个安全提示

国家注册软件安全开发人员

每个开发人员都知道遵循最佳安全实践的重要性。 但是我们经常走捷径,也许是因为我们必须努力工作,直到这些安全措施陷入困境。不幸的是,这通常需要像看到严重的安全事故那样,在我们的大脑中留下不可磨灭的烙印。

在我作为系统管理员的职业生涯中,曾见过许多不良安全实践的实例,但在此我要描述的三个实例是每个软件开发人员都应避免的基本知识。 重要的是要注意,我已经看到大型公司和经验丰富的开发人员犯下的每一个错误,因此您不能将这些错误归咎于新手初级工程师。

[下载DevSecOps入门指南]

1.不要加密密码,请对其进行哈希处理。

在我职业生涯的早期,我曾在一家使用管理系统的公司工作,该系统拥有一些非常重要的信息。 有一天,我被要求对网络和存储我们关键信息的软件进行安全审查。 我花了几分钟时间才决定启动Wireshark,以查看网络中正在运行的流量。

我使用本地工作站,登录到信息系统,发现有些奇怪。 即使在SSL泛滥之前,我也没想到会以纯文本形式包含包含“用户名”和“密码”之类的字节的数据。 经过仔细检查,似乎系统正在通过网络发送我的用户名和一个随机字符串(不是我的密码)。 我不能让它休息。 我尝试再次登录,但是这次我故意输入了错误的密码。 我并没有全部更改,只是一个字符。

完全不同,而不仅仅是两个字符不同。 哎呀,即使是良好的加密方案也可以做到这一点。 但是,这根本没有做到这一点。 我尝试了两个错误的密码。

带着几张纸和一支铅笔,我花了接下来的两个小时来弄清楚解密方案。 在这两个小时结束时,我有一个Python脚本,可以采取任何的“加密”的密码和解密它揭示了原始密码,任何一个人都不应该永远是能够做到的。 我敢肯定,梦this以求的加密方案的人永远不会想到一个手几个小时的人会坐下来解决问题,但是我做到了。

为什么? 因为我可以。

如果您必须存储密码以进行比较,请不要对它们进行加密,因为总会有人找到解密算法或密钥。 哈希没有直接的反向,这意味着除非有人已经拥有一个具有从纯文本到哈希的映射的表(或者他们只是猜测),否则任何人都无法反向。 知道散列机制并不会背叛数据的完整性,而知道加密方案和密钥将会出卖。

2.不要在软件中放置秘密后门。

作为第三方软件推出的一部分,我正在支持一些告诉我他们的登录无效的用户。 这是由供应商提供的付费服务,但是在困扰通常是最烦人的支持电话之一(“我的登录无效”)之前,我想我会自己尝试一下。 没错,登录无效。

该系统是一个基于Web的学习管理平台,我们为其中的一小部分功能付费。 当我在登录页面上浏览更多内容时,有一些东西引起了我的注意。 其中一个字中的一个字符看起来有所不同。 也许是不同的字体,形状略有不同的“ o”。 我就是我,我在源代码视图中查看了该页面,并注意到有一个与此特定字母关联的链接。 该链接被有意隐藏。 将鼠标悬停在其上时,鼠标光标没有变化。

我小心翼翼地将该神秘链接加载到新的浏览器窗口中。 突然之间,我遇到了一个屏幕,其中详细描述了一整套计算机,使我可以完全控制它们的功能以及关闭它们,重新启动它们,拍摄屏幕快照等功能。 我打电话给软件供应商,并要求与IT人士交谈。 经过几圈之后,我终于找到了一个知道我在说什么的人。

“哦耶!” 他说。 “我们把它放在那里很容易访问,直到您找到它为止,没人能找到。我们会立即将其删除。” 在结束通话之前,他问了我最后一个问题:“为什么要开始研究HTML?”

我的回答很简单:“因为我可以。”

在任何系统中都添加一些奇特的后门访问权限是不值得的,因为您可以押注有人会找到它的底价。 无论多么晦涩难懂,代码分析(通常只是探测和戳戳)通常会产生最令人惊讶和有趣的结果。

3.在每个页面上(不仅在登录页面上)对用户进行身份验证。

在我职业生涯的某一时刻,我参与了一个由经验丰富的开发人员实施的软件开发项目。 我对这个特定的应用感到有些不满意,因此我告诉经理,我们需要对代码进行深入的安全审查。 无论如何,我被要求看一下我能找到什么。 我开始使用该应用程序,登录并查看了一些数据。 然后我发现了一些非常有趣的东西。

如果我将其中一个URL标记为书签,则可以将其复制并粘贴到另一个浏览器中,然后再繁荣起来! 我会在那里,而无需登录。我问开发人员,“为什么不检查每个页面上的登录名?如果我只是在系统中进一步输入页面的URL,则无需登录即可到达那里。在。” 他问:“你为什么要这么做?”

我回答:“因为我可以。”

不要遗漏任何东西

即使是经验丰富的开发人员也可能犯这些错误。 他们认为有人永远不会尝试深入研究他们没有真正访问权限的系统。 问题是人们会刺脚,他们会戳。 我只是涉足安全领域,我想在这里传达的首要建议是:不要让任何事情碰运气。 像我这样的人在那里,他们喜欢深入研究事物,看看他们为什么以及如何工作。 但是,也有很多人会挖掘利用您的缺陷和漏洞。

为什么? 因为他们可以!

下载DevSecOps入门指南

接下来要读什么

翻译自: https://opensource.com/article/17/6/3-security-musts-software-developers

国家注册软件安全开发人员