基于数据分析的网络安全学习笔记——文本分析

第12章 文本分析

分析带有文本的安全数据,学会如何以半结构化(根据一套比较有条理的规则而创建出来的)的形式来处理分析文本问题

12.1 文本的编码

  1. 编码是指计算机会根据规则把字符与相应的数值关联起来,或是将数值解读成对应的字符。
  2. Unicode是一套字符集,里面的每个字符都有索引,这个索引是数字形式的值,成为该字符的代码点(简称码点)。
  3. 编码机制,就是要把数字形式的代码点,表达成某种标准的二进制形式。

12.1.1 Unicode、UTF与ASCLL

  1. Unicode本身只是一套编码标准,用来将代码点与字符对应起来,它并不是特指某套具体的编码方案。
  2. UTF-8(UTF的意思是Unicode Text Format)通过编码这一过程,将字符表示为具体的数字。这是一种长度可变的编码方案。

12.1.2 攻击者如何利用编码发起进攻

12.1.2.1 Base64编码

Base64的目标是用常见的字符来表示任意一个二进制值,因此需要把二进制值,映射到0~63这个范围的某个整数里面,并将该整数替换成对应的字符。Base64采用的是大写的字母A-Z、小写字母a-z、数字0-9,以及另外两个字符。
Base64进行编码的基本流程:

  1. 将原始的字符串写出来
  2. 将其中的每个字符表示成二进制的形式
  3. 以24个二进制为单位,将其分成许多块
  4. 如果某一块里面的二进制位不到24个,那就用0来填充
  5. 将每个块分成4组,并把每一组内的那6个二进制位转化成一个字符
    辨认Base64编码最简单的方法为,看某段文本是否总是找不到Base64之外的字符,尤其是那些很常见但始终没有见到过的字符。
12.1.2.2 非正式的编码技术与混淆技术

比如倒着写或者在后面加上内容,比如将.zip写成.piz以此来规避对于zip文件所做的过滤。

12.1.2.3 压缩

利用压缩技术可以绕开检测机制。在各种压缩格式中,像UPX、Themida、ASPack等可执行的压缩格式是攻击者很喜欢的。这些格式可以把经过压缩的数据文件,与解压缩时需要的逻辑,合起来打包成一个可执行文件。

12.1.2.4 加密

12.2 基本技能

主要介绍一套基本技能来帮助处理并操控文本。

  1. 查找字符串
    在UNIX操作系统中,可以用grep工具进行特定字符串查找,在查找时要注意,如果想要匹配IP地址,其中的圆点符号(.)会被当成正则表达式里面的通配符,这时可以将符号写成\.来查找字面上的圆点符号。在Python中搜寻字符串的方法有两种,一个是find,另一个是index。
  2. 处理分隔符
    tr工具可以很方便的处理分隔符,在python中也可通过字符串的.translate方法来实现。
  3. 按照分隔符进行拆分呢和提取
  4. 正则表达式

12.3文本分析技术

  1. 雅卡尔距离,指两个字符串的交集与并集的比。
  2. 汉明距离,两个字符在多少个位置上面具有互不相同的字符。
  3. 莱文斯坦距离,某个字符串至少要经过多少次的单字符操作才能变成另一个字符串。
    可以通过这些距离指标找出那些容易混淆的域名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值