云计算安全

前言

什么是云计算?

云计算就是一种新兴的计算资源利用方式,云计算的服务商通过对硬件资源的虚拟化,将基础IT资源变成了可以自由调度的资源池,从而实现IT资源的按需分配,向客户提供按使用付费的云计算服务。用户可以根据业务的需求动态调整所需的资源,而云服务商也可以提高自己的资源使用效率,降低服务成本,通过多种不同类型的服务方式为用户提供计算、存储和数据业务的支持。

云计算的部署模式

1.公有云(Public Cloud)——出租给公众的大型的基础设施的云

由云服务提供商拥有和管理,通过互联网向企业或个人提供计算资源,就类似城市的水电,居民共享,每家每户各取所需,按量统计付费。

图片

2.私有云(Private Cloud)——企业利用自有或租用的基础设施资源自建的云

单个组织专用的云服务,而无需与其他组织共享资源,私有云可以在内部管理,也可以由第三方云服务提供商托管,而公有云和私有云的区别,就好比自家的洗衣机(私有)和干洗店(对公)的区别。

图片

3.混合云(Hybrid Cloud)——由两种或两种以上部署模式组成的云

同时使用公有云和私有云,从而允许公司将敏感数据保留私有云中(安全性),同时使用公有云来运行应用程序(低成本),就类似于我们现实打点中遇到的企业官网等业务放在云上,核心业务部署在内网。

图片

4.社区云/行业云(Community Cloud) ——为特定社区或行业所构建的共享基础设施的云

特定组织或行业共享使用的云计算服务方案,行业云是由几个具有类似关注点(例如安全性、隐私性、和合规性)的多个组织共享,像政务云、金融机构、医疗等特殊客户群体,需要满足其一定的行业规范和数据安全标准。

图片

云计算的服务模式

1.云基础设置即服务(IaaS)——出租处理能力、存储空间、网络容量等基本计算资源

IaaS就是由云服务提供商,提供底层设施基础资源(CPU、内存、硬盘、带宽等),用户需要自己部署和执行操作系统或应用程序等各种软件,就比如我们平时在阿里云、腾讯云等云厂商哪里购买的VPS服务器就属于IaaS服务模式。

2.云平台即服务(PaaS)——为客户开发的应用程序提供可部署的云环境

PaaS可提供各种开发和分发应用的解决方案,如虚拟服务器、操作系统等。如我们常见的docker、k8s等。

3.云软件即服务(SaaS)——在网络上提供可直接使用的应用程序

在PaaS之上,用户不需要管理和控制任何云计算基础设施,包括网络、服务器、操作系统、存储等,普通用户所接触到的互联网服务,几乎都是SaaS

图片

云安全

什么是云安全?

云计算彻底改变了数据存储的世界,它使企业可以远程存储数据和管理业务,并随时随地从任何位置访问业务,存和取变得简单,同时也使得云上数据极易造成泄露或被篡改,如云服务器一般都会由专业的运维工程师去运维,但是在大多数开发小公司,是没有运维工程师的,这个时候一般都是开发人员自己去维护,这个时候就会缺乏基本的安全常识,如身份验证控制不当、配置错误、数据库设置等等,这些操作都会使得服务器遭到攻击。

一方面,传统环境下的安全问题在云环境下仍然存在,比如SQL注入、弱口令、文件上传、网站备份泄露等,另一方面,除了常规的WEB漏洞之外云环境下又不断涌现出一堆新的安全问题例如:Access Key泄露利用、配置不当利用等。

云安全攻击分类

云安全分为两类,一类为云服务,一类为云原生

云服务

云服务,顾名思义就是云上的服务,简单的来说就是在云厂商(阿里云、腾讯云)那里购买的服务。目前国内代表厂商有阿里云、腾讯云、华为云等,国外代表厂商有亚马逊、微软云、google云等。各个云厂商对云服务的叫法都不统一,这里以阿里云为例主要讲述一下常用的云服务与其作用。

图片

