一种IP地址快速定位的方法和系统
技术领域
本发明涉及一种作为网络安全的重要产品之一的入侵检测系统(NIDS)的核心关键技术一种IP地址快速定位的方法和系统,属于计算机网络技术领域。
背景技术
NIDS安装在被保护的网段中,其监听网卡工作在混杂模式下,分析网段中所有的数据包,进行网络安全事件的实时检测和响应。目前NIDS普遍采用两类技术进行安全事件的检测:基于网络数据特征的匹配技术和基于网络行为的检测技术。前者是利用网络数据与攻击模式特征匹配的技术,如果在网络数据中发现攻击特征数据,则生成特征事件,实现事件的报警(在此称之为网络特征事件)。
因为每个IP地址所运行的系统不同,作用也不同,因此对每个IP地址的监测方法也会不同,同时,同一个IDS事件在不同地址上的重要性也不一样。因此,作为NIDS系统,需要对较大的IP地址范围进行IP地址定位处理,提高报警的针对性和准确性。
发明内容
本发明的目的就是解决宏观监测系统中如何快速进行IP定位的问题。它通过使用者可定制的文本化规则,在网络数据解析的基础上,完成数据包IP地址的定位,从而能够向使用者提供数据包的属性信息。
本发明一种IP地址快速定位系统,是在已有IP地址的基础上,将其转换为国家代码和用户自定义的网段信息,从而使入侵检测系统提供较细粒度的约束信息。
该系统包含有:
(1)、对IP定位数据进行解析,其中包括国家IP定位数据和用户自定义IP属性数据,形成定位依据的IP定位数据解析模块。
(2)、从网络中获取数据包,从中解析IP地址;该模块为本系统提供入口参数的IP地址获取模块;
(3)、将模块(2)中获取的IP地址转换为地址属性信息的IP定位模块。
一种IP地址快速定位的方法,包含如下步骤:
(1)、解析IP定位相关数据信息,包括国家代码信息和用户自定义的IP区域信息;
(2)、针对国家定位信息,建立一维的IP地址和地址属性之间的属性索引表;
(3)、针对用户自定义得定位信息,建立二维的IP地址和地址属性之间的属性索引表;
(4)、获取数据包,解析得到IP地址;
(5)、根据步骤(2)、(3)中建立的索引表,和步骤(3)中的IP地址,通过1个查询命令行,得到对应的用户代码。
上述步骤(1)为本系统解析的依据,包括两个部分:国家代码信息和用户自定义网段信息。
上述步骤(2)、(3)针对步骤(1)中的数据进行解析,将国家IP定位数据解析为网段信息和国家代码的索引,将用户自定义定位数据解析为网段信息和用户自定义代码的索引;
至此,本系统的初始化过程完毕,以下为实时IP地址定位过程。
上述步骤(4)为本系统的入口参数,即通过网络获取数据包,并解析得到数据包中的IP地址。
上述步骤(5)为本系统的具体解析过程,获取IP地址所在的网段信息,根据步骤(2)中建立的索引表,得出IP地址对应的国家代码和用户自定义属性代码。
本发明的一种IP地址快速定位的方法,定义了一种自定义、可扩展的IP地址描述方法,能够对任意数量网段的IP数据进行定位。
本发明具有如下优点:
1可以快速完成大范围的IP地址定位查询。快速指仅通过1个查询语句完成(无需条件判断语句),大范围指可以定位所有IP的国家属性,和一千万以上个IP的地址属性。
2、定位数据的解析在初始化过程完成,从而保证了IP定位过程的快速性。
3、检索过程以数组定位的形式进行,从而保证了定位的简便和快速。
4、由于配置信息以规则的形式存在,因此用户可以在不需要升级应用程序的前提下更新定位信息。
附图说明
图1是本发明IP地址快速定位系统的模块分析图;
图2是本发明一种IP地址快速定位的方法的用户自定义定位信息存储方式;
图3是本发明一种IP地址快速定位的方法中用户自定义定位信息存储过程。
下面结合附图和具体实现来详细描述本发明。
具体实现方式
实施例:
图1描述了IP地址快速定位系统的整个分析过程,它分为国家代码定位部分和用户自定义代码定位部分,各类数据存储在文件中,在初始化过程中,把各个IP地址对应的代码,读入相应的内存空间,供运行中查寻使用。
●系统工作的环境:本系统工作在百兆或千兆网络的以太网络环境,通过本系统的百兆或千兆网卡能够获取网络中的以太报文数据包。
●国家IP地址定位系统工作的方法:
①读取配置文件,生成IP定位依据。
全球所有国家的地址分布信息格式为:
国家代码|起始地址|地址数量
国家IP地址段都以256的倍数分配,因此设计一个国家IP分布信息数组,其下标为IP地址的高24位:
unsigned char ipct[0x1000000];
从国家IP地址分布信息配置文件中,根据起始地址和地址数量,计算每个网端段的IP地址,以该IP地址的高24位为下标,用国家代码值写入该数组单元中。
②进行IP地址定位。
将解析得到的IP地址分解为高24位和低8位,以高24位为下标,在国家IP分布信息数组中定位国家代码:
sip_ct=ipct[sip>>8];
●用户自定义定位信息系统工作的方法:
①读取配置文件,生成IP定位依据。
格式为:名称|起始地址|地址数量|用户ID
用户自定义定位信息的存储格式如图2所示,其解析过程如图3所示。
用户自定义定位信息分2个数组进行存储,第一个数组ipdf_data下标为IP地址的高24位数据,数值为第二个数组的第一维下标;第二个数组defineip为二维数组,第二维下标为IP地址的低8位数据,数组数值维为地址属性。
unsigned short ipdf_data[0x1000000];
unsigned short defineip[0x10000][256];
系统读取每条用户自定义定位信息,解析其中的起始地址,地址数量以及属性ID,将其起始地址和地址数量分解为每条IP地址。然后系统将每条地址分解为高24位和低8位进行解析,分别存储为整数类型。
以IP地址的高24位在ipdf_data中进行搜索,如果搜索到内容为0,说明该网段数据第一次出现,需要在defineip数组中新分配256个单元,以存储一个网段的内容,并将该新分配单元的一维下标赋值到ipdf_data中;如果搜索内容不为0,则以该值为defineip的一维下标,IP地址的低8位为defineip的二维下标,将用户属性ID填写入相应单元中。
②进行IP地址定位。
将解析得到的IP地址分解为高24位和低8位,以高24位为下标,在ipdf_data中进行检索,得到相应的值,并结合该值和IP地址的低8位在defineip中进行检索,从而能够快速定位到该IP地址对应的用户属性ID。
sip_df=defineip[ipdf_data[sip>>8]][sip&0xff];
●性能分析:
在国家属性定位系统中,内存使用为:16M字节
在用户自定义定位信息系统中,内存使用为:
16M*2+64K*256*2==64M字节
最大定位IP范围:1600万个IP地址。
速度:每次查询仅1条C代码,没有转移指令,可以在20个机器周期中完成(20条以内的机器指令)。