世界上最流行的编程语言恰恰也是大多数黑客的首选武器-阿里云开发者社区

开发者社区> 开发与运维> 正文

世界上最流行的编程语言恰恰也是大多数黑客的首选武器

简介:

Python很快将是世界上最流行的编程语言。这算得上是豪言壮语,但如果你看一下Python的简单性、灵活性以及相对容易上手的优点,不难看出为什么《经济学人》杂志最近将Python誉为是即将在全球使用量最多的语言。当然,我们的威胁研究小组想看看Python在不法分子当中有多受欢迎。

当然,最好的研究地方是Github。粗略估计,实现攻击工具/漏洞概念证明(PoC)的GitHub代码仓库中20%以上是用Python编写的。在GitHub中几乎所有与安全有关的主题中,大多数代码仓库都是用Python编写的,包括w3af和Sqlmap之类的工具,甚至臭名昭著的AutoSploit工具。

我们Imperva使用先进的智能客户分类机制来区别和分类各种Web客户软件。我们查看了自己的数据,尤其是安全事件,结果我们识别的大多数(25%以上)客户软件(不包括漏洞扫描器)都基于Python。

与其他客户软件不同,我们在Python方面看到了许多不同的攻击途径和使用已知漏洞。与开发人员一样,黑客也在享用Python的优点,因而Python成为一种流行的黑客工具。

1979a5cad1bbaa2564e60c99cbfc12a0605eabff

图1:按客户软件分类的安全事件,不包括漏洞扫描器。25%以上的客户软件是不法分子使用的基于Python的工具,因而Python成为实施漏洞攻击的最常见途径。

对针对我们保护的网站发动的攻击中使用Python的情况分析后发现,结果并不令人惊讶:大部分网站(多达77%)被基于Python的工具攻击过;在超过三分之一的情况下,大多数日常攻击是基于Python的工具实施的。这表明,基于Python的工具用于广度扫描和深度扫描。

9cd0e432bc4ad87674b73feed0cdfb6d2de92035

图2:遭到基于Python攻击的网站的每日百分比。

Python模块

用于Web攻击的两个最流行的Python模块是Urllib和Python Requests。下图显示了攻击分布状况。新模块Async IO的使用刚开始多起来,如果你考虑到该库在第7层DDoS方面扮演的角色,也就不难理解了,尤其是在使用“Spray N'Pray”手法时:

67c348e3c157aa3221982566d407286a674370ee

图3

Python和已知漏洞

Python这种编程语言的优点让它成为实现已知漏洞的一种流行工具。我们收集了一款基于Python的工具最近利用的十大漏洞方面的信息。

近2个月中两次最猖獗的攻击使用了CVE-2017-9841和CVE-2015-8562,前者是 PHPUnit框架中基于PHP的远程执行代码(RCE)漏洞,后者是针对Joomla!框架的RCE。考虑到RCE对不法分子来说很重要,最常见的攻击可能利用RCE漏洞也就不足为奇了。

另一个不属于十大漏洞的例子是CVE-2018-1000207,它在2018年8月的最后一周内有好几天每天都导致数百次攻击。更深入地分析后发现,这起攻击是针对多个受到保护的客户发动的。

CVE方面的变化

5a591a20b0eb56df10cf13782135f52e0db70785

图4

可以从我们的数据中看出,攻击者利用CVE的数量在过去几年有所增加:

b3cea096fc497874fee34411fc0f204b20d4a698

图5

此外,Python用于攻击特定的应用程序和框架,根据我们的数据,你可以在下面找到十大框架:

da7ac406044bf5dc8fc060ea510de4cd518dbd8b

图6

我们查看了Python攻击的所有框架后,最惹眼的攻击是针对Struts、WordPress、Joomla和Drupal的那些攻击,这并不奇怪,因为目前这些是市面上一些最流行的框架。

攻击途径

我们看到攻击中使用的最流行的HTTP参数值(占使用的所有不同参数值的30%左右)属于通过Joomla!中的PHP Unserialize漏洞,使用JDatabaseDriverMysqli对象企图植入后门的攻击。植入后门的有效载荷托管在ICG-AuthExploiterBot上。

我们还看到一个经常出现的有效载荷,结果证明是企图感染系统的特洛伊木马Coinbitminer,更多细节详见附录。请注意,附录仅仅是一个例子。由于Python被黑客广泛使用,因此许多不同的攻击途径需要考虑。Python只需要一点编程技能,这使得编写脚本、利用漏洞易如反掌。

我们的建议

除非你能够区分基于Python的工具的请求和任何其他工具的请求,否则我们的建议仍然一样:确保开发软件时牢记安全性,给系统打上最新的补丁,尽量避免被认为不安全的任何做法。

附录:攻击示例

这是我们观察到的一个值得关注的、经常出现的有效载荷(最后有个小的差异):

c1b33406b1a99ac326d7996d5ab195db1c5cd580

图7

在base64解码之后,我们得到了二进制有效载荷:

644114896f969feca8f68926800748d68d06b51b

图8

在上述有效负载中,提到了反序列化漏洞工具所用的GitHub代码仓库和jpg文件中的wget命令下载,这强烈表明存在着恶意活动。从http://45.227.252.250/jre.jpg下载文件后,我们可以看到它实际上是含有以下内容的脚本:

6fbcedbaf3e6bae915f34ea03edc4596bfc20186

图9

脚本中的最后两行试图获得http://45.227.252.250/static/font.jpg%7Csh,这被赛门铁克端点保护系统确认为是特洛伊木马Coinbitminer。

1a160097add7614beae8978bfaca90bd315c84f1

图10


原文发布时间为:2018-10-9

本文来自云栖社区合作伙伴“大数据地盘”,了解相关信息可以关注“大数据地盘”。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章