SAST

SAST

0.0
1条评价
415次浏览
所属厂商:
​​Synopsys
交付方式:
私有部署
定价方式:
按配置
适用客户规模(/人):
不限
价格区间:
不限

公司介绍:

​​Synopsys(新思科技)​​ 成立于1986年,全球​​电子设计自动化(EDA)​​ 与​​半导体IP​​领导者(纳斯达克:SNPS)。核心业务覆盖芯片设计全流程,提供EDA工具链、IP核及软件安全解决方案。通过收购Coverity、Black Duck等,提供SAST、SCA等应用安全测试方案。

产品详情

​​一、核心架构设计​​

​​1. 分层分析框架​​

graph TB
  A[源码解析层] --> B[中间表示层]
  B --> C[多引擎分析层]
  C --> D[结果验证层]

​​2. 核心组件功能​​

  • ​​源码解析层​​
  • ​​输入支持​​:
  • 支持语言:C/C++/Java/C#/Python/JavaScript/Go
  • 编译中间件:LLVM IR(C/C++)、JVM字节码(Java)、.NET MSIL(C#)
  • ​​技术实现​​:
  • C/C++:基于Clang前端生成AST
  • Java:集成Eclipse JDT构建控制流图(CFG)
  • 跨文件分析:处理头文件/类继承关系
  • ​​中间表示层​​
  • ​​统一中间表示(IR)​​:
  • ​​代码属性图(CPG)​​:融合AST+CFG+数据依赖图(DDG)+控制依赖图(CDG)
  • ​​示例数据结构​​:

struct CPG_Node {
  NodeType type; // FUNCTION/VARIABLE/CALL
  vector<Edge> data_edges; // 数据流边
  vector<Edge> control_edges; // 控制流边
};
  • ​​多引擎分析层​​
  • ​​污点分析引擎​​:
  • 基于​​静态单赋值(SSA)​​ 形式追踪数据流
  • 跨过程分析(Interprocedural)支持递归调用
  • ​​符号执行引擎​​:
  • 使用Z3求解器验证路径约束
  • 内存模型:分区域(Region-Based)指针分析
  • ​​模式匹配引擎​​:
  • 规则库:覆盖CWE Top 25/OWASP Top 10
  • 自定义规则:支持TCL语法扩展
  • ​​结果验证层​​
  • ​​路径可行性验证​​:
  • 不可达路径自动过滤(误报率↓30%)
  • ​​AI辅助降噪​​:
  • 随机森林模型分类历史漏洞特征


​​二、核心技术实现​​

​​1. 深度语义分析技术​​

  • ​​上下文敏感分析(Context-Sensitive)​​:
  • 区分不同调用点的函数行为

// 场景1:高危操作
process_input(user_data); // 可能触发缓冲区溢出
// 场景2:安全操作
process_input("CONST_SAFE"); // 无风险
  • ​​指针分析优化​​:
  • ​​流敏感(Flow-Sensitive)​​ 分析:
  • 跟踪指针在不同代码点的状态变化
  • ​​对象敏感(Object-Sensitive)​​:
  • 区分同一类的不同实例

​​2. 内存安全专项检测​​

  • ​​缓冲区溢出​​:
  • 结合边界检查与符号执行

char buf[10];
int idx = get_user_input(); // 符号值:idx ∈ [0,100]
if (idx < 10) {
    buf[idx] = 0; // 安全路径
} else {
    buf[idx] = 0; // 触发告警(idx可能≥10)
}
  • ​​Use-After-Free​​:
  • 对象生命周期状态机建模:

stateDiagram
  Allocated --> Freed
  Freed --> Used : 触发UAF告警

​​3. 并发漏洞检测​​

  • ​​数据竞争(Data Race)​​:
  • Happens-before关系建模(Pthreads/OpenMP)
  • ​​死锁检测​​:
  • 锁依赖图(Lock Dependency Graph)分析


​​三、企业级特性​​

​​1. 大规模代码支持​​

  • ​​增量分析​​:
  • Git Diff感知 → 仅扫描变更代码
  • AST缓存复用率 >70%
  • ​​分布式扫描​​:
  • 支持Kubernetes集群部署
  • 吞吐量:百万行代码/小时(C/C++项目)

​​2. 深度语言支持​​

​​语言​​

​​关键技术​​

​​特殊能力​​

​​C/C++​​

Clang AST + LLVM IR转换

内核驱动代码分析(如Linux Kernel)

​​Java​​

字节码+源码混合分析

Spring框架注入漏洞检测

​​Rust​​

MIR(中级中间表示)解析

所有权(Ownership)规则验证

​​3. 集成扩展能力​​

  • ​​CI/CD流水线​​:

# GitLab CI示例
coverity_scan:
  image: synopsys/coverity
  script:
    - cov-build --dir cov-int make
    - cov-analyze --dir cov-int --all --checker-option OPTIMIZER:true
  artifacts:
    paths: [cov-int]
  • ​​结果输出​​:
  • 支持SARIF/XML/JSON格式
  • 与Jira/Jenkins/SonarQube集成


​​四、技术边界​​

​​1. 优势场景​​

  • ​​嵌入式系统​​:
  • 零误报检测内存漏洞(C/C++)
  • ​​大型单体应用​​:
  • 千万行级代码分析(银行核心系统)
  • ​​安全合规​​:
  • 自动映射漏洞至MISRA/CERT编码规范

​​2. 技术局限​​

  • ​​动态语言特性​​:
  • Python的eval()/元类编程检测受限
  • ​​逻辑漏洞深度​​:
  • 业务设计缺陷需人工审计补充
  • ​​超高并发场景​​:
  • 线程数>1000时路径爆炸问题待优化

​​

五、技术演进方向​​

  1. ​​Rust内存模型扩展​​:
  • 生命周期(Lifetime)静态验证
  1. ​​LLM辅助修复​​:
  • 基于漏洞上下文生成补丁建议
  1. ​​二进制混合分析​​:
  • 源码+二进制联合检测(闭源库场景)

SAST1

​​总结​​

Synopsys Coverity通过 ​​“统一中间表示(IR)+ 多引擎协同”​​ 架构实现:

  • ​​深度语义分析​​:
  • 上下文敏感指针分析 + 路径敏感符号执行
  • ​​工业级精度​​:
  • 内存漏洞误报率<15%,支持千万行级代码
  • ​​标准合规​​:
  • 自动检查MISRA/CERT/ISO 5055规范

其技术本质是​​将程序语义转化为可计算模型​​,通过形式化方法证明安全缺陷,为高可靠性场景提供可验证的静态分析能力。

展开更多

案例介绍

暂无内容

版权/专利

暂无内容
评价
点评抽奖红包
点评抽奖
"客观"-"真实"-"中立"-"专业"点评,每项不少于20字,总字数不少于90字,帮助更多迷茫的IT人。点评完即可现金抽奖,满5个送笔记本/平板活动支架;10个送扫地机器人;20个送VIP视频会员。
评分标准及明细
0-20分很糟糕
很糟糕功能/性能/服务等基本无法使用
20-40分较差
较差功能/性能/服务等存在较多问题
40-60分一般
一般行业同类平均水平,凑活够用
60-80分还不错
还不错行业上游水平,能满足大部分使用需求
80-100分优秀
优秀行业领先水平,只有20%左右评比对象满足这个标准
总评分
很糟糕0.0分
很糟糕
共0人评分
项目
评分
同类平均分
综合
0
78
兼容性
0
76
稳定性
0
80
易用性
0
80
性能
0
80
市场占有率
0
68
功能
0
80
扩展性
0
78
美观度
0
78
技术服务
0
80
性价比
0
70
时间排序↓
最新
精华
0 条评论
btn-contact
向我咨询
btn-comment
发表评论