发明名称 基于流的IPSec VPN协议深度检测方法
摘要 一种基于流的IPSec VPN协议深度检测方法,用于网络安全领域。本发明首先在智能代理或探针机器上打开网卡的混杂模式进行循环监听,并且设置BPF过滤器抓取IPSec VPN报文。对IPSec报文序列流存储并进行深度检测,识别和分析IPSec VPN报文是否为伪造,是否是非标准格式报文,并且能够根据IPSec VPN报文序列流的上下文解析出非标准格式报文和标准格式报文之间的区别。本发明提出的根据协议会话状态的深度检测方法有相当的智能性,可以分析未知格式的报文,而且实现简单,性能稳定,可以应用在监察代理、防火墙、IDS等领域。
申请公布号 CN101286896B 申请公布日期 2010.09.29
申请号 CN200810038552.6 申请日期 2008.06.05
申请人 上海交通大学 发明人 周志洪;蒋兴浩;李建华;訾小超;张月国
分类号 H04L12/26(2006.01)I;H04L12/56(2006.01)I;H04L12/46(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L12/26(2006.01)I
代理机构 上海交达专利事务所 31201 代理人 王锡麟;王桂忠
主权项 一种基于流的IPSec VPN协议深度检测方法,其特征在于,包括如下步骤:步骤一:在智能代理或者探针设备上把网卡设为混杂模式,并通过调用libpcap网络抓包库函数进行循环监听,设置BPF抓包过滤器来抓取所有UDP 500端口和4500端口的报文,也即IPSec VPN使用的Internet密钥交换协议报文,设置回调函数callback为基于流的深度检测函数,每次抓到报文就会自动调用基于流的深度检测函数进行处理;所述回调函数callback是由系统接收到消息自动调用的函数,将基于流的深度检测的函数地址作为参数,设置为回调函数,当Libpcap抓到符合过滤规则UDP 500端口和UDP 4500端口的报文,就会自动去调用基于流的深度检测函数;步骤二:在回调函数也就是基于流的深度检测函数中把抓取到的IPSec VPN的密钥交换报文流都保持在数据结构中,对IPSec VPN的密钥交换报文流的上下文进行分析和检测,首先按照标准的IPSec VPN报文格式去解析,定位SA协商请求报文和SA协商响应报文,并提取VPN关键信息;如果能正确解析,那么该IPSec VPN报文序列是标准的,如果不能解析,那么说明IPSec VPN报文序列是非标准的或者是伪造的,此时各个字段内容都被打乱,按标准协议格式无法得知哪些是SA协商请求报文,哪些是SA协商响应报文,这时根据报文流的上下文信息特征分析检测出哪个报文是SA协商响应报文,再对这些非标准的SA协商响应报文进行关键字段的提取,如果根据报文流的上下文特征还检测不出来,则认为是伪造的IPSec VPN报文,这时触发相关安全事件进行处理;步骤三:根据上个步骤上下文信息也即基于流的深度检测方法检测出来的SA协商响应报文,寻找SA协商响应报文中的NextPayLoadType,解析出标准或非标准的IPSec VPN报文中所采用的算法,从而检测出其中不符合中国密码管理委员会政策规定的算法,或者是VPN生产厂家不按标准协议格式设计的非标准的IPSec VPN协议,或者是伪造的IPSec VPN报文,并按照设置安全规则进行报警、或者记录日志处理; 所述的对IPSec VPN报文序列的上下文进行分析和检测,具体为:利用SA协商请求报文在前,SA协商响应报文在后的上下文特征,在因为非标准格式从而序列中所有报文都无法解析的情况下,结合SA协商请求报文和SA协商响应报文自身的报文特征来分析和检测,找到哪个是SA协商响应报文,并在SA协商响应报文中的SA payload字段中提取其中关键VPN信息;如果要检测IPSec VPN所使用的加密算法、哈希算法、认证算法、组描述算法,在VPN报文都是标准的情况下,只需要抓取SA协商响应报文,不需要利用上下文信息;所述的SA协商请求报文和SA协商响应报文的特征具体为:SA协商请求报文与SA协商响应报文的主要区别是是否存在8字节的Responder Cookie,有则是SA协商响应报文,否则为SA协商请求报文,而SA协商响应报文与其他IKE报文的区别在于NextPayLoadType字段值;所述的结合SA协商请求报文和SA协商响应报文自身的报文特征来分析和检测是把SA协商请求报文作为上文,SA协商响应报文作为下文,然后是进一步的协商报文:先搜索连续8个字节的0加一个字节1的Responder Cookie及NextPayLoadType,能找到这个特征标志的作为上文,也就是SA协商请求报文,通过比对和标准格式的差异,确定该非标准协议做了哪些改动,通过相同的反改动就可以对包含NextPayLoadType字段值为1的报文作为下文:SA协商响应报文中提取想要提取的关键信息;所述的SA协商请求报文和SA协商响应报文,是指:IPSec VPN采用IKE协议完成密钥协商过程,发起方VPN首先向接收方VPN发起开始ISAKMP SA协商的请求,即利用IKE协议发送包含多个包含不同加密算法、哈希算法组合的传输方案,称该网络报文为SA协商请求报文;接收方VPN收到该报文后,对发起方进行反馈,即利用IKE协议发送唯一认可的一个传输方案,称为SA协商响应报文;所述的ISAKMP提供密钥管理架构,定义了SA的建立、协商、修改、删除规程和报文格式,ISAKMP协议独立于密钥交换协议、加密算法和认证方法,ISAKMP下层由UDP协议承载,端口号为500,当存在NAT时端口号为500或4500,ISAKMP协议交换4到6个报文,分三个步骤:1)协商安全参数2)Diffie-Hellman交换 3)认证实体这三个步骤通过主模式或者野蛮模式来完成。
地址 200240 上海市闵行区东川路800号