以上图阿里云的产品服务为例:

  1. 对象存储OSS(Object Storage Service):简单来说就是一个类似网盘的东西,当然跟网盘是有一定区别的,用来存储用户上传文件等功能。
  2. 弹性计算服务ECS(Elastic Compute Service):简单来说就是云上的一台虚拟机。
  3. 云数据库(Relational Database Service):简单来说就是云上的一个数据库。
  4. 身份和访问管理(Identity and Access Management):简单来说就是云控制台上的一套身份管理服务,可以用来管理每个子账号的权限。

云服务攻击知识面

在这里插入图片描述

对象存储
  1. Bucket权限配置错误-公开访问

在创建Bucket桶时,默认是private(私有)的权限,如果在错误的配置下,给了listobject(列表对象)权限,就会导致可遍历存储桶。

  1. Bucket桶爆破

当不知道Bucket名称的时候,可以通过爆破获得Bucket名称,有些类似于目录爆破。

  1. 特定的Bucket策略配置

有些Bucket会将策略配置成只允许某些特定条件才允许访问,当我们知道这个策略后,就可以访问该Bucket的相关对象了。

  1. Bucket Object遍历

如果策略中允许了Object的List操作,则在目标资源范围下,会将所有的Bucket Object显示出来,通过拼接可获取相对应的文件

  1. 任意文件上传与覆盖

由于Bucket不支持重复命名,所以当匿名用户拥有写入权限时,可通过任意文件上传对原有文件进行覆盖,通过PUT请求可上传和覆盖任意文件。

  1. AccessKeyID、SecretAccessKey泄露

在开发过程中可能操作失误会导致SecretID/SecretKey泄露,获得SecretID/SecretKey相当于拥有了对应用户的权限,从而操纵Bucket。

  1. Bucket接管

由于Bucket接管是由于管理人员未删除指向该服务的DNS记录,攻击者创建同名Bucket进而让受害域名解析所造成的。

  1. 修改策略导致网站瘫痪

当策略可写时,将原来可以访问的资源权限设置为不可访问,这样就会导致网站瘫痪。

弹性计算服务
  1. 凭证泄露
  • • 云场景下的凭证泄露可以分为以下几种:

    • • 控制台密码泄露
    • • AccessKeyID、SecretAccessKey泄露
    • • 临时凭证泄露
    • • 实例登录凭证泄露
  • • 对于这类凭证信息的收集,一般可以通过以下几种方法进行收集:

    • • Github敏感信息搜索
    • • 反编译目标APK、小程序
    • • 目标网站源代码泄露
  1. 元数据

元数据服务是一种提供查询运行中的实例内元数据的服务,通过元数据,攻击者除了可以获得当前ECS上的一些属性信息之外,也可获得与其实例绑定角色的临时凭证,并通过该临时凭证获得云服务的控制台权限。

  1. 恶意的镜像

获取控制台权限后,可导入存在后门的镜像,下次目标用户在选用镜像创建实例的时候,就会触发我们在镜像中植入的恶意代码。

云数据库
  1. 访问凭证泄露

如上面两个云服务一样,云数据库在配置不当的情况下也有可能会出现访问凭证、临时凭证等泄露

  1. 备份文件

在获得相应权限后,可尝试下载数据库

  1. 弱口令

最大的0day,弱口令,如果数据库存在弱口令,则可通过密码爆破,猜解出RDS的账号密码。

云原生

云原生是基于分布式存储和统一运管的分布式云,云原生的代表技术包括容器、容器编排、微服务、不可变基础设施和声明式API

Kubernetes

kubernetes简称K8s,是Google于2014年开源的容器编排调度管理平台。相比与Swarm、Mesos等平台简化了容器调度与管理,是目前最流行的容器编排平台。

图片

如上图所示,我们可以看到,Kubernetes集群主要分为Master和Node两部分,也是典型的分布式架构。首先,外部应用程序通过Api-Server提供的HTTP接口与Master进行交互,而在与APIs进行交互前,需要经过一步认证的阶段。而Node由多个pod组成,pod中运行着的便是大家比较熟悉的容器(Docker),我们将运行在一组Pods上的应用服务公开为网络服务的抽象方法称为服务(Service),服务上一般配置了能够被公开访问的IP地址、端口映射关系等,通过服务我们就能够访问到相应的Pods。

