导语
随着AI技术和云计算的兴起,这两大前沿技术与WAF融合的场景需求也越来越强。传统基于正则规则的WAF检测无法适应攻击方法的变化和演变。攻击者可以通过修改攻击载荷、使用编码技术、绕过常规规则等方式来规避正则表达式的检测,使得传统正则匹配规则变得不够灵活和准确。此外,传统基于正则检测规则的WAF具有有限的上下文感知能力,从而导致会产生较高的误报率。
天翼云 WAF 基于以上背景,采用机器学习和语义特征等业界前沿技术,依托天翼云深厚的基础资源和强大算力,为用户的网站提供全面安全服务,让企业专心做自己的业务。这篇文章就和大家谈谈天翼云 WAF 是如何用机器学习赋能下的语义分析技术的。
- 词法分析
词法分析(Lexical Analysis)是语义分析中的一个重要阶段。它是语义分析的第一个阶段,用于将源代码分解为词法单元(Tokens)序列。
词法分析的主要任务是将输入的源代码字符串划分为有意义的词法单元,并生成对应的词法单元流。词法单元是源代码的最小、具有独立意义的单元,例如关键字、标识符、运算符、常量和分隔符等。
词法分析器(Lexical Analyzer)使用一组定义好的词法规则或正则表达式,对源代码进行扫描,并将符合规则的字符序列组合成词法单元。词法分析器将识别并返回每个词法单元及其对应的词法记号(Lexemes)。
总之,参照下图1,词法分析是将源代码分解为有意义的词法单元序列的过程,为后续的语法分析处理阶段提供了清晰、结构化的输入。
- 语法分析
语法分析(Syntax Analysis),是语义分析中的一个重要步骤。它是将输入的源代码按照给定的语法规则进行分析和组织的过程,以验证源代码的结构是否符合语法规范,并生成抽象语法树(Abstract Syntax Tree,AST)。
在语法分析过程中,将上述流程中得到的token序列,按照语法规则进行组织和解释,构建出语法树或抽象语法树。语法树是一种树状结构,它反映了源代码的语法结构,其中每个节点表示一个语法单元,而节点之间的关系表示语法单元之间的语法关系。语法分析器的作用就是分析这些token序列能否组合成某种语言的语法短语,如程序、语句、函数声明表达式等等。我们以图2中的xss语法树构造为例,简单说明一下语法分析构造语法树的过程,图中的每个圆圈内的内容都是上述词法分析器获取的token。
- 语义分析
语义分析在语法分析的基础上进行,它主要关注源代码的语义含义和程序的意义,需要联系上下文,所以会比传统正则匹配有更广泛的视野。语义分析会对语法树或抽象语法树进行遍历,进行类型检查、符号表管理、作用域规则检查等操作,以验证源代码的语义正确性。
- 机器学习
机器学习能够自动从数据中学习模式和规律,无需显式地编写固定的规则。它可以智能地从大量数据中提取特征,并自动调整模型参数以达到最佳性能。这使得机器学习可以自动化解决复杂的任务,提供智能化的决策和预测能力。所以,我们的云原生WAF里也使用里机器学习来为语义分析模型赋能。
在上述的词法分析、语法分析、语义分析的各个环节提取有用特征,将这些特征融合后作为机器学习分类模型的输入,进行模型的迭代训练。最终获得具有高效准确分类能力的机器学习模型,帮助WAF提升攻击检测识别的准确率,降低误报率。下图展示了上述多个模块互相配合提升WAF检测能力的过程。
天翼云WAF作为网络安全领域的安全底座,以机器学习和语义分析为核心技术,为国家云和云租户提供了可靠的网络安全保障。通过智能化的机器学习算法和精准的语义分析,天翼云WAF能够实时监测和防护各类网络攻击。天翼云WAF将持续学习和适应新的威胁模式,为云租户和国家云提供更强大的防护能力,成为网络安全领域的领先者,为构建安全可靠的数字化社会做出积极贡献。