“用指尖改变世界”
上周,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表示,这些安全漏洞可能是由于设计错误或试图简化软件开发而造成的。无论如何,有一个事实是肯定的,这些漏洞最终会影响到解释器解析软件开发人员所开发的常规软件。
本文由黑客视界综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。
领取专属 10元无门槛券
私享最新 技术干货