Docker

Docker是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的容器,从而提高交付软件的速度。Docker容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。下图是Docker官方给出的架构图,里面包括了Docker客户端、Docker容器所在的宿主机和Docker镜像仓库三个部分。

图片

Docker可以让开发者基于选定镜像(image),打包目标应用以及依赖包到一个轻量级、可移植的容器(Container)中,并通过客户端的docker命令实现对Docker主机内容器的操控;当前容器也可创建成新的镜像,而所有的镜像放到仓库(Registry)中,类似github一样分为共有仓库和私有仓库。

云原生攻击知识点

随着云计算技术的发展,目前很多企业都将业务部署到了云上,并开始广泛使用docker、Kubernetes等云原生技术,但随之而来也有一些新的风险和挑战,如docker逃逸、docker/K8s配置安全、容器镜像安全、DevOps安全等。

K8s安全问题
配置不当引发的组件接口安全问题
  1. Api Server未授权访问

如上图k8s的结构图所示,外部应用程序是通过Api-Server所提供的HTTP接口与Master进行交互的,

  1. Kubelet 未授权访问

与API Server类似,Kubelet也运行着API服务,如果Kubelet存在未授权访问,就可以控制所在节点的权限。

  1. Dashboard 未授权访问

Dashboard可以给用户提供一个可视化的web界面来查看当前集群的各种信息,用户可以用Kubernetes Dashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes各种资源。在Dashboard中默认是存在鉴权机制的,用户可以通过kubeconfig或token两种方式登录,当用户开启了enable-skip-login时可以在登录界面点击skip跳过登录进入Dashboard。

  1. K8s Config文件泄露

如果攻击者通过webshell、Github等特定方式拿到了该K8s配置的Config文件,就可以通过该文件操作集群,从而接管所有容器。

  1. Etcd未授权访问

etcd默认监听2379、2380端口,前者用于客户端连接,后者用于多个etcd实例之间的通信。如果2379端口暴露在公网,可能会造成敏感信息泄露。

集群风险存在的风险
  1. Kubectl proxy命令未安全使用

攻击者可通过kube-proxy代理来未授权访问本地kube-apiserver组件,创建恶意pod或控制已有pod,后续可尝试逃逸至宿主机

  1. 未开启RBAC控制

基于角色(Role)的访问控制(RBAC)是一种基于组织中用户的角色来调节控制对计算机或网络资源访问的方法,如果运维在环境中没有设置RBAC或者Kubernetes版本低于1.16版本,则默认是不会开启RBAC访问控制策略。

Docker安全问题

  1. 容器镜像存在的风险

    • • 如果开发者为了开发、调试方便,可能会将数据库账号密码、云服务密钥之类的敏感数据打包到镜像里,那别人获取到这个镜像后,就容易导致安全风险。
    • • 在公共镜像仓库比如docker Hub里,会存在一些有漏洞的镜像或者恶意镜像,如果使用了这些镜像那就存在了安全风险。
    • • 例如开发者在代码中引用了存在漏洞版本的log4j组件,然后将其打包成了业务镜像,这样即使代码没有漏洞,但因为引入了不安全的第三方组件也变得有了安全风险。
    • • 不安全的第三方组件
    • • 不安全的镜像
    • • 敏感信息泄露
  2. \2. 活动中的容器存在的风险

    • • 如果为容器设定了不完全的配置,会导致容器本身的隔离机制失效,如–privileged:使容器内的root权限和宿主机上的root权限一致,权限隔离被打破。
    • • 容器运行在宿主机中,容器必须要使用宿主机的各种CPU、内存等资源,如果没有对容器进行资源使用限制,那么就存在宿主机资源耗尽的风险。
    • • 在使用容器时,往往需要将端口映射出来,如果一个web服务端口被映射出来,同时这个web服务存在漏洞,那么也同样是存在风险的。
    • • 不安全的容器应用
    • • 不受限制的资源共享
    • • 不安全的配置与挂载
  3. 容器管理程序接口的风险

