Black Hat Europe 2017:安全专家发现5款最流行编程语言中的漏洞

没有不漏的锅,如果底层的编程语言如果出现问题,顶层的应用程序还能幸免于难吗?

这周在 Black Hat Europe 2017 安全会议上,一名安全研究员公开了几款目前非常流行的解释型编程语言中出现的漏洞。这些编程语言上存在的问题,可能让运用这些语言开发的应用程序因此也很容易遭受攻击。

这项研究的作者是 IOActive 的高级安全顾问 Fernando Arnaboldi。这位专家表示他使用了自动化的模糊测试工具在解释器中对五种编程语言进行了测试:JavaScript,Perl,PHP,Python和Ruby。在对默认库和内置函数进行模糊测试之后,他在研究中公布了每种语言存在的一些问题。

使用 XDiFF 对 5 款语言进行模糊测试

使用模糊测试工具,对软件进行测试通常需要检测到不寻常的行为,以及对内存崩溃以及溢出进行检测。目前比较流行的测试工具(如AFL和Peach)通常需要在寻找漏洞的时候的时候采用相同的逻辑,而这些工具无法存储执行过的测试用例的信息。

在这位研究员的研究过程中,他自定义了自己的模糊测试工具 XDiFF(扩展差分模糊测试框架),以此适应这几款不同的编程语言。在测试过程中,他将每种编程语言都分解成了最基本的功能,然后使用XDiFF来提供各种payload输入来进行测试。

在这次测试中,我们的的输入中主要使用了不到 30 种的原始数据类型,但也有一些特别的payload。这些特别的payload 是用于测试程序获取外部数据资源时是否会出现问题。 以上这些测试都是用于分析测试目标——是否会出现“暴露本地文件、未授权的代码注入、未授权的系统代码执行操作”等安全问题。

测试结果:均暴露出问题

而从他的测试结果来看,我们确实可以看到JavaScript、PHP、Ruby、Perl、Python分别在经历了多项测试之后,暴露出来了哪些问题。

Python中存在可用于OS命令执行的未记录方法和本地环境变量。 Perl 中有一种可执行如 eval() 的 typemap 函数。 NodeJS 中输出的错误信息会泄露部分文件内容。 JRuby 可以加载和执行并非设计为远程代码执行的代码 PHP中常量的名字可以用来执行远程命令。

最安全的应用层序也会因此“倒下”

Arnaboldi 表示攻击者可以利用这些编程语言上的漏洞来“放倒”最安全的应用程序。

一些软件开发者可能会在没有意识到的情况下将代码包含在应用程序中,而这些代码可能导致的后果却是开发者没有考虑到的。 即便是按照安全指南来进行开发的最安全的应用程序也可能会因此出现“安全隐患”。 即便开发者没有恶意企图,但这些漏洞也可能因为开发者无意识或试图简化开发而引入进来。

目前XDiFF已经作为开源项目公布在GitHub上。

更具体的演讲和演示内容也可以在Arnaboldi的论文中了解。

参考资料:

http://securityaffairs.co/

https://www.bleepingcomputer.com/

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端知识分享

第143天:渐进增强和优雅降级之间的不同

第一个例子的写法叫做渐进增强(progressive enhancement),第二个例子的写法叫做优雅降级(graceful degradation)。(关于...

11520
来自专栏恰童鞋骚年

谈谈对于企业级系统架构的理解

在我们刚开始学习架构的时候,首先会想到分层的概念,分层架构比较经典的是三层架构,那么,什么是三层架构呢?它包括表现层,业务层,数据访问层;而对于一个新手来说,从...

14520
来自专栏大数据文摘

5大架构:细数数据平台的组成与扩展

27680
来自专栏web前端教室

第七节,生成商品类型、广告条--《vue+vant+node+mongoDB+koa2》电商项目实战连载

视频有些模糊,这个目前我也没有办法,因为我没有微信公众号的视频的高级权限,所以这里只能是先搞成这样。清晰视频的获取办法,在文章结尾有写到,同学们可以自行获取。

21230
来自专栏散尽浮华

Linux系统下CPU使用(load average)梳理

在平时的运维工作中,当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average)。对一般的系统来说,根据...

96660
来自专栏大数据架构

超大规模 Spark 集群灰度发布 CI CD

目前主流的代码管理工具有,Github、Gitlab等。本文所介绍的内容中,所有代码均托管于私有的 Gitlab 中。

26030
来自专栏精细化测试

当代码变更遇上精准测试的总结

敏捷模式下迭代频繁,回归测试时总是不知道变动的范围。Devlop 有的时候也不知道他改了哪些东西,影响到哪些节点,或者是很多人改的,彼此不知道。

50840
来自专栏谢慧志的专栏

数据倾斜解决方法总结

在使用Spark、Hive的过程中经常会碰到数据倾斜的问题,本文会持续记录实际工作中碰到的这些问题以及具体解决方案。

3.3K00
来自专栏ImportSource

NoSQL Peer-to-Peer Replication 对等复制

翻译内容: NoSQL Distilled 第四章 Distribution Models 作者简介: ? 本节摘要: 今天我们主要讨论有关...

41560
来自专栏后端技术探索

Facebook 宣布开源 Katran,高性能第4层负载平衡器

为了管理Facebook的流量,他们部署了一个分布式PoP服务器作为数据中心的代理。鉴于极高的请求量,PoP和数据中心都面临着巨大挑战,比如如何将大量的后端服务...

17220

扫码关注云+社区

领取腾讯云代金券