codefuse-ai / codefuse-ai/CodeFuse-Query

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

Đang mở
#126 0 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
358
Fork
40
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

您好,开发者团队,我是一名正在学习 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)

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.