具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的单向环境中的网络安全防护方法的示意图,如图1所示,所述单向环境中网络安全防护方法包括:
步骤101:接收第二节点发送给第一节点的SYN_ACK应答数据包,所述SYN_ACK应答数据包中携带有第二节点的IP地址和端口号;
步骤102:根据预置的记录表对所述第二节点的IP地址和端口号进行验证,如果通过验证,则将所述SYN_ACK应答数据包转发给第一节点,否则进入步骤103;
所述预置的记录表存储有通过验证为合法的第二节点的IP地址和端口号,当接收到第二节点发送的SYN_ACK应答数据包时,根据所述数据包中携带的第二节点的IP地址和端口号在所述记录表中进行查找,如果能够查找到所述IP地址和端口号,则认为所述第二节点经过了验证,是安全的,将所述第二节点发送的SYN_ACK应答数据包转发给第一节点,否则认为第二节点未通过验证进入步骤103。
步骤103:根据所述SYN_ACK应答数据包中的ACK值判断所述第二节点的IP地址和端口号是否合法,如果合法则将所述第二节点的IP地址和端口号存储于所述记录表中,否则,向所述第二节点发送构造的包含特征值的SYN请求数据包对所述第二节点进行验证。
当判断所述SYN_ACK应答数据包的合法性时,如果所述SYN_ACK应答数据包中的ACK值等于根据所述SYN_ACK应答数据包中的源IP、目的IP、源端口号以及目的端口号获得的特征值加1,则认为所述SYN_ACK应答数据包合法,否则认为该数据包为可疑数据包。所述构造的SYN请求数据包中的特征值用于验证所述第二节点的合法性,所述特征值根据所述SYN_ACK数据包中携带的所述外部网络的源IP、目的IP、源端口号以及目的端口号获得。
从上述技术方案可知,在本发明实施例所示的方法中,当接收到第二节点发送的SYN_ACK应答数据包后,通过向发送可疑SYN_ACK应答数据包的第二节点发送构造的SYN请求数据包进行验证,所述构造的SYN请求数据包中包含有用于验证所述第二节点合法性的特征值,将合法的第二节点的IP地址和端口号存储于预置的记录表中,从而将通过验证的第二节点后续发送的SYN_ACK应答数据包发送给第一节点,有效的阻止了可疑的第二节点对第一节点的SYN_ACK攻击。
图2为本发明实施例二提供的单向环境中的网络安全防护方法的流程图,图2描述了本发明实施例二所示的方法在所述单向环境中接收到一个外部网络设备发送给内部网络设备的SYN_ACK数据包时,根据所述数据包的不同情形对所述数据包进行相应处理的具体过程,如图2所示,包括:
步骤201:接收外部网络设备发送的SYN_ACK应答数据包;
步骤202:判断发送所述SYN_ACK应答数据包的外部网络设备是否通过验证;
所述判断是根据发送所述SYN_ACK数据包中的外部网络设备的IP地址和端口号在所述防护设备内部预置的记录表中进行查找而获得的,所述预置的记录表中记录有通过验证为合法的外部网络设备的IP地址和端口号,当接收到外部网络设备发送的SYN_ACK应答数据包时,根据所述数据包中携带的外部网络设备的IP地址和端口号在所述记录表中进行查找,如果能够查找到与所述外部网络设备匹配的IP地址和端口号,则认为所述外部网络设备通过了验证,是安全的,从而进入步骤203,否则进入步骤204;
步骤203:将所述SYN_ACK数据包发送给内部网络设备;
步骤204:判断所述SYN_ACK数据包中的ACK值是否合法,合法则进入步骤206,否则进入步骤205;
所述ACK值的合法性是根据所述SYN_ACK数据包中的IP地址和端口号来判断的,如果所述SYN_ACK应答数据包中的ACK值等于根据所述SYN_ACK应答数据包中的源IP、目的IP、源端口号以及目的端口号获得的特征值加1,则认为所述SYN_ACK应答数据包合法,即认为发送所述SYN_ACK应答数据包的外部网络设备可信,可以与其建立连接,则进入步骤206,否则进入步骤205对发送所述SYN_ACK应答数据包的外部网络设备进行验证。
步骤205:向外部网络设备返回构造的SYN数据包,并丢弃所述SYN_ACK数据包;
所述构造的SYN数据包中携带有用以验证所述外部网络设备是否合法的特征值即SYN数据包中的Sequence值,所述Sequence值根据所述SYN_ACK数据包中携带的所述外部网络的源IP、目的IP、源端口号以及目的端口号获得。
步骤206:将发送所述SYN_ACK数据包的外部网络设备的IP地址和端口号存储在预置的记录表中,并向所述外部网络设备回送RST数据包。
所述RST数据包用于拒绝所述外部网络响应的所述构造的SYN连接请求包的SYN_ACK数据包。
需要说明的是,在步骤204中,当收到外部网络设备第一次发送的SYN_ACK数据包时,由于并不知道所述外部网络设备是否安全,因此无法得知其ACK值是否合法,均将所述SYN_ACK数据包作为可疑数据包进入步骤205,先向外部网络设备发送构造的带特征值的SYN请求包,所述构造的SYN请求包用于验证发送所述SYN_ACK数据包的外部网络设备的合法性(即安全性),所述特征值根据所述SYN_ACK数据包中的源IP、目的IP、源端口号以及目的端口号获得,然后根据外部网络设备再次响应的SYN_ACK数据包中的ACK值是否为前述构造的SYN请求包中的Sequence值加1,如果ACK值等于前述构造的SYN请求包中的Sequence值加1,则认为发送所述SYN_ACK应答数据包的外部网络设备合法,并进入步骤206,,否则进入步骤205。
本发明实施例所述方法中还可以包括为所述SYN_ACK应答数据包设置一定的老化时间,对超过老化时间的SYN_ACK应答数据包需要再次进行验证,这样能够更加有效的防止SYN_ACK攻击。
由本发明实施例二所述方案可知,当接收到外部网络设备发送给内部网络设备的SYN_ACK应答数据包时,由于不知道是否为可信的外部网络设备发送的SYN_ACK应答数据包,从而对所述SYN_ACK应答数据包分情况进行处理,并向可疑的外部网络设备发送构造的包含特征值的SYN请求数据包,用于验证所述外部网络设备的安全性,并将验证通过的外部网络设备的IP地址和端口号存储于预置的记录表中,从而能够将所述可信的外部网络设备后续发送的SYN_ACK应答数据包发送给内部网络设备,有效的防止了外部网络设备对内部网络设备可能造成的SYN_ACK攻击。
为更清楚的阐述本发明实施例的技术方案,图3提供了使用本发明实施例三所述单向环境中的网络安全防护方法的网络系统信令时序示意图,图3中详细描述了使用所述单向环境中网络安全防护方法在单向环境中内部网络设备与外部网络设备建立TCP连接的过程中,通过对外部网络设备发送给内部网络设备的可疑数据包进行验证,并将合法的数据包转发给内部网络设备,从而使内部网络设备和外部网络设备建立TCP连接的全过程,如图3所示,所述过程包括:
步骤301:内部网络设备向外部网络设备发送SYN请求数据包1;
步骤302:防护设备接收外部网络设备响应前述内部网络设备SYN请求数据包1的SYN_ACK应答数据包1;
步骤303:防护设备向外部网络设备发送构造的SYN请求数据包2,并将接收的SYN_ACK应答数据包1丢弃;
所述构造的SYN请求数据包2中包含用于验证所述外部网络设备是否合法的特征值即Sequence值,所述Sequence值根据所述SYN_ACK应答数据包1中携带的所述外部网络设备的源IP、目的IP、源端口号以及目的端口号获得;
步骤304:外部网络设备响应防护设备发送的构造的SYN请求数据包2,向防护设备发送SYN_ACK应答数据包2;
步骤305:防护设备对所述接收的SYN_ACK应答数据包2进行验证;
如果所述SYN_ACK应答数据包2中的ACK值等于步骤203中所述构造的SYN请求数据包2中的Sequence值加1,则认为发送所述SYN_ACK应答数据包2的外部网络设备合法,将该外部网络设备的IP地址和端口号存储于预设的存储表中,并向外部网络设备回送RST数据包,所述RST数据包用于拒绝外部网络设备响应的SYN_ACK应答数据包2。
步骤306:内部网络设备在发出第一个SYN请求数据包1而没有收到回应后,在3秒后自动重新向外部网络设备发送SYN请求数据包1;
步骤307:防护设备再次接收外部网络设备响应内部网络设备发送的SYN请求数据包1的SYN_ACK应答数据包1;
步骤308:根据所述步骤307中接收的SYN_ACK应答数据包1中携带的外部网络设备的IP和端口号在预置的记录表中经过验证合法后,将所述SYN_ACK应答数据包1转发给内部网络设备;
步骤309:内部网络设备响应步骤308中由防护设备转发的合法的SYN_ACK应答数据包1,向该外部网络设备发送ACK数据包1,建立TCP连接。
根据上述技术方案可知,步骤303至步骤305为所述防护设备在接收到一个未知的外部网络设备发送的SYN_ACK应答数据包时对所述数据包的验证过程,通过向该未知的外部网络设备发送一个构造的内含可用于验证所述外部网络设备合法性的特征值的SYN请求数据包,根据该外部网络设备对该构造的SYN请求数据包响应SYN_ACK数据包中的ACK值判断所述外部网络设备是否合法,从而将合法的外部网络设备的IP地址和端口号存储于预置的记录表中,用于对该外部网络设备后续发送的SYN_ACK数据包进行验证,并将该外部网络设备后续发送的SYN_ACK数据包转发给内部网络设备,从而使内部网络设备和外部网络设备之间建立起安全的TCP连接,有效的防止非法的外部网络设备对内部网络设备的SYN_ACK攻击。
图4为本发明实施四提供的单向环境中的网络安全防护装置的结构示意图,如图所示,所述单向环境中的网络安全防护装置包括:
接收单元401:用于接收第二节点发送给第一节点的SYN_ACK应答数据包,所述SYN_ACK应答数据包中携带有第二节点的IP地址和端口号;
匹配发送单元402:用于根据预置的记录表判断所述接收单元401接收的SYN_ACK应答数据包中的第二节点的IP地址和端口号是否通过验证,如果通过验证,则将所述SYN_ACK应答数据包转发给第一节点,否则触发验证单元403;
所述预置的记录表存储有通过验证为合法的第二节点的IP地址和端口号,当接收到第二节点发送的SYN_ACK应答数据包时,根据所述数据包中携带的第二节点的IP地址和端口号在所述记录表中进行查找,如果能够查找到所述IP地址和端口号,则认为所述第二节点经过了验证,是安全的,将所述第二节点发送的SYN_ACK应答数据包转发给第一节点,否则认为第二节点未通过验证从而触发验证单元403。
验证单元403:用于根据所述SYN_ACK应答数据包中的ACK值判断所述第二节点的IP地址和端口号是否合法,如果合法则将所述第二节点的IP地址和端口号存储于所述记录表中,否则,向所述第二节点发送构造的包含特征值的SYN请求数据包对所述第二节点进行验证。
当判断所述SYN_ACK应答数据包的合法性时,如果所述SYN_ACK应答数据包中的ACK值等于根据所述SYN_ACK应答数据包中的源IP、目的IP、源端口号以及目的端口号获得的特征值加1,则认为所述SYN_ACK应答数据包合法,否则认为该数据包为可疑数据包。所述构造的SYN请求数据包中的特征值用于验证所述第二节点的合法性,所述特征值根据所述SYN_ACK数据包中携带的所述外部网络的源IP、目的IP、源端口号以及目的端口号获得。
本发明实施四提供的单向环境中网络安全防护装置在接收到第二节点发送给第一节点的SYN_ACK应答数据包时,通过所述SYN_ACK应答数据包中携带的第二节点的IP地址和端口号在匹配发送单元402进行匹配验证,如果通过验证则将所述数据包发送给第一结点,否则通过验证单元403向第二节点发送构造的SYN请求数据包对所述第二节点进行验证,有效的防止了第二节点可能对第一节点造成的SYN_ACK攻击。
图5为本发明实施五提供的单向环境中的网络安全防护装置的结构示意图,如图所示,所述单向环境中的网络安全防护装置包括:
接收单元501:用于接收外部网络设备发送的SYN_ACK应答数据包,并触发匹配发送单元502中的第一判断子单元5021;
所述匹配发送单元502中还包括发送子单元5022。
第一判断子单元5021:用于判断发送所述接收单元501所接收的SYN_ACK应答数据包的外部网络设备是否通过验证,如果所述外部网络设备通过验证则触发发送子单元5022,否则触发验证单元503中的第二判断子单元5031;
所述判断是根据发送所述SYN_ACK数据包中的外部网络设备的IP地址和端口号在所述防护设备内部预置的记录表中进行查找而获得的,所述预置的记录表中记录有通过验证为合法的外部网络设备的IP地址和端口号,当接收到外部网络设备发送的SYN_ACK应答数据包时,根据所述数据包中携带的外部网络设备的IP地址和端口号在所述记录表中进行查找,如果能够查找到与所述外部网络设备匹配的IP地址和端口号,则认为所述外部网络设备通过了验证,是安全的,从而触发发送子单元5022,否则触发验证单元503中的第二判断子单元5031,所述验证单元503中还包括验证子单元5032和存储子单元5033。
发送子单元5022:用于将第一判断子单元5021判断为通过验证的外部网络设备发送的所述SYN_ACK数据包发送给内部网络设备;
第二判断子单元5031:用于判断所述SYN_ACK数据包中的ACK值是否合法,如果ACK值合法则触发存储子单元5033,否则触发验证子单元5032;
所述ACK值的合法性是根据所述SYN_ACK数据包中携带的IP地址和端口号来判断的,如果所述SYN_ACK应答数据包中的ACK值等于根据所述SYN_ACK应答数据包中的源IP、目的IP、源端口号以及目的端口号获得的特征值加1,则认为所述SYN_ACK应答数据包合法,即认为发送所述SYN_ACK应答数据包的外部网络设备可信,可以与其建立连接,并触发存储子单元5033,否则触发验证子单元5032对发送所述SYN_ACK应答数据包的外部网络设备进行验证。
验证子单元5032:用于向外部网络设备发送构造的SYN数据包,并丢弃所述SYN_ACK数据包;
所述构造的SYN数据包中携带有用以验证所述外部网络设备是否合法的特征值,所述特征值为所述SYN数据包中的Sequence值,所述Sequence值根据所述SYN_ACK数据包中携带的源IP、目的IP、源端口号以及目的端口号获得。
存储子单元5033:用于将经过第二判断子单元5031判断为合法的外部网络设备的IP地址和端口号存储于所述预置的记录表中,并向所述外部网络设备回送RST数据包。
所述RST数据包用于拒绝外部网络设备响应的SYN_ACK应答数据包。
本发明实施例五所述单向环境中的网络安全防护装置通过向可疑外部网络设备发送携带验证特征值的SYN数据包来验证该外部网络设备的安全性,有效阻止了外部网络设备对内部网络设备的SYN_ACK攻击,提高了单向环境中网络安全防护设备对SYN_ACK攻击的防御能力。
本发明实施例所述单向环境中的网络安全防护装置可以应用于包括防火墙、DDOS类网关设备及其他根据应用情况需要进行安全防护的网络安全防护设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,均可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的几个实施例,可以理解的是,对本领域普通技术人员来说,可以根据本发明实施例的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。