
WhiteSource的评论显示,哪种编程语言具有最大的安全漏洞。 反评级的赢家是C。 但这仅仅是故事的开始。
整个技术中充斥着安全漏洞。 从低层次上讲,这些是硬件错误。 英特尔漏洞和Spectre错误也是如此。 编程语言安全性方面的漏洞略高。 而且有很多!
最近,安全公司OpenSource WhiteSource在过去十年中以七种最常见的编程语言进行了漏洞研究。 该公司使用其语言安全性数据库来检测错误。 它包含来自多个来源的开源漏洞,例如国家漏洞数据库(NVD),安全说明,GitHub`a跟踪器和开源项目。
该公司确定了以下语言:C,Java,JavaScript,Python,Ruby,PHP和C ++。 这并不奇怪。 喜欢哪种语言的安全性错误最多。 大致来说,这是X。 检测到的漏洞中有50%以上。
正如Google的Linux Linux内核安全工程师Kees“ Case” Cook最近指出的那样:“ C是改进的汇编程序。 几乎是机器码。” 此外,“ C带来麻烦的行李,模糊的行为和其他弱点,导致安全漏洞和基础架构漏洞。”
但是,WhiteSource声称“您不能说C的安全性不如其他语言。 开源C代码中的大量漏洞可以由许多因素来解释。 首先,C语言的使用时间比我们探索的其他语言更长。 它编写的代码量最大。 它也是OpenSSL和Linux内核等重要基础结构背后的语言之一。 数量和中心位置的结合说明了许多已知的开源漏洞。”
WhiteSource抓住了重点。 但是,尽管进行了数十年的编程和C语言处理工作,但这种语言确实有很多方法可以很容易地使可怕的安全错误发生。 例如,C中有许多未定义行为的示例,这为各种麻烦开辟了机会。
同时,C ++在过去五年中以高度危险的漏洞而闻名。 在C ++中经常会发现困扰C了很长时间的缓冲区错误。
如果我们谈论哪种语言受保护程度最高或最受保护,这些数字并不能反映整体情况。
(图片来源:WhiteSource)话虽如此,JavaScript可能是最受欢迎的语言。 并且是唯一一个显示“在过去十年中漏洞数量持续增加”的漏洞。
WhiteSource强调在嘲讽JavaScript之前,请注意,这些结果具有误导性。 JavaScript中的大多数常见弱点枚举由指定目录的出口和很少使用和支持的JavaScript软件包的密码保护漏洞组成。
那么为什么会出现这些以及其他语言问题呢? 新的自动化程序(例如源代码分析工具)正在发现漏洞,否则这些漏洞将被忽略。
关于安全漏洞表现得很好的唯一语言是(鼓!)-Python。 是的,好老的人经常嘲笑Python。
几乎所有语言都构成了常规漏洞列表。 清单中的两个错误是最高的,在70%的情况下被报告:Crossite Scripting(XSS),也称为CWE-79和Invalidate Input Validation(CWE-20)。
其他常见错误:泄漏/泄露(CWE-200),越界目录(CWE-22)和CWE-264-权限,特权和访问控制。 后者最近已被其更具体,更紧密的关系-不当访问控制(CWE-284)所取代。
但是C真的是最糟糕的,而Python是最好的吗? WhiteSource认为这是一个太简单的结论:“尽管游戏”我的编程语言比您的编程语言安全,“绝对是一种有趣的消磨时间的方式……答案似乎并不能帮助您创建更具创新性或安全性的软件。”
相反,您应该花更多的时间“保持在开源漏洞的最前沿,了解您和您的团队使用的编程语言的优缺点”。
归根结底,安全性不在于编程语言,而在于您如何使用它们。
→
操作:开发人员可以在IaaS上享受40%的折扣。Steven J. Vaughan-Nichols用于Linux和开源
原始文章