双色球彩民乐预测 今晚双色球预测最准确号码预测 双色球开奖玩法说明 双色球中奖图片恶搞 双色球精准预测6十1玉玲珑 微信可以购买双色球吗 双色球走势图表近50期 双色球中奖方法 双色球开奖结果走势图全图 双色球连号组数怎么看 双色球开奖查询表 双色球选号技巧 双色球专家杀号360 双色球预测最准确专家 程远双色球预测分析

Mirai物联网僵尸攻击深度解析

Kong 2016-10-28 15:17:11


有的厂商将Mirai命名为蠕虫不是很贴切£¬Mirai利用类似蠕虫的方式感染(与传统蠕虫感染方式不同)£¬但?#23548;?#19978;是一款僵尸程序¡£因而称之为Mirai僵尸蠕虫更为准确£¬后文主要以僵尸称呼¡£

美国大面积的网络瘫痪?#24405;?/b>

2016年9月30日£¬黑客Anna-senpai公开发布Mirai僵尸源码¡£其公布源码的目的一则是发现有关机构正在清理其掌控的僵尸设备£»二则是为了让更多的黑客使用该僵尸进行扩散£¬掩人耳目£¬隐藏自己的踪迹¡£

2016年10月21日£¬美国东海岸地区遭受大面积网络瘫痪£¬其原因为美国域名解析服务提供商Dyn公司当天受到强力的DDoS攻击所致¡£Dyn公司称此次DDoS攻击涉及千万级别的IP地址(攻击中UDP/DNS攻击源IP几乎皆为伪造IP£¬因此此数量不代表僵尸数量)£¬其中部分重要的攻击来源于IOT设备£¬攻击活动从上午7:00£¨美国东部时间£©开?#36857;?#30452;到下午1:00才得以缓解£¬黑客发动了三次大规模攻击£¬但是第三次攻击被缓解未对网络访问造成明显影响¡£

此次攻击是一次跨越多个攻击向量以及互联网位置的复杂攻击£¬Flashpoint与Akamai的分析确认攻击流量的来源之一是感染了Mirai僵尸的设备£¬因为部分离散攻击IP地?#38450;?#33258;Mirai僵尸网络¡£

Mirai僵尸在黑客Anna-senpai公布源码后£¬被黑客利用并快速的形成了大量的僵尸网络£¬其中部分黑客参与了此次攻击£¬目?#23433;?#25490;除黑客Anna-senpai也参与了本次攻击£¬其拥有大概30万-40万的Mirai僵尸肉鸡¡£

启明星辰ADLab分析发现£¬Mirai僵尸借鉴了QBOT的部分?#38469;õ£?#24182;在扫描?#38469;õ¡?#24863;染?#38469;?#31561;方面做了优化£¬大大提升了感染速度¡£

Mirai僵尸重要?#24405;?#22238;溯

此次针对Dyn域名服务器的攻击让古?#31995;ÄDDoS?#38469;?#20877;一次震撼了互联网£¬其中最引人注目是物联网僵尸网络的参与£¬物联网概念流行了近7年£¬大量的智能设备正不?#31995;?#25509;入互联网£¬其安全脆弱性¡¢封?#25307;?#31561;特点成为黑客争相夺取的资源¡£目前已经存在大量针对物联网的僵尸网络£¬如QBOT¡¢Luabot¡¢Bashlight¡¢Zollard¡¢Remaiten¡¢KTN-RM等等£¬并?#20197;?#26469;越多的传统僵尸也开始加入到这个物联网行列?#23567;?/p>

通过启明星辰ADLab的调查分析£¬Mirai僵尸网络有两次攻击史£¬其中一次是针对安全新闻工作者Brian Krebs的网站£¬攻击流量达到665Gbps¡£

另一次是针对法国网站主机OVH的攻击£¬其攻击流量达到1.1Tbps£¬打破了DDoS攻击流量历史记录¡£

                

Mirai僵尸重要?#24405;?#22238;顾£º

£¨1£©2016年8月31日£¬逆向分析人员在malwaremustdie博客上公布mirai僵尸程序详细逆向分析报告£¬?#21496;?#20844;布的C&C惹怒黑客Anna-senpai¡£

£¨2£©2016年9月20日£¬著名的安全新闻工作者Brian Krebs的网站KrebsOnSecurity.com受到大规模的DDoS攻击£¬其攻击峰值达到665Gbps£¬Brian Krebs推测此次攻击由Mirai僵尸发动¡£

