云计算安全

news2024/11/24 2:26:32

前言

什么是云计算?

云计算就是一种新兴的计算资源利用方式,云计算的服务商通过对硬件资源的虚拟化,将基础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等都可以导致容器逃逸,也是风险点

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帽子设计作品——蒸汽朋克的乌托邦,机械配件的幻想世界!

蒸汽朋克是由蒸汽steam和朋克punk两个词组成, 蒸汽代表着以蒸汽机作为动力的大型机械,而朋克则代表一种反抗、叛逆的精神。 蒸汽朋克的作品通常以蒸汽时代为背景,通过如新能源、新机械、新材料、新交通工具等新技术,使画面充满想…

基于OpenCV和PyQt5的跳远成果展示程序

基于OpenCV和PyQt5的跳远成果展示程序 近年来,体育运动越来越受到人们的关注,其中跳远是一项备受瞩目的运动项目。为了更好地展示运动员的跳远成果,本文将介绍一种基于OpenCV和PyQt5的跳远成果展示程序实现方法。 本文的跳远成果展示程序主…

基于SSM的校园办公管理系统的设计与实现(源码完整)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题,今天给…

【TES641】基于VU13P FPGA的4路FMC接口基带信号处理平台

板卡概述 TES641是一款基于Virtex UltraScale系列FPGA的高性能4路FMC接口基带信号处理平台,该平台采用1片Xilinx的Virtex UltraScale系列FPGA XCVU13P作为信号实时处理单元,该板卡具有4个FMC子卡接口(其中有2个为FMC接口)&#xf…

Sui如何进行独立审计

Sui及其生态项目的第三方审计对于网络的安全至关重要。 类似于Sui这样的L1区块链必须使用多重有效的措施,来确保项目保持尽可能高的安全级别。Sui流程中的一个关键环节就是使用第三方安全审计。了解Sui的安全状态及其维护方式对整个社区来说很重要,因此…

【JavaSE】Java基础语法(二)

文章目录 1. ⛄类型转换1.1 🪂🪂隐式转换1.2 🪂🪂强制转换 2. ⛄运算符2.1 🪂🪂算术运算符2.1.1 算术运算符2.1.2 字符的“”操作2.1.3 字符串的“”操作2.1.4 数值拆分 2.2 🪂🪂自增…

SQL注入 - Part 2

SQL注入 - Part 2 1.sql注入自动化工具--sqlmap配置环境变量/快捷方式一些sqlmap的常用语句前置SQL知识batch批量注入 2.sql注入靶场——sqlilabs3.布尔盲注4.基于时间的盲注5.基于报错的注入总结 1.sql注入自动化工具–sqlmap 配置环境变量/快捷方式 最终效果: …

数据高效转储,生产轻松支撑

在使用WINDOWS或智能手机的时候,经常会遇到存储空间不足的问题,鲜有人会打开文件管理系统自己逐个清理,不仅因为底层的系统文件繁多操作耗时,更有其操作专业度高、风险高的问题。这时我们往往会求助各种各样的清理大师&#xff0c…

2个月拿到华为offer,身为00后的我拿30K没问题吧?

背景介绍 美本计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三回国的时间比较短,于是找的实习是在一家初创公司里面做全栈。 本人面…

网络安全CTF工具合集

各种在线工具以及工具整合 CTF资源库|CTF工具下载|CTF工具包|CTF工具集合 逆向工程: GDB – http://www.gnu.org/software/gdb/download/ IDA Pro – Download center Immunity Debugger – http://debugger.immunityinc.com/ OllyDbg – OllyDbg v1.10 radare2 – radare Hop…

MySQL基于成本的优化

MySQL的成本是什么?MySQL在执行一个查询的时候,其实是有多种不同的方案的,但是最终会选择一种成本比较低的方案,那么这个成本都体现在什么地方?如何计算? MySQL的成本 I/O成本 : 把数据从磁盘…

Python 萌新 - 花10分钟学爬虫

前言 Python 新手入门很多时候都会写个爬虫练手,本教程使用 Scrapy 框架,帮你简单快速实现爬虫,并将数据保存至数据库。在机器学习中数据挖掘也是十分重要的,我的数据科学老师曾经说过,好算法不如好数据。 Python助学…

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

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

第一行代码 第十一章 基于位置的服务

第11章 基于位置的服务 在本章中,我们将要学习一些全新的Android技术,这些技术有别于传统的PC或Web领域的应用技术,是只有在移动设备上才能实现的。 基于位置的服务(Location Based Service)。由于移动设备相比于电脑…

Prompt Engineering | 编写prompt的原则与策略

😄 为了更好地与大模型(e.g. chatgpt)更好的交流,一起来学习如何写prompt吧!😄 文章目录 1、简介2、编写prompt的原则与策略2.1、编写清晰、具体的指令2.1.1、策略一:使用分隔符清晰地表示输入的…

js 解析map (处理后端返回对象拼接)

返回的数据 需要的展示效果 解析如下: { title: ‘销售属性’, align: ‘left’, dataIndex: ‘xsshuxing’, width: 200, render(value, record) { let keyValue ‘’; { for (var key in record.otherAttr) { console.log(‘属性:’ key ‘,值&…

EIS-Net

我们提出了一种新的领域泛化框架(称为EISNet),该框架利用来自多源领域图像的外在关系监督和内在自我监督学习,学习如何同时在不同领域中进行泛化。 具体而言,我们采用多任务学习范式,通过特征嵌入来构建我…

AI智慧安监视频平台EasyCVR视频出现不能播放的情况排查与解决

EasyCVR基于云边端协同,可支持海量视频的轻量化接入与汇聚管理。平台兼容性强、拓展度高,可提供视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、H.265自动转码、平台级联等功能。 有用户反…

如何动态生成列表视图?

UE5 插件开发指南 前言0 什么是列表视图?1 如何动态生成?1.0 指定ListView生成的条目前言 这里将其拆分成两个问题来分析: (1)什么是列表视图? (2)如何动态生成? 0 什么是列表视图? 列表视图就是用来展示一系列对象的UI列表,在UE编辑器的UserWidget设计窗口中可以找到…

linux 安装 ffmpeg

linux 安装 ffmpeg windows上安装,直接下载压缩包解压。linux安装,找了半天各种技术文章,说最好编译安装,按照步骤安装编译环境编译成功了,但是使用的时候总要安装各种外部库,转码转不了等等问题...... 最…