当前位置:主页>产 业>业界新闻>

多数编程语言存在安全漏洞:或攻击其语言开发的应用程序

据外媒 12 月 10 日报道, IOActive 的高级安全顾问 Fernando Arnaboldi 于 12 月初在 2017 Black Hat 欧洲安全会议上发表了一篇有趣的研究报告:多数流行的编程语言存在严重的缺陷,可能会攻击其语言开发的任何安全应用程序。

该研究是为了探索安全开发的应用程序受到底层编程语言中未知漏洞的影响。相关人士透露,Arnaboldi 使用 fuzzing 软件测试技术分析了最流行的编程语言( JavaScript、Perl、PHP、Python 和 Ruby )。Fuzzing 或 fuzz 测试是一种自动化的软件测试技术,它包括为计算机应用程序提供无效、意外或随机的数据。获得数据后,研究人员会监视类似崩溃或失败的内置代码断言之类的异常,或者是寻找潜在的内存泄漏。据悉,Google 专家就曾使用这种技术发现了流行软件 OpenSSL 和 Linux 组件中的许多缺陷。

下面是研究人员用 fuzzing 技术测试的编程语言列表。

Arnaboldi 开发了一个定制的 “ 微分fuzzer ”  XDiFF ( 扩展差分 Fuzzing 框架),专门用于测试编程语言的结构。研究人员将 XDiFF 发布为 GitHub 上的开源项目。此外,研究人员还确定了大部分的基本功能,并使用 XDiFF fuzzer 进行了测试。在执行之前,fuzzer 通过在函数和有效载荷之间进行排列来生成所有可能的测试用例,测试用例将当时编程语言的一个功能与不同的有效载荷结合在一起,以便于暴露编程语言中的漏洞。

Arnaboldi 表示,漏洞的发现完全取决于能否选择正确的输入。在这个测试中,使用了少于30个原始值(比如数字,字母等)与特殊有效载荷相结合,并且定义这些特殊的有效载荷,以便于帮助识别软件何时访问外部资源。

Arnaboldi 用 fuzzer 分析了所有编程语言中的严重漏洞,有以下问题:

○ Python 包含可用于 OS 命令执行的无记录的方法和本地环境变量。

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

○ NodeJS 输出可以泄露部分文件内容的错误消息。

○ JRuby 加载并执行远程代码的功能不是为远程代码执行而设计的。

○ PHP 常量的名称可以用于用来执行远程命令。

Arnaboldi 表示,软件开发人员可能在不知情的情况下将代码包含在应用程序中,而这些代码可能以开发者没有预见到的方式使用,以至于对安全开发的应用程序构成了风险。假设这些漏洞并不是恶意造成的,那么可能是因为错误或试图简化软件开发的结果。而这个结果会影响到解释器解析的常规应用程序。因此,研究人员建议,在重要的生产环境中,应该优先排查或修复程序语言解释器的安全隐患。

(责任编辑:冬天的宇)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

wechatimg011123 警惕 | 黑客利用在星巴克

wechatimg011123 警惕 | 黑客利用在星巴克蹭网的电脑挖掘加密货币

据外媒报道,在世界各地的星巴克里,你都能看到带着笔记本 “ 蹭网 ” 办公的人。最近...[详细]

多数编程语言存在安全漏洞:或攻击其语言开

多数编程语言存在安全漏洞:或攻击其语言开发的应用程序

据外媒 12 月 10 日报道, IOActive 的高级安全顾问 Fernando Arnaboldi 于 12 月初在...[详细]

微软意外暴露了 Dynamics 365 TLS 证书,或

微软意外暴露了 Dynamics 365 TLS 证书,或致沙箱环境被中间人(MiTM)攻击

据外媒 12 月 11 日报道,微软意外暴露了一个 Dynamics 365 TLS 证书和私钥,暴露时间...[详细]

无所不用其极 黑客居然利用在星巴克蹭网的

无所不用其极 黑客居然利用在星巴克蹭网的电脑“挖矿”

据外媒报道,在世界各地的星巴克里,你都能看到带着笔记本“蹭网”办公的人。最近,黑...[详细]

信息安全公司Menlo Security获C轮4千万美元

信息安全公司Menlo Security获C轮4千万美元融资

据外媒报道,信息安全创业公司Menlo Security周一宣布了规模4000万美元的C轮融资。...[详细]

返回首页 返回顶部