£¨3£©2016年9月20日£¬Mirai针对法国网站主机OVH的攻击突破DDoS攻击记录£¬其攻击量达到1.1Tpbs£¬最大达到1.5Tpbs

£¨4£©2016年9月30日£¬Anna-senpai在hackforums论坛公布Mirai源码,并?#39029;?#31505;之前逆向分析人员的错误分析¡£

£¨5£©2016年10月21日£¬美国域名服务商Dyn遭受大规模DDoS攻击£¬其中重要的攻击源确认来自于Mirai僵尸¡£


在2016年10月初£¬Imperva Incapsula的研究人员通过调查到的49,657个感染设备源分析发现£¬其中主要感染设备有CCTV摄像头¡¢DVRs以及路由器¡£根据这些调查的设备IP地址发现其感染范围跨越了164个国?#19968;?#22320;区£¬其中感染量最多的是越南¡¢巴西¡¢美国¡¢中国大陆和墨西哥¡£

直到2016年10月26日£¬我们通过Mirai特征搜索shodan发现£¬当前全球感染Mirai的设备已经超过100万台£¬其中美国感染设备有418,592台£¬中国大陆有145,778台£¬澳大利亚94,912台£¬日本和中国香港分别为47,198和44,386台¡£

在该地图中颜色越深£¬代表感染的设备越多£¬可以看出感染Mirai最多的几个国家有美国¡¢中国和澳大利亚¡£

Mirai源码分析

Mirai源码是2016年9月30日由黑客Anna-senpai在论坛上公布£¬其公布在github?#31995;?#28304;码被star了2538次£¬被fork了1371次¡£

Mirai通过扫描网络中的Telnet?#30830;?#21153;来进行传播£¬?#23548;?#21463;感染的设备bot并不充当感染角色£¬其感染通过黑客配置服务来实施£¬这个服务被称为Load¡£黑客的另外一个服务器C&C服务主要用于下发控制指令£¬?#38405;?#26631;实施攻击¡£

通过我们对僵尸源码的分析发现£¬该僵尸具备如下特点£º

£¨1£©黑客服务端实施感染£¬而非僵尸自己实施感染¡£

£¨2£©采用高级SYN扫描£¬扫描速度提升30倍以上£¬提高了感染速度¡£

£¨3£©强制清除其他主流的IOT僵尸程序£¬干掉竞争对手£¬独占资源¡£比如清除QBOT¡¢Zollard¡¢Remaiten Bot¡¢anime Bot以及其他僵尸¡£

£¨4£©一旦通过Telnet服务进入£¬便强制关闭Telnet服务£¬以及其他入口如£ºSSH和web入口£¬并且占用服务端口防止这些服务复活¡£

£¨5£©过滤掉通用电气公司¡¢惠普公司¡¢美国国家邮政局¡¢国防部等公司和机构的IP£¬防止无效感染¡£

£¨6£©独特的GRE协议洪水攻击£¬加大了攻击力度¡£


Mirai感染示意?#36857;?/p>

上?#25216;?#21333;显示了Mirai僵尸的感染过程£¬与普通僵尸感染不同的是£¬其感染端是通过黑客服务端实施的£¬而不是靠bot来实施感染¡£

受感染的设备端的 bot程序通过随机策略扫描互联网?#31995;?#35774;备£¬并会将成功猜解的设备用户名¡¢密码¡¢IP地址£¬端口信息以一定格式上传给sanListen,sanLiten解析这些信息后交由Load模块来处理£¬Load通过这些信息来登录相关设备对设备实施感染£¬感染方式有echo方式¡¢wget方式和tftp方式¡£这三种方式都会向目标设备推送一个具有下载功能的微型模块£¬这个模块被传给目标设备后£¬命名为dvrHelper¡£最后£¬dvrHelper远程下载bot执行£¬bot再次实施Telnet扫描并进行密猜解£¬由此周而复始的在网络中扩散¡£这种感染方式是极为有效的£¬Anna-senpai曾经每秒会得到500个成功爆破的结果¡£

bot分析

bot是mirai僵尸的攻击模块£¬其主要实现对网络服务设备£¨扫描过程不只针对IOT设备£¬只要开启Telnet服务的网络设备均不会放过£©的Telnet服务的扫描并尝试进行暴力破解£¬其会将成功破解的设备ip地址¡¢端口¡¢用户名¡¢密码等信息发送给黑客配置的服务器¡£并且同时接收C&C服务器的控制命令?#38405;?#26631;发动攻击¡£

