查看原文
其他

要火!Python 纳入高考科目;PHP、JS 等主流编程语言爆安全漏洞

2017-12-13 开源中国


一、Python 将成高考科目,并列入全国计算机等级考试

二、PHP、JS 等主流编程语言爆安全漏洞


Python 将成高考科目,并列入全国计算机等级考试


未来世界的人将会分成两种人:一种是会编程的人,另一种是不会编程的人。人工智能时代的来临,中国越来越重视编程教育,特别是在编程语言的教育中,Python 越来越受欢迎。


近日,有新闻报道,全国计算机登记考试出台了最新的调整方案:“Python 语言程序设计”将成为二级考试的新增科目。



如图所示,在二级考试中,“Visual FoxPro 数据库程序设计”科目(代码:27)将被取消,2017 年 12 月是其最后一次组考。随之新增“Python 语言程序设计”科目(代码:66),2018 年 9 月首次开考。


除了全国计算机等级考试的变动外,还有消息称浙江省信息技术课程出台的改革方案,已确定将 Python 纳入浙江省信息技术高考范畴:从 2018 年起浙江省信息技术教材编程语言将会从 VB 更换为 Python。也就是说:Python 语言将纳入高考内容之一。


随着人工智能受重视程度的提升,作为其首选开发语言的 Python 也开始火爆起来。在 12 月公布的 TIOBE 编程语言排行榜中,Python 仅次于 Java、C、C++,位列第四。


未来是大数据和人工智能的时代, Python 对数据的处理,有着得天独厚的优势,我们似乎有理由相信,Python 会越来越火。


以上综合自网络


PHP、JS 等主流编程语言爆安全漏洞


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


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


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



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


使用模糊测试工具,对软件进行测试通常需要检测到不寻常的行为,以及对内存崩溃以及溢出进行检测。


目前比较流行的测试工具(如AFL和Peach)通常需要在寻找漏洞的时候的时候采用相同的逻辑,而这些工具无法存储执行过的测试用例的信息。


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



在这次测试中,我们的的输入中主要使用了不到 30 种的原始数据类型,但也有一些特别的payload。这些特别的payload 是用于测试程序获取外部数据资源时是否会出现问题。


以上这些测试都是用于分析测试目标——是否会出现“暴露本地文件、未授权的代码注入、未授权的系统代码执行操作”等安全问题。


测试结果:均暴露出问题


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


  • Python中存在可用于OS命令执行的未记录方法和本地环境变量。

  • Perl 中有一种可执行如 eval() 的 typemap 函数。

  • NodeJS 中输出的错误信息会泄露部分文件内容。

  • JRuby 可以加载和执行并非设计为远程代码执行的代码

  • PHP中常量的名字可以用来执行远程命令。


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


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


一些软件开发者可能会在没有意识到的情况下将代码包含在应用程序中,而这些代码可能导致的后果却是开发者没有考虑到的。


即便是按照安全指南来进行开发的最安全的应用程序也可能会因此出现“安全隐患”。


即便开发者没有恶意企图,但这些漏洞也可能因为开发者无意识或试图简化开发而引入进来。



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


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


参考资料:


  • http://securityaffairs.co/

  • https://www.bleepingcomputer.com/


来源:http://codebay.cn/post/6709.html



推荐阅读

Java 10 新特性解密,引入类型推断机制

C++17 标准正式发布:开发者可更简单地编写和维护代码

Spring boot + LayIM + t-io 好友申请通知的实现

开发者不可错过的开源工具 —— Android 篇

Linux 运维人员最常用 150 个命令汇总

点击“阅读原文”查看更多精彩内容

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存