异常HTTP请求检测方法解析
立即解锁
发布时间: 2025-08-29 10:47:57 阅读量: 9 订阅数: 20 AIGC 

### 异常HTTP请求检测方法解析
#### 1. 特征提取
在HTTP入侵检测中,特征提取是关键的一步,它能为后续的分类和检测提供有价值的信息。主要从HTTP查询和HTTP头部字段两方面进行特征提取。
- **处理HTTP查询**
- 一个HTTP请求消息包含查询字符串,由Web资源URI、属性和不同的头部组成。例如,Apache服务器日志文件中的一个HTTP请求示例如下:
```plaintext
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700]
"GET /resource?parameter1=value1¶meter2=value2 HTTP/1.0" 200 2326
"http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"
```
- 采用n - gram字符模型提取特征。在进行代码注入时,攻击者会使用特定的非字母数字符号组合,因此将所有数字和拉丁字母视为相同字符,把HTTP查询划分为包含n个符号的重叠字符子序列。对于第i个HTTP查询,存储所有唯一的重叠字符子序列$Sq_i$、这些序列出现的频率向量$f q_i$以及查询的长度$lq_i$。每个HTTP查询$q_i$转换为三元组:
$q_i →[Sq_i, f q_i, lq_i]$
- **处理HTTP头部字段**
- 通常,HTTP头部字段的可能值是有限的,提取简单特征即可检测头部中的代码注入。分析头部字段时,将每个字母数字符号替换为0,每个非字母数字符号替换为1,然后对得到的位序列应用n - gram字符模型。
- 对于每个头部字段$h_{ij}$,存储所有唯一的重叠字符子序列$Sh_{ij}$、这些序列出现的频率$f h_{ij}$以及位序列的长度$lh_{ij}$。第i个HTTP请求消息中第j个头部的值$h_{ij}$转换为三元组:
$h_{ij} →[Sh_{ij}, f h_{ij}, lh_{ij}]$
- 对于“referer”头部,处理方式与HTTP查询相同,即在应用n - gram字符模型之前,将所有数字和拉丁字母视为相同字符,不同的非字母数字符号视为不同。
#### 2. 系统训练与入侵检测
在应用IDS异常检测方法检测HTTP入侵时,首先要学习正常用户的行为模式。假设发送到Web服务器的大多数请求消息是正常的,入侵请求的百分比不超过10%。
- **HTTP查询分类器**
- 训练阶段,为训练集中的每个HTTP查询获取三元组后,构建所有唯一n - gram的列表,并计算每个n - gram在集合中的使用频率:
$F q_k = \frac{N q_k}{N q}$
其中,$F q_k$是第k个n - gram的使用频率,$N q_k$是使用第k个n - gram的查询数量,$N q$是训练集中唯一HTTP查询的总数。
- 通常有几个流行的n - gram用于构建几乎每个HTTP查询,使用简单的聚类技术(如k - means或单链接聚类)将使用频率约为1的流行n - gram分类。将最流行的n - gram集合视为正常用户行为的中心,记为Ω。
- 计算第i个查询的n - gram集合与正常集合Ω之间的距离:
$Dq_i = \sum_{k\notin\Omega} \log(1 + \frac{(lq_i - n + 1)(f q_{ik})^2}{F q_k})$
- 使用DBSCAN聚类算法对训练集中所有HTTP查询的距离进行分类。DBSCAN需要两个参数:邻域大小ϵ和形成簇所需的最小点数$N_{min}$。
- ϵ的计算方式为距离值$Dq$的绝对偏差:
$\epsilon = \sum_{i} |Dq_i - \frac{1}{N}\sum_{i} Dq_i|$
- $N_{min}$的计算方式为:
$N_{min} = \max_{k\notin\Omega}F q_k N q$
- 训练完成后,存储正常n - gram集合Ω、训练集中所有唯一n - gram使用频率的向量$F q$、分类为正常的值中的最大$Dq_i$以及DBSCAN参数ϵ。当新的HTTP查询发送到服务器时,计算其与正常集合Ω的距离$D_{nq}$,根据以下规则分类:
```plaintext
HTTP查询是
{
正常, 如果$D_{nq} ≤ \max_i Dq_i + \epsilon$,
入侵, 如果$D_{nq} > \max_i Dq_i + \epsilon$.
}
```
- **HTTP头部分类器**
- 使用简化版的HTTP查询分类技术检测HTTP头部字段中的注入。训练阶段,为每个头部类型分别提取最流行的n
0
0
复制全文
相关推荐










