标签 软件安全 下的文章

近日,随着全国各大高校寒假陆续来临,北京邮电大学(简称“北邮”)2025年秋季学期《软件安全》课程圆满结束。在本学期的教学实践中,同学们将理论学习与开源实践紧密结合,积极投身OpenAtom openKylin(简称“openKylin”)社区建设,共计提交了66条高质量、有效的代码贡献,内容涵盖漏洞修复、安全增强、文档完善等多个方面,为提升openKylin操作系统的安全性与健壮性贡献了宝贵的“青春力量”。尤为值得关注的是,这已是北邮该课程与openKylin社区成功开展的第四个学期的深度教学融合实践。
图片

图片

图片

图片

图片

图片

图片
持续耕耘:四年融合铸就合作典范2022年12月,北京邮电大学网络空间安全学院正式加入openKylin社区,并成立社区高校站,以此为合作起点,双方开展了开源进校园入课堂、操作系统应用创新大赛等多元合作。这种合作模式让开源从“理论概念”变为师生可参与的“实践项目”——累计300多位师生签署CLA成为社区贡献者,陆续提交安全、Bug修复、文档类贡献,形成600多个PR和Issues,真正参与到openKylin操作系统的建设过程中。持续四个学期的成功实践,标志着这种“产教融合、开源育人”的模式已日趋成熟并取得显著成效。
一    模式成熟形成了稳定的课程设计、社区对接、导师指导、贡献审核流程,确保教学目标和社区需求的有效衔接。
二    成果累积四个学期累计为openKylin社区输送了数百条经过严格学术训练和工程实践检验的有效贡献,成为社区发展进程中一股重要的新生力量。
三    实践育才众多参与项目的北邮学子在实践中提升了工程能力、安全意识、协作精神,部分优秀学生更是通过此项目加深了对开源和国产操作系统的认同。从课程实施来看,openKylin为理论知识提供了真实应用场景。北邮将学生在openKylin社区的贡献纳入课程评分依据,极大激发学生实践积极性。经过2023年秋、2024年秋、2025年春、2025年秋四个学期的实践,超过300名师生参与社区实践与补丁提交,累计178项安全补丁被openKylin社区采纳并发布。这些补丁切实解决系统安全问题:包含超危及高危CVE漏洞修复55项、中危89项、低危及无级别34项,修复内容涉及内核安全、系统库溢出漏洞、驱动权限提升风险等核心领域,且均通过社区测试验证,运行稳定,直接提升了openKylin操作系统的安全性。关于openKylinOpenAtom openKylin是由开放原子开源基金会孵化及运营的开源项目,由基础软硬件企业、非营利性组织、社团组织、高等院校、科研机构和个人开发者共同创立。社区以“为世界提供与人工智能技术深度融合的开源操作系统”为愿景,旨在于开源、自愿、平等、协作的基础上,共同打造全球领先的智能桌面操作系统开源根社区,推动Linux开源技术及其软硬件生态繁荣发展。

 Sara Martinez 在Online TestConf上的演讲“确保软件安全”中说到,一个安全的软件开发生命周期意味着将安全融入到计划、设计、构建、测试和维护各个阶段,而不是在最后阶段才匆忙添加。测试人员不是漏洞查找者,而是早期的防御者,从第一个冲刺开始构建安全性和质量。文化第一,自动化第二,全程持续测试和监控;她认为,这就是如何让安全成为一种习惯,而不是紧急演练的方式。

 

通用弱点枚举(Common Weakness Enumeration, CWE)统计数据显示,超过 85%的软件弱点来自于我们如何实现代码,大约 60%可以追溯到设计决策。Martinez 说,这意味着产品的基础、架构和构建方式对产品的安全性有着巨大的影响。她补充说,一旦产品上线,就要密切关注它,运行漏洞扫描,并在问题出现时尽快修补,以领先于攻击者。

 

安全的软件开发生命周期看起来很像常规的 SDLC,但每个步骤都内置了安全性,Martinez 解释道:

 

