安天透过北美DDoS事件解读IoT设备安全

安天安全研究与应急处理中心(安天CERT)在北京时间10月22日下午启动高等级分析流程,针对美国东海岸DNS服务商Dyn遭遇DDoS攻击事件进行了跟进分析。

from:http://netsecurity.51cto.com/art/201610/519715.htm  2016年的文章 从https://blog.trendmicro.com.tw/?p=58459 19年最新的文章可以看到类似Mirai的变种也是利用弱密码和漏洞进行IoT设备的攻击。

1.概述

安天安全研究与应急处理中心(安天CERT)在北京时间10月22日下午启动高等级分析流程,针对美国东海岸DNS服务商Dyn遭遇DDoS攻击事件进行了跟进分析。安天团队分析认为,此事件有一定的政治因素背景,涉及到IoT(Internet of Things,物联网)设备安全等多种因素,在表象的DDoS攻击和DNS安全之外,依然有很多值得关注和研究的问题。

事件相关背景如下:美国当地时间2016年10月21日,为美国众多公司提供域名解析网络服务的Dyn公司遭DDoS攻击。Dyn公司在当天早上确认,其位于美国东海岸的DNS基础设施所遭受DDoS攻击来自全球范围,严重影响其DNS服务客户业务,甚至导致客户网站无法访问。该攻击事件一直持续到当地时间13点45分左右。该公司在官网表示将追查此事,并将发布事件的分析报告。

图1 -1Dyn官方确认

图1 -2官网事件状态更新情况

本次Dyn遭到攻击影响到的厂商服务包括:Twitter、Etsy、Github、Soundcloud、Spotify、Heroku、PagerDuty、Shopify、Intercom,据称PayPal、BBC、华尔街日报、Xbox官网、CNN、HBO Now、星巴克、纽约时报、The Verge、金融时报等的网站访问也遭到了影响。Dyn公司称此次DDoS攻击事件涉及IP数量达到千万量级,其中很大部分来自物联网和智能设备,并认为攻击来自名为“Mirai”的恶意代码。

黑客组织NewWorldHackers和Anonymous宣称对此事件负责,此事件被认为是用以抗议正在厄瓜多尔驻英国大使馆避难的维基解密创始人阿桑奇遭遇断网的事件。

名词解释:DNS服务器,是进行域名和与之相对应的IP地址转换的服务器。DNS中保存了一张域名和与之相对应的IP地址的表,以解析消息的域名。根据解析结果进行目标站点访问。若DNS服务器遭受DDos攻击,则无法正常解析域名,故用户无法访问对应目标站点。

2.安天对智能设备僵尸网络的捕获分析情况

目前,依托IoT设备的僵尸网络的规模不断增长,典型的IoTDDoS僵尸网络家族包括2013年出现的CCTV系列、肉鸡MM系列(ChiekenMM,数字系列10771、10991、25000、36000)、BillGates、Mayday、PNScan、gafgyt等众多基于Linux的跨平台DDoS僵尸网络家族,安天对这些木马的规范命名如下。

其中在本次事件中被广泛关注的Mirai的主要感染对象是物联网设备,包括:路由器、网络摄像头、DVR设备。从事DDoS网络犯罪组织早在2013年开始就将抓取僵尸主机的目标由Windows转向Linux,并从x86架构的Linux服务器设备扩展到以嵌入式Linux操作系统为主的IoT设备。

Mirai日语的意思是“未来”,研究人员将新变种命名为“Hajime”,日语的意思是“起点”。

安天捕获并分析了大量关于智能设备、路由器的恶意样本,并配合主管部门对对部分设备进行了现场取证。这些设备主要是MIPS、ARM等架构,因存在默认密码、弱密码、严重漏洞未及时修复等因素,导致被攻击者植入木马。由于物联网设备的大规模批量生产、批量部署,在很多应用场景中,集成商、运维人员能力不足,导致设备中有很大比例使用默认密码、漏洞得不到及时修复。包括Mirai等针对物联网设备DDoS入侵主要通过telnet端口进行流行密码档暴力破解,或默认密码登陆,如果登陆成功,通过telnet登陆成功后就尝试利用busybox等嵌入式必备的工具进行wget下载DDoS功能的bot,修改可执行属性,运行控制物联网设备。由于CPU指令架构的不同,在判断了系统架构后一些僵尸网络可以选择MIPS、arm、x86等架构的样本进行下载。运行后接收相关攻击指令进行攻击。

从一个Mirai的样本里面可以看到如下的弱密码:

安天在此前跟进IoT僵尸网络跟踪分析过程中,发现如下包括DVR、网络摄像头、智能路由器的品牌中有部分型号存在单一默认密码问题。

图2 -1 部分型号存在默认密码的设备品牌

