彭祯方 邢国强 陈兴跃
1(天融信科技集团 北京 100193) 2(93216部队 北京 100085)
随着大数据、云计算技术的普及,分布式存储和计算能力的大幅提升,人工智能在多个领域得到了快速应用,例如语音识别与合成、计算机视觉、知识图谱、自然语言处理、人脸识别、机器翻译、舆情分析、推荐系统、自动驾驶等.2019年6月,美国政府在《2016年国家人工智能研发战略规划》的基础上,发布了《国家人工智能研发战略计划:2019年更新》,提出了8项国家人工智能研发战略,确定了联邦政府在人工智能研发方面投资的优先领域,以不断提升美国的人工智能应用能力[1].其他国家也相继将人工智能技术提升到国家科技发展的战略高度,人工智能必将越来越深入地渗透到各行各业和社会生活的方方面面.
人工智能是利用计算机或者由计算机控制的机器,模拟、延伸和扩展人类智能的理论、方法、技术及应用的一门新技术科学.它涉及的范畴包括自然语言处理、智能搜索、推理、规划、机器学习、知识获取、模式识别、神经网络、遗传算法等.人工智能的核心是算法,包括传统的机器学习算法和非传统的机器学习算法,其中,传统的机器学习算法主要解决简单的应用场景以及结构化的数据.非传统的机器学习算法主要解决比较复杂的应用场景以及非结构化的数据或者多样化的数据.在应用人工智能技术的各个行业中,网络安全是活跃度排名前3的行业之一,典型应用例如基于随机森林的恶意流量识别、基于朴素贝叶斯分类的钓鱼邮件检测、基于支持向量机分类的恶意代码识别、基于聚类算法的僵尸网络检测等.
近年来,网络攻击者不断利用人工智能技术来提升和突破传统网络攻击的能力边界.融入人工智能技术的网络攻击已经覆盖了目标侦察、对抗查杀、意图隐藏、武器投递和目标控守的网络攻击全生命周期.在目标侦察阶段,攻击者通过网络爬虫自动获取海量互联网数据,利用自然语言处理、机器翻译等技术,对大量文本数据进行语义分析和自动化翻译,提炼其中的有价值目标对象和设备信息,作为其侦察攻击的目标;在攻击工具研制阶段,通过深度学习等机器学习方法实现操作系统、应用程序和数据库等漏洞挖掘过程的自动化,利用计算机视觉技术伪造高度逼真的假视频;在攻击阶段,通过自动化构建鱼叉式钓鱼邮件,生成针对具体目标的恶意攻击代码,通过对目标网络环境的动态感知来实现智能化和自动化的网络渗透.
魔高一尺,道高一丈.要想有效抵御基于人工智能的网络攻击,必须更好地利用人工智能技术来优化和提升网络防御能力.融入人工智能技术的网络防御体系,弥补传统静态网络防御手段的不足,提高网络防御的动态化和智能化水平.在邮件分类方面,利用人工智能技术构建精准的邮件检测模型,极大提高恶意邮件的识别率;在入侵检测方面,通过深度学习技术构建异常流量检测模型,实现对入侵事件的快速精准定位;在恶意代码查杀方面,利用机器学习检测未知特征的恶意代码,提升威胁发现能力;在行为检测方面,通过全面采集设备、用户行为、访问记录、时空信息等全域数据,实现攻击用户画像,动态检测用户操作,实现对恶意行为的快速定位和监控预警.
当前,人工智能在网络安全领域的应用主要包括3大领域,分别是APT检测、0day漏洞挖掘、云安全.下面对其应用和关键技术逐一进行分析.
APT攻击一般包含5个阶段,分别是目标侦察、扫描探测、工具研制、武器投送、持续控守.当前,APT攻击主要瞄准重要目标、关键信息基础设施,攻击背后往往有一个强大的团队在提供技术和资金支撑.APT攻击隐蔽性高、持续时间长、攻击危害大,采用的技术和模式日益复杂化,而且APT组织之间互相伪装,例如:朝鲜的APT组织特意在自己的代码中加入对方木马的特征,以迷惑对方及安全分析人员;震网病毒所用的域名均采用假名和假信用卡注册;一些APT组织利用公共基础设施发动攻击,如SYSCON使用免费FTP作为命令控制服务器,Group123组织使用dropbox作为命令控制服务器,而使用CDN作为命令控制流量中转的攻击也已经出现.因此,通过少数维度往往难以确定APT攻击的实际归属.
面对APT复杂多变的隐藏和伪装,传统的网络安全防御手段和检测方法收效甚微,攻击溯源难度很大.随着万物互联的普及,传统业务的数字化转型加剧,接入网络的终端设备数量和种类不断增长,各类业务应用场景复杂,网络流量迅速攀升.要想实现对海量网络数据的快速分析处理,需要运用人工智能技术构建高性能的APT检测模型,根据不同的业务场景实现模型的定制化和自动性能优化;同时,依托云平台的分布式计算能力,驱动大数据平台的流处理组件,实现对APT行为快速精准的检测.
棱镜计划曝光后,以FireEye公司为代表的国外各大安全公司开始大力开展APT攻击检测研究,FireEye产品体系的大脑是TAP(threat analytics platform),它是一个负责数据关联、分析和威胁识别的处理引擎,FireEye针对APT的检测率、低误报率及发现0day攻击能力在业界处于领先水平,其取证系统获得美国国家安全局的认证,可用于司法认定[2];赛门铁克运用机器学习技术,自动分析海量数据中的共性攻击行为,锁定攻击者身份;安全公司SparkCognition打造人工智能驱动的“认知”防病毒系统DeepArmor,提升恶意代码的检测能力;Invincea公司的安全产品X by Invincea基于人工智能技术实现对未知威胁的检测.
俄罗斯国家防御管理中心自2014年开始就使用人工智能技术检测网络威胁.俄罗斯曾经使用人工智能技术传播构造的网络舆情,介入欧美国家的网络政治态势,包括2016年美国总统选举和英国脱欧公投,说明俄罗斯在网络安全领域已深度应用人工智能技术.
以色列的Deep Instinct网络安全公司运用人工智能技术检测软件结构和程序特征,使用基于GPU的神经网络和分布式计算平台进行恶意软件检测.该公司将恶意软件样本分解为大量的片段,实现样本的映射识别,用于训练神经网络,可以自动识别恶意软件,整个过程不需要病毒库的支持,Deep Instinct将检测模型打包为一套小型探针,将其部署在终端设备中,在针对1.6万个APT的数据集上所作的测试中,Deep Instinct能够识别出98.8%的恶意软件.该公司于2017年被英伟达公司收购[3].
在震网事件曝光之后,国内网络安全领域才逐步开展APT检测研究,以几个头部安全企业为代表,这些企业主要依托公司研发的互联网安全产品,收集和掌握了大量的各类终端安全数据,部署分布式的计算和存储引擎,利用威胁情报、规则引擎、场景化分析、机器学习和沙箱检测技术,同时结合人工专家分析服务,开展对海量网络安全数据的深度分析和恶意代码的细粒度检测,通过构建立体的网络空间威胁态势感知系统,实现APT攻击完整链条的可视化展示[4].在上述研究的基础上,发现了针对中国的“海莲花”“摩诃草”“蔓灵花”等APT组织及攻击行动.
1.3.1 日志和流量融合深度分析技术
网络设备和应用程序的日志数据只是记录了各个设备和程序的状态和关键事件,无法对每一帧的数据包进行深度分析检测.基于流量的检测虽然可以对每帧数据包进行检测,但是经过路由器等网络设备多次跳转后改变了原始数据的属性,使得数据更为复杂,难以对攻击源、攻击路径进行全面的分析解剖.因此,单独针对流量或单独针对日志的异常行为检测方法,由于缺少全维度的数据支撑,漏报率和误报率比较高.依托深度学习技术,将日志数据和流量数据进行融合分析,能够弥补单独检测的缺陷,提高APT检测的准确率.
基于历史APT攻击数据集,采用数据增广技术构建模拟仿真的APT数据集,提取APT攻击的多维度特征数据,包括时间特征、流量特征、日志特征、内容特征等,构建高质量的训练数据集.通过在网络设备上部署流量镜像设备,全面采集链路层、网络层、传输层和应用层的网络数据,对数据进行多协议分析和解剖,提取流量特征,包括IP地址、端口、协议类型、上下行数据包数量、时间间隔、平均负载等[5];全面采集网络设备、服务器和应用程序的日志数据,例如Windows域控服务器的活动目录日志,提取主要属性,包括事件ID、事件描述、日志源地址、本地计算机名称等,并根据特征的重要性设置不同的权重.对上述多源异构数据进行汇聚融合、清洗转换等操作后,通过特征处理和特征选择,提炼有意义的特征作为模型训练的输入.由于APT攻击不同阶段的检测场景均不一样,根据检测场景不同,采用支持向量机、KNN分类、K-means、Apriori、RBM、RNN和CNN等算法构建多种检测模型,利用训练集对模型进行训练,在训练过程中不断进行参数调优,实现模型的优化,最后将训练完成的模型应用于APT行为的检测.
1.3.2 基于深度学习的恶意代码检测技术
恶意代码是APT攻击的核心工具,恶意代码检测方法包括静态检测和动态检测2种.静态检测是在不执行文件的场景下,针对文件的内容和结构进行分析,具体方法包括基于特征码的检测、基于语义的检测、基于启发式扫描的检测等,其局限性是不能解决复杂软件加密、加壳、混淆和反虚拟查杀等问题;动态检测是构建一个代码运行的模拟环境,通过检测代码的运行来获取其行为特征的检测方法.传统的恶意代码检测过多依赖于逆向工程,检测成本高.为了提高恶意代码检测的准确率和速度,深度学习算法被应用到恶意代码检测中,通过从大量恶意代码的数据样本中提取包括注册表操作、上传下载、文件修改、进程创建、进程注入、端口监听、端口复用、网络扫描、浏览器设置修改、服务的开启与关闭、API函数调用等典型行为特征,通过构建基于行为识别的深度学习模型,实现对未知代码的智能检测.
为了提升模型检测的准确率和泛化能力,一些先进的方法不断用于改进检测性能.例如利用人工智能恶意代码图谱检测技术、通过图片多通道特征提取等方法提升恶意代码检测的性能.因为将不同的代码样本转换为图片后,其纹理特征表现出特定的规律性.恶意代码图谱检测流程是:首先将恶意代码转换为图片格式;然后进行图片大小标准化、数据均衡等预处理操作;接下来构建卷积神经网络等模型,通过训练不断优化模型;最后将模型用于未知恶意代码的检测[6].
漏洞信息的不对称性是影响网络空间作战中实力对比悬殊的关键因素,0day漏洞已然成为网络战的终极武器,APT攻击往往利用0day漏洞进行交叉组合攻击,从而轻松绕过防火墙、杀毒软件、入侵防御系统和入侵检测系统的检测,摧毁多级安全防御体系进入内网,实现其网络致瘫、数据窃取等作战意图.深入研究基于人工智能的软件漏洞自动挖掘和验证技术,有助于快速发现、评估和修复信息系统的安全漏洞,对提高未知威胁攻击的发现能力、提升信息系统综合防护水平具有重要意义.
在漏洞挖掘领域,国外安全研究者、黑客团队和安全公司广泛采用机器学习技术开展自动化漏洞挖掘工作.针对二进制漏洞、Web漏洞的挖掘形成了诸多的开源工具和商业工具,例如Bochspwn,AppScan,Digtool,VUzzer,Mayhem,SPIKE,Grammarinator,Peach,FileFuzz,Radamsa,MiniFuzz等.
美国卡耐基梅隆大学的ForAllSecure安全研究团队利用Mayhem系统开展未知漏洞挖掘.Mayhem是一个基于大规模并行计算的智能漏洞挖掘系统,它结合符号执行和导向型模糊测试技术,通过监控目标程序的行为动态生成测试用例.2012—2017年期间,美国国防部通过该工具在各类武器系统发现大量的软件未知漏洞.谷歌的Yzkaller是一款针对Linux 内核的无监督、覆盖引导的模糊测试工具,2019年谷歌利用自动化工具在Chrome浏览器中发现了16 000多个Bug.
相比而言,国内利用人工智能技术开展漏洞挖掘的研究和应用相对滞后.虽然一些科研院所、安全公司相继加强了漏洞研究,但是漏洞挖掘和验证的手段还是以传统方法为主,主要基于开源工具改造各类二进制代码静态分析工具,这些工具通过PE文件结构分析,仅能发现除0、堆溢、栈溢、未初始化、各类指针误用等基本漏洞.也有少部分机构将人工智能算法引入漏洞自动化挖掘过程,能够实现部分主流漏洞发掘的模型搭建,这些模型在一些非主流软件的漏洞挖掘上能够有所作为,但是面对主流操作系统、办公软件和数据库系统的漏洞挖掘,其算法效率、模型适应性还非常低下.
2.3.1 二进制程序函数的自动识别技术
二进制可执行程序的函数识别是进行漏洞分析挖掘的基础,由于二进制代码缺少高级语言程序信息,函数难以识别,传统的反汇编分析工具识别效率很低.利用深度学习算法,采用加权前缀树学习函数的签名,前缀树中每个节点与二进制中的字节或指令相对应,从根节点到某个指定节点的路径代表可能的字节或指令序列,将基于特定算法学习到的字节或指令序列的置信度作为权重,通过签名匹配二进制片段的方式来识别程序函数,采用深度学习算法识别函数边界,利用循环神经网络不断优化识别模型的性能,从而有效提升函数识别的准确率和速度[7].
2.3.2 基于智能模糊测试的漏洞挖掘技术
传统的模糊测试技术忽略了源代码中包含丰富的高级语义信息,对程序状态空间的感知粒度较粗,无法进行细粒度测试,难以提高漏洞挖掘效率.基于智能模糊测试的软件漏洞挖掘方法,通过源代码插桩技术实现对程序状态空间覆盖率的细粒度感知,并提取处于半覆盖状态条件分支作为突破对象.然后,通过轻量级关键字段识别方法,将复杂条件分支的突破问题转化为优化问题,并通过机器学习算法在约减的输入空间内对优化目标进行启发式搜索,实现对复杂条件分支的快速穿透,以较小的性能代价覆盖更深层的软件状态空间,能够有效提升漏洞挖掘的效率.
2.3.3 基于动态插桩技术的漏洞自动挖掘技术
插桩能够实现监控或测量产品性能、诊断错误和编写跟踪信息.插桩有2种类型:源插桩和二进制插桩.源插桩要求具备软件应用程序的源代码,动态二进制插桩是一种将插桩代码注入正在运行的进程中的技术,这意味着插桩代码对注入的应用程序来说是完全透明的.二进制插桩可以与任何软件应用程序一起使用[8].
针对已经编译好的可执行程序,动态获取程序执行时载入的模块信息(模块名、模块装载的地址范围等)、函数(入口、出口、范围、参数、返回值、函数名、所属的模块、是否对全局数据的访问、调用关系等)、进程信息、线程信息等.利用动态插桩技术提取程序执行时的指令序列,因为指令序列中记录着程序的执行路径,将其作为脆弱路径的检测依据.针对提取的指令序列,运用递归神经网络等深度学习算法进行模型训练,学习漏洞代码的动态指令特征,开展数据流分析、污染分析、内存使用分析、程序行为分析和程序状态分析等,能够有效提升漏洞检测的效率和准确率.
2.3.4 自动化漏洞利用技术
通过工具自动挖掘的可疑漏洞数量众多,其中部分漏洞可能为误报,通过人工来进行漏洞验证和漏洞利用的效率过于低下,需要使用工具实现漏洞的自动验证和利用.漏洞利用关键点是通过定位漏洞位置、符号执行等技术快速找到通往漏洞的路径,并监控程序的运行过程,获取程序运行时的布局信息,最后生成漏洞利用,其局限性是支持的漏洞种类有所限制.将人工智能技术应用在漏洞利用的自动化生成领域,可以快速获取漏洞相关的软件名、版本号、类型信息等,通过自然语言处理技术综合处理这些信息,对漏洞进行定位,实现漏洞利用的自动化生成.此外,人工智能系统基于漏洞描述信息,可以从身份验证、识别性影响、访问向量等方面开展文本学习,构建学习模型,能够对漏洞的严重程度开展智能评估.
云计算给用户和产业带来了很大的便捷,同时,因为虚拟化、大规模、开放性等特点,造成云计算所面临的安全威胁的程度和防护概念也发生了巨大的变化.云安全的主要威胁包括:数据泄露、配置错误、身份认证管理缺陷、账户劫持、内部威胁、控制平面缺陷、不安全接口和API等.云安全在快速检测安全威胁的同时,还需要保障高效的业务联动能力.当前主流云安全防护产品都是独立配置,独立进行安全事件处置,迫切需要从物联网终端、主机、应用、网络和平台等多个层面进行智能联动,以应对复杂多变的云安全威胁.
由于云平台的特殊性,传统的安全防御模型已经不能满足云安全的防护要求.需要综合利用大数据分析、虚拟化、机器学习等技术手段,依托云平台自身强大的存储和计算能力,实时采集内外部威胁数据,构建各类安全场景下的数据分析模型,驱动分布式处理引擎,实现云计算安全能力软件定义化、保障服务化、服务智能化、防御动态化,支撑云安全防护策略的灵活部署,为云计算环境的安全防护提供实时感知、快速预警、智能决策和自动响应.
人工智能在国外云安全领域的应用相对比较成熟.Symantec公司2017年就推出了将安全能力从终端向云端延伸的安全解决方案(Endpoint Security for the Cloud Generation),结合云访问安全代理、安全网关等云安全能力,帮助用户更安全地访问云端资源,并利用人工智能技术实现海量数据的快速检索和智能分析,通过训练人工智能引擎,从20余个不同的维度来分析程序的行为,辅助系统更快地、更准确地作出判断.
Amazon公司2017年就收购了网络安全公司Harvest.ai,加大对云安全的技术研究,Harvest.ai公司的安全产品MACIE Analytics采用人工智能技术分析用户网络行为,防止信息泄露.Amazon在2021年4月22日,针对中国市场举办了亚马逊云科技人工智能在线大会,他们已经在各个产品线全面应用人工智能技术,从利用人工智能芯片构建的基础设施,提供深度学习框架的人工智能平台,延伸到基于人工智能的各类云端服务.Amazon的云安全产品Macie利用机器学习技术,能够对存储在Amazon S3中的数据提供持续的数据访问监控,支持识别云上的敏感数据,例如个人身份信息或知识产权等,为用户提供可视化的仪表板和警报,监控这些数据的访问和迁移[9].
近几年,随着云计算应用的普及,国内主流云服务商和网络安全公司逐步将人工智能技术应用到云安全当中.核心设计理念是为云平台提供轻量级安全部署,针对各类应用漏洞和不安全的配置提供智能扫描,针对DDoS等网络攻击提供智能防御,根据云平台内部的业务变化自动调整安全策略配置,对东西向流量进行精细的可视化分析和细粒度的安全策略管理,快速实现环境隔离、域间隔离以及端到端隔离.国内领先的云安全产品采用机器学习算法对攻击行为和合法流量进行特征提取及建模,检测伪装成合法请求的攻击行为,针对异常请求快速生成防护规则,并能够自动优化防护模型,实现防护策略的不断迭代和更新[10].
3.3.1 基于深度学习的云安全态势感知技术
由于云环境包含多种复杂设备接入点、应用程序,运行着数量众多的虚拟和物理节点,云环境下网络攻击有的来自外部,有的源自内部,攻击痕迹分布于多个节点,系统不断产生大量业务数据、安全日志和报警信息等.传统的分析手段难以应对海量安全数据的快速分析,必须依托大数据技术汇聚融合云平台各节点的安全数据,实现采集、清洗、识别、分析、预警的统一调度管理,设计完善的网络安全评估指标体系,基于深度学习技术构建态势感知模型和安全分析模型,关联分析云环境内的各类安全事件,利用可视化技术构筑对云平台的宏观安全态势感知图,协助安全人员分析、预测云安全态势威胁的发展趋势,针对业务和环境的变化实现云平台的动态智能防御[11].
3.3.2 智能自动化的安全运维技术
云平台网络环境复杂、攻击手段隐蔽、攻击事件数量多,给安全运维带来巨大的挑战.大数据时代,安全分析人员要处理的大量安全事件与人工运维管理的效率低下严重不匹配.大型云化数据中心中各类安全防护设备种类多样,安全配置策略复杂,通过安防数据的采集、清洗、分析建模,构建不同业务场景下的安全策略配置模型,并根据网络环境的变化,实时生成参数进行模型的升级和优化,然后将安全策略模型自动下发到各级安全设备,实现海量安防设备策略配置的自动化[12].同时,根据不同业务场景构建安全运维模型,辅助安全人员作出正确判断,降低分析人员数据处理压力,快速、准确地实现安全事件响应与处置.同时,实现安全运维管理的智能化.
人工智能在发展应用的同时其本身也存在一些安全隐患,主要包括人工智能框架安全、算法安全和数据安全等.
目前市场上出现了很多开源人工智能编程框架和商业人工智能编程框架,为用户提供大量高度复用的算法和模块,这些编程框架集数据清洗、模型构建、流程编辑、模型调优和模型评估于一体,给开发者提供了方便的人工智能应用.主流框架包括Caffe,Torch,TensorFlow,CNTK,Keras等.但是这些框架自身或多或少地存在一些安全隐患,容易受到网络攻击.例如TensorFLow1.7.1之前版本的XLA编译器存在堆溢出漏洞,Caffe框架的图像视觉库存在导致程序崩溃的漏洞[13].
人工智能的核心是算法,没有优秀的算法就无法解决问题.但是算法本身也存在可解释性问题,对抗样本的出现就证明了人工智能算法缺乏可解释性.例如:深度神经网络虽然能够解决图像识别、机器翻译等复杂的问题,但其算法本身的可解释性比较差;KNN算法的可解释性也不足,例如K值的选择不同对数据分类的结果会产生截然不同的影响.
数据是人工智能算法开展训练的原材料,数据集质量的高低会对模型的性能产生致命影响.很多用于训练的样本数据都是通过线上采集的,攻击者很容易构造一些非法数据、误导数据实施干扰,从而造成机器学习模型的过拟合或完全失效.例如仅修改8%的样本数据就可以导致药物剂量预测的人工智能模型出现剂量预测错误.
此外,一些网络攻击者为了实现恶意代码免杀和恶意软件的隐蔽,开始以人工智能技术对抗人工智能的网络安全防御体系,这种攻击手法称为“对抗机器学习”.对抗机器学习技术能够通过某种算法,将自身的恶意样本与正常样本进行融合变异,在保留自身恶意行为的基础上,绕过基于机器学习的深度检测,将自身标记为正常样本.对抗机器学习给网络防御提出了新的挑战,因此,在大规模利用人工智能技术进行网络安全防护的同时,需要不断优化和升级模型和方法,以便应对层出不穷的网络安全威胁.
当前,世界各国在人工智能领域展开了日益激烈的角逐,我国需要全面加强统筹谋划,紧紧围绕建设网络强国和维护网络空间安全这一总体目标,进一步完善和优化人工智能领域的战略规划、投资方向、科研布局和人才培养计划,大力加强人工智能技术的基础研究、应用开发和投入力度,突出人工智能在网络安全领域的战略作用,实现对人工智能技术领先国家的追赶和超越,从而不断提升我国在网络空间中的主动权和话语权,坚决维护国家主权、安全和发展权益.