专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »逆向工程 » 浅谈逆向工程在网络安全研究中的运用(图) »正文

浅谈逆向工程在网络安全研究中的运用(图)

来源: 发布时间:星期四, 2009年3月12日 浏览:0次 评论:0
() 概述   我们逆向世界

  在软件Software破解或者软件Software加密、解密这个圈子里面大家对于逆向工程这个词语并不陌生大家兴趣爱好原因使大家每天都在和逆向工程这个词语进行着斗争当然我们这里使用逆向工程这个概念是计算机软件Software方面逆向工程而没有包括逆向工程这个词语所包含所有范围

  逆向计算机软件Software世界

  从某种程度上来说计算机软件Software逆向工程技术主要过程为分析计算机在分析计算机过程中逐渐建立起高于源代码级别更抽象层次运行过程使用些有助于逆向工程软件Software产品可以帮助我们来完善这个过程建立例如我们通过使用IDA、OD等反编译调试软件Software来寻找功能模块、寻找数据结构等

  广义上逆向工程、案例

  从广义上来讲通过对某种产品结构、功能、运行机理来进行分析、分解、研究完后制作出功能相近但又不完全相同产品这属于逆向工程个基本概念

  逆向工程使用多数人认为会侵犯对方知识产权但在实际应用上却往往又不会侵犯知识产权例如在集成电路领域如果怀疑对手侵犯了自己知识产权则可以完全使用逆向工程技术来搜集自己证据记得有次和朋友讨论知识产权问题在美国好像是产品相似度或者计算机代码相似度超过60%即判定为侵犯知识产权

  在逆向工程针对硬件领域内微软开发人体力学鼠标就是个很典型例子以微软公司生产鼠标器为例就其功能而言只需要有 3个按键就可以满足使用需要但是怎样才能让鼠标器手感最好而且经过长时间使用也不易产生疲劳感却是生产厂商需要认真考虑问题因此微软公司首先根据人体工程学制作了几个模型并交给使用者评估然后根据评估意见对模型直接进行修改直至修改到大家都满意为止最后再将模型数据利用逆向工程软件Software imageware 生成 cad 数据当产品推向市场后由于外观新颖、曲线流畅再加上手感也很好符合人体工程学原理因而迅速获得用户广泛认可产品市场占有率大幅度上升

  从某种角度上来解释逆向工程这个概念我们可以把逆向工程理解为:剖析个产品知道这个产品工作原理因此在逆向工程这个词语概念大范围下逆向工程还包括硬件逆向工程、软件Software逆向工程等等对于硬件逆向工程而言我们可以举个简单例子

  软件Software逆向工程是分析力图在比源代码更高抽象层次上建立表示过程逆向工程是设计恢复过程逆向工程工具可以从已存在中抽取数据结构、体系结构和设计信息

  逆向工程通过对某种产品结构、功能、运作进行分析、分解、研究后制作出功能相近但又不完全产品过程

  逆向工程可能会被误认为是对知识产权严重侵害但是在实际应用上反而可能会保护知识产权所有者例如在集成电路领域如果怀疑某公司侵犯知识产权可以用逆向工程技术来寻找证据

  漏洞挖掘?

  软件Software方面逆向工程大家印象就是漏洞挖掘技术但在实际应用过程中漏洞挖掘在网络安全逆向工程应用方面只属于个环节而已

逆向工程在实际生产中使用   了解生产该产品厂家实力

  在决定采纳某款厂家产品前先对该厂家产品进行适当逆向分析以确认该款产品是否适合自己使用在这个过程中主要需要注意就是厂家产品质量、产品是否符合安全需求例如:我们需要购买批网络安全主动防御产品但我们需要对这些安全厂商产品进行市场调查、功能检查由于网络安全产品特殊性为了更进获取该产品是否符合我方要求可以在适当层面上对该产品进行逆向分析以确认其默认安全性以及产品技术优势

  了解产品功能以方便自己更好创建兼容组件

  很多时候软件Software厂商会公开自己很多组件接口以方便客户开发自己使用第 3方组件某些时候由于软件Software厂商些小客户自行开发第 3方组件往往会出现些未知问题在这个时候就需要我们对软件Software厂商组件进行适当逆向工程以期望找到组件接口内部逻辑流程然后更加和谐创建兼容组件

  确定产品是否存在漏洞或者设计缺陷(软件Software安全性分析)

  在网络安全领域内切以安全两字为基础因此在选择使用某款软件Software产品前在某些特殊情况下需要对这款软件Software产品进行逆向分析分析该产品存在漏洞几率以及该款产品是否存在设计方面缺陷

  评定漏洞存在几率:

  1. 黑盒子测试

  2. 漏洞挖掘工具测试

  3. 针对性Fuzzing测试

  评定设计缺陷:

  1. 非法过滤不足

  2. Unicode和ASCII问题

  3. 权限绕过

  4. 对不正当操作处理程度

  确定产品是否包含未公开功能

  漏洞!…又是漏洞!…在实际情况下确存在这样问题通过上述软件Software安全性分析我们可以得到份详细问题列表以此来验证该款软件Software产品安全性如果发现该产品存在未公开漏洞或者自身即包含了恶意功能在单纯安全性来考虑即使该款产品性能再好我们也不得不放弃这款产品很好例子:迅雷的前版本会搜集用户桌面信息而迅雷目前版本也存在很多不为人知秘密

  产品相似性对比技术(法律相关)

  产品相似性对比分析在安全领域也有所涉及例如某家规模小软件Software厂商通过逆向工程办法“悄悄”使用了另外家软件Software厂商功能模块如果被这家软件Software厂商发现则该厂家可以使用逆向工程对这家软件Software厂商产品进行对比分析以确认代码是否存在相似性

  法律规定:

  代码对比计算机指为了得到某种结果而可以由计算机等具有信息处理能力装置执行代码化指令序列或者可被自动转换成代码化指令序列符号化 指令序列或者符号化语言序列包括源和目标是可以由人类理解高级语言如C语言、FORTRAN语言等组成代码序列它必须进行编 译才能被计算机所运行般来讲计算机软件Software单独以源方式向外传播情况较少大多是以目标形式向外传播而不向外公布其源
 1 2 3 




