Building Secure Environments for Microservices

1、摘要

(1)提出了一种方法来检测承载微服务和容器的计算系统的配置,在自动连续模式下评估其基本组件的网络风险,并重新配置环境,旨在使它们不那么容易受到网络攻击。

(2)这种方案支持多种操作系统和硬件配置。

(3)a Vulnerability Analysis and Cyber Risk Assessment for Microservices (VERCASM-M)

微服务漏洞分析与网络风险评估(VERCASM-M)

       a. 先对独立组件的网络风险评估,然后计算出整个系统的网络风险的总分。

       b.包括静态分析和渗透测试。

       c.考虑了公共漏洞和暴露数据库,Common Vulnerabilities and Exposures (CVE) database 

       d.考虑了微服务属性,如权限级别。

       e.该模型跨平台。

2.相关工作

(1)Vulners.com  一个安全数据库,以机器可读的格式包含对大量软件漏洞的描述.

它有一个基于lucene(全文检索引擎)查询的搜索引擎,用于搜索指定软件中的漏洞,还有一个Linux漏洞扫描器和一个外围扫描器,用于扫描和审计漏洞。

(2)Docker容器的问题,它可以从Docker Hub上拉取组件,因为它是免费开放的,没法证明,一个试图发布看似有用的容器的作者不是一个恶意的机器人。所以需要对docker镜像进行静态漏洞分析。

VERCASM-M 这个模型对计算机系统或容器中的任何一个软件进行静态漏洞分析。也会在新系统的设计阶段评估网路风险。

(3)“Tenable®”,一家软件公司,生产了一款软件(Tenable Lumin),它从用户系统上手机了已安装的软件和操作系统,然后进行评分,网络暴露分数,这个分数是由资产关键性评级机器学习算法计算出来的。该评分引擎的所有输出都使用几何平均值计算。用这个评分向用户推荐升级或保持相同的软件。

VERCASM-M 这个是向用户建议更新或降级软件。VERCASM-M依靠加权斐波那契数列来进行网络风险评估,而不是几何均值,还可以评估网络风险。

3.核心设计

(1)基于微服务的系统配置检测

Client System Configuration Detection Service(客户端系统配置检测):检测 主机或容器的 操作系统,已安装的软件(名字或版本),执行服务的权限。生成一个加固系统的指导报告和风险评分,支持基于Linux®的包检测。这可以通过主要的软件包提供商完成,包括AppImages, Flatpaks (All); apt (Debian);AUR (Arch); dnf, yum (RHEL); zypper (SUSE).

基于Debian®的操作系统,该操作系统附带了高级包工具(apt)包管理器。大概是可以通过命令在一个/var/log/dpkg.log* 下可以找到安装软件的名字、版本、时间、包的体系架构;通过grep和cut命令,又可以找到软件包的语言。

例如lua相关的漏洞到2022年6月24号,有94个,hacker可以访问服务外部的计算机系统的话,就可以在某一个允许root访问的漏洞下,轻松运行lua脚本。

(2)网络风险评估

 VERCASM-M Engine  从Client System Configuration Detection Service接受检测的软件信息,

为单个软件组件计算网络风险评分,并为整个计算系统计算总网络风险评分Total Cyber Risk Score (TCRS)。

a.单个软件组件计算网络风险评分: 加权斐波那契算法,Individual Cyber Risk Score (ICRS) 

 \tiny Xi  是与给定软件组件相关的漏洞(CVE)的CVSS (Common Vulnerability Scoring System漏洞评分系统)评分

 n  为给定软件组件的漏洞总数(cve);

\tiny W(Xi) 由分段函数定义的斐波那契权重:

b. 计算整个计算系统TCRS的公式(2)如下:

 m 组件数量

\tiny ICRSi 单个软件组件的网络风险(从0.0到10.0)(公式1计算的)

\tiny w(ICRSi)  单个软件的用户定义权重(从0.0到1.0)(软件越重要,该权重应该越大);

 

c. 微服务的权限对TCRS的影响。 

修改后的TCRS的校正权值由客户端策略设置,并由客户端策略服务管理。 Client Policy Service

源码可用的话采用了静态分析(static analysis),在没有CVE的时候需要使用SA;在有CVE但是很少的时候,SA用于验证CVSS(Common Vulnerability Scoring System)漏洞评分系统。

在没有cve注册的情况下,使用静态分析进行网络风险评估是必不可少的。可能是在软件还没有公开的时候。如果GNU/Linux发布了新的开源软件,并且发现了缓冲区溢出漏洞,那么我们可以根据发现的漏洞数量、被利用的可能性、软件对给定系统的重要性以及其他指标来分配ICRS分数。此外,我们可以根据客户的策略将评分提高。客户端可能认为缓冲区溢出在关键任务系统中具有最高的优先级,因此他们可能通过采用最大ICRS 10来修改评分,这可能会触发采取进一步措施。

渗透测试( penetration testing.)

它的引擎将用于发现哪些软件存在严重漏洞。渗透测试可以与上面讨论的基于SA和cve的网络风险评估结合使用。渗透测试对于评估系统中未注册cve且无法获得源代码的组件的网络风险至关重要。发现漏洞分配网络风险分数的方法类似于CVSS规范。

(3)构建微服务安全环境

Reporting service提供了一个前端,允许客户端下载最终的ICRS和TCRS报告,以及不同格式的建议,包括Javascript对象表表法(JSON)、可移植文档格式(PDF)或可扩展标记语言(XML)。

        现有系统(“即时重新配置”模式)或新设计系统(“从头开始设计”模式)

VERCASM-M 支持用户将能够使用所有开源软件包和支持触发器和存储过程的关系数据库管理系统为基于linux的操作系统构建安全配置。

4. 评估

实验一: 采用加权斐波那契算法 评估sql server2012的评分,基于CVE的CVSS,

关键漏洞对软件ICRS的贡献很大,而次要漏洞对ICRS的影响不大。基于加权斐波那契的模型可以实现这一目标,而计算给定软件的所有CVSS的中位数或平均值则无法实现这一目标。

 

实验二  评估一些软件的评分

 实验三:评估一个Linux Debian 10 vs. Linux® OpenSUSE® Leap操作系统和3个服务MySQL® version 8.0, MongoDB® version4.2, and JRE® version 11.

 JRE 权限0777和0760的对比。

drwxr-xr-x 这一段的格式规则是:

  • [1位]{文件类型}: - 普通文件, d 目录
  • [2-4位]{所有者权限}: - 无权限, r可读,w 可写,x 可执行
  • [5-7位]{组成员权限}: - 无权限, r可读,w 可写,x 可执行
  • [8-10位]{其他用户权限}: - 无权限, r可读,w 可写,x 可执行
  • r → 4
  • w → 2
  • x → 1
  • - → 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值