首页
社区
课程
招聘
[原创] 恶意代码对ARM硬件平台的利用
2008-12-27 08:58 10731

[原创] 恶意代码对ARM硬件平台的利用

2008-12-27 08:58
10731
恶意代码对ARM硬件平台的利用

ARM 结构有很多区别于CISC结构的特性充分利用可以大大提高攻击的质量。

01、ARM体系结构种类繁多、功能复杂、指令集庞大。
        攻击者可以利用ARM体系结构的复杂性针对不同的硬件开发不同的病毒。
        病毒进入系统之后可以使用IsProcessorFeaturePresent 和 QueryInstructionSet这样的API查询硬件特性。
        根据不同的硬件特性,释放不同指令集编写的攻击模块。
        而防御者必须对所有指令集和功能都了解才能有效的分析病毒。
        有些新的指令集,虚拟机未必支持,被病毒利用就可以有效的对抗虚拟机。
        这就像在PC平台。可以使用MMX、SSE、SSE2 、SSE3、3DNOW!这样的指令集写病毒。
        可以大大提高病毒的分析难度。RISC芯片更新换代更快,这点更好利用。

        
02.   ARM体系结构的指令长度固定。
        我们知道ARM体系结构的指令一般有32位的ARM指令和16位的Thumb指令。
        因为指令长度固定,病毒可以利用这个特点方便的实现指令顺序调整(交换指令即可)。
        针对程序中那些顺序无关的指令集合进行顺序调整,可以打乱对手的分析。
        指令顺序调整是一种非加密的变形手段,特别适合用在多态病毒的最初解密代码中。(这部分不能加密。)
        病毒生成和填充垃圾指令非常容易。
        16条4B的不同指令可以产生:16!  超过20万亿种排列方式。
        而PC平台的X86指令集中单条指令的长度从1B-12B不等。要实现指令顺序调整很困难。
        目前我们已经成功实现了病毒传播过程中的指令顺序调整。
        从数据结构角度考虑你可以把一段顺序可调指令组合考虑成一组4B/2B的线性表。

03.   ARM体系结构的指令编码简单。
        ARM指令可以分成若干大类,每一大类中每种指令的不同比特位的含义固定。
        由于编码简单,病毒可以携带自己的垃圾指令生成器,随机生成大量垃圾指令填充自身,扰乱分析。
        在病毒传播过程中随机填充垃圾指令,将大大提高了对手的分析难度。
        我们编写了一个mov指令的垃圾指令生成函数GC_MOV,发现确实很容易编写垃圾指令生成器。
        而PC平台的X86指令集长度不定、结构复杂,想随机生成垃圾指令比较困难。
        一般采用将不同长度的垃圾指令分类放在程序中。根据所需长度随机拷贝调用。显然随机性很差!

04.   ARM体系结构有大量寄存器、主要操作在寄存器中完成。
        这是所有RISC处理器的特点,病毒却可以充分利用。
        一项重要的干扰措施是调整病毒非加密部分寄存器的使用,换用不同寄存器。
        有大量的寄存器所以可以选择的余地非常大。
        主要操作在寄存器中完成,可以修改的代码非常多。
        而ARM指令比较简单。在传播过程中定位要修改的指令,对指令进行修改很容易。

05.    ARM体系结构有多种模式。
         ARM 体系结构有多种模式根据需要切换使用。
         病毒可以利用这一点不断换用多种模式,从而提高分析的难度。
         我发现在我的PPC虚拟机中系统一般处于用户模式。
         通过SetKMode可以切换到系统模式,在系统模式中通过msr指令进入其他模式。

        ARM平台还有其他一些特性,可以充分利用。
        要能够做到这些,你必须对ARM体系结构和ARM汇编有充分的掌握!
        在后面的文章中我们将通过示例来说明上述技术的使用方法。

编写时间:20:10:34        2008 年 03 月 15 日  星期六

修改时间:17:13:39        2008 年 03 月 16 日  星期日

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞7
打赏
分享
最新回复 (18)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2008-12-27 10:07
2
0
过去用X86汇编写过一些概念病毒,使用ARM汇编编写时发现ARM平台有很多新的特性可以利用,就总结了这篇文章。5月份写的一个Windows  CE/ARM平台的概念病毒发布在反病毒论坛上作为样本了,特性还比较多,有兴趣的朋友可以去看看。大家多交流。

http://bbs.kafan.cn/thread-251045-1-1.html
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
newjueqi 7 2008-12-27 10:31
3
0
今天楼主爆发了
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2008-12-27 10:44
4
0
以前看《加密与解密》和《软件加密技术内幕》收获很多!知道有这么个专业网站高手很多,一直想来学习。前面一直上网不便就没办法上来向大家交流学习,今天抓到机会就赶紧来发帖。

主要是公司对上网要求太严了。真是很不爽。
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
newjueqi 7 2008-12-27 10:59
5
0
网络是病毒的温床
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2008-12-27 12:26
6
0
有了网络病毒传播的速度可以极大提高,范围也大大扩展了。
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2008-12-27 12:30
7
0
嵌入式平台的病毒还有很多有趣的应用。比如前面写的概念病毒,感染Windows Mobile手机后可以在手机没有任何反应的情况下向外拨打电话、发送短信等。

