码迷,mamicode.com
首页 > 其他好文 > 详细

协议漏洞挖掘或协议逆向工程的一些思考

时间:2015-05-05 18:22:26      阅读:1591      评论:0      收藏:0      [点我收藏+]

标签:

  • [0]协议漏洞挖掘,有时也叫协议逆向技术。学界两种叫法都有,但是国外一般都称协议逆向技术,笔者倾向于协议逆向技术的叫法。

国外的相关术语用了Protocol Reverse Engineering(协议逆向工程,PRE)这样的词,有的会用Network Protocol Reverse Engineering(NPRE)。

国内也会用PRE,部分也会用Protocol Vulnerability mining(协议漏洞挖掘)这样的词。

协议逆向技术有两支,一支是基于指令代码的逆向技术,另一支是基于网络轨迹的逆向技术。前者也叫指令分析技术,后者也叫报文序列分析技术。

对应一些前辈朋友的前期工作,前者也有叫软件协议漏洞或者基于软件工程的协议漏洞挖掘,后者也有叫协议字段划分或者基于报文序列的分析技术。

 

  • [1]对于社会使用来看,协议漏洞挖掘偏向于指令代码分析技术,即通过反编译或者污点跟踪等等,逆向分析通信客户端等等。

因为社会使用需求要求,通信客户端需要给客户使用,一旦给客户使用,则意味着客户端就流向社会,既然社会上程序员很多= =,为什么不用代码指令的分析方法去分析协议漏洞呢,这是自然的想法。对于客户端,反编译等逆向工程技术发展也比较热,也自然使用类似的技术。不过要和协议逆向技术结合,此类逆向工程技术有些不同。

 

  • [2]对于某些用途来看,协议漏洞挖掘偏向报文序列分析技术,即通过观察网络中嗅探或捕获的数据包,分析此类未知协议的规范或字段含义。

因为部分用途场景,使得无法接触到客户端,只好用这样的方式了。表面上这种方式研究很窄= =实际上笔者想说这种研究方式和指令代码分析技术是一样的,都很难,应用都很广,只不过有些朋友没有察觉到这些用途在哪里。

 

  • [3]两者的共性

目的都是为了解析那些私有协议,例如解析QQ协议,Skype协议的规范。这些协议不公开协议字段的规范,只能逆向分析。

两者的共性是天之道,损有余而补不足。两种方式不能说谁强谁弱,只能说谁有技术需求,谁更需要出现在什么场景里。

有些研究者会同时使用两种方法去研究私有协议。

 

  • [4]两者的差异

无法接触到协议产生的实体(客户端或芯片),只能使用报文序列分析技术了。

在部分加密解密问题上,指令代码技术在易行性上更胜一筹,但不意味报文序列就不能解密。

指令代码是偏向计算机的程设或微机理论,报文分析技术偏向数据挖掘等算法理论。

 

  • [5]写在未来

目前国内360的部分产品涉及到解析无线信号(信号也可以看成一种协议报文或协议消息),但是是根据已知规格解析,还未能作未知规格解析。

以震网病毒为例,查询相关资料,其中就含有解析简单未知协议功能,此功能集成到一个体积不大的病毒里,或许标志着国外的逆向协议水平达到相当高的水平。

国内对逆向协议的认识还不太具体,也不太全面,停留于支派游击状态,直到2013年尚未出现百花齐放的局面。

所谓支派游击状态,指的是反编译等逆向工程较为发展成熟,但是与协议漏洞相关的尚处于发展中阶段。同时目前协议逆向技术处于瓶颈期,未能提出重大理论突破,因此国内停留于一些换汤不换药的逆向技术方式。(2004年,2007年,2012年等年份,国外和国内都出现了一些前辈,发表一些重大突破,因而此些前辈成为宗师级人物,然而这些是硕果,每三四年也就这么一篇,算是真正绝妙的点子方法。)

不过敬佩这些人,因为实践是检验真理的唯一标准,有时候唯实践论比空谈理论要更好,这的确是一种经验和教训。

2014年学界出现大量的研究,迅速指向了协议逆向分析的相关研究进步,但客观地说作出较大突破的少,作出理论认识的多,总体仍然是非常进步的。

 

  • [6]塞翁失马,焉知非福。

a)2013年前国内很少人研究这个,就意味着硕果无几,任何一个成果都是非常宝贵的,该技术原本是非常具有推广价值的,但是由于总体研究的人少,导致该技术推销起来,总令人在感性认识上觉得没有什么用。

b)突然一下子,国内很多人研究这个,意味着该领域准备要起步,此类技术或许将要光大。然而这意味着发展起来还需要很多年,同时逆向技术目前将处于瓶颈状态,针对应用层协议的分析工作,较为成熟。其他网络分层的协议分析工作,由于本身技术难度较高,因此不知道会发展到怎样的地步,笔者目前也无法预见到后续的场景,只能说百花齐放是一件好事,会让这个领域活起来,好歹学界也能占有一席之地。

已有宗师级发表各种工具,没有他们的研究和工具,不会开启后续晚辈的探索。

笔者想本人写的工具,会在某一天浮出水面,终有解放一天。

不仅技术理论上协议逆向处于缓慢发展,难点重重,而且技术从理论转化为工程效果时,亦会产生种种问题。

笔者站在前辈的巨人肩膀上看到世界,但是在2013年整个年度时比较孤单,因为同行研究真的是少得可怜,而前辈级的研究一个人读起来又很吃力。

如何在学界和工界,做到协议逆向的两全其美是一件非常难的事,何况学界还没有推进相关工作,处于一定的瓶颈期。

看过一条偈语,“我有明珠一颗,久被尘劳关锁;一朝尘尽光生,照破山河万朵”。

协议逆向的研究过程就是这样那样的际遇。

愿长天有云破之日,愿深海有龙出之时。

 

原文地址:http://www.cnblogs.com/bitpeach/p/4479418.html

协议漏洞挖掘或协议逆向工程的一些思考

标签:

原文地址:http://www.cnblogs.com/bitpeach/p/4479418.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!