Burp Suite 是**滲透測試領域事實上的標準工具**,尤其擅長Web應用與API安全測試。針對AI系統,它主要用于測試模型API、管理后臺等Web接口。以下是專業級使用指南:
?
---
?
### **一、 核心模塊與功能概覽**
| **模塊** | **核心功能** | **AI測試重點** |
|----------------|-----------------------------------------------------------------------------|-------------------------------------------|
| **Proxy** | 攔截/修改HTTP(S)請求響應,充當瀏覽器與服務器間的中間人 | 攔截模型API請求,篡改輸入數據測試魯棒性 |
| **Repeater** | 手動重放請求,實時修改參數反復測試 | 精細調試對抗樣本、異常輸入對模型的影響 |
| **Intruder** | 自動化參數爆破(支持Sniper/Battering ram/Pitchfork/Cluster bomb四種攻擊模式) | Fuzzing模型輸入參數,探測注入漏洞或邊界條件崩潰 |
| **Scanner** | (Pro版) 自動化漏洞掃描(SQLi/XSS/SSRF等) | 快速發現API基礎漏洞 |
| **Decoder** | 數據編碼/解碼(Base64/URL/Hex等) | 處理AI API中的編碼數據(如圖像轉Base64) |
| **Comparer** | 對比請求/響應差異 | 分析模型對不同輸入的響應變化(如對抗樣本成功時的響應特征) |
?
---
?
### **二、 關鍵操作流程詳解**
#### **步驟1:環境配置**
1. **瀏覽器代理設置**??
? ?- 打開Burp → `Proxy` → `Options` → 記錄代理端口(默認`127.0.0.1:8080`)??
? ?- 瀏覽器配置相同代理(安裝Burp證書以攔截HTTPS流量)
? ?```bash
? ?# 導出證書
? ?訪問 http://burp/cert 下載cacert.der → 導入瀏覽器信任庫
? ?```
?
2. **作用域設置(Target → Scope)**??
? ?- 添加目標AI系統域名/IP(如 `*.ai-company.com`)避免干擾非目標流量
?
#### **步驟2:攔截測試(Proxy模塊)**
1. **攔截模型API請求**??
? ?- 瀏覽器訪問AI應用 → 觸發模型預測(如上傳圖像分類請求)??
? ?- Burp自動攔截請求(如 `POST /api/v1/predict`)??
? ?```http
? ?POST /api/v1/predict HTTP/1.1
? ?Content-Type: application/json
? ?{"image": "base64_encoded_data", "model_id": "resnet50"}
? ?```
?
2. **篡改關鍵參數**??
? ?- 修改`image`字段:替換為**對抗樣本Base64**(通過ART生成)??
? ?- 注入惡意負載:`{"image":"' OR 1=1-- -"}` 測試SQL注入??
? ?- 破壞數據結構:刪除閉合引號、插入超長字符串 (>10MB)
?
#### **步驟3:深度重放測試(Repeater模塊)**
1. 從`Proxy`或`History`右鍵發送請求到`Repeater`??
2. **實驗對抗攻擊**:??
? ?- 多次修改`image`參數,觀察模型返回標簽和置信度變化??
? ?- 添加頭部`X-API-Key: 惡意值`測試認證繞過??
3. **邊界測試**:??
? ?- 發送空值:`{"image": null}`??
? ?- 非法類型:`{"image": 12345}`
?
#### **步驟4:自動化Fuzzing(Intruder模塊)**
**場景:測試模型輸入驗證缺陷**??
1. 從歷史記錄右鍵 → `Send to Intruder`??
2. **標記攻擊位置**:??
? ?- 選擇`image`參數值 → 點擊`Add §`(如 `{"image":"§base64_data§"}`)??
3. **選擇攻擊類型**:??
? ?- `Sniper`:單參數輪替測試(常用)??
? ?- `Cluster bomb`:多參數組合測試(如同時Fuzz `image` + `model_id`)??
4. **載入Payload**:??
? ?- `Payloads` → 選擇預定義字典或自定義:??
? ? ?```python
? ? ?# 常見危險Payload
? ? ?../../etc/passwd
? ? ?<script>alert(1)</script>
? ? ?{"malicious_json": true}
? ? ?```
? ?- 使用`Payload Processing`將文本轉為Base64(適配圖像API)??
5. **結果分析**:??
? ?- 排序`Status`/`Length`列 → 查找異常響應(如`500錯誤`或異常延遲)
?
#### **步驟5:漏洞掃描(Scanner模塊 - Pro版)**
1. 右鍵目標API → `Active Scan`??
2. **重點檢測項**:??
? ?- **注入漏洞**:SQLi/NoSQLi/命令注入(尤其關注輸入參數)??
? ?- **敏感信息泄露**:API密鑰、訓練數據在響應中暴露??
? ?- **配置錯誤**:CORS頭暴露、HTTP方法濫用(如PUT/DELETE未禁用)
?
---
?
### **三、 AI系統專項測試技巧**
#### 1. **對抗樣本測試流程**
```mermaid
graph LR
A[生成對抗樣本] --> B(編碼為Base64)
B --> C{通過Burp Proxy發送}
C --> D[觀察響應]
D -->|分類錯誤| E[攻擊成功]
D -->|正常分類| F[嘗試增強擾動]
```
?
#### 2. **模型元數據泄露檢測**
- **步驟**:??
? - 在`Proxy`歷史記錄中搜索關鍵詞:??
? ? ```regex
? ? (model_architecture|training_data|version|git_commit)
? ? ```
? - 檢查`/robots.txt`或`/.env`中是否暴露調試接口
?
#### 3. **API濫用測試**
- **Intruder配置**:??
? - **Payload類型**:`Numbers`(生成1-10000序列)??
? - **攻擊位置**:`api_key`參數 → 暴力破解密鑰??
? - **速率限制繞過**:添加頭部`X-Forwarded-For: 隨機IP`
?
---
?
### **四、 高階配置**
#### 1. **插件擴展(BApp Store)**
| **插件** | **用途** |
|----------------------|---------------------------------|
| **Autorize** | 自動測試權限提升漏洞 |
| **Flow** | 可視化多步驟AI業務流程 |
| **Custom Payloads** | 加載對抗樣本數據集進行批量測試 |
?
#### 2. **命令行自動化(支持CI/CD)**
```bash
java -jar burpsuite_pro.jar --project-file=project.burp --config=scan.json
```
```json
// scan.json 配置示例
{
? "scan_configurations": [
? ? {
? ? ? "name": "AI API Scan",
? ? ? "urls": ["https://ai-api/predict"],
? ? ? "scan_checks": ["SQL Injection", "XSS"]
? ? }
? ]
}
```
?
---
?
### **五、 注意事項**
1. **法律合規**:??
? ?- 僅測試授權目標,獲取書面許可??
2. **資源控制**:??
? ?- 避免對生產環境模型發起高強度Fuzzing(可能導致服務癱瘓)??
3. **敏感數據處理**:??
? ?- 開啟`Project options → Misc → Mask values`隱藏響應中的敏感信息??
4. **性能優化**:??
? ?- 設置`Project options → Connections → Timeouts`防止阻塞
?
> **專業提示**:結合**Logger++** 插件記錄所有流量,用**Search**功能快速定位`/api`相關請求,高效分析模型交互行為。
?
掌握這些技巧,你已能系統性評估AI系統的Web接口安全。實際測試中需根據目標架構靈活組合模塊——例如用`Proxy`+`Repeater`手動探針高風險功能,再用`Intruder`自動化覆蓋輸入向量。
?