Docker 守护进程主要监听UNIX socket和Tcp socket,默认情况下,Docker只会监听UNIX socket。

  • • UNIX Socket

    • • UNIX socket的风险主要在于Docker守护进程默认以宿主机的root权限运行,因此就可以借助这点进行提权或者容器逃逸。
  1. 软件自身的漏洞

    • • 不受限制的资源共享
    • • 不安全的配置与挂载
  2. 容器管理程序接口的风险

Docker 守护进程主要监听UNIX socket和Tcp socket,默认情况下,Docker只会监听UNIX socket。

  • • UNIX Socket

    • • UNIX socket的风险主要在于Docker守护进程默认以宿主机的root权限运行,因此就可以借助这点进行提权或者容器逃逸。
  1. 软件自身的漏洞
  • • Docker自身存在的漏洞,比如CVE-2019-14271、CVE-2021-22555等都可以导致容器逃逸,也是风险点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23146.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能排班系统 【管理系统功能、操作说明——中篇】

文章目录 页面与功能展示企业管理角色管理用户管理系统管理员身份使用企业管理员身份使用门店管理员身份使用 门店管理职位管理排班规则设置节日管理消息管理 页面与功能展示 企业管理 企业管理页面如图 34所示,在企业管理页面,系统管理员可以查询所注…

Unity Shader variants (shader 变体)

官方地址 https://docs.unity3d.com/cn/2022.2/Manual/SL-MultipleProgramVariants.html 教程可以看这里 https://www.jianshu.com/p/48ad75f0b4b9 https://www.jianshu.com/p/3e6b84317097 变种用我自己的理解就是 能用程序控制的shader 举个例子 这里声明了 a b c d 四个变…

cpu 内核 逻辑处理器的关系

