freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

基于deepseek本地大模型的敏感信息检测的burp插件开发
2025-02-06 09:39:00
所属地 北京

一、开发背景

在渗透测试过程中,传统的正则表达式匹配方式存在覆盖率低、误报率高的问题。本文介绍如何利用本地部署的大语言模型(如Ollama),结合BurpSuite扩展开发技术,实现智能化的敏感信息检测方案。

二、技术架构设计

![架构示意图]
Burp插件(Python)-> 子进程调用 -> Ollama本地模型服务(REST API)-> 返回结构化检测结果

系统工作流程:

  1. Burp捕获HTTP响应报文

  2. 通过子进程调用本地分析脚本

  3. 调用Ollama API进行智能分析

  4. 结构化解析检测结果

  5. 在Burp界面展示告警信息

三、核心代码解析

脚本1:Burp扩展主程序(关键代码分析)

class BurpExtender(IBurpExtender, IHttpListener):
    def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo):
        if not messageIsRequest:  # 仅处理响应报文
            response_body = self.helpers.bytesToString(response_bytes)
            result = self.analyze_with_python(response_body)
            
    def analyze_with_python(self, response_body):
        process = subprocess.Popen(
            ['python', 'analyze_with_ollama.py'],
            stdin=subprocess.PIPE,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE
        )
        stdout, stderr = process.communicate(input=response_body.encode('utf-8'))

技术要点:

  1. 实现IHttpListener接口监听HTTP响应

  2. 使用subprocess模块调用外部Python脚本

  3. 通过标准输入输出进行进程间通信

  4. 错误处理机制保障插件稳定性

脚本2:Ollama本地模型调用(关键功能解析)

PROMPT_TEMPLATE = """请执行以下操作:
1. 严格检测以下敏感数据类型...
2. 对每个检测项必须包含...
3. 返回严格JSON格式..."""

def main():
    content = sys.stdin.read().strip()
    prompt = PROMPT_TEMPLATE.format(content[:5000])
    
    response = requests.post(
        OLLAMA_URL,
        json={
            "model": MODEL_NAME,
            "prompt": prompt,
            "format": "json",
            "options": {"temperature": 0.2}
        },
        timeout=TIMEOUT
    )
    
def validate_result(data):
    if not isinstance(data.get("contains_sensitive_data"), bool):
        return False
    for item in data.get("sensitive_items", []):
        required_keys = {"type", "value", "confidence"}

创新设计:

  1. 多层级敏感数据分类检测

  2. 上下文截取机制(前后各20字符)

  3. 置信度评分体系

  4. 严格的JSON格式验证

  5. 输入内容长度限制(5000字符)

四、使用效果与测试数据

在测试环境中对以下场景进行验证:

测试用例检出率误报率平均响应时间
API密钥泄漏98.2%1.5%2.3s
身份证信息泄露95.7%2.1%3.1s
医疗数据暴露92.4%
# 渗透测试 # 数据泄露 # web安全 # 数据安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录