大道至简:智能语义检测的武林

在宗派林立的检测技术武林中,语义化检测引擎近两年已成热门绝学。它的力量在于,让攻击检测更精确、更聪明、更人性化。目前,硬件WAF中,国内已经有数家厂商部署了该技术;云WAF中,阿里云云盾也在上周发布了语义智能检测引擎的选项。

 

“智能语义检测”这门武艺的江湖故事,要从它的前辈“基于规则的检测引擎”开始说起。

 

10几年里,基于规则的引擎一统江湖。直到现在,江湖上大多数的WAF是基于规则的WAF。其原理是每一个会话都要经过一系列的安全检测,每一项检测都由一个或多个检测规则组成,匹配了检测规则,请求就会被认为非法而拒绝。

 

听起来很简单?其实对于运维者和企业客户来说,规则检测的软肋就在于他的“道法复杂,不变通”。

 

基于规则的WAF能有效的防范已知安全问题。但安全运维者首先必须知道攻击的全部特点,根据这些特点制定规则。所以基于规则的WAF需要一个强大的规则库支撑,并且规则库需要及时更新来应对最新的攻击。

 

对于安全运维人员来说,规则的条目就会变得繁多而复杂,导致规则库维护起来相当困难。并且,运维人员经常发现,过了一段时间后,都不知道某些规则的含义以及当初为什么这么写的了。例如下边这条规则:

是不是看得头大?维护庞大的规则库对运营人员来说,确实是个很大的挑战。这是因为,基于规则的WAF,因为规则的描述能力有限,有些攻击方法和攻击场景无法通过规则来描述完备。我们举一个大家能懂的例子,

 

如果“大道至简!”是一串攻击请求,当WAF成功防御过一次后,就会更新一个规则
——但凡包含“至”、“简”“!”这三个特征的,就可能是攻击!—— 但如果下次接到了一个正常请求:“至繁归于至简!”,WAF也会把它归到攻击那一类,这就产生了我们所谓的误报

 

同时,攻击者会通过复杂的变形来完成攻击。这时,规则又是无法穷尽所有的攻击变形的。还是刚才那个例子,当上次的攻击者做了一个“变体”,将攻击请求变成了“大道无为”,那么WAF就检测不到了,也就是所谓的漏报了。

 

在很多攻防对抗的场景下,会发现正则的缺陷和短板。以一个简单的SQL注入攻击请求为例:

www.vuln.com/?id=1’ union select version() from dual

 

这个SQL注入攻击请求是读取数据库版本信息的攻击请求,能够描述这个攻击的正则表达式,可以写为:

union\s+select\s+version\(\)\s+from\s+dua

 

\s+的作用是匹配一个或多个不可见字符,如空格、换行等符号。显然的,熟悉SQL语句的攻击者,可以利用一些数据库特性绕过这个正则的检查,例如:用注释符/*11*/替换空格、利用注释符号--%0替换空格,根据这个特性,完善后的正则表达式可以写为:

union(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)select(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)version\(\)(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)from(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)dual        

 

可以明显看到,更新之后的正则表达式的复杂度已经明显提高了,逻辑看起来也不是非常直观明了,更重要的是,这样的防护规则,仍然可以被绕过!

 

经过简单的fuzz挖掘,可以发现mysql新的“特性”,在Mysql函数调用中,正常结构为function_name() 这样的格式,同时还支持其他的语法特性,function_name/*111111*/()、function_name     () 、function_name`()、function_name--%0a()、function_name/**/   ()
、function_name/*111*/--11%0()这样都是等价的写法!

 

于是上述正则规则又有了升级版:

union(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)select(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)version(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a|`)\(\)(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)from(\s+|/\*[\s\S]*\*/|--[\s\S]*?\x0a)dual