6核CPU,12个逻辑处理器 一颗内核在一个时间片内只能执行一个内核线程;当物理CPU使用了超线程技术后,在CPU的一颗内核中,利用就是利用其中空闲的执行单元,模拟出另外一个核心(并不是真正的物理运算核心&…

详解C语言assert宏

前言:我们经常在写代码时,发现一些大牛的代码中总有一句assert(表达式),经过在网上的学习,笔者也浅显的了解了assert的相关知识,assert一般用于规范代码,避免不必要的错误&#xff0…

【WOA-LSTM】基于WOA优化 LSTM神经网络预测研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【机器学习】信息量、香农熵、信息增益(增加例子,方便理解)

这节可以搭配 【机器学习】Logistic回归(重新整理)信息量(信息)信息量公式的推理过程 香农熵信息增益 【机器学习】Logistic回归(重新整理) B站视频:“交叉熵”如何做损失函数?打包…

css元素的显示和隐藏

1. display显示隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

类和对象 --- 封装+对象特性

&#x1f442; 快乐E调 - 林澜叶 - 单曲 - 网易云音乐 &#x1f442; Plain Jane (Freestyle) - Ombre2Choc Nation - 单曲 - 网易云音乐 1.5倍速&#xff0c;跟着敲&#xff0c;初识C 目录 &#x1f3c6;封装 &#x1f333;属性和行为作为整体 &#x1f333;案例 -- 设置…

19-01 技术选型的道与术

系列目录导航&#x1f449; 什么是技术选型&#xff0c;技术选型的重要性 根据实际业务管理的需要&#xff0c;对硬件、软件以及所要用到的技术进行规格的选择狭义上的技术选型&#xff1a;团队决定选用哪种技术去解决问题&#xff0c;比如选用某个技术语言、某个技术框架去开…

人民大学与加拿大女王金融硕士项目——在现在憧憬美好的未来

未来是一个虚无缥缈的词汇&#xff0c;抓不住也看不到。未来里有着我们无限的希望&#xff0c;也有着美好的憧憬。未来究竟是怎样的呢&#xff0c;有人说现在的样子里藏着未来的模样。在职的你有没有为未来编织一副美丽的画卷呢&#xff1f;未来很远&#xff0c;远到只能靠想象…

Linux设备树:删除节点和属性的方法

[摘要]&#xff1a;本文主要介绍了在设备树中删除节点&#xff08;node&#xff09;和属性&#xff08;property&#xff09;的方法。为了便于理解&#xff0c;笔者先介绍了 dtsi 和 dts 的关系&#xff0c;然后构建了虚拟的需求场景&#xff0c;最终给出示例。 背景知识 设备…

shell 免交互

文章目录 Here Document 免交互实验多行注释基本命令 实验 Here Document 免交互 使用I/O重定向的方式将命令列表提供给交互式程序或命令&#xff0c;比如 ftp、cat 或 read 命令。是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息&#xff0c;而是…

理光打印机连接电脑后不打印的原因及解决方法

理光打印机在使用时&#xff0c;可能会出现正常连接上理光打印机却没有反应的情况&#xff0c;出现无法打印的情况&#xff0c;下面&#xff0c;驱动人生为大家带来理光打印机连接后不打印的解决方案。 驱动人生分析&#xff0c;一般遇到理光打印机连接后不打印的情况&#xf…

python 的APScheduler配置的定时任务会被Miss掉

背景 python 的APScheduler配置的定时任务会被Miss掉&#xff0c;经常在控制台收到一些Miss的告警信息&#xff0c;就觉得是任务太多导致的&#xff0c;为了定位到具体的原因&#xff0c;看了一些源码&#xff0c;了解到了定时任务的6大模块的协同工作模式。异常信息及来源 异…

2022年深圳杯数学建模B题基于用电可靠性的配电网规划解题全过程文档及程序

2022年深圳杯数学建模 B题 基于用电可靠性的配电网规划 原题再现&#xff1a; 如果一批用户变压器&#xff08;下面简称用户&#xff09;仅由一个电源变电站&#xff08;下面简称电源&#xff09;供电&#xff0c;称为单供。这时配电网由电线和开关联接成以电源为根节点的树状…

Transformer应用之构建聊天机器人(二)

四、模型训练解析 在PyTorch提供的“Chatbot Tutorial”中&#xff0c;关于训练提到了2个小技巧&#xff1a; 使用”teacher forcing”模式&#xff0c;通过设置参数“teacher_forcing_ratio”来决定是否需要使用当前标签词汇来作为decoder的下一个输入&#xff0c;而不是把d…

< ElementUi组件库: el-progress 进度条Bug及样式调整 >

ElementUi组件库&#xff1a; el-progress 进度条Bug及样式调整 &#x1f449; 前言&#x1f449; 一、实现原理> 修改 el-progress 进度条样式 及 渐变进度条样式 &#x1f449; 二、案例代码&#xff08;前言效果图案例&#xff09;> HTML代码> CSS代码 &#x1f44…

C++学习day--12 循环的应用,暴力破解密码和输出动图

第 1 节 职场修炼&#xff1a;程序员到底能干多久 现状&#xff1a; 很多程序员&#xff0c;过了 30 岁&#xff0c;纷纷转行。 原因&#xff1a; 1 &#xff09;薪资过万后&#xff0c;很难进一步提升 2 &#xff09;可替代性高&#xff0c;在新人面前&#xff0c;没有…

SolVES模型在生态系统服务社会价值评估中的运用

SolVES模型&#xff08;Social Values for Ecosystem Services&#xff09;全称为生态系统服务社会价值模型&#xff0c;是由美国地质勘探局和美国科罗拉多州立大学联合开发的一款地理信息系统应用程序&#xff0c;开发该模型的目的主要是对生态系统服务功能中的社会价值进行空…

全面了解Java连接MySQL的基础知识,快速实现数据交互

全面了解Java连接MySQL的基础知识&#xff0c;快速实现数据交互 1. 数据库的重要性2. MySQL数据库简介2.1 MySQL数据库的基本概念2.2 MySQL的基本组成部分包括服务器、客户端和存储引擎。2.3 安装MySQL数据库2.3.1安装MySQL数据库2.3.2 下载MySQL安装程序2.3.3 运行MySQL安装程…