如果拨打的是付费电话就会给用户造成较大损失,发短信也一样。
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2008-12-27 12:34
8
0
对外拨打电话可以作为一种简单的黑客窃听手段。

比如:
你可以设定时间让病毒隐蔽的拨打黑客的手机,黑客接通之后就可以听到对方说话的内容。此时对受害人来说手机就是窃听器了。而且对黑客来说是可以是免费的。
雪    币: 255
活跃值: (49)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
ppanger 4 2008-12-27 13:20
9
0
很好的思路 顶一下lz 嵌入式不单是病毒的发展目标 也是rootkit的理想平台 ^_^
雪    币: 179
活跃值: (15)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
徐大力 8 2008-12-27 15:35
10
0
谁有下面的讲稿?

引用:
Petr 介紹了手機上 rootkit 的設計,以 Windows CE 6 為平台。Petr 講得非常的詳細,另外我覺得課程設計得好的地方是,他有詳細說明在 CE 6 上設計 rootkit 跟 Win32 上有什麼不同,跟 CE 5 上又有什麼不同。我覺得這很實用,很多人很熟 Win32 上的方法,用這樣引導可以很快切入主題。不過 Petr 演講的技巧還可以加強,雖然技術講得很清楚,可是語調有些平淡,個人看法啦!
Rich Smith 講的「新型攻擊 -- PDOS:利用 flash update 對於嵌入式系統造成永久破壞之攻法」也很勁爆,主要針對嵌入式系統之設備,利用韌體之 flash update 機制,達成 PDOS 之目的。Rich 將針對各嵌入式系統之 flash update 機制與韌體本身的結構做深入的分析,並介紹一個通用的模糊暴力式探測平台(generic fuzzing framework)-- PhlashDance。PhlashDance能自動在各式各樣不同的嵌入式系統中找出 PDOS 漏洞。
接下來是 Sean,講的是「嵌入式 script 攻擊」。script 語言一直被認為只有在 Web 上被運用,但是實際上,在今天,許許多多的應用中都會使用嵌入式 scripts(embedded scripts),而我們也觀察到,惡意程式的製造者越來越懂得利用嵌入式 script 來達成攻擊。加上 script 的變形非常容易,要偵測惡意的 script 真是非常困難。
最後是 Nanika 講的「手機上的強大邪惡」,就如同他自己說的,Nanika 可說是大會「好酒陳甕底」,講得很好,他跟 Petr 兩個人可以說把 Windows CE 5/6 的 rootkit 手法涵蓋得很完整了。
雪    币: 32406
活跃值: (18795)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2008-12-27 19:10
11
0
欢迎欢迎,又一位高手即将浮出水面
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
qihoocom 9 2008-12-28 11:23
12
0
3年前就写过利用某嵌入平台的电子溢出+红外传播+感染内核的VIRUS~比现在什么手机病毒高级多了,可惜当时被某CON觉得太过超前,没有选中,于是心灰意冷,投奔了PC~
雪    币: 155
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
greatbob 2008-12-29 05:37
13
0
看来可以拿PPC来做下试验。。。。
雪    币: 8863
活跃值: (2369)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
cvcvxk 10 2008-12-29 05:39
14
0
强大的MJ~~无所不能的MJ~
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gooogleman 2009-1-13 10:35
15
0
真是要学习一下了。
雪    币: 53
活跃值: (255)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
netsniffer 2009-2-7 17:13
16
0
搞了几年CE了,05年的时候有个老外仿照WIN32的机制写的那个很经典的CE病毒不错,由于是ARM汇编码从内核中找API,在很多PPC设备上都可以完美的跑起来。但它是PPC2003,基于CE.NET4.2内核,在我以前的CE5设备上跑总出错,后来我在设备上调试后,才看到了微软在版本演进中修改了内核中关键的数据结构及地址,以后新的版本也许还会改或者不同的OEM厂商也会定制,所以CE病毒在WINCE设备上不一定奏效,毕竟OEM厂商对CE进行了很多定制和裁剪,同理那些封闭的平台如一些其他厂商自己的SDK,自己的OS Kernel那就更没戏了,很多网络通信,文件操作等相关API几乎没法使用,但基于开放的SDK如M$的Mobile系列,Symbian的S60系列,还是很有用武之地的。
雪    币: 53
活跃值: (255)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
netsniffer 2009-2-7 17:17
17
0
楼主是UESTC的吗,在教师空间上发东西,看来还是校友哦。
呵呵,以前上学的时候讲义什么的都是从老师的空间上下载,当年俺是微电子的。
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-3-10 17:30
19
0
WM中所有系统级别的DLL在装入内存后最初的4K内存空间不能读写。所以动态定位coredll.dll然后查找API还比较麻烦。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
义气赵云 2009-4-5 17:41
20
0
3G对手机病毒来说呵呵,也是一个增长剂。
游客
登录 | 注册 方可回帖
返回