针对SDN控制平面的DDoS攻击检测方法技术

技术编号:18449280 阅读:90 留言:0更新日期:2018-07-14 12:08
本发明专利技术公开了一种针对SDN控制平面的DDoS攻击检测方法,其包括接收来自于交换机的OpenFlow报文;当OpenFlow报文为Packet‑in报文且窗口计数器累计的Packet‑in报文数量达到预设数量时,计算预设数量Packet‑in报文的Packet‑in速率;当Packet‑in速率超过设定阈值时,基于Packet‑in报文的熵值提取Packet‑in报文中的可疑攻击源;获取可疑攻击源的流表统计数据,并将流表项匹配报文数小于报文阈值的流标记为可疑流,之后计算可疑攻击源的可疑程度;当可疑程度大于等于可疑阈值时,则可疑攻击源对应的主机为被攻击对象。

【技术实现步骤摘要】
针对SDN控制平面的DDoS攻击检测方法
本专利技术涉及网络中攻击对象的检测方法,具体涉及针对SDN控制平面的DDoS攻击检测方法。
技术介绍
DDoS(DistributedDenialofService)攻击作为网络中最具有威胁的攻击之一,会严重影响网络性能,增加网络时延,造成合法报文的丢包。在传统网络中,攻击者通过发送大量的报文用于耗尽目标主机或者服务器资源,从而导致目标服务器负载过高不能为合法用户提供相应的服务甚至瘫痪。相较于传统网络,软件定义网络SDN(SoftwareDefinedNetworking,SDN)由于其集中控制特性,产生了针对控制平面的新型DDoS攻击。研究人员提出一种新型的针对SDN控制平面的DDoS攻击,该攻击方式为资源耗尽型攻击,通过攻击网络中的主机节点之后伪造大量攻击流注入网络,由于伪造的攻击流无法在交换机上匹配到流表项用于数据报文的转发,短时间内向控制平面发送大量Packet-in消息,从而耗尽控制平面与交换机之间的带宽、控制器处理能力或交换机存储空间资源,使得整个SDN网络不能正常工作。针对控制平面的DDoS攻击最明显的特征就是短时间内有大量的流量进入控制平面。对于DDoS攻击,最简单的检测机制就是在控制器端检测Packet-in消息速率,若Packet-in速率超过一定的阈值则认为存在攻击。但是只基于Packet-in消息速率由于检测指标单一、粗略,会导致较高的检测误差。为了提高检测精度,现有的检测机制主要利用统计方法或机器学习算法进行攻击检测。其中,基于机器学习的检测算法,譬如基于SOM(Self-OrganizingMaps)、深度学习的检测算法,其原理为基于攻击过程中的攻击特征指标训练得到一个攻击检测模型,在检测过程中基于该模型判断攻击发生与否。其中基于SOM的检测算法比较具有代表性,该检测算法检测之前需要利用采集得到的训练数据集对SOM模型进行训练,训练结束之后得到一个检测模型。在检测阶段通过周期性地采集交换机流表项信息,计算出APf、ABf等指标代入攻击模型中,用于判断是否存在攻击。上述方法能够在一定程度上检测到DDoS攻击,对于基于机器学习的在线检测算法(即在检测过程中不断获取数据进行训练),由于训练过程需要占用较多CPU、内存资源,会对控制器造成较大的负担。对于基于机器学习的离线检测算法,其检测精度严重依赖于训练数据集,在实际过程中,由于攻击方式的不同会导致攻击产生的特征会有较大的差异,较难采集到较为完备的训练数据集用于训练检测算法,尤其无法有效的区分突发流与攻击流,从而导致检测准确性较低。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的针对SDN控制平面的DDoS攻击检测方法能够有效地区分攻击流与突发流。为了达到上述专利技术目的,本专利技术采用的技术方案为:提供一种针对SDN控制平面的DDoS攻击检测方法,其包括:接收来自于交换机的OpenFlow报文;当OpenFlow报文为Packet-in报文时,采用窗口计数器累计Packet-in报文数量;当窗口计数器累计的Packet-in报文数量达到预设数量时,计算预设数量Packet-in报文的Packet-in速率:Ratepacket_in=N/(Tend-Tbegin)其中,Ratepacket_in为Packet-in速率;N为预设数量;Tbegin为窗口计数器记录第一个Packet-in报文的时间;Tend为窗口计数器记录第N个Packet-in报文的时间;当Packet-in速率小于设定阈值时,则Packet-in报文对应的主机不存在攻击,将窗口计数器更新为零;当Packet-in速率超过设定阈值时,基于Packet-in报文的熵值提取Packet-in报文中的可疑攻击源;获取可疑攻击源的流表统计数据,并将流表项匹配报文数小于报文阈值的流标记为可疑流,之后计算可疑攻击源的可疑程度:Rattack=Nsuspect/N其中,Rattack为可疑程度;N为从可疑攻击源进入交换机的总流数目;Nsuspect为可疑流的数目;当可疑程度小于可疑阈值时,则可疑攻击源对应的主机出现突发流,将窗口计数器更新为零;当可疑程度大于等于可疑阈值时,则可疑攻击源对应的主机为被攻击对象,同时将窗口计数器更新为零。进一步地,采用窗口计数器累计Packet-in报文数量之前还包括对进入控制器的Packet-in报文进行冗余Packet-in报文过滤和/或对进入控制器的Packet-in报文进行伪造源IP/MAC的攻击报文过滤。进一步地,所述对进入控制器的Packet-in报文进行冗余Packet-in报文过滤的方法进一步包括:提取Packet-in报文的流五元组信息用于表示一条流;当控制器中未记录Packet-in报文的流五元组信息时,则控制器记录Packet-in报文的流五元组信息,并设置流五元组信息的过期时间;当控制器中已记录Packet-in报文的五元组信息,且Packet-in报文的上报时间大于等于流五元组信息中设置的过期时间时,则控制器重新记录Packet-in报文的流五元组信息,并设置流五元组信息的过期时间;当控制器中已记录Packet-in报文的五元组信息,且Packet-in报文的上报时间小于流五元组信息中设置的过期时间时,丢弃Packet-in报文。进一步地,所述对进入控制器的Packet-in报文进行造源IP/MAC的攻击报文过滤的方法进一步包括:提取Packet-in报文的源IP、源MAC信息、DPID和in-port,其中以DPID与in-port唯一表示交换机端口,并判断Packet-in报文中的交换机端口是否已绑定源IP和源MAC信息;若未绑定,则将Packet-in报文中的源IP和源MAC信息与Packet-in报文中的交换机端口进行绑定,并进入采用窗口计数器累计Packet-in报文数量步骤;若已绑定,则判断Packet-in报文的源IP和源MAC信息是否与Packet-in报文中的交换机端口绑定的源IP和源MAC信息相匹配;若不匹配,则Packet-in报文中的交换机端口对应的主机为被攻击对象;否则,进入采用窗口计数器累计Packet-in报文数量步骤。进一步地,所述基于Packet-in报文的熵值提取Packet-in报文中的可疑攻击源进一步包括:计算预设数量的Packet-in报文的熵值;当熵值小于预设熵值时,统计不同源IP发送的Packet-in报文数量,并根据每个源IP对应的Packet-in报文数量进行降序排序;根据源IP发送的Packet-in报文数量降序顺序,依次去除源IP对应的Packet-in报文后,计算剩余Packet-in报文的熵值,直至剩余Packet-in报文的熵值大于等于预设熵值,停止去除源IP对应的Packet-in报文;当剩余Packet-in报文的熵值大于等于预设熵值时,将已删除的Packet-in报文对应的交换机端口定位为可疑攻击源。进一步地,所述Packet-in报文的熵值的计算公式为:其中,H为熵值;Si为第i个源IP发出的Packet-in报文数量;n为Packet-in报文总数量,n≤预设数量;k为n个Packet-in报文对应源IP的本文档来自技高网
...

