ZhenanYin/TriageGuard
GitHub: ZhenanYin/TriageGuard
TriageGuard是一个基于PR感知的大语言模型流水线,用于自动化监控开源EHR系统的代码变更并生成安全测试。
Stars: 0 | Forks: 0
# TriageGuard 守卫
**TriageGuard:面向开源电子健康记录系统的自动化安全测试生成——基于PR感知的大语言模型流水线**
TriageGuard 持续监控 OpenMRS Core 中已合并的拉取请求,利用大语言模型识别安全风险,生成经过验证的 `pytest-bdd` 安全测试,并将结果部署到实时 CVSS 评分仪表板。
## 仓库结构
```
TriageGuard/
├── Auto_test_generator/ Pipeline: PR analysis → risk identification → test generation → verification
├── shared/security_lib/ Shared package: RuntimeObservation, risk-band scorers, OpenMRS client
├── security_scanner/ Test runner: executes approved generated tests against live OpenMRS
├── ui/ Streamlit UI: interactive end-to-end pipeline wizard
└── .github/workflows/ CI: spins up OpenMRS, runs tests, deploys dashboard to GitHub Pages
```
## 流水线概述
1. **浏览 PR** — 从 openmrs/openmrs-core 选择一个已合并的 PR
2. **风险分析** — Qwen-3-32B 分析 PR 差异以识别安全风险(OWASP Top 10)
3. **风险选择** — 人工选择一个待测试的风险
4. **特性生成** — LLM 生成 Gherkin `.feature` 文件;人工可编辑并批准
5. **测试生成** — LLM 生成 `pytest-bdd` 测试;通过 AST + 安全性 + SBERT + GPT-OSS 验证
6. **审批门控** — 13 项条件门控(语义对齐、安全性、CVSS 评分、步骤覆盖)
7. **部署** — 已批准的测试推送到 `security_scanner/tests/generated/`;GitHub Actions 在实时 OpenMRS 上运行测试;仪表板更新
## 快速启动
```
# 安装依赖项
pip install -e shared/security_lib
pip install -r Auto_test_generator/requirements.txt
pip install -r ui/requirements.txt
# 配置环境
cp Auto_test_generator/.env.example Auto_test_generator/.env
# 填写 GITHUB_TOKEN 和 GROQ_API_KEY
# 运行 UI
streamlit run ui/app.py
```
## 必需的 GitHub Secrets
| Secret | 用途 |
|---|---|
| `O3_ADMIN_PASSWORD` | 用于测试执行的 OpenMRS 管理员密码 |
| `O3_TEST_USERNAME` | 测试用户用户名 |
| `O3_TEST_PASSWORD` | 测试用户密码 |
## 论文
*TriageGuard: A PR-Aware LLM Pipeline for Automated Security Test Generation in Open-Source EHR Systems*
标签:CVSS评分, DLL 劫持, GitHub Actions, Gradle, Kubernetes, OWASP Top 10, PR感知管道, pytest-bdd, Python项目, Streamlit UI, 代码审查, 仪表板部署, 医疗健康IT, 医疗软件安全, 大语言模型, 安全扫描, 安全测试自动化, 开源EHR系统, 开源安全工具, 开源框架, 持续集成, 时序注入, 测试生成, 测试验证, 漏洞测试, 电子健康记录, 自动化框架, 自动笔记, 逆向工具, 逆向工程平台, 风险分析