安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
目录
3. SAST(静态应用安全测试)
4. IAST(交互式应用安全测试)
5. 污点分析(Taint Analysis)
6. DevSecOps 核心理念
7. SDL(安全开发生命周期)
8. 发展规划(学习方向)
9. 语言栈与学习态度
10. SAST vs IAST 技术偏好
11. 白盒审计方法论
12. 自动化工具开发实践
知识体系全景图
3. 对SAST的理解 4. 对IAST的理解 5. 污点分析 6. 对DevSecOps的理解 7. 对SDL的理解 8. 后面的发展规划(学习方向) 9. 目前掌握的语言栈怎么样?愿意去学习新的语言吗? 10. 对SAST和IAST中哪个更感兴趣 11. 讲讲白盒审计的思路 12. 有写过相关的自动挖掘工具吗
3. SAST(静态应用安全测试)
核心理解
维度 关键点 原理 源码/字节码扫描,通过数据流分析、模式匹配、控制流追踪检测漏洞(无需运行程序) 优势 开发早期介入、全代码覆盖、检测逻辑漏洞(如硬编码密码) 局限 误报率高(可达30%)、漏报动态特性漏洞(如运行时依赖注入) 代表工具 Checkmarx、Fortify、Semgrep(开源)
4. IAST(交互式应用安全测试)
突破性价值
mermaid
graph LR A[Agent植入] --> B(运行时流量监控) B --> C{污点跟踪} C --> D[漏洞精准定位]
- 技术融合:SAST + DAST + RASP,通过插桩实时采集执行路径
- 核心优势:
- 误报率<5%(验证真实执行路径)
- 支持API测试、微服务架构
- 落地挑战:需集成CI/CD流水线,资源消耗较高
5. 污点分析(Taint Analysis)
漏洞检测基石
- 三阶段模型:
- Source(输入点):
HttpRequest.getParameter()
- Sink(危险操作):
executeQuery(sql)
- Propagation(传播路径):变量赋值、方法调用
- 关键算法:
- 前向传播(Forward Analysis):跟踪污点到sink
- 后向传播(Backward Analysis):从sink回溯到source
- 实践难点:
- 路径爆炸问题(通过符号执行优化)
- 隐式流处理(如条件分支中的敏感操作)
6. DevSecOps 核心理念
安全左移+持续防护
diff
传统流程: 开发 → 测试 → 安全审核(滞后) DevSecOps:设计 + 编码 + 测试 + 部署 + 监控(全流程嵌入安全)
- 三大支柱:
- 自动化安全门禁:SAST/IAST扫描失败阻断Pipeline
- 基础设施即代码安全:Terraform模板扫描、容器镜像漏洞检查
- 运行时防护:RASP拦截0day攻击
7. SDL(安全开发生命周期)
微软经典框架
阶段 核心活动 交付物 需求分析 威胁建模(STRIDE分类) 威胁矩阵文档 设计 安全架构评审 架构安全签名 实现 安全编码规范 + SAST扫描 无高危漏洞报告 验证 渗透测试 + Fuzz测试 漏洞修复清单 发布与响应 应急响应预案制定 IRP手册
8. 发展规划(学习方向)
三维能力进阶路径
- 技术深度:
- 深耕代码审计:Java反序列化利用链、PHP伪协议利用
- 掌握漏洞挖掘:Fuzz工具开发(AFL++)、二进制逆向
- 横向扩展:
- 云原生安全:K8s RBAC策略审计、Serverless安全
- 供应链安全:SCA工具集成、恶意包检测
- 业务结合:
- 金融场景:交易篡改防御、信贷反欺诈模型
- 车联网场景:CAN总线安全、OTA升级签名验证
9. 语言栈与学习态度
当前能力矩阵
语言 熟练度 应用场景 Java ⭐⭐⭐⭐ SAST工具开发、Spring安全审计 Python ⭐⭐⭐⭐ 漏洞PoC编写、自动化扫描脚本 Go ⭐⭐ 云安全工具开发(如Clair) JavaScript ⭐⭐ 前端XSS防御、浏览器扩展开发 新语言策略:
- 短期目标:强化Go语言(云原生生态主导地位)
- 长期储备:Rust(内存安全型SDLC工具开发)
10. SAST vs IAST 技术偏好
选择IAST的核心理由:
python
# 传统SAST误报场景示例 password = "temp123" # 被误报为硬编码凭证(实际为测试占位符) # IAST动态验证过程 if runtime_env == "PROD": # Agent确认非生产环境 ignore_vulnerability()
- 决策因素:
- 精准度需求:金融/医疗行业必须低误报
- 技术趋势:Gartner预测2025年70%企业将采用IAST
11. 白盒审计方法论
四步深度挖掘模型
- 入口点定位:
- HTTP请求入口:
@RequestMapping
、Servlet
- 文件/反序列化入口:
readObject()
、FileInputStream
- 数据流追踪:
- 正向污点跟踪:
用户输入 → 过滤函数 → 危险方法
- 回溯敏感操作:从
SQL.execute()
反向溯源- 上下文分析:
- 框架特性:Spring Security绕过(
CVE-2023-34040
)- 依赖组件漏洞:Log4j RCE链
- 链式利用构造:
- 组合漏洞:SSRF + 反序列化达成RCE
12. 自动化工具开发实践
自研工具案例:Java SQLi嗅探器
java
// 基于ASM的字节码分析工具片段 public class SQLiDetector extends MethodVisitor { @Override public void visitMethodInsn(int opcode, String owner, String name, String desc) { if (name.equals("executeQuery")) { // 检查参数是否包含未过滤用户输入 if (isTaintedVariable(currentParam)) { reportVulnerability(); } } } }
- 技术栈:ASM字节码操纵 + 污点分析引擎
- 检测能力:
- 识别拼接SQL语句(
"SELECT * FROM " + tableName
)- 绕过伪过滤(
replace("'", "")
被双写绕过)- 演进方向:
- 集成LLM辅助误报判别(CodeBERT模型)
知识体系全景图
mermaid
graph TD A[静态分析] --> B(SAST) A --> C(代码审计) D[动态分析] --> E(IAST) D --> F(渗透测试) G[开发流程] --> H(SDL) G --> I(DevSecOps) B --> J(污点分析) E --> J