* 它首先定义明确的安全需求,并在规划和设计时运行威胁建模。

* 在开发过程中,遵循安全编码实践,审查依赖关系,并使用安全测试自动化工具或依赖项* 扫描器来尽早捕获弱点。

* 测试超越了 DAST、渗透测试和其他安全检查的功能,以发现真正的攻击路径。

* 一旦产品上线,你就可以通过安全部署、持续监控和快速补丁管理来保证它的安全。

 

Martinez 认为,安全的软件从文化开始,就像质量一样。这不是一个清单,而是关于开发者、测试人员、运维人员和管理人员之间的责任分担:

 

每个公司都应该创建适合其产品的行动计划,查看安全软件开发指南,并确保安全实践是日常工作的一部分。自动化是关键;将安全分析工具引入 CI/CD 管道,以便及早和一致地发现弱点。

 

Martinez 提到不要忘记测试的人为方面:添加与安全需求相关的特定功能测试用例,以便团队保持对诸如弱输入验证、风险角色和权限配置或访问控制等问题的警觉。

 

Martinez 说,许多最严重的事件仍然来自旧的、众所周知的攻击,我们可以通过正确的工具和实践来预防这些攻击。现在,我们面临着新的挑战,比如与 AI 相关的漏洞,它们正在重塑格局:

 

例如,许多公司正在使用 AI 来生成代码,但他们没有扫描它或应用安全开发实践,因此他们最终将已知的漏洞引入到他们的产品中。

 

我学到了很多,但我知道我永远也学不完。安全性是一个移动的目标,安全性测试是一个持续的挑战,这正是使它成为一个如此迷人、不断变化的世界的原因。

 

InfoQ 就软件安全问题采访了Sara Martinez

 

InfoQ:测试人员在安全方面扮演什么角色?

 

Sara Martinez:测试员是我们拥有的最好的安全秘密武器之一。我认为我们的角色不仅仅是检查功能是否有效;我们很容易注意到可能变成大漏洞的小问题,比如弱输入验证、有风险的角色和权限配置,或者访问控制。

 

团队需要在安全软件开发生命周期(SSDLC)中共担安全责任,比如挑战安全需求、帮助进行威胁建模,以及运行静态和动态安全自动扫描以尽早发现问题。测试人员可以通过确保快速验证修复并集成到 CI/CD 中来保持管道中的安全性。

 

InfoQ:我们有哪些关于漏洞和弱点的数据,我们如何使用这些数据?

 

Martinez:像 CWE (Common Weakness Enumeration)和 CVE (Common Vulnerabilities and Exposures)这样的数据标准为我们提供了一种描述软件弱点和现实世界漏洞的共享语言。这些数据不仅仅用于报告;自动化扫描器实际上使用这些引用来检测代码和正在运行的应用程序中的漏洞。

 

我认为这也是发现攻击者趋势的好方法。在过去的几年里,顶级 CVE 一直被跨站点脚本(XSS)和 SQL 注入等问题所主导,这些问题继续影响着很大比例的软件产品。使用这些数据可以帮助团队确定测试的优先级,关注安全编码实践,并对攻击者真正利用的东西保持警惕。

 

https://www.infoq.com/news/2026/01/ensure-software-security/

让代码漏洞挖掘像呼吸一样简单,小白也能当黑客挖洞

DeepAudit - 开源的代码审计智能体平台 ?‍♂️1
DeepAudit - 开源的代码审计智能体平台 ?‍♂️

? 界面预览

### ? Agent 审计入口 Agent审计入口 *首页快速进入 Multi-Agent 深度审计*
? 审计流日志

审计流日志
实时查看 Agent 思考与执行过程
?️ 智能仪表盘

仪表盘
一眼掌握项目安全态势
⚡ 即时分析

即时分析
粘贴代码 / 上传文件,秒出结果
?️ 项目管理

