KnottNefarious/infinity-fugue-engine

GitHub: KnottNefarious/infinity-fugue-engine

基于数学对位法构建的 Python 静态分析引擎,通过形式化推理统一处理安全漏洞检测与代码质量问题。

Stars: 0 | Forks: 0

# infinity-fugue-engine 🫀🫀🫀🫀🫀🫀🫀🫀🫀🫀🫀🫀 基于数学对位法构建的 Python 代码分析引擎(支持移动端)——利用生成函数、Banach 收敛和路径敏感污点分析进行安全与质量不协和检测。 # Infinity × Fugue — 统一代码分析引擎 🎼 完全基于单一元数学框架构建的 Python 代码分析引擎 —— **数学对位法**。不是在 Linter 之上添加数学,而是数学本身*即是*分析。 ## 在线演示 💾
👉 部署到 Replit 并访问 Web 界面以即时分析代码。 [![Launch Infinity-Fugue-Engine](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/20e19fe990105309.gif)](https://unified-engine--KnottNefarious.replit.app) ## 功能 同时在两个维度上分析 Python 代码:🐍⛎ **安全不协和** —— 通过证明 Γ 无法建立“汇点 S 处的输入是安全的”来发现漏洞:🧮 - SQL 注入 - 命令注入 - 路径遍历 - 跨站脚本攻击 (XSS) - 服务端请求伪造 (SSRF) - 不安全的反序列化 - 不安全的直接对象引用 (IDOR) - 缺失授权 **结构不协和** —— 通过证明逻辑矛盾来发现代码质量问题: - 不可达代码(在 return, raise, 常量为 false 的条件之后) - 未使用的变量(具备作用域感知和闭包感知能力) - 无效赋值(在首次读取前被覆盖) **数学分析** —— 每次运行都会产生: - G(x) = Σ aₙxⁿ — 深度索引生成函数(结构指纹) - K(x) 归一化 — 基于压缩的 Kolmogorov 复杂度 - Halstead 指标 — 体积、难度、工作量、预估 Bug 数 - Banach 收敛 — 跨运行的 Jaccard 距离追踪 - 结构转位 — 程序间的同构检测 ## 框架 每个分析阶段都精确对应五个原始推理动作之一: | 动作 | 数学 | 引擎阶段 | |---------------|-----------------------------------------------|-------------------------------------------------------| | Subject | G(x) = Σ aₙxⁿ | SubjectExtractor — 读取结构形状,而非值 | | Dissonance. | Γ ⊢ φ ⟺ ¬(Γ ∪ {¬φ} consistent). | DissonanceDetector + PathSensitiveTaintAnalyzer. | | Transposition | F : C ≅ D | TranspositionFinder — 结构 DNA 匹配. | | Resolution | lim \|Sₙ − L\| < ε | ResolutionPredictor — Banach 不动点收敛 | | Compression. | K(x) = min{\|p\| : U(p) = x} | KolmogorovComplexity + HalsteadMetrics | 安全分析不是第六件事。它是**全深度的 Dissonance** —— 同一种形式结构,应用于一类更难的逻辑矛盾:程序与其用户之间的安全契约。 ## 一个基于形式数学的污点分析和 Python 安全扫描器,提供静态分析功能。 ## 快速开始 ### Replit 1. 将此仓库导入 Replit 2. 点击 **Run** — Replit 读取 `.replit` 并自动启动 3. 在 Replit 浏览器窗格中打开 Web 界面 ### 本地 ``` git clone https://github.com/YOUR_USERNAME/infinity-fugue-engine cd infinity-fugue-engine pip install -r requirements.txt python app.py # 打开 http://localhost:5000 ``` ## API ### `POST /api/analyze` ``` { "code": "def view():\n uid = request.args.get('id')\n cursor.execute('SELECT * FROM t WHERE id = ' + uid)" } ``` 返回完整报告:安全发现、结构问题、K(x)、Halstead、G(x)、收敛序列、修复预测。 ### `POST /api/compare` ``` { "code_a": "...", "code_b": "..." } ``` 返回结构转位分析:类型相似度、深度相似度、调用图相似度、结论(同构 / 相似 / 分歧)。 ### `GET /api/health` ## 返回引擎状态、运行次数、收敛历史长度。 ## 架构 meta_code/ ├── taint.py 路径敏感污点分析 (CFG × TaintState) ├── sinks.py 安全汇点定义 — 全部 8 种漏洞类型 ├── meta_engine.py 7 阶段编排器(用于收敛追踪的单例) ├── resolution.py Banach 不动点收敛,Jaccard 距离 ├── core.py 数据结构:Finding, Issue, DissonanceReport ├── subject.py G(x) 生成函数,结构指纹 ├── dissonance.py CFG + ScopeTree + ShadowAnalyzer ├── compression.py 归一化 K(x) + Halstead 指标 ├── transposition.py 结构比较:类型 + 深度 + 调用图 └── execution.py 沙箱运行时验证 ### 单例设计 引擎在服务器启动时实例化一次,而非在请求处理程序内部实例化。这使得 Banach 收敛具有意义 —— 每次分析运行的历史记录在服务器的整个生命周期内累积,Jaccard 距离序列是真实的。 ### 路径敏感污点 污点分析使用 CFG × TaintState 乘积构造。在程序中的每个点,污点状态逐路径携带: - abort() 和 raise 是路径终止符 —— 它们正确传播授权守卫 - BinOp 从任一操作数返回污点(修复了最常见的注入盲点) - 所有函数体均被无条件分析 —— 包括 Flask @app.route 函数 ## 测试 2️⃣➕2️⃣🟰❔ bash python tests/test_suite.py 跨 10 个类别的 93 项测试: |测试类型. |数量|✓| |---------------------------|--------------|-| |- 污点源 |(7 tests) |✓| |- 污点传播 |(8 tests). |✓| |- 汇点检测. |(18 tests) |✓| |- 误报. |(8 tests). |✓| |- 路径敏感 |(4 tests). |✓| |- 过程间 |(4 tests). |✓| |- 结构质量. |(11 tests). |✓| |- 数学 |(11 tests). |✓| |- 流水线 / 集成 3 |(9 tests). |✓| |- 边缘情况 |(13 tests). |✓| 全部 93 项通过。🤯 ## 数学基础 🧠 - **生成函数** — Flajolet & Sedgewick, *Analytic Combinatorics* (2009) - **形式逻辑 Γ ⊢ φ** — 矢列演算; Gentzen (1935) - **Kolmogorov 复杂度** — Kolmogorov (1965), Chaitin (1966) - **Halstead 指标** — Maurice Halstead, *Elements of Software Science* (1977) - **Banach 不动点定理** — Stefan Banach (1922) - **Jaccard 距离** — 严格度量; 自反、对称、满足三角不等式 - **范畴函子 F: C ≅ D** — Mac Lane & Eilenberg (1945) - **数据流分析** — Kildall (1973); CFG × TaintState 乘积构造 ## 许可证 🪪 MIT
标签:Banach空间, CISA项目, IDE插件, PE 加载器, Python代码分析, SAST, SecOps, SQL注入检测, SSRF检测, URL发现, XSS检测, 不可达代码, 云安全架构, 元数学, 反演, 命令注入, 安全检测, 开发安全, 数学建模, 生成函数, 盲注攻击, 符号执行, 路径敏感分析, 路径遍历, 逆向工具, 错误基检测, 静态代码分析