⽹络安全的发展,离不开攻防之间的对抗。如果说⼤型漏洞爆发后的安全应急是和时间赛跑,那么 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 安全研究团队会持续通过技术⼿段来测绘暗⽹,提供威胁情报,追踪和对抗来⾃暗⽹的威胁。
⽹络空间攻击形态正随着国家诉求、经济发展和安全防御的升级⽽不断改变。可以预⻅的是,⽹络空间深层次的对抗将会增加,⽹络空间威胁依旧严峻,⽹络空间防御正在逐步完善。如何在多⻆度多层⾯与威胁有效的对抗,依旧是安全⼚商甚⾄整个社会将持续⾯临的问题。
404 实验室汇总了 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 的 CiscoSmart 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 安全研究团队通过该漏洞编写出了勒索软件的解密⼯具。
Web 类漏洞在 2018 年占据了 404 实验室应急漏洞数量的百分之 56,相关漏洞和往年相⽐多且严重,涉及的类型有:前后台⽤⼾密码修改、需要认证/未认证的远程代码执⾏、任意⽂件读取删除或上传、路径穿越、⽂件包含、XXE 、SSRF 、DoS 攻击等。这些漏洞攻击途径也⽐较多样,例如通过富⽂本编辑器上传⽊⻢,通过后台数据库备份功能进⾏命令执⾏等,却可以造成:服务不可⽤、敏感信息泄露、服务器控制权被夺取、⽂件被篡改或删除等危害。404 实验室总结漏洞成因,包括但不限于以下⼏点:
a. 对参数检查过滤不严格,命令直接拼接执⾏。
b. 权限限制不⾜,使低权限或⽆权限⽤⼾获得⾼权限,或可以直接调⽤不该使⽤的 API。
c. 为了贪图便利使⽤默认凭证、弱⼝令且肆⽆忌惮地暴露在外⽹的情况。
d. 开发⼈员对开发框架不够了解,导致后续开发中忽视必要的参数检查。
e. 不良的线上部署习惯,以及配置的失误。会导致⽐如路径穿越和任意⽂件读取。
f. 本该出现在内⽹的设备,或为了⽅便,或因配置是失误,暴露在公⽹中。
本章基于 2018 年 ZoomEye ⽹络空间搜索引擎收录的数据进⾏分析,关注⽹络空间中设备分布及其安全问题。
3.1.1 网络空间设备分布情况
2018 年 ZoomEye ⽹络空间搜索引擎⼀共收录了 621127633 台设备的 banner 信息。位于美国的设备占据收录数量的 28.29%,中国、英国、德国等紧随其后。
美国 2018 年活跃设备的数量远⼤于其他国家,可能与互联⽹发展程度、巨⼤的 IPV4 地址分配范围等原因有密切的关系。
众多国际互联⽹企业(例如:Google、Facebook、EBay、Twitter、Oracle、Mozilla 等等)集中在加利福尼亚州。这也造就了 ZoomEye 探测到的美国活跃设备 26.84% 都位于加尼福利亚州。
中国沿海地区仍然是互联⽹发达区域。
3.1.2 ⽹络空间端⼝分布情况
2018 年 ZoomEye ⽹络空间搜索引擎探测到的开放端⼝分布情况和识别的服务类型如下图所⽰:
随着物联⽹⾏业的蓬勃发展,物联⽹设备数量也在⻜速增⻓。由于早年安全标准的相对滞后,导致部分设备存在较多的安全缺陷,如代码逻辑缺陷导致凭证泄漏、未正确处理⽤⼾输⼊导致远程命令执⾏等。
事实证明,软件安全漏洞是⽆法避免的,新的漏洞不断被披露。由于多数早期物联⽹设备存在使⽤周期较⻓、缺乏有效的升级机制的特点,⼀旦这些设备的漏洞被曝光,将⽆法得到有效的修复。这也导致当前⽹络空间存在⼤量存在漏洞的设备,特别是部分官⽅终⽌⽀持的设备,可谓是千疮百孔。
相⽐于现实世界,⽹络空间更容易隐匿信息。攻击者通过漏洞实现对设备的远程攻击、组建僵⼫⽹络,便可以通过挖矿、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”
2018 年网络空间威胁与展望北京知道创宇信息技术有限公司 第16页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 HipservNAS 操作系统被曝出存在 XXE 和⽆需认证的本地服务远程命令执⾏漏洞,利⽤ XXE 可实现SSRF,最终⽆限制远程命令执⾏,该漏洞影响 Netgear Stora,Seagate GoFlex Home,Medion LifeCloud 等三款 NAS 产品。
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 年安全事件多爆发在何处。
2016 年经常被⼈们称作区块链元年,因为在这⼀年区块链技术的价值真正被世界所认可。多国政府开始研究发⾏⾃⼰的数字货币,超过 50 家世界级银⾏组成联盟研发区块链银⾏间服务,上千家区块链⾏业的创业公司如⾬后春笋般兴起。
2016 年⽐特币的成功,让区块链的成为了当前这个时代最受期待的新兴产业之⼀,⽽以太坊以其特有的智能合约功能,很⼤程度上解决了区块链快速发展和⽐特币出块速度受到极⼤限制的⽭盾。智能合约开发者通过编写代码、编译部署到区块链上的⽅式,实现了交易的⾼速化、⾃动化和规则化,可以说智能合约是区块链不可篡改特性的⼀次最佳实践。
区块链⾏业发展与⽐特币等币价的变化有强关联,从⼀开始货币属性就是区块链产业抹不去的特性。2016 年 1 ⽉以太坊这个名不⻅经传的区块链品种总市值只有 7000 万美元,短短 2 个⽉以太坊的市值最⾼就上涨到了 11.5 亿元。随着区块链市场价值的⻜速提升,⽽区块链市场的安全性却没能跟上区块链的发展。产业价值远远⼤于安全代价,安全事件的发⽣也就成了必然。
2017 年以来,⽐特币较慢的出块速度和持续⾛⾼的价格,使⽐特币的意义更多转变为货币标准。随着以太坊的不断成熟,区块链 2.0-智能合约的时代也正式拉开了序幕。作为区块链⼀部分的区块链安全问题也如⾬后春笋⼀般纷纷诞⽣了。
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 智能合约逐渐⾛向没落,事务依赖游戏遭到致命打击的同时,Dapp 越来越多的问题也被曝光了出来。
- 2018 年 8 ⽉ 21 ⽇ Godgame 分红机制存在巨⼤漏洞,账⼾余额被攻击者瞬间洗劫⼀空。
- 2018 年 10 ⽉ 18 ⽇ Dice2win 被公布存在选择开奖攻击、选择中⽌攻击、任意开奖攻击等。
再加上以太坊的出块速度越来越不能满⾜⼈们的需求,越来越多的 Dapp 尤其是智能合约游戏正在逐渐⾛出舞台…
截⾄完成本报告时,整体以太坊 Dapp 都处于低迷的情况下…
4.2.6 blockwell.ai ⼩⼴告事件
2018 年 9 ⽉ 7 ⽇早上 1 点左右,许多以太坊账⼾都收到了⼀种名为 blockwell.ai KYCCasper 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 时代的货币,⼀直在试图突破⼀些以太坊中严重的桎梏。
EOS 除了⼤⼤增加了出块速度,还有⼀个最⼤的特点就是,它通过推举 21 个超级节点来代替去中⼼化,这⾥且不说这种⽅式是否合理,只是说,对于试图增加对合约控制程度的开发者来说,EOS 可能更加适合,也正是因为这个原因,EOS 成了最被寄予厚望的企业级区块链操作系统。
但⾃从 2018 年下半年以来,EOS 的 Dapp 的安全事件频发,整个 2018 年下半年,就有超过 18 个 EOS 游戏被爆出通过假充值漏洞、重放攻击、假币攻击、回滚攻击等各种⽅式被攻击,损失超过 39 万个 EOS,折算成⼈⺠币接近 700 万。
截⾄本⽂完成时,针对 EOS Dapp 的各类攻击⽅式仍然在不断发⽣中,EOS 的安全仍然值得开发者更多的考量以及深思。
在⻅证了 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 的货币属性是智能合约最主要的部分之⼀。
2018 年是⻅证了区块链兴衰浮沉的⼀年,区块链 2.0 时代的到来再加上 dapp 的兴起,⼀时间⻛头⽆两。但从针对交易钱包的攻击,到以太坊兴起直接对智能合约的攻击、从对交易平台的攻击,到直接对 RPC 节点攻击、从普通的攻击渗透转为深⼊智能合约的业务逻辑,⽆论是传统安全领域还是新兴的智能合约/区块链实现等领域,区块链这项技术及其周边产业都在经历着安全的考量。
虽说⽬前绝⼤多数智能合约游戏⽬前仍然未能逃出赌博、庞⽒骗局的圈⼦,但区块链仍然有⼀定的应⽤前景。经历过⼀次次的安全危机,区块链⾏业正在形成合理的健康的安全防御策略,智能合约也在积累安全有效的开发实践。这些都将会是未来区块链应⽤时不可多得的财富。
虽说 2018 年虚拟货币的整体价值⼀路下跌,但区块链技术的价值并不等同于虚拟货币的价值。区块链技术本⾝⽆法⽤价值衡量,但将技术应⽤到⽣活实践当中,才能脱离虚拟的货币价值,实现真正的技术价值!
2017 年末,知道创宇 404 实验室蜜罐团队开发并部署了“炼妖壶”蜜罐系统,并在2018 年被动收集观测⽹络空间发⽣的⼀些安全事件。在对 2018 年数据进⾏统计分析思考后,我们认为可以通过单独的⼀个⼤章来详细说明⽬前⽹络空间时时刻刻都在受到威胁。
但是蜜罐数据都来⾃于被动接收,所以在部分事件中蜜罐可能只捕获到部分数据,因此得出的结论也可能是⽚⾯的。特别是 5.1.3 节?2018 年反射 DDOS 攻击发起情况,运营商防护/攻击者的选择/蜜罐实现⽅法等等都会对最终的数据造成影响。在此也请读者注意:该部分的数据和结论,可能存在部分偏差。
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 如下:
(注:相关漏洞详情可以访问 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 反射放⼤攻击被利⽤次数逐渐提⾼。
从 2016 年 Mirai 僵⼫⽹络源码公开以来,⽹络空间安全形势愈加严峻。相较于传统僵⼫⽹络,部分 2018 年新兴的僵⼫⽹络继承了传统僵⼫⽹络蠕⾍式传播等特点,并且实现了更快的 1day 利⽤。相⽐ 2017 年 4 ⽉份,Goahead 漏洞从出现到被利⽤⼤约使⽤了⼀个⽉的时间,⽽ 2018 年 4 ⽉份出现的 GPON 路由器漏洞在⼗天时间内就已经被多个僵⼫⽹络利⽤。根据蜜罐的数据,在 404 实验室今年应急的 127 个漏洞中,被僵⼫⽹络利⽤的物联⽹设备漏洞有两个:
由于 2018 年上半年区块链⾏业的⽕爆,⾼性能服务器成为了⽹络⿊产的主要⽬标之⼀。各种能够远程命令/代码执⾏的漏洞也成为了攻击者的⽬标之⼀。部分僵⼫⽹络家族也集成了这种能⼒。根据我们捕获到的部分数据,以下今年曝光的 WEB 漏洞也受到了挖矿⼈员的⻘睐。
(注:相关漏洞详情可以访问 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 次攻击。
除了以上漏洞以外,蜜罐还观察到部分漏洞被攻击者糅合在⼀个请求中,以达到⼀次攻击可以感染多个类型设备的⽬的:
相较于往年,漏洞利⽤的多样化、⻜速化是 2018 年⽹络空间漏洞利⽤的新趋势。毫⽆疑问,攻防对抗已经进⼊了⽩热化的阶段了。
在当今的时代,⽹络空间战争是多级别、多⻆度的对抗,被攻击⽅式的不可预知性往往让防御⽅处于⼀个滞后的位置。 2018 年更多漏洞的爆发、新兴安全领域区块链的到来、⽹络空间设备⻜速增⻓带来的隐患、⽹络空间漏洞被更快更多地利⽤让滞后带来了更⼤的威胁。
感谢 2018 年 404 实验室每⼀个⼩伙伴的努⼒与付出,持续⼀年的努⼒充实了这份报告的内容。
希望这份报告中的数据可以为读者带来⼀份新意,也希望我们在 2019 年能够做得更好。谢谢。
[1] ZoomEye ⽹络空间搜索引擎
[2] Seebug 漏洞平台
[3] GPON Home Gateway 远程命令执⾏漏洞被利⽤情况
[4] 2018 上半年暗⽹研究报告
[5] Thinkphp5 远程代码执⾏漏洞事件分析报告
[6] ZoomEye Dork
https://www.zoomeye.org/searchResult/report?q=after%3A%222018-01-01%22&t=host
[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 的堕落之路
[9] 慢雾社区关于利⽤ JSON-RPC ⾃动化盗币事件的报告
https://mp.weixin.qq.com/s/Kk2lsoQ1679Gda56Ec-zJg
[10] 启明星⾠ ADLab 关于薅⽺⽑事件的报告
https://mp.weixin.qq.com/s/R6L1BpEoUvcjsl-uQqM0Tg
[11] 安⽐实验室关于 Form3D 游戏事件的报告
https://zhuanlan.zhihu.com/p/45330743
[12] BTC/ETH/EOS 对⽐图数据采样来源
[13] 活跃 dapp 列表截图来源
https://www.dappradar.com/rankings/protocol/ethereum/category/gambling
*本文作者:Knownsec知道创宇;转载请注明来自FreeBuf.COM