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)
是与给定软件组件相关的漏洞(CVE)的CVSS (Common Vulnerability Scoring System漏洞评分系统)评分
n 为给定软件组件的漏洞总数(cve);
由分段函数定义的斐波那契权重:
b. 计算整个计算系统TCRS的公式(2)如下:
m 组件数量
单个软件组件的网络风险(从0.0到10.0)(公式1计算的)
单个软件的用户定义权重(从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
→ 4w
→ 2x
→ 1-
→ 0
Building Secure Environments for Microservices相关推荐
- 什么是微服务 Martin Fowler的microservices
https://martinfowler.com/articles/microservices.html https://martinfowler.com/microservices/ 微服务,最早由 ...
- Securing Spring Cloud Microservices With OAuth2
From Zero to OAuth2 in Spring cloud Today I am presenting hours of research about a (apparently) sim ...
- NIST 网络安全相关标准 美国 (简单整理)
系列 编号 英文名 中文名 状态 时间 ITL Bulleti Security Considerations for Exchanging Files Over the Internet 通过Int ...
- Google新书:《构建安全可靠的系统》
近日Google安全团队发布一本新书,叫<Building Secure & Reliable Systems>,由著名的O'Reilly出版社发行,用户可以购买纸质书,或者下载免 ...
- 软件技术栈导航(20221231)
记录:367 场景:软件开发技术栈导航,从技术的简要描述.官网地址.源码地址.下载地址.技术文档等维度归类和聚合.包括操作系统.云原生.大数据.微服务.网络通信.数据库.后端应用.前端应用.开发工具等 ...
- Go书籍大全-从初级到高级以及Web开发
原文链接:GitHub - dariubs/GoBooks: List of Golang books 原文作者:Dariush Abbasi 1. 前言 我使用Go开发已经有一年左右时间了,由于有C ...
- sql2012 ssrs_您必须在SQL Server Reporting Services(SSRS)中记录的十件事
sql2012 ssrs Documentation is never fun. I curse having to do it and I curse the person who didn't d ...
- moles-packer_Hashicorp的Packer-是否适合PHP开发人员?
moles-packer tl;dr; – Is Packer a tool you'll need in your tool box as a PHP developer? It depends. ...
- 马丁富勒微服务论文学习
前言 过去几年,对 SOA 的几本书一直没有读明白,在工作中,也一直在不断去思考和研究,现在更多的是遇到微服务这个概念,所以需要好好研究一下微服务. 研究微服务,自然躲不开要读一读马丁富勒的这篇论文了 ...
最新文章
- 一点通路由器模拟软件最新版_2019年高压电工作业考试最新版题库及答案(全部判断题)...
- 使用sublime编译运行C程序
- 5G NGC — 关键技术 — 网络切片 — 切片的选择
- python发声-python3-声音处理
- Excel:python结合Excel使用技巧经验总结之(将python输出的等间隔列数据直接粘贴复制存到物理表格内等)图文教程之详细攻略
- 7-6 列出连通集 (25 分)(详解)
- javascript:void(0) 含义
- 前端学习(3041):vue+element今日头条管理-控制用户的访问权限
- 继承中的构造函数问题
- java中的fd是什么意思_java中关键字和保留字分别是什么意思
- python --面向对象
- 知网不能下载PDF?CAJ格式太鸡肋?
- jmail设置端口php,PHP调用Jmail组件发送邮件
- 常见ERP软件简单介绍与个人评价
- 24岁我有了自己的公司
- 【小程序】promise在小程序中的运用
- python 等高线图标注_Pyplot等高线图-clabel间距
- ubuntu/Kubuntu 14.04以上无法安装傲游maxthon问题解决
- 大数据建设意义_从宜信中台构架看企业大数据建设的意义
- 电力公司机房建设信息服务器,供电局信息中心机房建设方案-20210801090042.pdf-原创力文档...
热门文章
- android 国内 更新方法,手机安卓系统怎么升级 安卓系统更新升级的三种方法介绍...
- chgrp linux,Linux chgrp命令
- 2023年暨南大学应用心理学考研上岸前辈备考经验指导
- 如何快速的成为一个合格的Oracle DBA?
- progress java驱动_JAVA连接Progress数据库
- Fiddler的介绍和使用
- 移花接木之真假baidu
- 核心动画(2)寄宿图
- linux系统frpc程序下载安装,ubuntu18.04 frpc安装与自动启动
- 【Linux系列】挂载云盘