所有文章 > 技术杂货铺 > 5 种不良编码习惯,导致源代码暴露
5 种不良编码习惯,导致源代码暴露

5 种不良编码习惯,导致源代码暴露

2020 年,数据泄露的平均成本为 386 万美元。您可以通过多种方式主动采取安全措施,防止这种情况发生在您身上。这样做的成本远低于数据泄露的成本。安全编码本身不需要花费任何费用。这是您的组织可以(并且应该)采用的一种思维方式和理念,以保护其资产。

通过提高对不良编码习惯的认识,您可以开始主动关注源代码的完整性。您准备好摆脱这些不良习惯并养成更好、更安全的习惯了吗?让我们开始吧。

什么是安全编码?

安全编码,有时也称为安全编程,涉及编写严格的代码,以主动防范潜在的安全漏洞。这些漏洞可能会暴露数据或以其他方式对系统造成损害。 

然而,安全编码不仅仅指编写好的代码。安全编码必须在安全的环境、安全的平台上开发。当然,在云计算时代,平台和软件等所有服务都必须正确配置,以防止违规。

安全编码

安全编码为何如此重要?

当组织发生重大安全漏洞时,他们并不总是披露安全漏洞的性质。这是因为即使他们负有责任,知道原因并已修复,但有关如何实现这一目标的信息对于未来的攻击者来说仍然是宝贵的知识。但很容易想象,不安全的编码可能导致这些问题的很大一部分,尤其是数据泄露。

数据泄露可能是最可怕、代价最高的安全漏洞。仅在 2020 年,就有超过 250 亿条记录被泄露或被盗,而据估计,2021 年的情况只会变得更糟。组织需要加强其安全协议,而安全编码是这些安全协议的核心。如果没有安全编码,所有其他安全协议都无法保护您最宝贵的资产。

来源:https://www.securecodewarrior.com/blog/we-need-heroes-to-secure-our-code-have-developers-got-what-it-takes

危害源代码完整性的五大行为

这里的重点是开发人员在职业生涯早期通常会采取的常见行为。如果不加以控制,这些行为可能会在近期或远期造成严重的维护和安全问题。确保组织中的所有开发人员都了解这些不良做法并学习如何避免它们。

1. 未经检查的复制代码

我听到过有人对复制粘贴式编程既嗤之以鼻,又大加赞扬。有时开发需要一些核心功能,而这些功能已经被其他开发人员编码了数万次。那么为什么不复制他们的工作,而不是从头开始编写呢?大多数时候,你肯定应该使用别人的作品,但你必须聪明地使用它。

了解你复制的代码。如果你决定复制代码,一定要通读并理解它。就像你审查同事的代码一样。永远不要盲目相信互联网上有人写出了足够好的代码并将其公开。验证一下。

尽可能使用库。在某种程度上,使用库比复制代码更可取。如果您需要一些字符串处理功能,那么将来可能需要更多这样的功能。使用处理字符串的库可能是您项目的一个很好的补充。当然,您不希望库膨胀。因此,您必须仔细选择要添加到项目中的库。如果您只需要一个函数,那么复制它可能比使用整个库更好。

2. 已弃用的、废弃的和可疑的库

市面上有很多糟糕的代码。有时,开源代码未经社区的适当审查就被打包到库中。这可能会导致代码存在安全漏洞,甚至没人愿意去发现,更不用说修复了。

使用库时,请确保它们是被广泛使用和受信任组织或大量开发人员监控的库。这些库应该得到维护并定期更新。如果该库十年来都没有更新过,那么在将其纳入安全项目之前,您需要检查整个代码库。否则,您就不能信任它。

3. 不受限制的存储库访问

在当今的环境下,人们倾向于信任开发人员,并允许他们不受限制地访问源代码存储库。这是一个重大的安全漏洞。开发人员不需要访问所有内容,他们只需要访问他们正在处理的代码区域,甚至可能不需要写入权限。

限制访问有时会减慢开发速度,但更多的时候它有助于保持代码的解耦和模块化。如果开发人员只能更改他们正在开发的模块,他们就被迫与项目的其余部分保持脱钩。即使不考虑安全性,这也是一件好事

无法访问整个源代码的员工造成破坏的能力非常有限,无论是出于恶意还是无能。但即使在受限访问策略下,当开发人员离开组织时,IT 也必须撤销对源代码存储库的访问权限。闲置未使用的凭据将导致问题发生。

4. 硬编码秘密

机密是提供应用程序到应用程序访问的任何在线凭证。它可以是 API 密钥、云凭证、加密密钥、数据库访问详细信息等等。缺乏经验的开发人员在初始开发时通常会在代码中使用纯文本机密。这些机密通常会被遗忘和遗留,从而导致潜在的泄漏。

托管在 GitHub 等公共云服务上的源代码很容易被恶意人员扫描和利用。在将代码上传到云端之前,请务必扫描代码以查找机密信息。

但即使源代码从未公开,大多数编译代码都可以被逆向工程。混淆可以帮助增加对编译代码进行逆向工程的难度。然而,最好以一种防止泄露的方式妥善存储机密。

5. 错误消息中暴露的信息

使用详细的错误消息来调试代码是开发人员的常见做法。但这些错误消息可能会向试图侵入您的软件的攻击者提供信息。错误消息需要对用户有所帮助,但不能提供任何有关代码如何工作的信息。

隐藏有关代码结构、数据结构和与其他软件的连接的信息。此外,确保捕获并处理异常。未捕获的异常通常会提供堆栈跟踪,其中包含攻击者可以利用的信息。捕获所有相关异常,不要抛出无法捕获的未经检查或运行时异常。

通过了解这些坏习惯以及如何养成更好的习惯,您已经在着手开发更安全的代码。有了这些知识,请注意您可能拥有的任何习惯,并记录下来,如果您认为它们可能会导致安全问题。让同事们注意到这一点,你可能会发现其他人也在做同样的事情。一起寻找解决方案并养成新习惯。如果其他人和你一起改变习惯,改变习惯就会容易得多。

文章来源:5 Bad Coding Habits That Leave Your Source Code Exposed

#你可能也喜欢这些API文章!