项目管理
GitHub/GitLab 导入,多项目协同管理
### ? 专业报告 审计报告 *一键导出 PDF / Markdown / JSON*(图中为快速模式,非Agent模式报告) ? [查看Agent审计完整报告示例](https://lintsinghua.github.io/)

⚡ 项目概述

DeepAudit 是一个基于 Multi-Agent 协作架构的下一代代码安全审计平台。它不仅仅是一个静态扫描工具,而是模拟安全专家的思维模式,通过多个智能体(Orchestrator, Recon, Analysis, Verification)的自主协作,实现对代码的深度理解、漏洞挖掘和 自动化沙箱 PoC 验证

我们致力于解决传统 SAST 工具的三大痛点:

  • 误报率高 — 缺乏语义理解,大量误报消耗人力
  • 业务逻辑盲点 — 无法理解跨文件调用和复杂逻辑
  • 缺乏验证手段 — 不知道漏洞是否真实可利用

用户只需导入项目,DeepAudit 便全自动开始工作:识别技术栈 → 分析潜在风险 → 生成脚本 → 沙箱验证 → 生成报告,最终输出一份专业审计报告。

核心理念: 让 AI 像黑客一样攻击,像专家一样防御。

? 为什么选择 DeepAudit?

| ? 传统审计的痛点 | ? DeepAudit 解决方案 | | :--- | :--- | | **人工审计效率低**
跨不上 CI/CD 代码迭代速度,拖慢发布流程 | **? Multi-Agent 自主审计**
AI 自动编排审计策略,全天候自动化执行 | | **传统工具误报多**
缺乏语义理解,每天花费大量时间清洗噪音 | **? RAG 知识库增强**
结合代码语义与上下文,大幅降低误报率 | | **数据隐私担忧**
担心核心源码泄露给云端 AI,无法满足合规要求 | **? 支持 Ollama 本地部署**
数据不出内网,支持 Llama3/DeepSeek 等本地模型 | | **无法确认真实性**
外包项目漏洞多,不知道哪些漏洞真实可被利用 | **? 沙箱 PoC 验证**
自动生成并执行攻击脚本,确认漏洞真实危害 |

?️ 系统架构

整体架构图

DeepAudit 采用微服务架构,核心由 Multi-Agent 引擎驱动。

DeepAudit 架构图

? 审计工作流

步骤阶段负责 Agent主要动作
1策略规划Orchestrator接收审计任务,分析项目类型,制定审计计划,下发任务给子 Agent
2信息收集Recon Agent扫描项目结构,识别框架/库/API,提取攻击面(Entry Points)
3漏洞挖掘Analysis Agent结合 RAG 知识库与 AST 分析,深度审查代码,发现潜在漏洞
4PoC 验证Verification Agent(关键) 编写 PoC 脚本,在 Docker 沙箱中执行。如失败则自我修正重试
5报告生成Orchestrator汇总所有发现,剔除被验证为误报的漏洞,生成最终报告

? 项目代码结构

DeepAudit/
├── backend/                        # Python FastAPI 后端
│   ├── app/
│   │   ├── agents/                 # Multi-Agent 核心逻辑
│   │   │   ├── orchestrator.py     # 总指挥:任务编排
│   │   │   ├── recon.py            # 侦察兵:资产识别
│   │   │   ├── analysis.py         # 分析师:漏洞挖掘
│   │   │   └── verification.py     # 验证者:沙箱 PoC
│   │   ├── core/                   # 核心配置与沙箱接口
│   │   ├── models/                 # 数据库模型
│   │   └── services/               # RAG, LLM 服务封装
│   └── tests/                      # 单元测试
├── frontend/                       # React + TypeScript 前端
│   ├── src/
│   │   ├── components/             # UI 组件库
│   │   ├── pages/                  # 页面路由
│   │   └── stores/                 # Zustand 状态管理
├── docker/                         # Docker 部署配置
│   ├── sandbox/                    # 安全沙箱镜像构建
│   └── postgres/                   # 数据库初始化
└── docs/                           # 详细文档

