关于 CWE-022 规则实现与传播建模方式以及是否可用于owasp benchmark测试的咨询
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginne mit der Überprüfung der Schemas in language/java/lib, insbesondere Callable, CallableBinding und CallGraph, zusammen mit den angehängten Dateien TaintPath.gdl, ZipSlip.gdl, TaintedPath.ql und ZipSlip.ql. Reproduziere das Verhalten leerer Ergebnisse anhand der generierten Datenbank OWASP Benchmark v1.2 coref_java_src. Als abgeschlossen gilt, einen dokumentierten Ansatz für die Source-to-Sink-Modellierung von CWE-022 sowie die Frage zu etablieren, ob diese Regeln mit dem Benchmark ausgewertet werden können.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
您好,开发者团队,我是一名正在学习 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 类漏洞规则检测的一般思路。
非常感谢。
- Vorherrschende Sprache
- Java
- Sterne
- 359
- Forks
- 40
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codefuse-ai/CodeFuse-Query
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
codefuse-ai/CodeFuse-Query#119 ·
-
java调用链注解分析Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
codefuse-ai/CodeFuse-Query#111 · 2 Kommentare ·
-
java调用链生成如何根据路径过滤Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
codefuse-ai/CodeFuse-Query#110 · 1 Kommentar ·
-
java调用链分析 如何实现按照部分类过滤Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
codefuse-ai/CodeFuse-Query#109 · 1 Kommentar ·
-
Python的支持问题,以及 coref 的打印问题Evtl. wieder frei @xiexie hat das vor 617 Tagen übernommen, und es ist kein Pull Request offen. Offen
codefuse-ai/CodeFuse-Query#95 · 5 Kommentare · 2 zugewiesene Personen ·
Alle Issues in codefuse-ai/CodeFuse-Query
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
checkstyle/checkstyle#22145 ·
Maintainer antworten meist innerhalb von 1 Tag
-
rset command throws NPE in ResultsFormat.guessSyntaxEvtl. vergeben @Ostrzyciel hat das heute übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
objectionary/eo#9593 ·
Maintainer antworten meist innerhalb von 1 Tag
-
release bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
OpenLiberty/open-liberty#36124 ·
Maintainer antworten meist innerhalb von 1 Tag