【安全科普】你的机器究竟在学什么?

http://p5.qhimg.com/t01d8d0eb93cef0fbb3.jpg

翻译:360代码卫士

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

机器学习&人工智能风头正劲

人工智能预示着我们将进入一个全新的世界,可以凭借数字化实现所有的梦想。并且人工智能可以辞退烦人的员工,不用理会他们的肉身需求和期望。很遗憾,目前人工智能发现的现状,更像是一次大肆宣扬式营销的过度承诺。而更加残酷的真相是,人工智能 (AI) 就像是在马戏团中跳舞的狗熊,我们并不是因为狗熊跳舞跳得好而兴高采烈,而是因为狗熊竟然跳舞了。

要理解这一点,可以看看高德纳发布的《新兴技术炒作周期》报告,高德纳将“每家公司都假装是一家AI公司的这种疯狂行为”比作是“漂绿”——每家公司都自我标榜为具有环境意识和环境友好的公司。机器学习正处于“过热期”的顶峰,而过热期之后就是“幻灭期”。所有熟悉AI历史的人都知道,每一次,AI都因无法兑现诺言和缺乏资金支持而多次失败,目前我们现在正处于第五个AI时代。

当然,这并不是说当前的一大波机器学习技术没有给我们带来任何裨益。我们这样讲是为了理解机器学习更适合于解决哪些问题以及它的局限性在哪里。遗憾的是,要理解这一点需要一名数学或物理博士或者说AI博士才能搞清楚。

对于其他人而言,我们可以通过咨询机器学习厂商一些基本的问题,来判断他们是否真的理解机器学习的精髓,还是在浪费CPU周期只为了看起来很酷?


你的机器在学习什么?

这个问题看似显而易见,但你会吃惊于有那么多厂商在努力地给出一个合乎逻辑的答案。

首先,它真的在学习东西吗?之所以这么说是因为我(指作者)在高德纳工作时发现很多厂商误将更基础的分析和计算方法如数据分析或关联营销称机器学习。

其次,如果它确实在学习东西,那么是如何记住所需东西并且它是如何重播所学东西的呢?


从哪里学习?

它是在实验室还是你的环境中学习?

在实验室学习意味着学习模型或分析不会基于你独特的资料如数据、基础设施或环境;它还意味着机器不会自动意识到或者适应在专为你分析的数据中产生的变化。

在你的环境中学习意味着机器和所产生的模型或分析会基于你具体的环境而且学着适应于你的组织机构。

http://p2.qhimg.com/t0197526753759d511b.png

如果是集合了两者,则是完全可以接受的。机器学习能解决的某些问题由多个组件组成,例如首次学着理解如何检测攻击,然后从你的环境中学习来设置一个正常的基线。但是只在实验室中学习存在两种内在弱点——除非它是一种非常具体和狭窄的问题(例如识别猫),它会很艰难地处理真实世界书局的多样性和复杂性,而且你对它所学到的东西几乎没有什么控制和洞见,将其变为一个黑匣子,你无法评估其中的输入。

这个问题还有另外一个考量面,即它是在你的环境中就地学习还是它把数据发送到云中学习?


如何学习?

所有声称涉及机器学习的厂商都应该能够提供一份他们所遵循的机器学习方式的高级概览。这里的关键字是“受监控的”、“未受监控的”、“增强型的”以及高级算法说明。如果他们无法通过一张漂亮的速查表确定这一点,那么我建议你避而远之。了解厂商所使用的方式在最好的情况下能进行进一步的研究和评估这是否是正在试图解决的问题的正确算法,在最糟糕的情况下它显示出厂商至少知道他们自己的机器学习在做什么。

http://p9.qhimg.com/t01748486ea76c450ac.png

某些厂商可能会对这个问题避而远之,他们的借口是“这是专利/商业机密”。这种借口毫无意义,毕竟所问的并非算法执行的详细数学细节。我从未见过发明一种新的之前未曾出现过的方法。认真可信的厂商会告诉你答案。很多厂商不过是采用了现成算法并实现了跟那些宣称超自然的特有的实现方法的相似结果。如果有人说已对已有方法做出改进,那就问问他是如何实现的。


为何学习?

为什么会学习某种具体的数据?为何会采用某种具体方法?可以应用很多种不同的算法和方式。比如,集群分析会基于相似属性对某组对象进行归类,因此它可用于自动识别具有相似功能或配置的组或主机或用户,并且能够判断这些组之间的区别。

任何厂商都应该能够解释为何他们会选择某种具体的方法,以及为何他们会选A而非B。他们可能更偏好于准确性而非速度,反之亦然;而且他们应该能够解释为何准确性没那么重要或者说将速度排在更优先的级别。


解决了什么问题?

机器学习可以解决什么问题呢?下面是一些简单的标准:

它解决的问题如果使用不太复杂的方法解决不了吗?或者说用其它方法解决可行性低或者效率低?

这个问题起着重要作用,而且旨在识别无谓的机器学习。最好的例子就是很多UEBA厂商都在炫耀的东西即识别出用户是否同时在不同的地方登陆。这个问题其实并不需要机器学习也能解决。简单的关联就足够了:用户A使用IP-Address X和Y访问系统Z,而一些SIEM多年前就能够做到这一点。

它是否解决了多个问题?还是说它不过是“雨人(本意是罹患自闭症但在某方面具有天才的人群)”式的机器学习。从金钱成本、时间、投入精力和基础架构方面考虑,看它解决的是单一问题(这个问题最好是个重大问题)如治疗癌症。

一般来说,我的建议是对厂商的营销保持谨慎态度。世界上并不存在机器学习厂商而只存在将机器学习用于解决具体问题的厂商。用户实体行为分析很好地说明了整个市场如何以在解决某个具体用例中使用的方法被错误地命名而不是以用例本身命名。这就导致了很多困惑的产生而且它应当作为营销人员应该学习的经验教训。你能够解决事件响应、高阶威胁检测、使用机器学习实施追捕和调查的方方面面。如果不应用于具体的问题中,机器学习本身不会解决任何问题。

(完)