1¡¢IOT设备防重启

由于Mirai的攻击目标主要设计来针对IOT设备£¬因此其无法将自身写入到设备固件中£¬只能存在于内存?#23567;?#25152;以一旦设备重启£¬Mirai的bot程序?#31361;?#28040;失¡£为了防止设备重启£¬Mirai向看门狗发送控制码0×80045704来禁用看门狗功能¡£

通常在?#24230;?#24335;设备中£¬固件会实现一种叫看门狗(watchdog)的功能£¬有一个进程会不?#31995;?#21521;看门?#26041;?#31243;发送一个字节数据£¬这个过程?#24418;构ÙE?#22914;果?#26500;?#36807;程结束£¬那么设备?#31361;?#37325;启£¬因此为了防止设备重启£¬Mirai关闭了看门狗功能¡£这种?#38469;?#24120;常被广泛应用于?#24230;?#24335;设备的攻击中£¬比如曾经的海康威视漏洞£¨CVE-2014-4880£©攻击代码中就采用过这种防重启?#38469;õ¡?/p>

这里有个小插曲£¬2016年8月31日£¬一位逆向分析人员将此代码判定错误£¬认为这是为了做延时而用£¬黑客Anna-senpai在Hackforums论坛公布源码时嘲笑并斥责了该逆向分析人员的错误¡£

2¡¢进程名隐藏

Mirai为了防止进程名被暴露£¬在一定程度上做了隐藏£¬虽然这种隐藏并不能起到很好的作用¡£Mirai的具体做法是将?#22336;?#20018;进行了随机化¡£

3¡¢防止多实例运行

Mirai同大多数恶意代码一样£¬需要一种互斥机制防止同一个设备多个实例运?#23567;?#20294;Mirai采用的手段有所不同£¬其通过开启48101端口来防止多个实例运行£¬具体做法是通过绑定和监听此端口£¬如果失败£¬便会关闭已经开启此端口的进程确保只有一个实例运?#23567;?#36825;个特点是检测网络设备中是否存在Mirai的最高效的检测方法¡£

4¡¢重绑定?#38469;?#38450;止外来者抢占资源

Mirai有一个特点就是具有排他性£¬设备一旦感染£¬其会通过端口来关闭Telnet£¨23£©¡¢SSH£¨22£¬编译时可选删除项£©¡¢HTTP£¨80£¬编译时可选删除项£©服务并?#19968;?#38459;止这些服务进行重启£¬其主要实现方法是通过kill强制关闭这三个服务进程£¬并强行占用这些服务开启时所需要的端口¡£?#21496;ÙMirai既可以防止设备被其他恶意软件感染£¬?#37096;?#20197;防止安全人员从外部访问该设备£¬提高Mirai的取证难度¡£此功能实现在killer.c文件?#23567;?/p>

Telnet服务的重绑定实现如下?#36857;¬SSH和HTTP服务采用类似的方式实现¡£

SSH服务的重绑定实现£º

HTTP服务的重绑定实现£º

通过对?#23548;?#26679;本的分析我们发现£¬大部分黑客并没有对SSH和HTTP进行重绑定操作£¬绝大部分都只针对于Telnet服务进行了重绑定¡£

5¡¢干掉竞争对手£¬独占资源

Mirai会通过一种 memory scraping的?#38469;?#24178;掉设备中的其他恶意软件£¬其具体做法是搜索内存中是否存在QBOT特征¡¢UPX特征¡¢Zollard蠕虫特征¡¢Remaiten bot特征来干掉对手£¬以达到独占资源的目的¡£

此外£¬Mirai如果发现anime恶意软件£¬同样?#19981;?#24378;行干掉它¡£

6¡¢可感染设备探测

Mirai僵尸随机扫描网络中IOT设备的Telnet服务并通过预植的用户名密码进行暴力破解£¬然后将扫描得到的设备IP地址¡¢端口¡¢设备处理器架构等信息回传给Load服务器¡£这里要注意的是£¬Mirai的随机扫描是有一个过滤条件的£¬其中比较有意思就是他会过滤掉通用电气公司¡¢惠普公司¡¢美国国家邮政局¡¢国防部等公司和机构的IP地址¡£

