[发明专利]一种生成特征码状态表、匹配特征码的方法和装置有效
申请号: | 200710118537.8 | 申请日: | 2007-07-09 |
公开(公告)号: | CN101094230A | 公开(公告)日: | 2007-12-26 |
发明(设计)人: | 常利民 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司 | 代理人: | 王琦;王诚华 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生成 特征 状态 匹配 方法 装置 | ||
技术领域
本发明涉及网络安全领域技术,特别是涉及一种生成特征码状态表、匹配特征码的方法和装置。
背景技术
为了保证计算机或网络安全,通常需要检查文件或报文中是否存在妨害安全的信息,比如:病毒、攻击程序等。由于这些病毒或攻击程序通常具有某种特征码,所以在检查文件或报文时,特征码就常常被作为被检查的对象。如果检查出文件或报文中存在某种特征码,则可以认为该文件或报文有妨害安全的信息。
特征码一般用正则表达式(Regular Expression)的形式进行描述。比如:a{1}(b|c)d为一个正则表达式,表示以字符a开始,后跟一个字符b或c,最后以d结尾。假如在检查时将特征码作为输入的字符串,正则表达式也可以表示输入过程的状态,即:先输入字符a,再输入字符b或c,最后输入字符d。也就是说,a{1}(b|c)d这条正则表达式可以表示字符串输入过程的三种状态。
由于正则表达式可以表示字符串输入状态的情况,所以,为了提高检查效率,通常将被检查的正则表达式编译为确定状态机(DFA,DeterministicFinite Automation)的形式。这样,就可以将文件或报文中的字符串作为输入字符串,利用DFA对输入的字符串的状态进行匹配,如果匹配成功,则确定输入字符串中存在特征码,从而实现特征码的匹配。
一般来说,文件或报文中的字符为ASCII码字符,所以DFA通常是一个256列、n行的状态表。其中,256列分别与0~255个ASCII码对应,n行分别与字符串输入过程的各个状态对应,每一个状态值则表示从当前状态达到的下一状态,即状态表保存了所有输入字符和输入状态的对应关系。当需要检查文件或报文时,可以将文件或报文中的字符作为输入的字符串。当输入第一个字符时,从状态表的某一行开始,比如第一行,根据该字符的ASCII码查询对应列的状态值,再转到该状态值表示的行,并判断该行是否为表示成功匹配的行,如果不是,则重新输入下一个字符,并依此类推,直至完成匹配。
下面再用一个具体的例子说明状态表的表示方法。假设正则表达式为a(b|c)+[de]{2,4}f,对应的状态表如表一所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710118537.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电视机数据复制的方法及其装置
- 下一篇:视频中事件语义识别方法