从这个简单的例子可以看出,使用正则表达式去描述SQL注入这样的攻击,存在明显的短板:维护成本高、逻辑性低、条理性低。往往一个新”特性”的发现,意味着运营人员需要批量更新上百条的规则,这是一个相当艰难的过程,因此使用正则作为检测方式的引擎,或多或少存在被绕过的风险。

 

总而言之,基于规则的检测不能有效防御未知的威胁,比如攻击变体,0day攻击。除此之外,对于企业安全运维人员来说,正则引擎的维护压力大,成本高,各派武林人士都在YY:“有没有一种检测引擎和算法,不需要人去维护规则,也可以应对千变万化的攻击!?”

 

智能引擎检测这个武林绝学,就在这样的江湖背景下,千呼万唤始出来。

语义检测引擎的内功在于,会把自然语言中的语义、顺序和场景,纳入考虑范围;知道一个特征,在这个场景、顺序下可能是攻击,在另一个中则不是。延续刚才“大道至简”的例子:

 

规则引擎:

只用“至”、“简”“!”来判定一个请求是否是攻击。漏报误报率高

 

智能语义检测引擎:

1、“大道至简!”是攻击

2、“至繁归于至简!”因为场景和顺序不对,不是攻击

3、通过机器学习,能分辨出“大道无为”是“大道至简”的变体

 

这样一来,大家就可以一目了然看出二者的根本区别了。智能化语义检测引擎,就像手握一把离门剑,“每一招中皆能在刹那间作二十五种变化,独步剑林。”(参考萧逸《十二神拳》)。对于防范未知威胁,0day攻击尤其有效。

那么,智能语义化检测的武功究竟如何使出来?我们再往下探究。

 

第一招,归一

 

把同类攻击行为的同类行为特征归并起来。即,同一类的攻击行为和攻击特征聚合为一个攻击特征,这就是归一化的过程。攻击的多个行为特征组成特定的排列组合,来表示同一类攻击,这样我们就可以用自然语言的语义来理解并且描述同一类攻击。攻击特征的排列组合就是攻击的语义化。

 

这样就能抛却各种复杂的攻击和它们的变形,把攻击行为语义化了。

 

以下是一个sql注入攻击实现语义化的例子,先对sql语句进行归一化的语义分析,然后在异常攻击集中查找分析结果,若找到说明是sql注入攻击。




比如以下这条规则:

 

