id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id
title
category
status
canonical_id
aliases
duplicate_of
source_trust_level
confidence_score
verification_status
tags
raw_sources
last_reinforced
github_commit
tech_stack
wiki-2026-0508-joern
Joern
10_Wiki/Topics
verified
self
joern-cpg
code-property-graph-tool
none
A
0.9
applied
security
sast
cpg
static-analysis
vulnerability
2026-05-10
pending
language
framework
Scala
ShiftLeft/Joern
Joern
매 한 줄
"매 Code Property Graph (CPG)를 query 하는 SAST 플랫폼 — 매 AST + CFG + DDG 통합 graph" . 매 Yamaguchi 박사 논문에서 출발 — 매 ShiftLeft가 사실상의 사업화 — 매 2026 기준 매 C/C++/Java/Python/JS/Go 매 multi-language 매 OSS SAST 의 reference.
매 핵심
매 CPG 란
AST (syntax) + CFG (control flow) + DDG (data dependence) 통합 단일 graph.
Node: function, identifier, literal, call, parameter, …
Edge: AST_PARENT, CFG, REACHING_DEF, CALL, …
매 query language
매 CPGQL — Scala-based DSL.
매 example: cpg.call("strcpy").argument(2).reachableBy(cpg.parameter).p
매 응용
매 vulnerability hunting — taint trace src→sink.
매 code review automation — pattern grep 보다 더 deep.
매 SBOM/SCA 보완 — first-party code의 weakness.
💻 패턴
매 install + import
매 dangerous call 매 query
매 taint flow (SQL injection)
매 custom rule (XSS)
매 method-level metric
매 export
매 CI integration
매 ocular (commercial fork)
매 결정 기준
상황
Approach
매 quick grep
semgrep/CodeQL
매 deep taint multi-lang OSS
Joern
매 enterprise + secret + SBOM
ShiftLeft / Snyk Code
매 binary
Ghidra + plugin
기본값 : OSS multi-language SAST — Joern.
🔗 Graph
🤖 LLM 활용
언제 : 매 cross-function taint trace 필요 — string-grep 매 부족할 때.
언제 X : 매 single-line pattern — semgrep 매 빠르고 충분.
❌ 안티패턴
CPG 매 too large 매 RAM : 매 module 단위 분리 import.
regex 매 method name 매 over-broad : 매 false positive 폭발.
flow 매 결과 매 그대로 trust : 매 sanitizer 매 modeling 안 됐을 수도.
🧪 검증 / 중복
Verified (Joern 4.x, joern.io 2026).
신뢰도 A.
🕓 Changelog
날짜
변경
2026-05-08
Phase 1
2026-05-10
Manual cleanup — CPG/CPGQL 기반 SAST 패턴 정리