ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

METATRON数据库设计剖析:5张MariaDB联动表如何支撑渗透测试全量历史

METATRON数据库设计剖析:5张MariaDB联动表如何支撑渗透测试全量历史 METATRON数据库设计剖析5张MariaDB联动表如何支撑渗透测试全量历史【免费下载链接】METATRONAI-powered penetration testing assistant using local LLM on linux (Parrot OS)项目地址: https://gitcode.com/gh_mirrors/meta/METATRONMETATRON 是一款运行在 Parrot OS 上的 AI 渗透测试助手它的数据库设计非常值得新手学习仅用5 张 MariaDB 联动表就把每次渗透测试的漏洞、修复建议、利用尝试和 AI 分析全部沉淀为可回溯的全量扫描历史。本文将带你快速看懂这套 db.py 背后的设计思路。一、核心思路history 表 sl_no 这根脊柱整套设计的关键只有一个约定每次扫描会话先在history表生成一个自增编号sl_no其余 4 张表全部通过sl_no外键挂到它下面。history ← 每次扫描一行sl_no 是脊柱 │ ├── vulnerabilities ← 发现的漏洞通过 sl_no 关联 │ │ │ └── fixes ← 修复建议通过 vuln_id sl_no 双重关联 │ ├── exploits_attempted ← 尝试过的利用通过 sl_no 关联 │ └── summary ← AI 完整分析原文通过 sl_no 关联这个结构的好处是一个sl_no就能还原一次扫描的全部上下文——扫了什么目标、发现哪些漏洞、AI 给了什么修复方案、试过哪些利用手法、最终风险等级多高。建表 DDL 可以直接参考 README.md5 张表的CREATE TABLE语句一目了然。二、5 张 MariaDB 联动表速览表名职责关键字段history会话主记录脊柱sl_no、target、scan_date、statusvulnerabilities漏洞清单vuln_name、severity、port、servicefixes每条漏洞的修复建议fix_text、source默认标记为aiexploits_attempted利用尝试记录exploit_name、tool_used、payload、resultsummaryAI 分析原文 风险定级raw_scan、ai_analysis、risk_level注意fixes表比其它 4 张表多了一个vuln_id外键——它同时指向history和vulnerabilities因为修复必须挂在具体某条漏洞下而不是笼统挂在会话下。这是 5 张表里唯一存在二级关联的表。三、一次扫描如何写入数据库5 步流水线主程序 metatron.py 里的保存顺序就是这套数据库设计的最佳说明书开会话create_session(target)向history插入一行拿到自增的sl_no见 db.py跑侦察nmap / whois / whatweb 等工具产出原始扫描文本AI 分析本地大模型metatron-qwen解析出漏洞列表和可利用点逐条落库每条漏洞调save_vulnerability()若 AI 附带修复方案则紧接着save_fix(sl_no, vuln_id, ...)绑定漏洞 ID见 metatron.py收尾定级save_summary()把原始扫描全文、AI 完整分析、风险等级一次性写入summary。还有一个很贴心的细节如果侦察工具没产出任何数据程序会调用delete_full_session()把刚创建的会话整条回滚避免数据库里留下脏会话见 metatron.py。四、数据怎么读回来一个 sl_no 还原全貌读取侧的设计同样干净——db.py 的get_session(sl_no)只需传一个编号就遍历 5 张表把所有关联数据聚合成一个字典返回终端即可完整打印该次扫描的漏洞、修复、利用和分析。这套一码查全的设计让 export.py 导出报告变得极其自然选中某个sl_no后同样按 5 张表依次查询就能渲染出包含 Vulnerabilities、Fixes Mitigations、Exploits Attempted 等章节的专业 PDF/HTML 报告。五、联动机制的两个关键细节删除顺序讲究delete_full_session()见 db.py总是先删子表再删主表——fixes → exploits_attempted → vulnerabilities → summary → history这是外键约束下的标准做法新手操作数据库时最容易踩坑的地方。✏️字段级编辑白名单edit_vulnerability()等编辑函数只允许修改白名单内的字段如severity、port防止误改sl_no这类关联字段导致数据失联见 db.py。六、总结小表也能撑起大历史METATRON 的数据库设计没有用复杂的 ORM而是用最朴素的主表 外键编号模式5 张表各司其职history 管会话vulnerabilities 管发现fixes 管补救exploits_attempted 管过程summary 管结论。对刚接触渗透测试工具开发的朋友来说这套脊柱编号 五表联动的模式是理解多表关系型存储如何支撑完整业务历史的绝佳范本。想动手实践的话按 README.md 的 Database Setup 章节建好 MariaDB 即可跑起来。【免费下载链接】METATRONAI-powered penetration testing assistant using local LLM on linux (Parrot OS)项目地址: https://gitcode.com/gh_mirrors/meta/METATRON创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表