AMADEUS: 走向自动化安全测试

2022/8/1 23:25:54

本文主要是介绍AMADEUS: 走向自动化安全测试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原文

AMADEUS: Towards the AutoMAteD secUrity teSting

出版

  • SPLC '20: Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A
  • October 2020
  • Article No.: 11
  • Pages 1–12
  • https://doi.org/10.1145/3382025.3414952

申明

版权归原文作者及出版单位所有,如有侵权请联系删除

摘要

系统的适当配置已经成为避免网络安全风险的基本因素。因此,网络安全漏洞的分析是一项强制性任务,但可能受到威胁的漏洞和系统配置的数量极高。本文提出了一种利用软件产品线技术分析系统易受攻击配置的方法。我们提出了一个名为AMADEUS的解决方案,以实现和支持基于特征模型的配置系统网络安全漏洞的自动分析和测试。
AMADEUS是一个整体解决方案,能够自动分析组织中的特定基础设施、现有漏洞以及从漏洞库中提取的可能配置。通过使用这些信息,AMADEUS能够自动生成特征模型,用于提取知识的推理能力,例如确定具有某些特征的攻击向量。AMADEUS通过展示特征模型支持威胁场景的能力得到了验证,其中涉及从真实存储库中提取的各种漏洞。此外,我们还为软件产品线工程和网络安全的新应用打开了大门。

文章贡献

  1. 定义和实现了用FMs管理漏洞配置的必要阶段
  2. 整合现有的分析工具,以便从系统中提取相关信息
  3. 集成了外部漏洞库、目录和数据库
  4. 废弃外部储存库以获得被分析系统的受影响的漏洞,并提取漏洞配置相关的信息
  5. 根据识别的漏洞以及漏洞的配置自动推断特征模型
  6. 对特征模型进行推理,以便生成用于安全性测试的攻击向量
  7. 在一个场景中进行了AMADEUS性能评估,分析了其服务和应用,该场景有至少20个漏洞以及上千种漏洞配置

系统架构

AMADEUS被用于发现和分析生态系统的IT资源中易受攻击的配置,其整体架构如下:

基础设施分析

AMADEUS是以分析一组系统或设备、找出他们的关键特征开始的。并且,为了收集和恢复组织中使用的配置信息,分为两大解决方案:主动和被动解决方案,如CMDB、Lynis、Nmap等工具。

提取漏洞

从前一个步骤中获得的或者是用户提供的报告中整理出一些术语,如:运行的服务、版本、活动端口。AMADEUS集成了NVD解决方案,通过一个scrapper来分析信息数据结构,并且保留特定的漏洞信息,如CVE-ID等。

获取漏洞配置信息

获取的漏洞会被用于提取相关的配置信息。这一阶段需要开始关注如下信息:是什么软件配置?是否与软件、硬件、应用程序、操作系统相关?存在此漏洞的版本?

特征模型生成和推理

AMADEUS试图推断或者构建一些可能会导致受到攻击的可能的配置的有效特征模型。这些特征模型可用于创建针对已知漏洞可能发生攻击的目录场景。

漏洞特征模型生成

特征模型组合了一组相关的特性及其依赖关系,并且设计了各种各样的符号,其中最广泛的是Czarnecki提出来的,描述了一组特征和他们之间的约束(关系)。
如下图是一个简易版的特征模型,其包含了CVE-2020-1933的58个CPE中的3个。

AMADEUS为每个CVE创建一个特征模型,并且包含了配置的每一个CPE信息。
并且上述的特征模型构建过程分为两步:

  1. 检索仅包含关于CPE集合内的每个(attribute, value)对的信息的不受限制的特征模型;
  2. 包括对前一特征模型的交叉树关系形式的限制,以使其等同于CPE,避免可能由不受限制的特征模型产生的可能配置。

从CPE中检索不受限制的特征模型

在SPLs中,著名的反向工程提供了根据一组配置生成FMs的机制。
创建特征模型(FM)的算法的思路主要有三个部分,如下:

  1. 为每个供应商创建一个子FM
  2. 为运行中的配置创建子FM
  3. 将这些子FM集成到单个FM树中
    上述流程的图示如下:

对特征模型进行交叉树约束

具体的算法包含以下两个部分:

  1. 在同一产品的特征叶之间创建交叉树约束(在同一子FM的相关属性的值之间)
  2. 在产品的特征叶和运行配置的相关属性值和运行配置的子FM的根之间创建交叉树约束

特征模型推理

使用我们的特征模型主要可以应用于如下推理任务:

  1. 生成攻击向量
  2. 获取/检查一个特定的配置
  3. 获取具有某个优先级的攻击向量


这篇关于AMADEUS: 走向自动化安全测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程