首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

合法软件不“合法”:JavaScript、PHP、Python等主流编程语言爆安全漏洞

“用指尖改变世界”

上周,IOActive高级安全顾问Fernando Arnaboldi在Black Hat Europe 2017安全大会上介绍了他的一项研究成果。他发现,几种流行的解释性编程语言受到严重漏洞的影响,这些漏洞使构建在这些语言基础上的软件容易遭受攻击。

根据Arnaboldi的介绍,他使用了一种名为fuzzing(模糊测试)的自动软件测试技术对当今最流行的五种编程语言进行了分析,包括JavaScript、Perl、PHP、Python和Ruby。具体列表如下图所示:

Fuzzing是一种基于缺陷注入的自动软件测试技术,主要通过向目标软件注入无效、意外或者随机的非预期数据并监视异常结果(例如程序崩溃、内置代码断言失败以及潜在的内存泄露等等)来发现是否存在漏洞。

为了进行此项研究,Arnaboldi创建了一个专用于测试编程语言结构的差分模糊器XDiFF。

最终,Arnaboldi利用XDiFF成功找出了存在于五种编程语言中的严重漏洞:

Python-包含有可用于OS(操作系统)命令执行的未记录方法和本地环境变量;

Perl-包含有一个可以像eval()那样执行代码的类型映射函数;

NodeJS-会输出可能泄露部分文件内容的错误信息;

JRuby-存在远程代码加载和执行问题,而这并非有意的设计;

PHP-常量名称可用于执行远程命令。

Arnaboldi认为,这将使得基于这些编程语言开发的软件永远不可能成为安全的软件。因为,既然有人能够找出漏洞,那么潜在的恶意攻击者同样也能够做到这一点。

更糟糕的是,因为这是存在于编程语言中的安全漏洞,软件开发人员很可能不会意识到风险的存在,而在不知情的情况下将有缺陷的代码包含在了其开发的软件中。

Arnaboldi表示,这些安全漏洞可能是由于设计错误或试图简化软件开发而造成的。无论如何,有一个事实是肯定的,这些漏洞最终会影响到解释器解析软件开发人员所开发的常规软件

本文由黑客视界综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171212B072FF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券