(select|from|\band|\bor|\bxor|=|,|;)[\s\+\(`)*?(sleep[\s\+`]*?\(|version[\s\+`]*?\(|pg_sleep[\s\+`]*?\(|extractvalue[\s\+`]*?\(|updatexml[\s\+`]*?\(|dbms_pipe.receive_message\(|st_latfromgeohash\(|st_longfromgeohash[\s\+`]*?\(|analyse[\s\+`]*?\(|gtid_subset[\s\+`]*?\(|gtid_subtract\(|st_pointfromgeohash\(|convert[\s\+`]*?\(|md5[\s\+`]*?\(|count[\s\+`]*?\(|char[\s\+`]*?\(|benchmark[\s\+`]*?\(|hex[\s\+`]*?\(|@@version|db_name[\s\+`]*?\(|user[\s\+`]*?\(|cast[\s\+`]*?\(|concat[\s\+`]*?\(|unhex[\s\+`]*?\(|floor[\s\+`]*?\(|length[\s\+`]*?\(|ascii[\s\+`]*?\(|substring[\s\+`]*?\(|substr[\s\+`]*?\(|substring_index[\s\+`]*?\(|instr[\s\+`]*?\(|left[\s\+`]*?\(|right[\s\+`]\()

 

通过归一化后可以描述为:select from 敏感关键字 函数运算(),可以用“abcde”五个字符表示,即这类攻击用语义可描述为:具有敏感关键字和函数运算的sql类型表达式。复杂的规则维护,瞬间变得简单了。

 

第二招,攻异

 

仅仅防范已知的WEB安全问题,是被动且滞后的,基于异常的防护会更加有效。

 

异常防护这一招的基本观念是:根据合法应用数据检测建立统计模型,以此模型为依据判别实际通信数据是否是攻击。

 

理论上,此招一出,系统就能够探测出任何的异常情况。这样,就不再需要规则库,0day攻击的检测也不再是问题了。

 

例如,阿里云云盾的WAF智能语义异常攻击集,是基于云盾自己的运营数据,对正常的Web应用建模,从正常的模型里边区分出异常的情况,再从繁多的Web攻击中提炼出来的异常攻击模型,形成异常攻击集。

 

 

制胜之招:无影

 

未来,智能语义化检测引擎这门绝学,将进化成实时大数据分析引擎。招式进化的关键,就在于算法的优化,计算的能力和成本,还有数据聚类和清洗的技术,等等。

 

基于上述的理念和检测原理,阿里云研发了全新的云盾WAF智能检测引擎。该智能引擎通过攻击行为语义化和基于异常的防护,来检测各种web攻击。各类攻击语义化后,云盾WAF智能检测引擎能应对各种攻击及其复杂的变形。基于异常统计检测所建立的安全模型,不仅仅可以防范已知的web安全威胁,也可以防范未知的安全威胁。


江湖风云变幻,大数据的时代已经成为主流。WAF防御的技术如果想要继统治武林,向智能化、语义化的方向发展则是必然。未来,可以预见大部分的WAF检测和防御都会通过机器学习自动来完成,再加上很少的人工确认工作,就可以确定异常攻击集 —— 从容应对现实中的安全威胁以及未来的安全威胁,从根本上解决Web服务系统所面临的各种安全挑战。

 

大道至简,大有可为。




了解阿里云云盾产品和服务

https://www.aliyun.com/product/yundunall?spm=5176.8142029.388261.22.83Ye8G


 

时间: 2024-08-07 17:09:06

大道至简:智能语义检测的武林的相关文章

大道至简:玩转数据可视化

在大数据时代下,有人把数据比喻为蕴藏能量的地下石油.但你知道石油的平均采收率指标么?你知道你所拥有的数据,其中的"地质储量"有多大么?你知道自己的"挖掘"方法能够实现的"开采量"么?通过这个一个形象的指标类比,我们可以知道,大数据的"大"需要你去理解和探索,而得到"有用"价值,需要掌握合适的挖掘方法! 数据挖掘作为大数据分析的核心技术,是指从大量数据中揭示出隐含的.先前未知的.有潜在价值的信息的反复过程.它

大道至简的数据治理方法论

数据分析师的角色犹如一位大厨,原料有问题,大厨肯定烹饪不出色香味俱佳的大菜,数据有问题,数据分析师得出的结论自然也就不可靠. 如果你是一位大厨,刚刚眉飞色舞地给客人描绘了如何搭配一道色香味俱佳的大菜,甚至连炒菜的手法都一一交代了,当你备好了各种为这道菜增鲜增色的调料后准备烹饪时,才发现所需的主要原料有问题. 数据分析师的角色犹如一位大厨,原料有问题,大厨肯定烹饪不出色香味俱佳的大菜,数据有问题,数据分析师得出的结论自然也就不可靠,再好的数据分析方法论也只是建立在失真的数据基础上,苦心构建的数据体

LG G3设计师访谈:大道至简 简以制胜

中介交易 SEO诊断 淘宝客 云主机 技术大厅 3721.html">2014年5月27日,LG电子继G2之后的又一重磅旗舰产品--全新的G3智能手机,在全球6大城市--伦敦.纽约.旧金山.首尔.新加坡和伊斯坦布尔同步首发.这部凝聚了LG设计师团队无数心血的诚意之作,甫一出世,就以其搭载的尖端科技和史无前例的用户体验聚焦了全球消费者的目光.LGG3的设计师们围绕着"Simpleisthe new smart"的设计理念,在G3的外观.功能设置和用户体验等方面进行了淋漓尽

大道至简:让你顿悟创建型设计模式

大道至简:让你顿悟创建型设计模式   佛教中有一种修行方法叫做"顿悟",简单的说突然间想明白了.我不是佛教弟子,但幸运的是这两天重温设计模式的时候,也顿悟了一把:每个创建型模式一句话总结!   既然是顿悟,我就不详细介绍了,设计模式相关的书上都会有详细的介绍,我只把我顿悟的内容共享出来,看看你是否可以顿悟:)?   Abstract Factory:创建一组相关对象 什么叫做"相关对象",当然就是一组有关系的对象了. 逻辑上的解释还是很难以理解,但是举个简单的例子相

智能语义聚合框架:像人类一样收集和理解知识

郑昀 20071129 智能语义聚合框架并不是什么领域都适用的,能够进入的垂直领域特点: 信息源:网络资讯足够丰富,碎片多且分散: 用户需求:受众越来越依赖于网络碎片形成自己的意见: 商业需求:容易建立商业模式或电子商务的领域. 也就是说,很多网络口碑公司,只是要么点评.要么点评搬家.或者拿出点儿商业报告.或者论坛营销把戏,但离真正理解人们在说什么还远得很.其实语义应用上有好多事情很好玩的,并不是只能像玩聚网搞得像techmeme一样热点自动发现,毕竟玩聚的热点故事还不能真正理解故事的本意:像大

智能语义识别,让浏览器真正理解人

3月30日海豚浏览器在Android平台和iOS平台同步推出更智能的中文语音控制功能"海豚声纳". 目前支持语音功能的手机浏览器并不鲜见,但多数都还停留在相对简单.机械的语音识别层面,使得用户体验大打折扣,海豚浏览器从技术上突破了这一瓶颈,推出了更为智能的"海豚声纳". 智能语义识别,让浏览器真正理解人 "海豚声纳"采用了智能语义识别技术,使得浏览器能够更好地"听懂"自然语言,用户只需要用自己最习惯的说法告诉海豚自己的需求即可

《架构真经:互联网技术架构的设计》大道至简

大道至简 无论从哪个角度来看,杰瑞米·金都有一个成功和绚丽的职业生涯.20世纪90年代中期,在互联网大潮来袭之前,杰瑞米参与了海湾网络公司SAP项目的成功实施.从此,杰瑞米投身互联网大潮,任Petopia.com公司的技术副总裁.他经常调侃说,在Petopia.com公司的这段经历,相当于从"硬汉拓展营大学"取得了"现实世界的工商管理硕士".离开Petopia.com后,杰瑞米加入eBay,作为总监负责新一代商务平台V3的架构.如果说杰瑞米在Petopia.com完

科技创业捷径 网络电话进军通信大道至简

在现如今全球经济增长非常乏力的大背景下,在相对炙手可热的移动互联网领域,每年仍有数百款移动即时通讯软件APP上架于App Store,其活跃程度令全球业界刮目相看.对于全球热衷于科技创业的青年才俊们来说,进军移动通信无疑是大家梦寐以求的,而基于移动互联网流量通信的即时通讯软件APP应该说是一个比较不错的切入点. 然而对于不少科技创业者而言,一般的即时通讯软件APP似乎让人感到"不踏实":一方面移动即时通讯软件的确存在微信变"危信"的信息安全隐忧,用户的个人信息安全受

《高效能程序员的修炼》一大道至简

大道至简 高效能程序员的修炼 作者在Twitter上发的一条短讯: "你永远都有简化的空间." 11:29 AM – 2012-5-21 Rich Skrenta在"Code is our enemy"(代码是我们的敌人)一文中是这么说的: 代码不是什么好东西.代码会随着时间的推移慢慢腐烂.代码需要周期性的维护.代码里还藏有bug.新增功能意味着旧的代码需要被修改.你的代码越多,bug能藏身的地方就越多,迁出(checkout)或者编译的时间也就越长,新员工理解你的