通过定义质量的度量基准来评估AI技术用于异常检测和安全分析的功效

人工智能头条 发表于 2018-05-21 16:32:04 收藏 已收藏
赞(0) •  评论(0

通过定义质量的度量基准来评估AI技术用于异常检测和安全分析的功效

人工智能头条 发表于 2018-05-21 16:32:04

在今天,企业的安全和风险负责人需要判断在研发、运维以及应用程序安全测试中使用人工智能或机器学习是否具有实际价值。他们必须能够意识到应用人工智能和机器学习意味着需要相应的大量数据和人才,必须能够预估人工智能安全实施的速度、准确性和其他潜在的现实问题。

▌关键挑战

人工智能(Artificial Intelligence,简称AI)和机器学习是十分火爆的营销术语,让人难以区分是夸张的营销还是会给用户带来价值。

夸张营销使人工智能看起来很像一项伟大的新技术。面对复杂的数据分析,数据的安全性需求不断增长,安全领域被誉为AI技术应用的完美领域。然而,我们并不确定AI是否总是在任何情况下帮助安全专家和风控专家,也不能确定AI是否在所有的场景下都比传统安全方法更好。

企业数据治理的质量直接影响AI安全系统的效果和质量,AI系统供应商往往不向用户预先强调这一点,使得AI系统的应用与安全很难见效。

▌建议

为了支持应用和数据安全:

请明确是否使用AI技术的安全产品比传统产品有更快的速度和更高的准确性,并且效果的提升程度值得花成本更新换代。

请定义相应的质量指标基准,以评估AI技术用于异常检测和安全分析的效果。

请明确使用AI技术是否可能影响当前业务流程。确认本公司人员的技能是否能够满足AI技术应用的要求,确认算法模型需要重新训练的频率以及数据整理的工具是否靠谱。

在购买人工智能安全产品前,请使用自己已有的数据和基础设施运行测试,或建立一个POC系统用于“快速试错”,从而确定人工智能安全产品的影响范围。

AI安全系统评估和管理实施人员要熟悉项目所使用的数据类型以及期望的结果,给他们分配必要的资源,使他们将成为您安全流程的重要组件。

▌策略规划预测

现在10%安全厂商声称自己是AI驱动的。到2020年,会有40%的厂商声称自己是AI驱动的。

▌介绍

“人工智能”是一个广泛的术语,涵盖大量迥然不同的技术和算法。最近,AI在深度学习、机器学习和自然语言处理方面取得很大的进展,AI技术已从一个小众科技领域提升到主流商业软件领域,并广泛应用于客户支持、安全、预测分析和自动驾驶等领域。

然而,由于技术处于风口,人工智能也成为一种流行的营销术语,这使得没有AI背景知识的客户很难评估其在产品中是否真的使用了该项技术,以及它是否提供比传统技术更多的好处。根据Gartner的调查,从2015年到2016年,基于对此项新技术的浓厚兴趣及获利心理,有关安全和AI技术相关的项目立项数量增加了三倍以上。

在应用安全性方面这种现象更加普遍, AI技术已经成为安全研发运维环境领域中的常用工具,例如应用程序安全测试(AST)和网络流量分析,安全信息和事件管理(SIEM),用户和实体行为分析(UEBA;请参阅“2016年快速发展的安全分析状态”)等。但是,像所有技术一样,AI技术也有其局限性,而且实施应用的成功性往往依赖于对现实的结果类型。本文为如何评估人工智能和机器学习提供了指导方针,帮助安全负责人确定本企业是否能够真正有效的实施AI。常见的可商业化AI技术如图1所示。

图1 常见AI商业技术

▌分析

鉴别AI供应商的真实能力,确定他们是否对现有系统有可观的改进

企业安全负责人应审慎地看待基于AI技术的产品宣传。虽然AI是一个了不起的营销术语,但它只会在处理某些安全问题时有效,而这些安全问题往往具备大量易于理解的数据集。

静态AST中的误报就是一个很好的实例。即使中等规模的项目,安全测试工具也会产生大量的数据,这些数据都很容易理解,而数据反馈则可以从人类专家那里获得,输出的准确性可以按照现有流程进行评估,AI技术的成功应用就顺理成章。鉴别AI系统在安全方面是否适用,应具备下列一个或多个特征:

自动化——这是AI工具具备的最基本的特征。如果使用得当,AI工具就是一个能力倍增器,可以统一执行数十或数百名专家的工作,可以快速可靠地部署多个方向的多项任务。训练有素的人工智能的处理速度比专家团队快几个数量级。但如果无法有效的利用资源,草率获得的自动化结果其实赶不上传统技术获得的结果。

准确性——这是AI工具具备的最大优势。它所具有的专家级别的安全功能可以获得近似于人类甚至比人类更好的精度。多名专家的技能可以合并成一个分析技能,并根据所使用的技术,对现有问题产生新的见解。

预警——人类专家最终可能会对代码和测试结果感到疲劳或者忽略一些细节,而机器学习则可以无限期地保持客观性水平。在整个产品开发中,专家的在专业知识扩展方面的进展始终是困难和昂贵的,而AI技术相对来说比较容易和便宜。

多参数间的关联——机器学习是针对大量数据进行训练并在生产过程中保持学习,因此,有可能将不相关的事物功能关联起来,为人类提供有效的数据挖掘,而这些对于人类来讲都是难以实现且非常耗时的工作。

例如,IBM为SAST结果提供扩展分析以减少误报,这种分析能将多个漏洞进行相关联,以便利用单一方法进行修复。 IBM的这种智能分析(IFA)消除了因误报、噪音或探索效率低而产生的结果。也可以集中过滤后的结果,过创建“修复组”来分析多个漏洞痕迹。这一功能也逐渐被其他SAST提供商所采用。

通过定义质量的度量基准来评估AI技术用于异常检测和安全分析的功效

“任何充分操纵的演示都无法判断产品的真实效果。”

——某牛逼金融服务公司负责安全开发的执行总监

许多供应商对AI技术的宣传是牛逼的不行,但是对于实际效果,不可不信也不可全信。关键在于那些支撑这种宣传效果的客观数据。最近,机器学习和深度神经网络的技术突破大大提高了效果的速度和准确性,所以也许那些夸张的效果是真的,但是也可能是销售在吹牛。

我们必须保持清醒的认识,新技术并不一定是更好的检测方法。例如,异常检测本身就可以通过很多基本技术来实现:

特征指纹技术,适用于攻击者为已知的条件。

模式匹配和策略技术,适用于攻击技术为已知的条件。

白名单,适用于其预期的行为已知(并且保持一致)的条件。

基于此,开发独立于技术本身的评估框架,准确评估新技术与现有解决方案的优劣至关重要。

在技术先进性的评估流程中,第一个目标是定义评估预期结果的质量指标,这些质量指标必须和技术实现路径无关。以两个重要的机器学习应用为例:异常检测(用于提高检测率)和安全分析自动化(用于减少误报,聚合原有事件为新事件并产生推荐策略):

异常检测的质量指标包括部署的范围(“它能看到一切吗?”)、检测率和误报率。

安全分析自动化的质量指标包括解决事件的平均时间或解决事件的百分比(对照原有基准条件)。

当然获得公平的评估比较困难,尤其是评估不同时期的不同技术。因此,质量指标应进一步合理化,以保证评估结果更公平。

当评估供应商宣传的技术时,请提出以下问题:

通过AI技术解决的问题占总问题的百分比是多少?AI技术能否处理实际关键问题?

系统是否持续学习,还是需要定期的“逐步学习”?

供应商所提供训练数据的起源和范围是什么?它与本公司的数据有多少相似度?

您的结果来自中立的第三方还是案例研究?

这些结果比我们现在使用的传统技术要好多少?

这是增强了核心安全,还是外围安全需求?

为了成功的使用AI产品,我需要对现有员工进行哪些改变(例如,我是否需要聘请数据科学家)?

供应商是否实现了“网络效应”? (可以与其他客户分享结果)

供应商将什么数据发送到自己的服务器? (这个问题涉及隐私保护)

如有可能,询问现有客户已使用的案例,尤其是那些供应商不赚钱的产品。另外,关注整个产品的实施成本,特别是在咨询和数据治理方面。

例如,一个中型保险公司正在评估一个具有“AI组件”的静态分析工具。据了解,作为完整结果管理的一部分,该工具的准确度似乎并不比传统的非AI技术好。经过调查,发现分析单元里根本没用AI技术,仅仅是毫无关联的帮助系统用了点AI技术。

使用AI技术造成的流程改变及对员工技能的新要求

机器学习或其他AI技术所获得的结果在很大程度上取决于用于训练的数据。如果训练数据的质量较差,那么最先进的数学算法也无法帮助您实现目标。 “垃圾进垃圾出”的原则非常适用描述这种情况。也就是说,系统输入不好,输出结果也不会好。因此,数据治理的缺失往往是导致失败的关键因素。为了获得有效的成果,您可能需要调整流程和人员配备。

因此,在评估AI产品时,请询问供应商以下问题:

该模型多长时间需要重新培训,这项功能是您提供还是我们业主的责任?

有哪些工具可用于数据治理以及需要多少数据做训练?

我是否需要聘请数据科学家,或者可以使用现有员工代替?

当最终结果失去准确性时,识别和清除产品中的不良数据有多困难?

如果准确的结果随时间推移而恶化,我需要做什么?

该产品是否支持持续训练和调整?

购买前建立运行试点或POC,使用自己的数据和测试架构进行快速验证

安全负责人在购买AI产品前首先要建立数据运行试点,用企业已有的数据进行验证,或建立POC进行快速验证。这种方式有助于迅速了解产品存在的问题和是否需要改变现有流程,是否需要聘用专业技术人员以及使用此技术会带来哪些收益。这也有助于深入理解本单位的数据数据治理的需求,并判断技术实现的速度和准确性。当然,评估的指标一定要是可量化的指标(例如精度、速度、结果质量等)。

试点之前,有必要设定清晰的可量化目标。如果您希望您的团队花更少的时间追查误报,那么量化的指标应该是结果的准确性、分析速度或从错误识别到最终修复的周期。

指派专人评估和管理AI,使它成为您安全流程的一个重要组件

随着数据和产品复杂性的增加,人工智能逐渐成为安全产品中的基本技术。然而,随着公司并购或撤资,供应商市场也会随之迅速发生变化。分配一个专门的安全人员来规划和管理企业内部的AI项目成为必然趋势。专职人员必须要熟悉您的项目所使用的数据类型,以及您期望的结果类型。

可以考虑聘请一位数据科学家,这类人才需要具备AI技术有效性的评估能力、数据治理方面的专业知识。最好是数据或计算机科学专业,这类人才需要具备机器学习、深度学习、神经网络或其他AI技术方面的专业知识。针对单个项目或者小公司,这项任务可以由专人承担,或者可以雇一个兼职顾问。

针对拥有多个项目的大型企业,这项任务应细化到几个人或一个小团队。 AI项目责任的集中减少了任务的重复率并提高了工作的一致性。AI团队的职责应包括:对AI产品的评估,企业数据的管理,AI生命周期的管理以及制定整个公司AI计划和政策。

在企业层面,这种设置可以避免在不同的部门中割裂专业知识,浪费人员或造成专业知识的瓶颈。随着人工智能成为一种常见的技术,这种设置将使您的企业更灵活,最快使用靠谱的最新技术,并使您能够多快好省采购新产品和规划企业的数据仓库。

针对最后三点内容,这里用一个很好的实例来说明:一家大型华尔街金融服务公司希望加快其应用程序的安全扫描,并将其作为研发运维升级的一部分,因此它购买了基于机器学习的安全产品。该产品可以发现高风险缺陷和不稳定的编译问题。理论上,该工具应该非常有效;然而,该公司花了三个月的时间并没有获得预期的准确性。

原因是负责该试点项目的员工虽然参与过AI项目,但是并没有使用该产品的直接经验,也没有受过人工智能培训。于是,该公司聘请了一位数据专家作为顾问,他很快发现训练数据并没有得到正确的管理。反馈的数据结果在重新测试之前没有进行甄别(即将人的反馈放入循环中),而是将所有测试数据是简单地转储到一个大型的、无区分的数据池中训练的。尽管有些机器学习产品可以理解这种未甄别的反馈数据,但公司测试的产品却不能。故事的最后,该企业全职雇用了这个数据科学家来管理整个企业的所有AI项目,取得了良好的效果。

▌词汇术语

Gartner推荐阅读

"Hype Cyclefor Smart Machines, 2016"

"Artificial Intelligence Primer for 2017"

"Predicts 2017: Artificial Intelligence"

"Top 10 Strategic Technology Trends for 2017: ArtificialIntelligence and Advanced Machine Learning"

"The Fast-Evolving State of Security Analytics, 2016"

"Top 10 Strategic Technology Trends for 2017: A Gartner TrendInsight Report" "How to Define and Use Smart Machine TermsEffectively"

证据

1.  根据2015年Gartner客户有关机器学习和AI在安全方面的询问数量(约20项查询)与2016年(约60项)的比较,以及2017年1月至4月期间的约60项。

2.  “深度学习 ——拥有大量的计算能力,机器现在可以识别物体并实时转换语音,人工智能最终变得更加智能。” MIT技术评论。

▌人工智能概念概述

“人工智能”有许多方法,每种技术在应用安全领域都具有一定的优势。 “人工智能”是一个被销售滥用的误导性标签,不存在一种通用的人工智能可以像人类一样思考或适用于各种各样的任务。

AI技术主要指的是根据收集的数据,使用情况分析和其他观察结果进行预测的系统。换言之,每种方法都是一种特殊的数据分析技术,异常复杂,能够从示例中学习,并逐步成熟,但专注于一组非常狭窄、定义明确的问题。图1列出了商业上可用的一些常用技术,每种技术都有独特的特性,可以将它们彼此区分开来。虽然在数学上有所不同,但在操作要求和一般原则上有相当大的共性。

常规AI技术所包含的要素有:

该产品通常需要大量与该问题相关的数据。

对数据进行治理,添加、标注或删除特定子集对于实现有效的结果至关重要。

包括数据科学家和领域专家在内的许多人都参与其中。

需要花费数周至数月时间来开发一个能够产生良好结果的模型。

一旦训练完成,对于与训练语料库完全相同的问题,处理过程可以非常快速且非常准确。

机器学习是一种在安全领域广泛使用的公认的人工智能学科,作为涵盖许多基本思想的概念模型,现实世界中的机器学习除了这个简单的描述外还有许多其他技术、改进和变形。然而,这个模型可以被看作是对一些常见领域中效益处和风险的抽象,我们可以用它来理解在企业安全中评估AI产品的基本流程(参见图2)。

图2 评估AI产品的基本流程

AI系统从大量数据训练开始,或称为训练集。这些数据是从要解决的实际问题实例中仔细挑选的,并存储为知识库。 例如,在语音识别中,它是一系列以特定语言阅读的文本。在应用应用安全方面,这可能是AST或大量具有代表性的恶意软件的输出。

数据应由专家选择(策划),以便于更好的描述所研究的问题并最终形成可以识别的产品模型。 在数据整理期间,为模型提供正例和负例同样重要 。异常检测模型同时需要这两种场景,但是如果负样例数据太多,或者负样例不足,都会降低结果的质量。

对数据运行归一化和聚类,最终确定一组特征向量。使用测试数据,可以验证模型是否有效,可以获得期望的结果。特征向量通常包含了太多细分维度的特征值,很难被任何其他系统或人类识别。这样,机器学习算法被训练成预测模型,他对验证集数据的预测结果和已知的标定结果进行比对,可以获得这个模型预测的精度。持续这种训练和验证过程,直到模型足够精确。最终的生产模型包含数据特征、概率、标签和其他数据的描述。

对于自进化模型,当模型被应用于现实世界,新的数据不断输入,特征向量不断被提取并应用于产品模型当中,通过不断的训练更新模型。

应用于AST时,SAST工具的输出可以输入经过训练的系统,以发现误报。然后输出结果将成为一定的置信区间内的误报列表(或者已经滤除误报的结果列表)。为了改善结果,可以检查输出,识别出新的误报并将其反馈到训练集中,并计算新的模型。随着这个循环的继续,新的信息被纳入预测算法,理想状态下能够随着时间的推移而改进(见图3)。

图3

收藏

相关话题
文章来源专栏

评论(0)

加载更多评论

参与评论

相关文章

分享到

QQ空间 QQ好友 微博
取消