【技术保护点】
1.针对SDN控制平面的DDoS攻击检测方法,其特征在于,包括:接收来自于交换机的OpenFlow报文;当OpenFlow报文为Packet‑in报文时,采用窗口计数器累计Packet‑in报文数量;当窗口计数器累计的Packet‑in报文数量达到预设数量时,计算预设数量Packet‑in报文的Packet‑in速率:Ratepacket_in=N/(Tend‑Tbegin)其中,Ratepacket_in为Packet‑in速率;N为预设数量;Tbegin为窗口计数器记录第一个Packet‑in报文的时间;Tend为窗口计数器记录第N个Packet‑in报文的时间;当Packet‑in速率小于设定阈值时,则Packet‑in报文对应的主机不存在攻击,并将窗口计数器更新为零;当Packet‑in速率超过设定阈值时,基于Packet‑in报文的熵值提取Packet‑in报文中的可疑攻击源;获取可疑攻击源的流表统计数据,并将流表项匹配报文数小于报文阈值的流标记为可疑流,之后计算可疑攻击源的可疑程度:Rattack=Nsuspect/N其中,Rattack为可疑程度;N为从可疑攻击源进入交换机的总流数目;Nsuspect为可疑流的数目;当可疑程度小于可疑阈值时,则可疑攻击源对应的主机出现突发流,将窗口计数器更新为零;当可疑程度大于等于可疑阈值时,则可疑攻击源对应的主机为被攻击对象,同时将窗口计数器更新为零。...