Mirai Botnet的相关源代码于2016年9月30日被一名ID为『Anna-senpai』的用户发布在hackerforums论坛。该用户声称,代码出于『让用户增加对安全工业的重视程度』的目的而发布。在代码被公布后,相关技术立刻被运用到其他的恶意软件项目中。在2016年10月4日,这份代码被上传到github上并很快被fork逾千次。

安天CERT对10月4日上传到github上的Mirai源码进行了相应分析,梳理了其代码结构:

图2-2Mirai源码目录结构分析

泄露出的Mirai事件相关源码主要包括两部分:

(1) loader:加载器,其中存放了针对各个平台编译后的可执行文件,用于加载Mirai的实际攻击程序。

(2) Mirai:用于实施攻击的程序,分为bot(被控制端,使用C语言编写)和cnc(控制端,使用Go语言编写)两部分。

被控制端具有以下模块:

类似的“开源”行为提供了极坏的示范性,会进一步降低其他攻击者危害IoT设备的成本。鉴于此,本文不对代码进行解读。

3.安天对IoT僵尸网络的监测情况

安天的态势感知与监控预警系统可以对僵尸网络的样本传输、上线控制、攻击指令进行持续监控。除了Mirai相关事件外,我们也可以看到IoT僵尸网络对其他目标的攻击事件。

表:典型的IoT僵尸网络攻击事件

2014年之前使用Linux系统的IoT设备被植入恶意代码主要通过扫描弱密码。但在破壳漏洞(CVE-2014-6271)出现后,互联网上也出现了大量利用该漏洞进行扫描植入恶意代码事件。根据当时安天蜜罐系统捕获的情况来看,破壳漏洞出现后,针对Linux主机入侵的事件呈现全面上升趋势。安天发现的首例通过破壳漏洞实际感染的事件是在2014年9月份。而后安天CERT陆续发了多篇IoT设备上的恶意代码分析报告如:《利用路由器传播的DYREZA家族变种分析》、《黑客用HFS搭建服务器来传播恶意代码》,另有一篇《Trojan[DDOS]/Linux. Znaich分析报告》当时并未公开,因此作为本报告附件。而其他少数具备获取主机权限的漏洞也发现被攻击者利用。

4 分析小组的一点思考

安天分析小组认为,IoT僵尸网络的快速蔓延来自如下因素的组合:

随着小到智能家居、大到智慧城市的物联网蓬勃发展,在线IoT设备数量大幅增加;

随着作为主流桌面操作系统的Windows的内存安全(如DEP、ASLR、SEHOP)等方面的能力不断强化,依托远程开放端口击穿Windows变得日趋困难,但对于普遍没有经过严格的安全设计的IoT设备的远程注入的成功率则高的多。

IoT设备自身多数未嵌入安全机制,同时其又多半不在传统的IT网络之内,等于游离于安全感知能力之外,一旦遇到问题有的也不能有效响应。

IoT设备往往更多24小时在线,其是比桌面Windows更“稳定”的攻击源。

两年前,安天论述了“威胁将随‘互联网+’向纵深领域扩散与泛化”的观点,并使用泛化(Malware/Other)一词来说明安全威胁向智能设备等新领域的演进,而正如我们所担心的那样,安全威胁在智能汽车、智能家居、智能穿戴,大到智慧城市中已经无所不在。

图4 -1网络安全威胁泛化与分布图(引自安天2015年网络威胁年报)

正因为此,这次针对DynDNS服务的大规模DDoS事件中,安天更重视其中暴露的IoT安全问题。尽管DNS的确被很多人认为是互联网的阿喀琉斯之踵。但我们同样不要忘记,互联网是依托IP地址联通的,而域名是为便于人记忆的原因而产生的。对于北美大型行业用户来说,其更多广泛采用VPN和IP地址链接,其基本系统运转并不依赖DNS的解析。也正因为此,如此大流量的DDoS,尽管给网民访问网站带来一段阶段的不便,但其并不足以冲击北美社会运行和互联网的根基。从这个意义上看,这个事件的热度,更多来自媒体对公众感觉的放大,而其实际影响则相对有限。而更危险的行为是有针对性的、有放大效应的针对重要节点的威胁行动,特别是能够产生实体空间后果的威胁。

毫无疑问DNS体系是信息基础设施,但IoT僵尸网络绝不仅仅是这起攻击事件的道具。物联网就是物物相连的互联网,是未来信息社会重要基础支撑环节之一。物联网是在互联网基础上延伸和扩展的网络,物联网并不仅仅是网络,它还可以利用感知技术、信息传感等技术的嵌入式传感器、设备及系统构建成复杂的涉及实体社会空间的应用,这些应用所在的设备很多都是维系民生的重要节点的关键基础设施设备,甚至包括关键工控设施的基础传感器。被入侵的这些设备本身具有更多的资源纵深价值,这比使用这些设备参与DDoS攻击所带来的危险更为严重。其大面积的脆弱性存在,有着更为隐蔽、危害更大的社会安全风险和国家安全风险。只是这种风险,更不容易被感知到罢了。

