codefuse-ai / codefuse-ai/CodeFuse-Query

关于 CWE-022 规则实现与传播建模方式以及是否可用于owasp benchmark测试的咨询

未關閉
#126 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
358
分支
40
PR 合併指標
30 天內沒有已合併 PR

描述

您好,开发者团队,我是一名正在学习 CodeFuse-Query 的大二学生,目前正在基于 Sparrow 2.1.0 尝试开发漏洞检测规则。
我最近在尝试实现 CWE-022 相关规则(TaintPath 和 ZipSlip),并使用 OWASP Benchmark v1.2 作为测试数据。
目前我已经能够:
正常生成有关benchmark的2740个测试用例的 coref_java_src 数据库
阅读 language/java/lib 中的 schema(Callable、CallableBinding、CallGraph 等)
编写gdl,且排查一定的错误,但是对于schema的应用还是感到非常困惑

我遇到了一个问题:
我尝试通过 CallableBinding 构建 Source 到 Sink 的调用传播关系,例如:
Source:
HttpServletRequest.getParameter / getHeader
Sink:
java.io.File 构造函数、路径操作相关 API
规则可以正常运行,但始终返回空结果。

我目前不确定:
CodeFuse-query 是否推荐通过 Callable 调用图来实现类似污点传播分析?
是否存在官方推荐的漏洞检测规则示例可以参考?如像codeql里面的默认cwe checker(已上传,需要改一下名字)

Sparrow 2.1.0 是否对规则建模方式有新的推荐实践?
我已经编写了两个规则(TaintPath.gdl 和 ZipSlip.gdl),可以作为附件提供。
想请教一下目前实现 CWE 类漏洞规则检测的一般思路。
非常感谢。

[TaintPath.gdl.txt](https://github.com/user-attachments/files/25185949/TaintPath.gdl.txt)
[ZipSlip.gdl.txt](https://github.com/user-attachments/files/25185948/ZipSlip.gdl.txt)

[TaintedPath.ql.txt](https://github.com/user-attachments/files/25185973/TaintedPath.ql.txt)
[ZipSlip.ql.txt](https://github.com/user-attachments/files/25185974/ZipSlip.ql.txt)

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

首先檢查 language/java/lib 中的 schemas,尤其是 Callable、CallableBinding 和 CallGraph,以及隨附的 TaintPath.gdl、ZipSlip.gdl、TaintedPath.ql 和 ZipSlip.ql 檔案。針對產生的 OWASP Benchmark v1.2 coref_java_src 資料庫重現空結果行為。完成標準是建立關於 CWE-022 source-to-sink 建模的文件化方法,並確定這些規則是否可以使用 benchmark 進行評估。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
security
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
需要釐清
新手友好度
25/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。