Mirai僵尸中内置有60余个用户名和密码£¬其中内置的用户名和密码是?#29992;?#22788;理过的£¬?#29992;?#31639;法是通过简单的单字节多次异或实现£¬其密钥为0xDEADBEEF, 解密密钥为0xEFBEADDE¡£

Mirai使用高级SYN扫描?#38469;?#23545;网络中的设备进行扫描破解£¬其速度较僵尸程序QBOT所采用的扫描?#38469;?#24555;80倍£¬资源消耗减少至少达20倍¡£因此具备强大的扫描感染能力£¬黑客在?#21344;?#32905;鸡过程中£¬曾经每秒可新增500个IOT设备¡£

Telnet服务扫描实现如下£º

当Mirai扫描到Telnet服务时£¬会连接Telnet并进行暴力登录尝试¡£Mirai首先会使用内置的用户名和密码尝试登录£¬之后通过发送一系列命令来判定登录成功与否¡£如果成功则试图进行一些操作£¬比如开启shell等操作£¬其发送的命令被初始化在一个Table中£¬如下表所示£º

命令操作类型    Index    有效    功能描述
TABLE_SCAN_CB_DOMAIN    18    yes    domain to connect to
TABLE_SCAN_CB_PORT    19    yes    Port to connect to
TABLE_SCAN_SHELL    20    yes    ‘shell’ to enable shell access
TABLE_SCAN_ENABLE    21    yes    ‘enable’ to enable shell access
TABLE_SCAN_SYSTEM    22    yes    ‘system’ to enable shell access
TABLE_SCAN_SH    23    yes    ‘sh’ to enable shell access
TABLE_SCAN_QUERY    24    yes    echo hex string to verify login
TABLE_SCAN_RESP    25    yes    utf8 version of query string
TABLE_SCAN_NCORRECT    26    yes    ‘ncorrect’ to fast-check for invalid password
TABLE_SCAN_PS    27    no    “/bin/busybox ps”
TABLE_SCAN_KILL_9    28    no    “/bin/busybox kill -9 “

以上表格中只有TABLE_SCAN_PS和TABLE_SCAN_KILL_9进行了初始化而未?#38405;?#26631;设备进行预执行操作¡£从20到26的操作均是在发送用户名和密码后的登录验证操作¡£其中TABLE_SCAN_CB_DOMAIN和TABLE_SCAN_CB_PORT为黑客配置的Load服务器£¬该服务器用于获取有效的Telnet扫描结果£¬扫描结果中包含IP地址¡¢端口¡¢Telnet用户名和密码等信息¡£发送信息的格式如下£º

zero£¨1个字节£©    IP地址(4bytes)    端口(2bytes)    用户名长度(4bytes)    用户名(muti-bytes)    密码长度(4bytes)    密码(muti-bytes)
7¡¢连接C&C,等候发动攻击

Mirai的攻击类型包含UDP攻击¡¢TCP攻击¡¢HTTP攻击以及新型的GRE攻击¡£其中£¬GRE攻击就是著名安全新闻工作者Brian Krebs的网站KrebsOnSecurity.com遭受的主力攻击形式£¬攻击的初始化代码如下£º

C&C会被初始化在一张表中£¬当Mirai回连C&C时£¬会从表中取出C&C进行连接¡£

连接C&C成功后£¬Mirai会进行上线£¬其上线过程非常简单£¬自身简单向C&C发送4个字节的0¡£

接下来会等候C&C的控制命令£¬伺机?#38405;?#26631;发动攻击¡£对于接受控制命令处做了一些处理£¬比如首先会进行试读来做预处理£¨控制指令长度判定等等£©£¬最后才会接受完整的控制命令¡£

当接受到控制命令后£¬Mirai对控制命令做解析并且执?#23567;?#25511;制命令格式如下£º

type Attackstruct {

 Durationuint32

 Typeuint8

 Targetsmap[uint32]uint8 //Prefix/netmask

 Flagsmap[uint8]string // key=value

}

其中£¬前4个字节为攻击时长£¬接下来的4个字节为攻击类型£¨攻击ID£©£¬然后是攻击目标£¬攻击目标格式如下£º

目标数£¨4个字节£©    IP地址(4个字节)    MASK£¨一个字节£©    IP地址(4个字节)    MASK£¨一个字节£©    IP地址….MASK…

最后是Flags£¬Flag是一系列的键值对数据£¬结构类似于攻击目标的格式¡£下面列出Mirai僵尸网络攻击功能列表¡£