把公众影响力作为衡量网络安全事件的主要度量衡,是大规模蠕虫爆发时代的惯性。但在安全威胁日趋变得更加定向而隐蔽的时候,如果我们只关注容易看见的威胁,就必然会放过更危险的敌人。克劳赛维茨说:“几乎所有的战局,间歇和平静的时间远远多于行动的时间。”对于安全工作者来说,还有什么比毫无先兆的平静更令人恐惧的呢?

加强IoT设备的安全防护,提高攻击入侵IoT设备的成本,以及加强IoT设备的安全威胁监测预警,是安天已经在进行的工作,就像我们在过去十年让安天AVL SDK引擎运行于数万台防火墙和数亿部手机中一样。

安天透过北美DDoS事件解读IoT设备安全——Mirai的主要感染对象是linux物联网设备,包括:路由器、网络摄像头、DVR设备,入侵主要通过telnet端口进行流行密码档暴力破解,或默认密码登陆,下载DDoS功能的bot,运行控制物联网设备的更多相关文章

  1. hydra暴力破解ssh服务器密码

    概述 我都没想到,第一次暴力破解服务器密码.竟然是对自己的单位服务器出手..囧,因为还没来得及找测试部要来服务器登录密码,测试部负责人已经下班走了.后来又联系不上,这要更新代码,怎么办..于是就对测试 ...

  2. 暴力破解ZIP文件密码

    Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...

  3. mysql 暴力破解 root账号密码

    测试数据库的root账号密码大家都忘记了,好吧,那我们就暴力破解吧 1.找到my.cnf vi /etc/my.cnf在[mysqld]的段中加上一句:skip-grant-tables例如:[mys ...

  4. 利用python暴力破解压缩文件密码

    import randomimport sysimport zipfileimport timefrom threading import Threadfrom multiprocessing imp ...

  5. 【转】暴力破解无线WiFi密码

    # coding:utf-8 import pywifi from pywifi import const import time from asyncio.tasks import sleep cl ...

  6. python 编写暴力破解mysql用户名密码

    本文摘自别人的,自己运行调试了一下#!/user/bin/env python#-*- coding:utf-8 -*- import pymysql#导入连接数据库的模块import sys cla ...

  7. 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示

    基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...

  8. 教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码

    教你用免费的hihttps开源WEB应用防火墙阻止暴力破解密码 很多企业都有自己的网站,需要用户登录后才能访问,但有大量的黑客攻击软件可以暴力破解网站密码,即使破解不了也非常恶心.有没有免费的解决办法 ...

  9. 使用pdfcrack & crunch暴力破解PDF密码

    crunch是密码字典生成器,可以根据指定的字符来生成组合密码字典. pdfcrack是Linux下一个PDF暴力破解密工具,可以使用crunch生成的密码字典来暴力破解PDF文件的密码. 注:没有强 ...

随机推荐

  1. Python学习笔记3-string

    More on Modules and their Namespaces Suppose you've got a module "binky.py" which contains ...

  2. 转 class和struct最本质的区别

    class和struct最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别. 什么是class? class(类)是面向对象编程的基本概念,是一种自定义数据结构 ...

  3. 【BZOJ】3295: [Cqoi2011]动态逆序对

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295 mamaya,弱鸡xrdog终于会写树套树啦.... 将树状数组中每一个节点看成一棵 ...

  4. Kali Linux 更新源 操作完整版教程

    一.查看kali系统的更新源地址文件 命令: vim /etc/apt/sources.list 上面这是kali官方的更新源: 拓展知识: 一个完整的源包括:deb 和 deb-src:上图源地址是 ...

  5. MVC数据列表展示【三】

    一.控制器向视图传递参数的两种形式:使用到的技术有EF,linq表达式,StringBuilder,相关技术都可以在我的博客园中找到详细的技术介绍. 1. 第一种是通过字符通过foreach循环拼接将 ...

  6. C++.运行时类型判断_测试代码

    ZC:C++ 编程思想——运行时类型识别 - 浅墨浓香 - 博客园.html(https://www.cnblogs.com/5iedu/articles/5585895.html) -------- ...

  7. 借助JCharDet获取文件字符集

    前段时间,在学习lucene的时候,遇到了读取txt文档遇到编码错误的问题.学了几个解决方案,大部分是将文件转十六进制(可以使用UE的Ctrl+H来查看),读取开头的四个标志位来判断.可是总有些文本文 ...

  8. [转]C++中const、volatile、mutable的用法

    原文:https://blog.csdn.net/imJaron/article/details/79657642 const意思是“这个函数不修改对象内部状态”. 为了保证这一点,编译器也会主动替你 ...

  9. Vscode中运行js文件或部分代码 ,在下面cmd输出中显示结果

    重启 vscode,  这个插件  真好用,, 赞个 ....

  10. css的table布局

    1.table中对tr设置margin-top是没有作用的.