ๅบไบ CodeQL ้ๆๅๆไธๅคง่ฏญ่จๆจกๅ๏ผLLM๏ผ็่ชไธปๆผๆดๅฎก่ฎก็ณป็ปใ้็จ ReAct ๆถๆๅฎ็ฐ Agent ่ชไธปๅณ็ญใๅทฅๅ ท่ฐ็จๅๅค่ฝฎ้ช่ฏ๏ผๅฏน C/C++ ๅผๆบ้กน็ฎ่ฟ่ก่ชๅจๅๅฎๅ จๅฎก่ฎกใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่พๅ
ฅๅฑ โ
โ CodeQL Database โโโ SARIF Report (133 alerts) โโโ ่งฃๆ+ไธไธๆๆๅ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Autonomous Audit Agent (ๆ ธๅฟ) โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Tier 1: ่งๅ้ข่ฟๆปค (ๆ LLM ่ฐ็จ) โ โ
โ โ ไปฃ็ ่ดจ้่งๅ โ ่ชๅจๅคๅฎ FALSE_POSITIVE (96 alerts) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ๅฎๅ
จ็ธๅ
ณ (37 alerts) โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Tier 2: ReAct ๅๆๅพช็ฏ (ๅทฅๅ
ท่ฐ็จ LLM) โ โ
โ โ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโ โ โ
โ โ โ Think โโโโโโ Act โโโโโโ Observe โโโโ โ โ
โ โ โโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโ โ โ โ
โ โ โฒ โ โ โ โ
โ โ โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โผ (max 3 rounds) โ โ
โ โ โโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Tool Box โ โ โ
โ โ โ ยท read_file โ โ โ
โ โ โ ยท grep_source โ โ โ
โ โ โ ยท get_function โ โ โ
โ โ โ ยท get_callers โ โ โ
โ โ โ ยท get_typedef โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ TRUE_POSITIVE? โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Tier 3: Devil's Advocate ้ช่ฏ โ โ
โ โ ๅฏนๆๆงไบๆฌกๅฎกๆฅ โ ็กฎ่ฎคๆๆจ็ฟปๅคๅฎ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่พๅบๅฑ โ
โ audit_results.json โโโ report_gen.py โโโ Vulnerability Report โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅจ Docker ๅฎนๅจไธญ่ชๅจๅฎๆ curl ๆบ็ ็ผ่ฏใCodeQL ๆฐๆฎๅบๆๅปบๅๅฎๅ จๆซๆใ
่งฃๆ CodeQL ่พๅบ็ SARIF ๆฅๅ๏ผๆๅ 133 ๆก็ปๆๅๅ่ญฆๅนถๆ่งๅๅ็ฑป็ป่ฎกใ
ไป curl ๆบ็ ไธญ่ชๅจๆๅๆฏๆกๅ่ญฆๅฏนๅบ็ๅฝๆฐไฝ๏ผไธบ LLM ๅๅค่พๅ ฅใ
Agent ๅฏๅจๅ๏ผTier 1 ้ข่ฟๆปค่ชๅจ่ทณ่ฟ 96 ๆก้ๅฎๅ จๅ่ญฆ๏ผTier 2 ๅฏน 37 ๆกๅฎๅ จๅ่ญฆๆง่ก ReAct ๅพช็ฏ๏ผLLM ่ชไธป่ฐ็จๅทฅๅ ท๏ผread_fileใgrep_sourceใget_callers ็ญ๏ผ่ทๅ้ขๅคไธไธๆ๏ผๅค่ฝฎๆจ็ๅ็ปๅบๅคๅฎใๆ็ป Summary ๆพ็คบ 87 ๆฌกๅทฅๅ ท่ฐ็จใ
็บฟๆงๆตๆฐด็บฟ๏ผๆ ๅทฅๅ ท่ฐ็จ๏ผไบง็ 2 ไธชๅนป่งๆง TRUE_POSITIVE๏ผAgent ๆนๆก้่ฟๅทฅๅ ท้ช่ฏๆถ้คไบๆๆ่ฏฏๅคใ
ๆ็ป็ๆ็ปๆๅๅฎก่ฎกๆฅๅ๏ผๅ ๅซ็ป่ฎกๆฐๆฎใ่งๅๆๆๆงๅๆๅ่ฏฆ็ปๅคๅฎ็็ฑใ
| ็นๆง | ่ฏดๆ |
|---|---|
| ่ชไธปๅณ็ญ | ๅบไบ่งๅๅ็ฑป่ชๅจ่ทณ่ฟ้ๅฎๅ จๅ่ญฆ๏ผ่็ 72% API ่ฐ็จ |
| ๅทฅๅ ท่ฐ็จ | LLM ่ชไธปๅณๅฎ่ฐ็จ 5 ไธชๆบ็ ๅๆๅทฅๅ ท่ทๅไธไธๆ |
| ๅค่ฝฎๆจ็ | ReAct ๅพช็ฏๆๅค 3 ่ฝฎ๏ผ้ๆญฅๆทฑๅ ฅๅๆ |
| ๅฏนๆ้ช่ฏ | Devil's Advocate ๆบๅถๆๆ TRUE_POSITIVE ๅคๅฎ |
| ๅนป่ง็ผ่งฃ | ไฝๆธฉๅบฆ + ๆ็ๆงๆ็คบ + ็ปๆๅ่พๅบ + ๅทฅๅ ท้ช่ฏ |
- Python 3.10+
- Docker Desktop๏ผ็จไบ็ผ่ฏ็ฎๆ ้กน็ฎๅ CodeQL ๆซๆ๏ผ
- LLM API ่ฎฟ้ฎ๏ผOpenAI ๅ ผๅฎนๆฅๅฃ๏ผ
pip install openaicd codes/
git clone --branch curl-7_88_0 --depth 1 https://github.com/curl/curl.gitๅๅปบ config/config.json๏ผ
{
"API_key": "your-api-key",
"base_url": "https://api.example.com",
"model": "claude-opus-4-6"
}# Step 1: ๆๅปบ Docker ้ๅ๏ผ็ผ่ฏ curl + CodeQL ๆซๆ๏ผ
docker build -t codeql-curl .
# Step 2: ๆๅๆซๆ็ปๆ
docker create --name codeql-tmp codeql-curl
docker cp codeql-tmp:/workspace/results.sarif output/results.sarif
docker rm codeql-tmp
# Step 3: ่งฃๆ SARIF ๆฅๅ
python codes/parse_sarif.py output/results.sarif codes/curl -o output/alerts.json
# Step 4: ๆๅไปฃ็ ไธไธๆ
python codes/extract_context.py output/alerts.json codes/curl -o output/alerts_with_context.json
# Step 5: ่ฟ่ก Agent ๅฎก่ฎก
python codes/agent.py --input output/alerts_with_context.json \
--config config/config.json \
--source codes/curl
# Step 6: ็ๆๆฅๅ
python codes/report_gen.py output/audit_results.jsonpython codes/agent.py --input output/alerts_with_context.json \
--config config/config.json \
--source codes/curl \
--output output/audit_results.json============================================================
AGENT AUDIT SUMMARY
============================================================
Total alerts: 133
TRUE_POSITIVE: 0
FALSE_POSITIVE: 133
UNCERTAIN: 0
ERROR: 0
---
Tier 1 (pre-filter): 96
Tier 2 (ReAct): 37
Tier 3 (verified): 0
Total tool calls: 87
Verified findings: 0
============================================================
CodeQL_agent/
โโโ README.md # ๆฌๆไปถ
โโโ .gitignore
โโโ Dockerfile # Docker ็ฏๅข๏ผ็ผ่ฏ + CodeQL ๆซๆ๏ผ
โโโ build_and_scan.sh # ๆๅปบ่พ
ๅฉ่ๆฌ
โโโ config/
โ โโโ config.json # LLM API ้
็ฝฎ๏ผไธๅ
ฅๅบ๏ผ
โโโ codes/
โ โโโ agent.py # โ
ๆ ธๅฟ๏ผ่ชไธปๅฎก่ฎก Agent๏ผReAct ๅพช็ฏ๏ผ
โ โโโ parse_sarif.py # SARIF ๆฅๅ่งฃๆ
โ โโโ extract_context.py # ไปฃ็ ไธไธๆๆๅ
โ โโโ llm_audit.py # ็บฟๆงๆตๆฐด็บฟๅบ็บฟ๏ผๅฏนๆฏ็จ๏ผ
โ โโโ report_gen.py # Markdown ๆฅๅ็ๆ
โ โโโ curl/ # curl 7.88.0 ๆบ็ ๏ผไธๅ
ฅๅบ๏ผ้่ช่ก clone๏ผ
โโโ output/
โ โโโ results.sarif # CodeQL ๅๅงๆซๆ็ปๆ
โ โโโ alerts.json # ่งฃๆๅ็็ปๆๅๅ่ญฆ
โ โโโ alerts_with_context.json # ๅธฆไปฃ็ ไธไธๆ็ๅ่ญฆ
โ โโโ audit_results.json # Agent ๅฎก่ฎก็ปๆ
โ โโโ report.md # ๆ็ปๅฎก่ฎกๆฅๅ
โ โโโ report_summary.csv # ๆ่ฆ่กจๆ ผ
โโโ docs/
โโโ ๅฎ้ชๆฅๅ.md # ๅฎๆดๅฎ้ชๆฅๅ
โโโ ๆไฝๆๅ.md # ๅค็ฐๆญฅ้ชค
โโโ ไปปๅกๅๆไธ่งๅ.md # ไปปๅกๆ่งฃ
โโโ ็ฎๆ ้กน็ฎ้ๅ่ฐ็ .md # ้ๅไพๆฎ
| ็ปดๅบฆ | ็บฟๆงๆตๆฐด็บฟ (llm_audit.py) | Agent (agent.py) |
|---|---|---|
| ๆถๆ | ้ๆกๅๆฌก LLM ่ฐ็จ | ReAct ๅพช็ฏ + ๅทฅๅ ท่ฐ็จ |
| API ่ฐ็จ | 133 ๆฌก | 37 ๆฌก + ๅทฅๅ ท่ฝฎๆฌก |
| ๅทฅๅ ท่ฝๅ | ๆ | 5 ไธชๆบ็ ๅๆๅทฅๅ ท |
| ไธไธๆ | ๅบๅฎ๏ผโค80 ่กๅฝๆฐไฝ๏ผ | ๅจๆ๏ผLLM ่ชไธปๆฉๅฑ๏ผ |
| ้ช่ฏๆบๅถ | ๆ | Devil's Advocate ไบๆฌกๅฎกๆฅ |
| ่ฏฏๅค | 2 ไธชๅนป่งๆง TP | 0๏ผ้่ฟๅทฅๅ ท้ช่ฏๆถ้ค๏ผ |
- ้ๆๅๆ๏ผ CodeQL CLI v2.21.4 + codeql/cpp-queries@1.4.2
- LLM๏ผ Claude Opus (via OpenAI-compatible API)
- Agent ๆกๆถ๏ผ ่ช็ ReAct ๅพช็ฏ (Python)
- ๅทฅๅ ท่ฐ็จ๏ผ OpenAI function-calling API + ๆๆฌ่งฃๆ fallback
- ๅฎนๅจๅ๏ผ Docker (ubuntu:22.04)
- ๆฅๅๆ ผๅผ๏ผ SARIF v2.1.0 โ JSON โ Markdown





