拿来就能用!如何用 AI 算法提高安全运维效率? | 技术头条(17)

很可能包含一些HTML标签或者事件属性 , 比如html标签scriptimgstyle等 , 比如事件属性 onerror onload等所有on事件 src href等;

通常情况下 , 需要闭合 , 比如 ‘ “/script/textarea等;

可能包含一些探测关键字/函数 , 比如 xss alert(1) document.cookie等;

通常情况下 , 如果黑客进行利用需要引入三方js , 需要注意短链接等;

通常情况下 , 在js中需要连接字符 , 比如注释后面// 比如连接可执行js代码; -+ /* ^等;

去掉闭合支付之后 , 是一些可解析执行的js语句或者HTML语句 。

……

从安全工程师的角度去分析 , 我们能发现很多特征 , 但是这里我们需要学习如何把这些特征转换为机器能够识别的特征 。 作为文本特征的提取 , 首先是分词 , 然后对分词的特征进行处理 。 再想办法把这些特征进行处理 , 让他们变成机器能识别的特征向量 。 比较简单的特征提取方式就是直接针 对敏感字符/关键字的个数进行统计和分析 , 这个更符合统计学的思路 , 感兴趣的朋友可以参考《Web安全之机器学习入门》 。 这里我们尝试另一种思路 , 选择嵌入式词向量(Word embedding) , 嵌入式词向量就是通过学习文本来用词向量表征词的语义信息 , 通过将词嵌入空间使得语义相似的词在空间内的距离接近 。 因为XSS攻击通常执行的是HTML/JavaScript脚本 , 是具有一些语义的关联 。 这里我们可以使用嵌入式词向量模型 , 建立一个XSS的语义模型 , 让机器能够理解script、alert()这样的语言 , 这样看起来更符合人类分析的模式 。 首先我们进行分词:

推荐阅读