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

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),作者:Elaine_z

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 研究人员找到禁用Intel ME组件的方法(乡村故事版)

    本文试图以故事形式还原PositiveTechnologies公司找到禁用IntelME组件方法的消息,祝各位阅读愉快。 (1)清晨鸡鸣响彻天 ? 喔喔喔~喔喔...

    FB客服
  • 某HR业务网站逻辑漏洞挖掘案例以及POC编写思路分享

    各位Buffer你们好,我们许久不见胜似想念,我看到小粉你们的感觉就是"春风拂过泸沽湖,秋雨浸润九寨沟"。今天鄙人我给大家带来的“干货”是逻辑漏洞挖掘的案例和使...

    FB客服
  • 2019年数据泄露调查报告

    报告是基于各种来源的数据进行分析,例如公开披露的安全事件,Verizon(VTRAC)和合作单位等提供的案例。

    FB客服
  • FPGA零基础学习:数字电路中的组合逻辑

    大侠好,欢迎来到FPGA技术江湖。本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子...

    FPGA技术江湖
  • 感知机详解

    1.感知机是什么? 一种类型的ANN系统是以被称为感知器(perceptron)的单元为基础的,如图1所示。感知器以一个实数值向量作为输入,计算这些输入的线性组...

    昱良
  • 大白话存储器模型(1)——“一个藤上七朵花”

    不知道读者中有多少人听说过 Memory Model 这个概念,中文通常翻译成存储器模型,实际上,这种直接对英文单词的机械翻译为大部分人带来了巨大的误解——很多...

    GorgonMeducer 傻孩子
  • QPushButton && QLabel

    QToolButton 类提供了一个快速访问按钮的命令或选项, 通常在 qtoolbar 中使用。有个关联action,还可以设置快捷键; QToolButto...

    zls365
  • 基于漫威系列电影好看程度排序

    在选择电影时,如果热门电影A有 10000 人观众打分,冷门电影B有 100 个人打分,他们的豆瓣评分都是 8.0 分,怎么比较两部电影的好坏?平时我们都有一种...

    机器学习和大数据挖掘
  • 报告 | 医疗大数据的行业应用研究

    <数据猿导读> 目前我国医疗大数据的应用市场还处于起步投入阶段,医疗大数据应用市场的产出价值还远低于投融资规模;医疗大数据在临床操作、付款/定价、研发等方面应用...

    数据猿
  • 轻松学Pytorch-全卷积神经网络实现表情识别

    我又又一周没有更新这个系列文章了,但是我说过我会继续坚持更新下去的,今天给大家更新了一篇如何使用残差Block构建全卷积神经网络实现图像分类,对的,你没有看错就...

    OpenCV学堂

扫码关注云+社区

领取腾讯云代金券