网络安全中的人工智能
来自网络的安全威胁是每个组织正在面对的关键问题之一,而AI被认为是在网络安全行业具有广阔前景的一种前沿技术。如今的网络安全威胁几乎没有留下犯错的余地。为了持续地、先发制人地应对那些高智商且具有破坏性的在线攻击者,企业的网络安全策略必须包含一系列不断发展的技术手段和技术规程。互联网安全服务(Internet Security Service)提供了包括防范病毒、间谍软件和其他威胁在内的一整套保护措施。
几十年来,传统的防病毒技术都是使用“检测—响应”机制来运行的。然而,AI可以准确找出网络中的不怀好意者,防止恶意软件和其他威胁,并保护组织免受一系列攻击。此外,由于AI不需要执行增量存储、机器扫描和机器重构等操作,因而能够使网络安全策略等实施和运行成为一个无缝、平稳的过程。AI可以帮助系统使用少量的资源(1%~2%的CPU使用率和40~50MB的内存),以极快的速度(毫秒级)应对攻击,并实现大于99%的有效率,而过时的、基于签名的传统防病毒技术的有效率仅为50%~60%。因此,AI技术是稳健且灵活的,可以扩展安全部署,并支持构建更好的防御系统,以应对越来越多的新兴网络威胁。
恶意程序
恶意程序常被入侵者用来攻击系统安全。恶意程序分为以下两种。
(1)病毒程序:一个程序片段,通常附着在另一个程序(宿主程序)中,当宿主程序运行时,它就会秘密运行。一旦病毒程序开始运行,它就可以执行任何功能,比如清除文件。
(2)蠕虫程序:一个独立的程序,它在运行时可能会在当前系统或关联系统中生成更多的副本,这些副本会在特定时刻被激活。
病毒程序生命周期的不同阶段
一个病毒程序在它的生命周期中, 通常会经历以下4个阶段。
(1)休眠阶段:病毒程序最初处于休眠状态,直至因某个事件(如到了某个日期、出现了某个文件或磁盘容量超过某个限制)而被激活。有的病毒程序也可能没有休眠阶段。
(2)传播阶段:病毒程序将自身的一个副本放入宿主程序或磁盘上的某些系统区域。这样每个被感染的程序都将包含病毒程序的一个副本,后者会再次进入传播阶段,从而实现指数级繁殖。
(3)触发阶段:触发病毒程序,使其执行预期的功能。触发可能是由某个事件引起的,如病毒程序的副本达到一定数量等等。
(4)执行阶段:执行预期功能。
病毒程序的种类
- 寄生病毒:这类病毒能够附着在可执行文件上,并在受感染的宿主程序运行时进行复制。
- 驻留内存病毒:这类病毒将自身作为驻留系统程序的一部分驻留在内存中,这样它就能感染每一个运行在内存中的程序。
- 引导扇区病毒:这类病毒能够感染主引导扇区或引导扇区,然后当系统从受感染的磁盘引导时进行传播。
- 隐形病毒:这是一类被设计用来躲避杀毒软件的病毒。
- 多态病毒:每次感染都会发生变异(经历变化),使其特征码难以检测的病毒。
- 宏病毒:这类病毒会利用Office应用程序(如Word或Excel)的宏功能。宏指的是嵌入字处理文档中的用于执行重复任务的可执行代码段。利用宏功能,宏病毒能自动重复执行而无须任何用户输入。这是最常见的一类病毒。
- 电子邮件病毒:这类病毒会利用嵌入式电子邮件附件中的Word宏。当收件人打开附件时,它就会被激活,然后基于用户地址目录,将自己发送到邮件列表中的每个人。这类病毒有可能造成本地破坏。
反病毒扫描
防病毒的最好办法是阻止病毒从互联网进入局域网,但要完全阻隔所有病毒是不现实的。一种实用的方法是对病毒进行“检测、识别和删除”,这就需要在系统中安装反病毒扫描程序来对系统进行保护。
反病毒扫描程序的不同版本
- 第1代反病毒扫描程序:通过病毒特征码识别病毒。第1代反病毒扫描程序只能处理已知病毒。
- 第2代反病毒扫描程序:使用启发式规则搜索可能的病毒感染,旨在尝试识别与病毒相关的代码片段,或者执行完整性检查,例如对校验和进行验证。
- 第3代反病毒扫描程序:驻留在内存中,通过识别病毒的操作(如大量删除文件)来识别病毒。
- 第4代反病毒扫描程序:集成了各种反病毒技术的软件包。
蠕虫程序
蠕虫程序能快速地、迭式地感染联网的机器,每台被感染的机器都是对其他机器进行攻击的自动发射台。网络蠕虫具有病毒的特征。为了复制自己,网络蠕虫会使用某种网络传输方式。
- 电子邮件蠕虫:通过电子邮件将自己的副本发送给其他系统。
- 远程执行能力:在另一个系统中远程执行自身的副本程序。
- 远程登录能力:登录到远端系统,然后通过命令将自己远程复制到远端系统。因为电子邮件病毒会从一个系统传播到另一个系统,所以它具有蠕虫程序的一些特征。
- 活门(Trap Door):进入程序的一个秘密入口,它允许某人绕过所有的安全检查进入程序。在程序开发过程中,活后门通常用于调试程序。而当活门被入侵者利用时,它就能无视操作系统的安全控制,成为严重的威胁。
- 逻辑炸弹:嵌入合法程序中的代码,被设置为在满足特定条件时触发。一旦被触发,它可能就会修改或删除文件。
- 特洛伊木马(Trojan Horse):一个看起来很有用的程序,它包含一些隐藏的代码,当被调用时,它会执行一些不希望的操作。
- 僵尸程序:这类程序能秘密地控制联网的计算机,然后利用所控制的计算机发起安全攻击,所以很难追踪到僵尸程序的制造者。僵尸程序通常被用于进行拒绝服务攻击。
- 防火墙
防火墙是一种机制,它能够保护本地系统或局域网免受外部网络的安全威胁,同时允许通过网络访问外部世界。
防火墙的特点
防火墙的特点如下:
(1)所有流入和流出局域网的数据都必须经过防火墙。
(2)只有经过本地安全策略授权的数据流才允许进入局域网。
(3)防火墙必须使用可信系统(Trusted System)及安全操作系统(Secure Operating System),以达到阻止非期望数据流渗透的效果。
防火墙控制访问的方式
防火墙控制访问的方式如下:
(1)服务控制:这种方式可以设定允许在互联网上访问的服务类型。它可以根据IP地址和TCP端口号对数据流进行过滤,并且可以使用代理软件来解释每个服务请求。
(2)方向控制:这种方式可以设定某服务请求从哪里发起,以及允许该服务请求通过防火墙的方向。
(3)用户控制:这种方式可以设定本地(局域网内)的某些用户只能访问互联网上的一些特定服务。它也可以用来控制外部用户对本地服务的访问。
(4)行为控制:控制特定服务的使用方式,例如对电子邮件进行过滤以消除垃圾邮件。
防火墙的类型
防火墙的类型如下:
(1)包过滤路由器:对每个流入的IP数据包应用同一组规则,并决定是否转发或丢弃它。过滤规则通常基于报文中包含的信息,如源IP地址、目的IP地址、源端口号、目的端口号、IP字段、路由器端口号等。
(2)全状态检测防火墙:通过创建流出方向TCP连接的目录,对TCP数据流规则进行加强控制。同时,基于目的端口号,对流入数据进行过滤。
(3)应用级网关:又称为代理服务器。经过配置,它可以只支持应用程序的某些功能,而拒绝所有其他功能。
(4)链路级网关:它既可以是一个独立运行的系统,也可以是应用级网关的一项具体功能。它不允许端到端的TCP连接,而是把端到端的TCP连接分成两部分—分别连接网关和内部TCP用户,以及网关和外部TCP用户。安全功能将决定哪些连接被允许,而哪些连接会被拒绝。
(5)堡垒主机:为应用级网关或链路级网关提供服务的平台。
可信系统
可信系统是指这样的系统:通过在其上实施指定的安全策略,系统在特定范围内是可信赖的。可信系统的失败可能会被破坏它所实施的指定策略。根据美国国防部遵循的概念,可信系统可实现一个能负责所有的访问控制决策的参考监视器(reference monitor)。
可信系统最重要的设计目标是最小化可信计算模块(Trusted Computing Base, TCB)的规模。TCB是硬件、软件和固件的组合,用于执行所需的系统安全策略。由于TCB的失效会破坏植入的安全策略,因此较小的TCB的可以提供更好的保障。
客体(数据)上会附加安全标签,以表示它们的敏感度水平。主体(用户)上也会附加标签,以表示不同用户的可信度。主体使用两天安全规则对客体进行访问:简单安全规则和约束规则。
- 简单安全规则:只有当主体的可信度超过客体的敏感度时,主体才能获得客体的读取权限,又称为“不可向上读取(No Read Up)“规则。通俗地说,这意味着不允许具有较低可信度的用户访问敏感度较高的信息。
- 约束规则:只有当客体的敏感度超过主体的可信度时,主体才能获得客体的写入权限,又称为简单规则或”不可向下写入(No Write Down)“规则。这意味着信息应该向上流动,而非向下流动。
- 参考监视器可以访问一个名为“安全内核数据库(Security Kernel Database)“的文件,这个文件会列出所有主体的访问权限和所有客体的安全等级。参考监视器执行”不可向上读取“和”不可向下写入“的安全规则。参考监视器必须具有以下属性。
- 完全仲裁性:在每次访问对象时都强制执行安全规则。
- 隔离性:参考监视器和安全内核数据库不允许进行未经授权的修改。
- 可验证性:必须能够证明参考监视算法的正确性。也就是说,必须能够验证在每个访问上都执行了安全规则,且满足隔离性。能够提供这种验证的系统称为可信系统。
在社交网络中,大批量攻击行为会表现出复杂的统计规律、相互作用和特征。复杂性可以呈现为神经网络节点之间错综复杂的关系网格。社交网络中的大部分攻击行为会以网络流和日志的形式记录下来,因此可以使用循环神经网络(Recurrent Neutral Network,RNN)对序列数据进行训练。传统的RNN在使用较大步长进行训练时存在问题,可选择长短期记忆(Long Short-Term Memory, LSTM)网络来解决这个问题。
训练神经网络的算法如下。
1. 输入:从带标签信息的训练数据集中提取出的特征X
2. 初始化:
3. for channel = 1 ➡️ N do
4. 训练LSTM-RNN模型
5. 将LSTM-RNN模型保存为分类器c
6. end for
7. return c
用于攻击检测的算法如下。
1. 输入:从带标签信息的测试数据集中提取出的特征X
2. 初始化:
3. for channel = 1 ➡️ N do
4. 载入训练好的LSTM-RNN模型作为分类器
5. 获取分类器的结果向量R
6. end for
7. for r in R do
8. 投票以获得多数元素v
9. end for
10. return v
越来越多的应用程序已经开始采用人工智能技术来提高生产率、改善销售或增强体验。同时,人工智能也是抵御网络攻击的有力手段。在互联网时代,由于黑客有能力从远程实施盗窃并造成损失,保护资产和应对不怀好意者变得比以往任何时候都更加困难。人工智能技术能够基于一系列结构化和非结构化数据,包括日志、设备遥测记录、网络报文的报头信息和其他可用信息,提供增强的预警服务和半自动的网络安全防御功能。