? 快速开始 (Docker)

1. 启动项目

复制一份 backend/env.examplebackend/.env,并按需配置 LLM API Key。
然后执行以下命令一键启动:

# 1. 准备配置文件
cp backend/env.example backend/.env

# 2. 构建沙箱镜像 (首次运行必须)
cd docker/sandbox && chmod +x build.sh && ./build.sh && cd ../..

# 3. 启动服务
docker compose up -d
? 启动成功! 访问 http://localhost:3000 开始体验。

? 源码启动指南

适合开发者进行二次开发调试。

环境要求

  • Python 3.10+
  • Node.js 18+
  • PostgreSQL 14+
  • Docker (用于沙箱)

1. 后端启动

cd backend
# 激活虚拟环境 (推荐 uv/poetry)
source .venv/bin/activate 

# 安装依赖
pip install -r requirements.txt

# 启动 API 服务
uvicorn app.main:app --reload

2. 前端启动

cd frontend
npm install
npm run dev

3. 沙箱环境

开发模式下,仍需通过 Docker 启动沙箱服务。

cd docker/sandbox
./build.sh

? Multi-Agent 智能审计

支持的漏洞类型

漏洞类型描述
sql_injectionSQL 注入
xss跨站脚本攻击
command_injection命令注入
path_traversal路径遍历
ssrf服务端请求伪造
xxeXML 外部实体注入
漏洞类型描述
insecure_deserialization不安全反序列化
hardcoded_secret硬编码密钥
weak_crypto弱加密算法
authentication_bypass认证绕过
authorization_bypass授权绕过
idor不安全直接对象引用
? 详细文档请查看 Agent 审计指南

? 支持的 LLM 平台

? 国际平台

OpenAI GPT-4o / GPT-4
Claude 3.5 Sonnet / Opus
Google Gemini Pro
DeepSeek V3

?? 国内平台

通义千问 Qwen
智谱 GLM-4
Moonshot Kimi
文心一言 · MiniMax · 豆包

? 本地部署

Ollama
Llama3 · Qwen2.5 · CodeLlama
DeepSeek-Coder · Codestral
代码不出内网

? 支持 API 中转站,解决网络访问问题 | 详细配置 → LLM 平台支持

? 功能矩阵

功能说明模式
? Agent 深度审计Multi-Agent 协作,自主编排审计策略Agent
? RAG 知识增强代码语义理解,CWE/CVE 知识库检索Agent
? 沙箱 PoC 验证Docker 隔离执行,验证漏洞有效性Agent
?️ 项目管理GitHub/GitLab 导入,ZIP 上传,10+ 语言支持通用
即时分析代码片段秒级分析,粘贴即用通用
? 五维检测Bug · 安全 · 性能 · 风格 · 可维护性通用
? What-Why-How精准定位 + 原因解释 + 修复建议通用
? 审计规则内置 OWASP Top 10,支持自定义规则集通用
? 提示词模板可视化管理,支持中英文双语通用
? 报告导出PDF / Markdown / JSON 一键导出通用
⚙️ 运行时配置浏览器配置 LLM,无需重启服务通用

? 发展路线图

我们正在持续演进,未来将支持更多语言和更强大的 Agent 能力。

  • [x] v1.0: 基础静态分析,集成 Semgrep
  • [x] v2.0: 引入 RAG 知识库,支持 Docker 安全沙箱
  • [x] v3.0: Multi-Agent 协作架构 (Current)
  • [ ] 支持更多漏洞验证 PoC 模板
  • [ ] 支持更多语言
  • [ ] 自动修复 (Auto-Fix): Agent 直接提交 PR 修复漏洞
  • [ ] 增量PR审计: 持续跟踪 PR 变更,智能分析漏洞,并集成CI/CD流程
  • [ ] 优化RAG: 支持自定义知识库
  • [ ] 优化Agent: 支持自定义Agent