攻击类型(32位)    类型值    攻击函数
ATK_VEC_UDP    0    attack_udp_generic
ATK_VEC_VSE    1    attack_udp_vse
ATK_VEC_DNS    2    attack_udp_dns
ATK_VEC_UDP_PLAIN    9    attack_udp_plain
ATK_VEC_SYN    3    attack_tcp_syn
ATK_VEC_ACK    4    attack_tcp_ack
ATK_VEC_STOMP    5    attack_tcp_stomp
ATK_VEC_GREIP    6    attack_gre_ip
ATK_VEC_GREETH    7    attack_gre_eth
ATK_VEC_PROXY    8    attack_app_proxy(已经被取消)
ATK_VEC_HTTP    10    attack_app_http


这其中的GRE攻击也就是9月20日安全新闻工作者Brian Krebs攻击?#24405;?#30340;主力攻击类型¡£

scanListen分析

ScanListen主要用于处理bot扫描得到的设?#24863;?#24687;(ip¡¢端口¡¢用户名¡¢密码)£¬并将其转化为如下格式后输入给Load处理¡£

Load分析

Load模块的主要功能是处理scanListen的输入并将其解析后针对每个设备实施感染¡£其感染实现方法如下£º

£¨1£©首先通过Telnet登陆目标设备¡£

£¨2£©登陆成功后£¬尝试运行命令/bin/busybox ps来确认是否可以执行busybox命令¡£

£¨3£©远程执行/bin/busybox cat /proc/mounts;用于发现可读写的目录¡£

£¨4£©如果发现可用于读写的文件目录£¬进入该目录并将/bin/echo拷贝到该目录£¬文件更名为dvrHelpler£¬并开启所有用户的读写执行权限¡£

£¨5£©接下来通过执行命令”/bin/busybox cat /bin/echo\r\n”来获取当前设备架构信息¡£

£¨6£©如果获取架构信息成功£¬样本试图通过三种方式对设备进行感染£¬这三种方式分别为echo方式¡¢wget方式¡¢tftp方式¡£

£¨7£©接下来通过Telnet远程执行下放的程序¡£

£¨8£©最后远程删除bot程序¡£

总 结

僵尸网络已成为全球面临的共同问题£¬其攻击不同于其他以窃密¡¢远控为主的恶意代码£¬其通过掌握着的巨型僵尸网络可以在任何时候对任?#25991;?#26631;发动DDoS攻击¡£僵尸的感染对象已经从服务器¡¢PC¡¢智能手机£¬扩展向摄像头¡¢路由器¡¢家居安防系统¡¢智能电视¡¢智能穿戴设备£¬甚至是婴儿监视器£¬任何互联网连接的设备都可能成为一个潜在的目标¡£而一般用户是很难注意到被感染的状况的¡£Mirai僵尸由于源码的开放可能正在迅速的扩散£¬其攻击的流量特征?#37096;?#33021;快速变化而难以监测¡£由于受感染目标多以IOT设备为主£¬所有的密码均固化在固件中£¬因此即便重启后Mirai从内存中消失也无法杜绝二次感染£¬并且隐藏在这?#26234;度?#24335;设备中是极?#38597;?#23450;其是否受到恶意感染¡£

缓解措施£º

£¨1£©如果感染Mirai£¬请重启设备£¬并且请求设备厂商更新固件剔除Telnet服务¡£

£¨2£©不必要联网的设备尽量不要接入到互联网?#23567;?/p>

£¨3£©通过端口扫描工具探测自己的设备是否开启了SSH (22), Telnet (23)¡¢ HTTP/HTTPS (80/443)服务£¬如果开启£¬请通知?#38469;?#20154;员禁用SSH和Telnet服务£¬条件允许的话?#37096;?#20851;闭HTTP./HTTPS服务£¨防止类似攻击利用Web对设备进行感染£©¡£



Ë«É«Çò°ÉÌù
双色球彩民乐预测 今晚双色球预测最准确号码预测 双色球开奖玩法说明 双色球中奖图片恶搞 双色球精准预测6十1玉玲珑 微信可以购买双色球吗 双色球走势图表近50期 双色球中奖方法 双色球开奖结果走势图全图 双色球连号组数怎么看 双色球开奖查询表 双色球选号技巧 双色球专家杀号360 双色球预测最准确专家 程远双色球预测分析