转贴-恶意代码对ARM硬件平台的利用

[复制链接]
3805|8
 楼主| guet 发表于 2008-12-27 16:22 | 显示全部楼层 |阅读模式
ARM&nbsp;结构有很多区别于CISC结构的特性充分利用可以大大提高攻击的质量。<br /><br />01、ARM体系结构种类繁多、功能复杂、指令集庞大。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;攻击者可以利用ARM体系结构的复杂性针对不同的硬件开发不同的病毒。<br />&nbsp;&nbsp;病毒进入系统之后可以使用IsProcessorFeaturePresent&nbsp;和&nbsp;QueryInstructionSet这样的API查询硬件特性。<br />&nbsp;&nbsp;根据不同的硬件特性,释放不同指令集编写的攻击模块。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;而防御者必须对所有指令集和功能都了解才能有效的分析病毒。<br />&nbsp;&nbsp;有些新的指令集,虚拟机未必支持,被病毒利用就可以有效的对抗虚拟机。<br />&nbsp;&nbsp;这就像在PC平台。可以使用MMX、SSE、SSE2&nbsp;、SSE3、3DNOW!这样的指令集写病毒。<br />&nbsp;&nbsp;可以大大提高病毒的分析难度。RISC芯片更新换代更快,这点更好利用。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />02.&nbsp;&nbsp;&nbsp;ARM体系结构的指令长度固定。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们知道ARM体系结构的指令一般有32位的ARM指令和16位的Thumb指令。<br />&nbsp;&nbsp;因为指令长度固定,病毒可以利用这个特点方便的实现指令顺序调整(交换指令即可)。<br />&nbsp;&nbsp;针对程序中那些顺序无关的指令集合进行顺序调整,可以打乱对手的分析。<br />&nbsp;&nbsp;指令顺序调整是一种非加密的变形手段,特别适合用在多态病毒的最初解密代码中。(这部分不能加密。)<br />&nbsp;&nbsp;病毒生成和填充垃圾指令非常容易。<br />&nbsp;&nbsp;16条4B的不同指令可以产生:16!&nbsp;&nbsp;超过20万亿种排列方式。<br />&nbsp;&nbsp;而PC平台的X86指令集中单条指令的长度从1B-12B不等。要实现指令顺序调整很困难。<br />&nbsp;&nbsp;目前我们已经成功实现了病毒传播过程中的指令顺序调整。<br />&nbsp;&nbsp;从数据结构角度考虑你可以把一段顺序可调指令组合考虑成一组4B/2B的线性表。<br /><br /><br />03.&nbsp;&nbsp;&nbsp;ARM体系结构的指令编码简单。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM指令可以分成若干大类,每一大类中每种指令的不同比特位的含义固定。<br />&nbsp;&nbsp;由于编码简单,病毒可以携带自己的垃圾指令生成器,随机生成大量垃圾指令填充自身,扰乱分析。<br />&nbsp;&nbsp;在病毒传播过程中随机填充垃圾指令,将大大提高了对手的分析难度。<br />&nbsp;&nbsp;我们编写了一个mov指令的垃圾指令生成函数GC_MOV,发现确实很容易编写垃圾指令生成器。<br />&nbsp;&nbsp;而PC平台的X86指令集长度不定、结构复杂,想随机生成垃圾指令比较困难。<br />&nbsp;&nbsp;一般采用将不同长度的垃圾指令分类放在程序中。根据所需长度随机拷贝调用。显然随机性很差!<br /><br /><br />04.&nbsp;&nbsp;&nbsp;ARM体系结构有大量寄存器、主要操作在寄存器中完成。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这是所有RISC处理器的特点,病毒却可以充分利用。<br />&nbsp;&nbsp;一项重要的干扰措施是调整病毒非加密部分寄存器的使用,换用不同寄存器。<br />&nbsp;&nbsp;有大量的寄存器所以可以选择的余地非常大。<br />&nbsp;&nbsp;主要操作在寄存器中完成,可以修改的代码非常多。<br />&nbsp;&nbsp;而ARM指令比较简单。在传播过程中定位要修改的指令,对指令进行修改很容易。<br /><br /><br />05.&nbsp;&nbsp;&nbsp;&nbsp;ARM体系结构有多种模式。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARM&nbsp;体系结构有多种模式根据需要切换使用。<br />&nbsp;&nbsp;&nbsp;病毒可以利用这一点不断换用多种模式,从而提高分析的难度。<br />&nbsp;&nbsp;&nbsp;我发现在我的PPC虚拟机中系统一般处于用户模式。<br />&nbsp;&nbsp;&nbsp;通过SetKMode可以切换到系统模式,在系统模式中通过msr指令进入其他模式。<br /><br /><br />&nbsp;&nbsp;ARM平台还有其他一些特性,可以充分利用。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要能够做到这些,你必须对ARM体系结构和ARM汇编有充分的掌握!<br />&nbsp;&nbsp;在后面的**中我们将通过示例来说明上述技术的使用方法。
dld2 发表于 2008-12-27 19:17 | 显示全部楼层

楼主说的是ARM上面跑wince?

  
wangkj 发表于 2008-12-27 19:46 | 显示全部楼层

手机上网测试

  
 楼主| guet 发表于 2008-12-29 17:28 | 显示全部楼层

攻击者主要针对的平台是Windows Mobile和WinCE

  
xwj 发表于 2008-12-29 17:36 | 显示全部楼层

通用、开放的东西自然就会有人去研究、攻击它

比如智能手机能上网,那就去分析浏览器漏洞、溢出,自然可以让你死机、或运行代码、或窃取文件等,<br />而所有的通讯记录、设置等肯定是在文件或注册表中的<br /><br /><br />而傻瓜化的非智能机,没有太多的功能和外来途径,只能运行确定的程序,当然就不不怕攻击了,但是这个手机也就不好玩了<br /><br /><br />越是智能化、越是网络化就越不安全<br />越是高端的东西,玩玩就越不可靠,但你会因噎废食吗?<br /><br />
dld2 发表于 2008-12-29 20:17 | 显示全部楼层

那意思是说智能手机上也要运行杀毒软件喽

  
leolle 发表于 2008-12-30 15:17 | 显示全部楼层

太有趣了!这样记很好,一下就记住了

  
JiaoJinXing 发表于 2009-1-8 15:19 | 显示全部楼层

低端就用不上了

  
frank_888 发表于 2009-1-19 19:38 | 显示全部楼层

呵呵

看看PC机上病毒的发展过程就知道了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

120

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部