( 3) 逆向工程对于黑帽、白帽而言   黑帽子:地下黑客技术研究者具备某种邪恶感

  白帽子:安全研究人员多数为网络安全公司在职人员也有很多具备正义性个人研究者

  他们感兴趣方向有那些?

  逆向操作系统熟悉操作系统内部机理

  熟悉操作系统内部从而帮助自己实现些技术想法也包括对操作系统进行漏洞挖掘、相似性对比分析、补丁分析技术

  逆向款软件Software产品熟悉软件Software产品未公开功能及是否存在恶意行为

  某些网络安全逆向研究人员会主动利用业余时间分析病毒、木马、黑客并借此挖掘这些恶意软件Software功能实现及是否存在恶意行为事实证明这样分析是必要例如:在某些闭源黑客工具内经常被安置后门;曾经有款很经典FTP密码破解软件Software就存在恶意行为该软件Software会在检测到自身连续运行24个小时后主动发送已破解FTP用户名、密码至作者邮箱类似案例还有很多例如有些漏洞利用代码作者会书写具有恶意功能shellcode混合入正常shellcode内以迷惑使用exploit脚本小子

  逆向安全产品查找安全产品不足

  安全厂商真可靠嘛?答案很简单不可靠安全软件Software厂商也是由人来编写只是他们软件Software安全性测试流程更加强悍而已而做为邪恶黑帽子而言他们乐趣正是朝这些所谓安全安全厂商进行挑战挑战就是不断挖掘出安全厂商产品中漏洞及弱点对于白帽子而言他们也在研究安全厂商产品个原因是为了检测该产品安全性第 2个原因则是为了找到产品中漏洞-黑客本能反应

  例子:安全研究人员对卡巴斯基逆向并在逆向过程中寻找利用办法当然还有很多黑帽子进行同类型研究只是资料保持了私有

  逆向任何查找漏洞

  对任意常用进行黑盒子测试进行漏洞挖掘黑帽子在发现漏洞后会书写私有化利用代码并进行恶意攻击;白帽子在发现漏洞后会通知厂商并公布漏洞细节

  破解软件Software

  破解软件Software或许使用权把破解软件Software当成种乐趣

  获取软件Software源代码

  通过黑客技术得到软件Software源代码并进行更深入分析

  ( 4) 逆向工程中图形化技术使用

      IDA
    OD
  Windbg
  SoftICE
  Syser Debugger
  图形化软件Software
  Etc… 逆向工程在实际生产中使用   了解生产该产品厂家实力

  在决定采纳某款厂家产品前先对该厂家产品进行适当逆向分析以确认该款产品是否适合自己使用在这个过程中主要需要注意就是厂家产品质量、产品是否符合安全需求例如:我们需要购买批网络安全主动防御产品但我们需要对这些安全厂商产品进行市场调查、功能检查由于网络安全产品特殊性为了更进获取该产品是否符合我方要求可以在适当层面上对该产品进行逆向分析以确认其默认安全性以及产品技术优势

  了解产品功能以方便自己更好创建兼容组件

  很多时候软件Software厂商会公开自己很多组件接口以方便客户开发自己使用第 3方组件某些时候由于软件Software厂商些小客户自行开发第 3方组件往往会出现些未知问题在这个时候就需要我们对软件Software厂商组件进行适当逆向工程以期望找到组件接口内部逻辑流程然后更加和谐创建兼容组件

  确定产品是否存在漏洞或者设计缺陷(软件Software安全性分析)

  在网络安全领域内切以安全两字为基础因此在选择使用某款软件Software产品前在某些特殊情况下需要对这款软件Software产品进行逆向分析分析该产品存在漏洞几率以及该款产品是否存在设计方面缺陷

  评定漏洞存在几率:

  1. 黑盒子测试

  2. 漏洞挖掘工具测试

  3. 针对性Fuzzing测试

  评定设计缺陷:

  1. 非法过滤不足

  2. Unicode和ASCII问题

  3. 权限绕过

  4. 对不正当操作处理程度

  确定产品是否包含未公开功能

  漏洞!…又是漏洞!…在实际情况下确存在这样问题通过上述软件Software安全性分析我们可以得到份详细问题列表以此来验证该款软件Software产品安全性如果发现该产品存在未公开漏洞或者自身即包含了恶意功能在单纯安全性来考虑即使该款产品性能再好我们也不得不放弃这款产品很好例子:迅雷的前版本会搜集用户桌面信息而迅雷目前版本也存在很多不为人知秘密

  产品相似性对比技术(法律相关)

  产品相似性对比分析在安全领域也有所涉及例如某家规模小软件Software厂商通过逆向工程办法“悄悄”使用了另外家软件Software厂商功能模块如果被这家软件Software厂商发现则该厂家可以使用逆向工程对这家软件Software厂商产品进行对比分析以确认代码是否存在相似性

  法律规定:

  代码对比计算机指为了得到某种结果而可以由计算机等具有信息处理能力装置执行代码化指令序列或者可被自动转换成代码化指令序列符号化 指令序列或者符号化语言序列包括源和目标是可以由人类理解高级语言如C语言、FORTRAN语言等组成代码序列它必须进行编 译才能被计算机所运行般来讲计算机软件Software单独以源方式向外传播情况较少大多是以目标形式向外传播而不向外公布其源
 1 2 3 


标签:
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: