ayushjha-dev/WIRIDS

GitHub: ayushjha-dev/WIRIDS

一个基于 Playwright 和 Gemini AI 的自主网页篡改检测与事件响应系统,能够发现网站未经授权的修改并生成加密签名的取证报告。

Stars: 0 | Forks: 0

#

🛡️ WIDIRS

网页篡改调查与响应系统



 __        _____ ____ ___ ____  ____

 \ \      / /_ _|  _ \_ _|  _ \/ ___|

  \ \ /\ / / | || | | | || |_) \___ \

   \ V  V /  | || |_| | ||  _ < ___) |

    \_/\_/  |___|____/___|_| \_\____/

Python 3.11+ Flask Google Gemini 3.1 Flash-Lite Playwright SQLite

## 🌌 理念 在广阔的数字世界中,真相以代码的形式书写并被快照所捕获。然而,对手企图改变这一真相——重写我们网络存在的叙事。**WIDIRS** 作为这一现实边界的哨兵,时刻警惕地守护着你数字存在的神圣完整性。 WIDIRS 诞生于*防御源于感知*这一信念,其运作遵循一个基本原则:**知即护,解即胜**。它体现了模式识别的古老智慧——将*现状*与*应有状态*进行对比,一旦发现差异,便通过取证分析和智能归因来照亮通往真相的道路。 ## 💡 我们的守护对象 **WIDIRS** 是一款企业级的数字完整性哨兵——一个自主的守护者,持续监控你的网络资产是否遭受未经授权的篡改。通过机器视觉与人工智能的融合,它协奏出一曲检测、分析与响应的交响乐: - **🔍 持续监控**:在不断变幻的威胁图景中,捕捉你网络资产的本质——无论是视觉还是结构层面 - **🧠 认知分析**:利用 **Google Gemini AI** 洞察每次变异背后的意图,以类似人类的理解力对威胁进行分类 - **🔗 证据收集**:自主提取入侵痕迹——威胁行为者留下的数字 breadcrumbs - **🌍 上下文丰富化**:将发现结果与全球威胁情报网络(**VirusTotal**、**AbuseIPDB**、**URLhaus**)进行交叉比对,将事件置于更广阔的网络战格局中 - **⚡ 即时响应**:通过 **Telegram** 和 **Email** 编排实时警报,确保没有任何威胁被忽视 - **📋 取证文档**:生成不可篡改的、经监管链验证的报告——用于调查和问责的入侵编年史 ## 🗺️ 演进——崛起的三个阶段 如同哲学与文学的伟大史诗,WIDIRS 的旅程在三个变革阶段中展开,每一个阶段的能力都更深邃,影响都更深远。我们从*观察* → 走向*干预* → 最终达到*预见*。 ### 🟢 第一阶段:*觉醒* — 检测与理解 *(当前阶段)* *“首先,我们必须看见。然后,我们必须理解。”* 基础阶段唤醒了 WIDIRS 对入侵行为的感知: - **👁️ 感知**:Playwright 编排出干净、无偏见的网页快照——轮换身份,隐蔽追踪,确保所见即未受污染的真相 - **🔎 识别**:双重比较引擎——视觉感知(pHash, SSIM)和结构分析(DOM 检查)——汇聚以检测即使是细微的变异 - **🧠 认知**:Google Gemini AI 解读意图,通过 9 种安全分类法对修改进行分类,并揭示威胁组织的动机 - **📊 智能**:来自全球威胁网络的实时情报补充,并进行智能缓存以避免冗余查询 - **💬 通信**:通过 Telegram 和 Email 发送即时警报——以人为本的通知,专为提升理解力和促进行动而设计 - **📜 记录**:经过加密签名的取证报告——经监管链验证的证据,用于调查和问责 ### 🟡 第二阶段:*干预* — 主动修复与分布式防御 *(即将推出)* *“接着,我们必须响应。而且必须精准执行。”* 缓解阶段赋予了 WIDIRS 行动的能力,而不仅仅是观察: - **🔄 自我恢复**:通过备份恢复或 git 配置进行自动化修复,瞬间治愈受损内容 - **🛡️ 动态保护**:向 Cloudflare、AWS WAF、ModSecurity 实时部署 WAF 规则——筑起防御之墙 - **🌐 分布式哨兵**:跨越全球节点的 Agent,绕过地理定向和本地化攻击向量 - **🤝 企业集成**:导出 STIX/TAXII,与企业 SIEM 和 SOAR 编排平台无缝融合 ### 🔴 第三阶段:*预见* — 自主狩猎与预测性防御 *(未来规划)* *“最后,我们必须预料。我们必须在猎手出击前成为捕食者。”* 顶点阶段赋予了 WIDIRS 预见与自主的能力: - **🕸️ Honeypot 生态系统**:动态 Docker 沙箱镜像目标,捕获实时的 payload 行为和漏洞利用模式 - **🔍 漏洞预言**:在检测到入侵时触发自主渗透扫描(SQLi、XSS、路径遍历、CVE 匹配) - **🔮 预测性屏障**:二级 AI Agent 吸收威胁行为者的情报,在攻击活动发起*之前*部署防御规则 - **⚙️ 自定义剧本**:分析师编写量身定制的修复工作流,让每个站点类别都有其专属的编排命运 ## 📸 界面——通往清晰的视窗 ### 🎨 仪表盘——洞察之门 我们的 Web 界面超越了单纯的功能性,体现了现代设计哲学的理念——玻璃拟态的优雅、明亮的排版,以及一种诉说着直觉语言的界面。实时数据流在屏幕上流淌,每一次扫描都被渲染成进度与发现的编排艺术。 ![Web 仪表盘](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f6ccbdf801051316.png) ### 📋 取证报告——入侵编年史 每个事件都会生成一份以证据语言写就的叙述。我们的报告呼应了 CrowdStrike 最杰出作品的精准度——置信度量表、风险评估、时间线、并排渲染的视觉 diff 以及统一的代码树。这是一份既适合分析师也适合高管、旨在启发并说服他们的文档。 ![事件报告封面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/34aa2d5939051322.png) ![事件报告证据](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8146d0342d051328.png) ![事件报告归因与附录](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/81568f90e4051333.png) ## ✨ 能力——艺术与科学的交汇 *瞻仰 WIDIRS 的工具吧,每一件都是打磨至完美精度的利刃:* - **👁️ 无偏感知**:Playwright 通过轮换的身份编排捕获,隐蔽追踪器——确保数字快照反映的是未受第三方观察污染的真相 - **🔬 分叉分析**:感官与认知比较的结合——感知哈希(pHash)、结构相似性指数(SSIM)、像素级完美的 diff 与 DOM schema 检查相结合,每一个视角都能揭示其他视角遗漏的细节 - **🧬 语义分类**:Google Gemini 的神经理解将每次变异归类为 9 种安全范式(*钓鱼页面覆盖*、*SEO 污染*、*黑客行动主义发声*),每一种都标记有风险升级程度和威胁概率 - **🔍 取证考古**:对入侵痕迹的算法挖掘——通过专门的 pattern recognition 揭示 IPv4 签名、域名注册、加密哈希、电子邮件通道、攻击者身份以及区块链钱包 - **🌍 全球上下文**:与世界级的威胁情报共享库并行咨询——VirusTotal、AbuseIPDB、URLhaus——配备智能缓存,以遵守速率限制并加速洞察 - **🧩 混合归因**:基于签名的渊源与 Gemini 的认知模式匹配相融合,共同编织出一幅网络,以前所未有的确信度将事件与已知的敌对组织联系起来 - **⚡ 自适应通知**:智能警报编排——关键威胁通过带有交互式键盘的 Telegram 瞬间发送,而轻微异常则汇总为每小时报告,充分尊重人类的注意力和认知 - **🔗 不可篡改的证据**:经过加密签名的取证简报,附带 SHA-256 监管链验证,使每份报告都成为真正的编年史,适合法律审查和高管汇报 ## 🏗️ 架构——智能的剖析 *系统如同一曲编排好的交响乐般运作,每个模块都是独特的声部:* ``` User / Web Dashboard (The Eye) │ ▼ dashboard.py ──────────────────────────────────► Flask HTTP Server │ (The Gateway) │ POST /api/scan ▼ main.py run_full_incident_pipeline() (The Conductor) │ ├──► modules/monitor.py Step 1: Witness & Perceive (Playwright capture) ├──► modules/change_detect.py Step 2: Discern Deviation (Visual + DOM diffing) │ Step 3: Threshold & Filter ├──► modules/ai_classify.py Step 4: Interpret Intent (Gemini classification) ├──► modules/ioc_extract.py Step 5: Excavate Evidence (IOC parsing) ├──► modules/threat_intel.py Step 6: Contextualize (VT / AbuseIPDB / URLhaus) ├──► modules/attribution.py Step 7: Identify Perpetrators (Signature + AI) ├──► database.py Step 8: Crystallize Knowledge (SQLite persistence) ├──► modules/alerts.py Step 9: Communicate Danger (Telegram + Email) └──► modules/report_gen.py Step 10: Chronicle Evidence (Jinja2 forensics) ``` ### 📂 知识库——目标索引 ``` widirs/ ├── main.py # The Orchestrator ├── dashboard.py # The Interface (Server-Sent Events enabled) ├── config.py # The Constitution (Pydantic settings) ├── database.py # The Memory (Async SQLite) ├── models.py # The Ontology (Data structures) ├── pyrightconfig.json # IDE Navigation ├── requirements.txt # Dependencies ├── .env # Secrets & Configuration ├── data/ │ ├── db/widirs.db # The Persistent Mind │ ├── snapshots/ # Captured Moments (baseline & incident) │ ├── diffs/ # Visual Mutations (bounding box overlays) │ ├── reports/ # Forensic Chronicles (HTML & PDF) │ └── signatures.yaml # Threat Actor Genealogy ├── modules/ │ ├── monitor.py # The Perceptor (Playwright + aiohttp) │ ├── change_detect.py # The Comparator (Visual & structural analysis) │ ├── ai_classify.py # The Interpreter (Gemini) │ ├── ioc_extract.py # The Archaeologist (Pattern extraction) │ ├── threat_intel.py # The Researcher (Global intelligence) │ ├── attribution.py # The Detective (Hybrid matching) │ ├── alerts.py # The Messenger (Dispatch & throttle) │ └── report_gen.py # The Chronicler (Jinja templating) └── templates/ └── report.html.j2 # The Testimony (Forensic template) ``` ## 🛠️ 初始——安装与觉醒 *在 WIDIRS 成为你的数字哨兵之前,它必须被唤醒。以下是神圣的启动步骤:* ### 前置条件 - **Python 3.11 或更高版本** — 逻辑的语言 - **虚拟环境** — 隔离与纯净 - **现代 Web 浏览器** — 用于与仪表盘交互 ### 设置仪式 1. **导航至圣所**(项目目录): cd WIRIDS 2. **从模板创建你的神圣 `.env` 卷轴**: copy .env.example .env *然后打开 `.env` 并铭刻你的 API 密钥——Google Gemini、VirusTotal、Telegram 凭证——这些都是通往全球意识的钥匙。* 3. **召唤你的虚拟领域**: # Windows .venv\Scripts\activate.ps1 # Linux / macOS source .venv/bin/activate 4. **将依赖项铭刻到你的环境中**: pip install -r requirements.txt 5. **授予浏览器机制的访问权限**: playwright install chromium ## 🚀 部署——唤醒 WIDIRS 采取行动 *系统待命,听候差遣。选择你的路径:* ### 🖥️ Web 界面 — 与仪表盘对话 *(推荐)* 召唤 Flask 神谕并开启理解之门: ``` python dashboard.py ``` 在浏览器中访问 **http://localhost:5000** ——一个玻璃拟态的传送门正等待着,准备接收你的扫描请求,显示实时情报,并存档过去的发现。 ### ⌨️ 命令行 — 直接调用 **初次接触 — 建立基线:** ``` python main.py scan --url https://example.com --baseline ``` *WIDIRS 首次捕捉你网络资产的快照,创建一个参考基准,未来的所有变异都将以此为标准进行衡量。* **后续扫描 — 狩猎偏差:** ``` python main.py scan --url https://example.com ``` *将实时站点与你的基线进行比较。检测变更,对威胁进行分类,结合情报进行丰富化,并发出即时警报。* **持续监控 — 守护进程监控:** ``` python main.py monitor --config sites.yaml ``` *WIDIRS 进入冥想般的守望状态,按照规定的间隔扫描清单中的 URL。* **通道测试 — 验证通信:** ``` python main.py test --channel telegram python main.py test --channel email ``` *确认 Telegram 和 Email 通道运作正常,以便你能够接收 WIDIRS 的警告。* ## ⚙️ 配置魔典 — 自定义变量 (`.env`) *每一项设置都能将 WIDIRS 调整至你的特定需求:* | 变量 | 默认值 | 含义 | |---|---|---| | `GOOGLE_API_KEY` | — | **必填。** 通向 Google Gemini 认知领域的密钥。 | | `VIRUSTOTAL_API_KEY` | — | 访问 VirusTotal 详尽威胁百科全书的权限。 | | `ABUSEIPDB_API_KEY` | — | 通向 AbuseIPDB 的 IP 信誉情报的网关。 | | `TELEGRAM_BOT_TOKEN` | — | WIDIRS 向 Telegram 发声的通道。 | | `TELEGRAM_CHAT_IDS` | — | WIDIRS 警告的接收者(以逗号分隔)。 | | `SMTP_HOST` / `SMTP_PORT` | — | 用于电子邮件通知的邮政服务。 | | `SNAPSHOT_DIR` | `data/snapshots` | 存储捕获时刻以备后代查看的位置。 | | `REPORT_DIR` | `data/reports` | 取证编年史的存档处。 | | `MIN_CHANGE_SCORE` | `0.10` | 敏感度阈值——变更达到何种程度才能触发警报? | ## 🧪 真理之测 — 验证你的安装 *在将 WIDIRS 部署到生产环境之前,请确保其机制健全:* ``` .venv\Scripts\python -m pytest ``` *全面的测试套件验证了所有模块,确保检测的准确性、归因的精确度以及警报的可靠性。* **当前状态:** ✅ **73/73 个测试通过** — 系统已被证明。 ## 🎯 使命 在数字战场的时代,真相是第一个牺牲品。被攻陷的网站模糊了“真相”与“表象”的界限。WIDIRS 屹立在这个门槛上,是一个坚定不移的哨兵,它坚守这样一个原则:*在充满欺骗的世界里,可见度即力量*。 通过自动化对网页篡改的检测、分析和归因,我们使组织能够以清晰的头脑而非恐慌来应对。每一次警报都携带着情报。每一份报告都记录着证据。每一次调查都让我们更接近于理解对手的意图。 这就是 WIDIRS 的使命——看见他人忽视的,理解他人错过的,并确保没有任何入侵行为被忽略。 *由 Team Task 3 Q1 以精准与哲学理念倾力开发* *诞生于 2026 年 6 月的数字警戒系统*
标签:Flask, Playwright, 威胁情报, 安全响应, 开发者工具, 时间线生成, 特征检测, 网页防篡改, 自动化监控, 计算机视觉, 逆向工具