• Stars
    star
    301
  • Rank 138,451 (Top 3 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created almost 2 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

xAST评价体系,让安全工具不再“黑盒”. The xAST evaluation benchmark makes security tools no longer a "black box".
xAST评价体系开源项目简介

联系我们

微信

微信小助手
微信小助手

邮箱

[email protected]

传送门

《评价指标项详见wiki 》

《nodejs评价体系传送门》

项目背景

xAST(应用安全测试技术)对于保障软件安全可靠发挥着越来越重要的作用,目前每一类产品(SAST/IAST/DAST/SCA/MAST等)都有至少数十款商业化或开源产品供客户选择。与此同时,一些甲方企业也在自研xAST产品。不管是商业采购还是选择开源产品还是自研,大家都面临一个共同的难题,如何客观衡量一款xAST产品的技术水平?

目前工业界和学术界都没有对xAST产品技术能力进行衡量的评价标准,通常是使用若干漏洞样本集的测试结果进行技术评价,业界常见的漏洞样本集见图1,测试结果示例见图2。


图1 业界常见漏洞样本集

图2 不同开源SAST在Juliet Java漏洞样本集上的测试结果示例

一方面,由图1可以看出各样本集之间差异巨大(从数十个样本到十万个样本),究其根源在于漏洞样本集缺乏体系化设计,都是漏洞样本的简单堆砌,测试结果的完整性得不到保障;漏洞样本集所测试的功能点分布不均,测试结果也缺乏合理性。

另一方面,由图2可以看出,由于缺乏评价体系,评价结果对用户是个“黑盒”,评价结果只能给出总体的召回率和误报率数据,无法细粒度的刻画产品的技术优势与不足。

针对xAST领域缺乏有效衡量技术能力标准的业界痛点,蚂蚁安全团队联合蚂蚁程序分析团队浙江大学网络空间安全学院的20余位专家学者,共同设计了xAST评价体系及其测试样本套件Benchmark,致力于成为应用安全测试工具的“度量衡”。

项目目标与价值

目标:打造具备行业共识的xAST能力评价体系技术标准

价值:衡量xAST产品技术能力,指引xAST技术发展方向,辅助企业产品选型

技术亮点

业界首个评价体系驱动式Benchmark

传统漏洞样本集普遍没有做评价项设计,一般是简单的通过堆砌样本来体现其“完整度”,很可能有较多的样本都在测试同一个功能点,这势必导致测试结果既不能保证完备性,也不能保证测试结果的合理性。

我们在设计测试样本集之前,在业界首次设计了一套包含各个维度评价项的评价体系,再基于评价体系设计对应的测试样本集,较传统方式提高了完备性和合理性。


图3 业界首个评价体系设计驱动式Benchmark

业界首个面向工具视角的Benchmark

传统漏洞样本集一般都是以漏洞类型作为评价视角,不同漏洞类型的样本组成了样本集,不同类型的xAST产品都在同一套漏洞样本集上进行测试。但xAST技术原理各异,样本集在不同类型产品之间很难通用。如测试静态分析SAST路径敏感的样本对于动态分析IAST来说就没有太多意义,这也将影响测试结果的合理性。

针对这种情况,我们转换了评价视角,在业界首次从漏洞视角转化成工具视角,不同工具不同评价项,不同语言不同评价项,评价项和样本的设计更合理。


图4 业界首个面向工具视角的Benchmark

评价体系分层设计,降低评价复杂度

本质上,xAST的能力是分层的。有的能力比较底层,如对污点数据的跟踪能力,这类能力通常实现的难度较大,成本较高,是需要用户重点关注的;有的能力属于比较上层,如对某个规则或框架的sink点支持,通过简单的配置就可以支持,重要度相比引擎能力没那么高。传统漏洞样本集没有对这些能力做区分,“眉毛胡子一把抓”,测试结果无法区分究竟是规则没有配置导致的不支持还是引擎能力上不支持。

我们在业界首次提出对一款xAST可以从底层到上层分成引擎能力、规则能力和产品化能力这三层。对这三层分别设计评价体系和测试样本,既降低了每一层评价的复杂度,又使测试结果可以直接反映问题出在哪一层。


图5 评价体系分层设计,降低评价复杂度

“体检报告”式结果,细粒度可解释

传统漏洞样本集由于缺乏评价体系指导,每个样本的“测试功能点”是模糊的,评价结果是个“黑盒”,只能得到一个召回率和准确率的数据,无法得到更细粒度的信息。

我们基于评价体系,每个评价项对应生成一个测试样本,给每个测试样本都赋予了明确的“测试功能点”,使测试结果如同一份详尽的“体检报告”,细粒度可解释,知其然,知其所以然。


图6 “体检报告”式结果,细粒度可解释

业界Benchmark交叉验证,确保完备性

为了保障评价体系及其Benchmark的完备性,我们还与业界常见的Benchmark进行了交叉验证,确保这些常见Benchmark的测试功能点都能在我们的评价体系中有体现,进一步确保了评价体系的完备性。


图7 业界Benchmark交叉验证,确保完备性

评价体系内容

项目大图见图8,由SAST(静态应用安全测试)、IAST(交互式应用安全测试)、DAST(动态应用安全测试)、SCA(软件组成成份分析)、MAST(移动应用安全测试技术)大模型/机器学习漏洞检测等多个子模块组成。


图8 项目大图

评价体系的每个子模块包括引擎能力评价体系(区分开发语言)和规则能力评价体系。以SAST-Java引擎能力评价体系为例,评价体系由评价指标项和基于评价指标项的测试样本代码Benchmark两部分组成,见图9。


图9 评价体系内容示例

用户通过各xAST产品在Benchmark上的实际测试结果,结合评价指标项,即可全面了解被测产品的能力详情。

项目进展与规划

项目进展与总体规划见图10,目前已完成IAST-Java、SAST-Java、SAST-Node、DAST引擎能力评价体系的设计。项目自2023年开源以来,已有阿里华为斗象中国软件评测中心科大讯飞雪球等十余家企业用户使用评价体系用于商采/开源产品选型或自研产品的技术衡量。其中IAST-Java和DAST引擎能力评价体系已作为技术标准,用于开放原子开源基金会对开源安全工具的测评项目。


图10 项目进展与总体规划

2024年项目计划落户一家开源基金会或联盟,依托于工作组进行共建,并每年基于xAST评价体系对业界的最新产品进行测评,发布信息安全行业年度xAST产品的能力评测报告,通过年度测评报告的方式推动项目的持续发展。

联系我们

微信

微信小助手
微信小助手

邮箱

[email protected]

License

This project is licensed under the Apache License 2.0

More Repositories

1

SoloPi

SoloPi 自动化测试工具
Java
5,736
star
2

alipay-easysdk

Alipay Easy SDK for multi-language(java、c#、php、ts etc.) allows you to enjoy a minimalist programming experience and quickly access the various high-frequency capabilities of the Alipay Open Platform.
Java
1,099
star
3

agentUniverse

agentUniverse is a LLM multi-agent framework that allows developers to easily build multi-agent applications.
Python
799
star
4

alipay-sdk-java-all

支付宝开放平台 Alipay SDK for Java
Java
521
star
5

alipay-sdk-nodejs-all

支付宝开放平台 Alipay SDK for Node.js
TypeScript
408
star
6

mPaaS

mPaaS Demo 合集,mPaaS 是源自于支付宝的移动开发平台。The collection of demos for mPaaS components. mPaaS is the Mobile Development Platform which oriented from Alipay.
C
323
star
7

PainlessInferenceAcceleration

Python
283
star
8

alipay-sdk-python-all

支付宝开放平台 Alipay SDK for Python
Python
268
star
9

Owfuzz

Owfuzz: a WiFi protocol fuzzing tool
C
216
star
10

alipay-sdk-net-all

支付宝开放平台 Alipay SDK for .NET
C#
200
star
11

cvpr2020-plant-pathology

Python
170
star
12

antcloud-node-stack

蚂蚁金融科技官方 Node 技术栈脚本
JavaScript
159
star
13

financial_evaluation_dataset

Python
154
star
14

rdf-file

Rdf-File是一个处理结构化文本文件的工具组件
Java
149
star
15

alipay-sdk-php-all

支付宝开放平台 Alipay SDK for PHP
PHP
146
star
16

SOFAStack

SOFAStack™ (Scalable Open Financial Architecture Stack) is a collection of cloud native middleware components, which are designed to build distributed systems with high performance and reliability, and have been fully validated by mission-critical financial business scenarios.
139
star
17

Ant-Multi-Modal-Framework

Research Code for Multimodal-Cognition Team in Ant Group
Python
117
star
18

vsag

vsag is a vector indexing library used for similarity search.
C++
115
star
19

Pyraformer

Python
100
star
20

container-observability-service

Simplify Kubernetes applications operation with one-stop observability services, including resource delivery SLO,root cause diagnoses and container lifecycle tracing and more.
Go
88
star
21

ios-malicious-bithunter

iOS Malicious Bit Hunter is a malicious plug-in detection engine for iOS applications. It can analyze the head of the macho file of the injected dylib dynamic library based on runtime. If you are interested in other programs of the author, please visit https://github.com/SecurityLife
C
83
star
22

goldfish

A development framework for Alipay Mini Program.
TypeScript
80
star
23

SQLFlow

SQLFlow is a bridge that connects a SQL engine, e.g. MySQL, Hive, SparkSQL or SQL Server, with TensorFlow and other machine learning toolkits. SQLFlow extends the SQL language to enable model training, prediction and inference.
73
star
24

KnowledgeGraphEmbeddingsViaPairedRelationVectors_PairRE

Python
61
star
25

Antchain-MPC

Antchain-MPC is a library of MPC (Multi-Parties Computation)
Terra
57
star
26

VCSL

Video Copy Segment Localization (VCSL) dataset and benchmark [CVPR2022]
Python
49
star
27

StructuredLM_RTDT

A library for building hierarchical text representation and corresponding downstream applications.
Python
48
star
28

RJU_Ant_QA

The RJUA-QA (RenJi hospital department of Urology and Antgroup collaborative Question and Answer dataset) is an innovative medical urology specialty QA inference dataset.
47
star
29

Z-RareCharacterSolution

TypeScript
45
star
30

quic-lb

nginx-quic-lb is an implementation of ietf-quic-lb, based on nginx-release-1.18.0, you can see the detailed code in this pull request
C
41
star
31

jpmml-sparkml-lightgbm

JPMML-SparkML plugin for converting LightGBM-Spark models to PMML
Java
41
star
32

PASE

C
41
star
33

global-open-sdk-java

Ant global gateway SDK
Java
35
star
34

container-auto-tune

Container Auto Tune is an intelligent parameter tuning product that helps developers, operators automatically adjust the application, analyzes JVM reasonable configuration parameters through intelligent algorithms.Please visit the official site for the quick start guide and documentation.
Java
32
star
35

promo-mini-component

支付宝营销玩法小程序组件库
JavaScript
31
star
36

private_llm

Python
28
star
37

tls13-sm-spec

IETF Internet-Draft (I-D) of Chinese cipher suites in TLSv1.3 and related documentation.
Makefile
27
star
38

microservice_system_twin_graph_based_anomaly_detection

Python
26
star
39

mobile-agent

Python
26
star
40

alipay-intellij-plugin

Intellij IDEA Plugin
20
star
41

character-js

TypeScript
19
star
42

global-open-sdk-php

Ant global gateway SDK
PHP
17
star
43

ams-java-sdk

AMS Java binding
Java
13
star
44

antchain-openapi-prod-sdk

PHP
10
star
45

Pattern-Based-Compression

High-Ratio Compression for Machine-Generated Data
C
10
star
46

global-open-sdk-python

Ant global gateway SDK
Python
10
star
47

PC2-NoiseofWeb

Noise of Web (NoW) is a challenging noisy correspondence learning (NCL) benchmark containing 100K image-text pairs for robust image-text matching/retrieval models.
Python
9
star
48

YiJian-Community

YiJian-Comunity: a full-process automated large model safety evaluation tool designed for academic research
Python
9
star
49

AOP-Based-Runtime-Security-Analysis-Toolkit

TypeScript
8
star
50

ant-application-security-testing-benchmark-nodejs

JavaScript
8
star
51

agentUniverse-Guides

8
star
52

RGSL

Python
8
star
53

POA

Python
7
star
54

payment-code-widget

A lightweight library provides UI widgets to display payment code in mobile applications. The dimension of the payment code is optimal and scanner-friendly.
Java
6
star
55

TDEER

Code For TDEER: An Efficient Translating Decoding Schema for Joint Extraction of Entities and Relations (EMNLP 2021)
Python
5
star
56

Finite_State_Autoregressive_Entropy_Coding

Python
5
star
57

ComBERT

4
star
58

Parameter_Inference_Efficient_PIE

Python
4
star
59

NMCDR

Python
4
star
60

A2-efficient-automated-attacker-for-boosting-adversarial-training

Python
4
star
61

global-open-sdk-dotnet

C#
3
star
62

tldk

This is a fork of FDio/tldk.
C
3
star
63

DUPLEX

Python
3
star
64

antchain-openapi-util-sdk

C#
3
star
65

Automatic_AI_Model_Greenness_Track_Toolkit

JavaScript
3
star
66

style-tokenizer

Python
3
star
67

Timestep-aware-SentenceEmbedding-and-AcmeCoverage

Python
2
star
68

ATTEMPT_Pre-training_with_Aspect-Content_Text_Mutual_Prediction

Python
2
star
69

hypro_tpp

Python
1
star
70

BehaviorAugmentedRelevanceModel

Implementation and data of the paper "Beyond Semantics: Learning a Behavior Augmented Relevance Model with Self-supervised Learning" in CIKM'23.
Python
1
star
71

A-Knowledge-augmented-Method-DiKGRS

Python
1
star
72

Analogic-Reasoning-Augmented-Large-Language-Model

Python
1
star
73

MMDL-based-Data-Augmentation-with-Domain-Knowledge-for-Time-Series-Classification

This repository contains the official implementation for the paper: MMDL-based Data Augmentation with Domain Knowledge for Time Series Classification.
Python
1
star