【技术特征摘要】
1.针对SDN控制平面的DDoS攻击检测方法,其特征在于,包括:接收来自于交换机的OpenFlow报文;当OpenFlow报文为Packet-in报文时,采用窗口计数器累计Packet-in报文数量;当窗口计数器累计的Packet-in报文数量达到预设数量时,计算预设数量Packet-in报文的Packet-in速率:Ratepacket_in=N/(Tend-Tbegin)其中,Ratepacket_in为Packet-in速率;N为预设数量;Tbegin为窗口计数器记录第一个Packet-in报文的时间;Tend为窗口计数器记录第N个Packet-in报文的时间;当Packet-in速率小于设定阈值时,则Packet-in报文对应的主机不存在攻击,并将窗口计数器更新为零;当Packet-in速率超过设定阈值时,基于Packet-in报文的熵值提取Packet-in报文中的可疑攻击源;获取可疑攻击源的流表统计数据,并将流表项匹配报文数小于报文阈值的流标记为可疑流,之后计算可疑攻击源的可疑程度:Rattack=Nsuspect/N其中,Rattack为可疑程度;N为从可疑攻击源进入交换机的总流数目;Nsuspect为可疑流的数目;当可疑程度小于可疑阈值时,则可疑攻击源对应的主机出现突发流,将窗口计数器更新为零;当可疑程度大于等于可疑阈值时,则可疑攻击源对应的主机为被攻击对象,同时将窗口计数器更新为零。2.根据权利要求1所述的针对SDN控制平面的DDoS攻击检测方法,其特征在于,采用窗口计数器累计Packet-in报文数量之前还包括对进入控制器的Packet-in报文进行冗余Packet-in报文过滤和/或对进入控制器的Packet-in报文进行伪造源IP/MAC的攻击报文过滤。3.根据权利要求1所述的针对SDN控制平面的DDoS攻击检测方法,其特征在于,所述对进入控制器的Packet-in报文进行冗余Packet-in报文过滤的方法进一步包括:提取Packet-in报文的流五元组信息用于表示一条流;当控制器中未记录Packet-in报文的流五元组信息时,则控制器记录Packet-in报文的流五元组信息,并设置流五元组信息的过期时间;当控制器中已记录Packet-in报文的五元组信息,且Packet-in报文的上报时间大于等于流五元组信息中设置的过期时间时,则控制器重新记录Packet-in报文的流五元组信息,并设置流五元组信息的过期时间;当控制器中已记录Packet-in报文的五元组信息,且Packet...

【专利技术属性】
技术研发人员:虞红芳赵汉佳孙罡许都
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1