使用人工智能阻止网络攻击
数学加机器学习快速识别和防御恶意流量
乌克兰战争导致了全球范围内分布式拒绝服务 (DDoS) 网络攻击的急剧增加。这种数字攻击可以通过大量的互联网流量压垮目标服务器,从而使网站瘫痪。这种攻击每年都会发生数百万起,而且数量和规模都在不断增加。大约三分之一的网站宕机是由于 DDoS 攻击所致。
计算机科学家兼波兰国家网络安全和人工智能研究所 (NASK) 研究总监 Michał Karpowicz 说,“DDoS 网络攻击的目的是制造混乱,扰乱组织,当然还有造成经济损失。这种攻击非常常见,因为它们很容易生成。”
在典型 DDoS 攻击中,罪犯会利用多台感染了专门设计的恶意软件的计算机和在线设备。这些设备可能包括厨房电器、安全摄像头和恒温器等物联网 (IoT) 设备,而且数量在与日俱增。目前,物联网涵盖的设备超过 100 亿台,是一支庞大的可被利用的队伍。DDoS 攻击通常会采用以下两种类型中的一种,或是两种类型的组合。在容量耗尽攻击中,受感染的设备会以极大的流量一次性涌入目标网络,致使其过载而无法为普通用户提供服务。在应用程序攻击中,发出的请求会要求服务器执行大量计算,这同样会导致服务器过载。
Karpowicz 使用了一个大家熟悉的场景来描述这个问题。想象你正开车去银行。沿途车辆稀少,一路畅通,直到你抵达最后一个十字路口。这时道路突然发生拥堵,你只能等待。这就是容量耗尽攻击。现在再想象一下,你终于到了银行,正排队等候柜台员工为你办理业务。你发现排在你前面的客户出现了不同寻常的问题,需要银行所有员工的帮助。同样,你还是只能等待。这就是应用程序攻击。
恶意软件可以隐藏请求的来源,使得攻击难以抵挡。有些服务还会提供雇佣攻击服务,使得攻击更加容易使用。这些服务的发起方通常是心怀不满的员工、激进分子、市场竞争对手和国家。Karpowicz 指出,在疫情封锁期间,NASK 在网课开始时检测到来自学生网络发起的攻击,其目的是试图让在线测试无法进行。
但最近 Karpowicz 开发了数学方法来检测这种恶意请求,以对其进行阻止或重定向。他说,“当你面临一个来自现实的问题时,它会给你许多的灵感。”
动态指纹
互联网上的信息,包括来自网站的请求,均由数据包组成。每个数据包都有一个作为唯一标识符的标头,描述了数据包的大小、来源和目的地。典型防御会查看这些标头,看它们是否在禁止列表中。然后,防御将坏数据包重定向到无害的目的地。
问题是他们必须事先就拥有这个列表,并且攻击者经常会更改标头以逃避检测。与此相反,Karpowicz 的解决方案采取的是实时检测网络流量模式。
想象一下城市的十字路口有一系列交通摄像头。如果你观看随机采集的一些视频片段,你发现突然之间有大量的蓝色敞篷车聚集在某个位置。很可疑。接下来,你可以密切观察这些车辆,了解更多信息,并且可以让其中更多的车辆靠边停下。
这种方法可以将网络数据转换为信号数据。于是任务就变成了分离不同的信号源。Karpowicz 认为这跟“鸡尾酒会问题”差不多。“鸡尾酒会问题”说得是你参加了一个派对,周围的人都在交谈,你必须从中辨别出跟你交谈的人所说的那些话。
这里,他采用了线性代数。他用信号,也就是数据包标头,填充矩阵。在矩阵中,每一行代表一段时间内特定类型(由数据包大小、来源或某个其他因素定义)的数据包。
在车辆交通的类比中,你可能有表示蓝色车辆、小型货车和来自加州的车辆的行。在给定矩阵中填充单元格的值表示的是可能与攻击识别相关的内容。在一个矩阵中,每个单元格包含的可能是标志数,而在另一个矩阵中,它可能表示每秒比特数。接下来,Karpowicz 将破译这些指标中哪些属性组合出现频率特别高。不单单是蓝色汽车或敞篷车,而是蓝色敞篷车。
一旦找到这些特征组合,他便将其转换回网络领域,形成防火墙规则。在车辆交通的类比中,如果他知道了是某个品牌和型号的蓝色汽车造成的问题,他便会创建摄像头滤镜,立即找到这些车辆。他将这种基于线性代数的方法称为元因式分解。一篇关于元因式分解的论文正在审查中。
Karpowicz 在 MATLAB® 中实现了这些计算。他说,“线性代数算法是科学界已知最快的算法,这使得这种方法非常高效。”
交通拦检
检测恶意数据包只是问题的一部分;防御者还必须对其进行控制。Karpowicz 说,他偶然得到了一个解决方案。大约十年前,他做过一个提高网络设备能源效率的项目。该项目的目的之一是预测流量,并将数据包流重定向到能够进行处理的路由。在与从事网络安全工作的一位同事讨论该项目时,这位同事表示可以使用该项目对抗 DDoS 攻击。Karpowicz 说,“我们一直在研究这个想法,经过一点一滴的努力,一项新技术逐渐成形。”
在去年《European Journal of Control》上发表的一篇论文中,Karpowicz 描述了这项称为自适应调节的新技术。典型网络流量控制系统不会收到对其性能的反馈。它们是通过阻止与攻击有某种关系的所有流量来防御攻击。这往往会矫枉过正,因为可能会阻止合法的流量。Karpowicz 建议使用融入了反馈机制的流量控制器,这样它们便会知道是否在重定向正确的数据包。
他说,“网络安全给我带来了巨大的科学研究挑战,尤其是在数学方面”。理论与实际相辅相成。“这就是让我坚持下去的动力。我有种预感,这里面有点东西,而且有个需要解决方案的问题。”这些检测和控制系统共同构成了 NASK 提供的 FLDX 服务的基础,他们现在拥有这项服务的专利。它可以在 5 秒内检测到攻击,并在 10 秒内开始缓解攻击。
NASK 在波兰各地部署了 FLDX,使用分布式虚拟机集群保护全国网络。Karpowicz 说,“整个解决方案的独特之处在于,它不仅是一个网络安全系统,而且是一个研究平台。它让你可以在 MATLAB 中编写自己的算法来检测和抑制攻击。它还可以让你访问我们在 MATLAB 中收集的数据,并且你可以利用这项技术的所有好处,基于我们提供的流量样本使用数据处理、信号处理和机器学习人工智能 (AI)。”
检测和自适应调节算法都使用机器学习,具体说是一种被称为半监督学习的方法。它不需要太多手工标记的数据即可进行训练。Karpowicz 说,“我们在学习算法中编码了一些专业知识,然后让它们自己完成工作。它们的工作是发现世界上正在发生的事情。
他们能在大量的数据中发现统计规律,比如发现某一类型汽车的集群。他说,“这是机器学习的最佳使用场景。在系统投入运行之前,我们不需要先行收集大量数据集对系统进行调节。在安装好的那一刻系统就可开始工作。”
检测器使用“投票”系统来识别异常数据流。它还通过求解方程组来优化矩阵。即使网络行为非线性(其中一些因素的影响不成比例),线性方程也可以捕获到大部分的模式。
研究人员和工程师可以使用 MATLAB 来访问 NASK 的数据集,而且因为许多科技大学都已在使用该数据集,这使得“这种访问非常方便”。NASK 的数据集可谓独一无二,因为其中不仅包含了来自全国各地的流量数据,而且数据采样率非常高。
NASK 的研究着眼于流量动态、目标漏洞及攻击的源、频率和方法。他们使用 FLDX 来保护公共和商业客户,包括学校和疫苗接种登记服务。赢得网络安全部门同事的信任是一个“巨大的惊喜”。Karpowicz 说道,“在网络安全工程部,科学家需要一定的时间才会赢得尊重。你得显示出你理解他们在做什么,而且你也在做有用的事情。”但凭借 FLDX,“你可以直接进入前线战场。这就是 NASK 的特别之处。我们从实验室到技术和部署的路线极其简短。”
现在,Karpowicz 正在与其他机构开展合作,包括麻省理工学院和悉尼科技大学。他说,“我希望 NASK 在网络安全和人工智能方面享誉全球”。我们已看到了一个良好得开端。