泷羽sec----云基础理论
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
云基础
随着技术的发展,现在搭建一个web程序等,已经不用和以前一样,自己购买服务等进行搭建,现在使用云技术,其实也就是云技术的服务商自己搭建一个大型机房,里面有各种各样的服务器,其中可能一台服务器对应着许多用户,实现了资源的节省。
而正是因为现在许多人都使用云服务器了,所以更要去学习,知道原理,才能去攻破目标。
1 云架构介绍
随着处理器的不断进化,虚拟机出现了。它能把一台机器的资源分成多台机器来使用(比如使用VM Ware还有virtual box等),提高了资源利用率,变得更加灵活可拓展,实现了从裸机基础设施到虚拟化基础设施的转变。接着,容器化技术登场,进一步提高了效率,实现了服务器、网络和存储的虚拟交付。现在,我们把最新一代的基础设施称为“云”,它可不是单一的技术哦,而是众多技术的集合。
2 云服务
云是一种 IT 基础设施系统,它将资源的创建抽象在容错、地理分布和可扩展的物理基础设施之上。并以服务器的形式按需求交付能力,非常易于使用,可以自动创建服务器、存储、网络等等。云基础架构必须稳定,不能频繁出现中断。地理分布的云基础设施能够提高容错能力,而且云必须能够快速扩展,以满足各种需求。
有很多公有云服务商,比如 Amazon Web Services(AWS)
(亚马逊平台)、Azure
、Google(GCP)
,还有华为云
、腾讯云
、阿里云
等等。组织或公司可以使用 OpenStack
等工具在自己的数据中心搭建私有云,或者一部分业务运行在私有云中,一部分运行在公有云中。
3 云分类(服务层)
- 基础设施即服务(IaaS):提供最基础的计算、存储和网络资源,用户可以根据自己的需求选择相应的资源进行使用。
IaaS
层是云计算的基础,其他的云计算服务(如PaaS
和SaaS
)都是基于IaaS
层构建的。 - 平台即服务(PaaS):为用户提供一个应用程序的开发和运行平台,用户可以在平台上开发、测试和部署自己的应用程序,无需关心底层的基础设施。
PaaS
层提供了一系列的开发工具和服务,如数据库管理、中间件、开发环境等,方便用户进行应用程序的开发和管理。 - 软件即服务(SaaS):为用户提供完整的应用程序服务,用户可以通过网络直接使用应用程序,无需安装和维护软件。
SaaS
层的应用程序通常是多租户的,即多个用户可以同时使用同一个应用程序,云服务提供商负责应用程序的升级和维护。
4 共享责任模型
云服务在提供容错和扩展的同时,也在不同层面增加了安全性的模糊性。如果是 AWS 程序漏洞导致大量数据泄露,AWS 不承担责任(也就是你在云上搭建的web应用程序等,本身存在漏洞,或者有问题导致出现数据泄露)。但如果 AWS 数据中心物理安全遭到破坏,客户数据被盗取,AWS 就得承担责任。
5 云架构
- 虚拟化:把一台机器的资源分成多台虚拟机器,多台裸机汇集形成资源集群,隔离资源的使用,灵活且可扩展资源池。它抽象了硬件安装过程,但仍有改进空间,并非专为云而生。技术栈的灵活性和可定制性提升,促使了容器的出现。
- 容器:容器就像一个个独立的小空间,允许开发人员与堆栈各部分灵活交互,实现按需生成服务,提高网络抽象程度,方便应用迁移扩展,更高效地使用资源。系统管理和网络工程可以外包给其他公司。云是多种技术的集合。
6 云架构设计
- 组件选择:确定架构(这很难改),选择绑定或非绑定组件,可以自己开发、用开源的或者购买。云原生组件是为分布式系统设计的,
CNCF
认证不是必须的,要安全编码,部分是开源的。 - 基础设施即代码(
IaC
):包括引导介质(Packer
)、安装系统(Terraform
)、自动配置(Ansible
)、状态强制(Monit
)。
7 集成部署
使用持续集成和持续交付(CICD
)管道来构建环境,包括测试、测量和扫描代码更改的自动化测试和部署(GitOps
)。要做到有弹性可靠,即任何单点故障都有故障转移或其他机制,让业务能持续提供(这叫冗余),也就是保证业务等服务不会受到影响。
全球负载均衡(GSLB
,比如智能 DNS
、GTM
)能解决客户单访问的单点故障隐患。还要平衡控制,控制保护系统免受漏洞和内部攻击的组件,应平衡控制和可用性。
8 云设计模式
云架构设计不必从头开始,采用已检验的设计模式是最佳选择。
-
微服务架构:为松散耦合、模块化服务而设计,微服务协同工作完成整体服务。每个服务都可以独立修改代码和重用,提高系统整体弹性和容错。大多数云利用微服务架构,云原生应用被构建充当微服务,便于水平扩展。
安全优势是每个微服务应用强化、隔离,单一服务漏洞对整体系统影响小。
缺点是调试更复杂,需要跨不同服务跟踪事务;性能可能有短板。
-
零信任架构:对资源的每个请求都需要验证来源已授权,然后授权短期访问(用令牌)。实现零信任架构的一种常见方法是
Open ID Connect
(OIDC
)联盟访问。授权处于活动状态时可以访问任何联合内服务。密码重置是针对零信任架构的常见攻击方式。
9 安全控制
-
网络控制:
传统架构用防火墙实现网络控制,云环境网络抽象为
SDN
(软件定义网络)、SD WAN
(软件定义广域网)。SDN
可以对不同的接口(如API
或GUI
)设置网络规则。通过mTLS
不仅能加密流量,还能对客户端进行身份验证,有证书才能访问微服务。例如,在数据中心内部,SDN 可以动态地分配网络带宽,根据应用的需求(如实时视频流需要高带宽)调整网络路径。mTLS
(双向传输层安全)在传输层提供安全保障,它不仅加密流量,还对客户端进行身份验证。在微服务架构中,各个微服务之间的通信需要高度的安全性。
不正确的访问管理可导致权限提升,甚至破坏整个基础设施。现代访问管理系统多使用令牌进行访问控制,提供对服务的短时访问权。
JWT
(JSON Web Token) 通常用于访问云端资源,伪造和破解密码是常见攻击手段。另一种类型的权限控制机制是强制访问控制MAC
。MAC
是一种权限控制机制,它基于主体(如用户、进程)和客体(如文件、设备)的安全级别来控制访问。与其他访问控制方式不同,MAC
的规则是由系统管理员预先定义好的,用户不能轻易更改。SD - WAN
主要应用于广域网环境,它可以智能地选择最佳的网络路径,跨越多个不同的网络连接(如互联网、专线等),优化企业分支机构之间的通信。 -
身份管理:
企业通常用
AD
、LDAP
进行身份管理。AWS IAM
是身份和访问管理的公共云服务。Google
联盟认证OIDC
经常用于2FA
。云身份提供者(IdP
)作为真实身份来源,是更安全的解决方案,比如Azure AD
。AD(活动目录或域)、 LDAP(轻量级目录访问协议)
AD 是微软推出的一种目录服务,它主要用于 Windows 环境下的用户和资源管理。
LDAP 是一种轻量级的目录访问协议,它可以跨平台使用,许多不同类型的系统都可以通过 LDAP 来查询和管理用户信息。它就像是一个电话黄页,不同的系统(打电话的人)可以通过它来查找用户信息(电话号码)。
Google 联盟认证 OIDC 是一种基于开放标准的身份认证协议。它经常用于双重因素认证,在用户登录时除了提供密码之外,还需要提供其他的验证因素,如手机验证码或者指纹等。
2FA(双重因素认证)
当用户尝试登录一个启用 2FA 的系统时,首先会进行第一种因素的验证,如输入密码。如果密码正确,系统会触发第二种因素的验证。例如,系统会向用户的手机发送短信验证码,或者要求用户使用硬件令牌生成验证码。只有当两种因素都正确验证通过后,用户才能成功登录系统。这种分步验证的方式可以有效地防止未经授权的访问。
10 容器与云
虚拟化中每个 VM 需要运行自己的操作系统,大大增加了总体开销。容器化是更现代的架构,容器共享内核与硬件,更快、更小、更高效。容器是对虚拟化的补充,而非取代。容器的系统开销更小,可以进一步分离应用组件,比如搜索、登录、查询、订单功能分开。容器使用映像作为模板生成,映像相当于计算机硬盘。容器使用不同发行版文件加载内核,运行容器。
11 容器的真相
Linux 没有单一被称为“容器”的特性。实际上,“容器”是阻止进程访问其他进程和资源的特性组合,发生在内核级别,可以控制其限制级别。
容器的历史:
- 197x 年代引入 chroot,可以指示进程的新根目录,但不完美。命名空间可实现每个进程分离网络、进程和其他命名空间。
- 1999 年 FreeBSD 发布 Jails,在 chroot 之上提供更多限制(Linux 不支持)。
- 2002 年引入命名空间,分离内核资源。
- 2006 年谷歌引入进程容器,后被称为
cgroup
,可限制特定进程的内存和 CPU 资源。结合cgroup
和命名空间发布了 Linux 容器(LXC)项目。
Linux 中有八种用户命名空间:挂载、进程 ID、网络、进程间通信、UTS、用户 ID、控制组、时间、syslog。
12 Capabilities
Docker 默认不使用用户命名空间。为防止特权内核调用,它使用内核 capabilities 和 seccomp 配置文件限制访问。Linux 有特权或非特权进程。非特权进程有正确权限可写入系统文件,特权进程几乎无所不能。当非特权用户只需要特殊权限时,可使用 Capabilities。Linux 将一些系统级任务分组为 40 多个类别,称为 Capabilities。
常见 Capabilities | 作用 |
---|---|
CAP_CHOWN | 允许进程修改文件所有者 |
CAP_NET_ADMIN | 对网络配置执行管理任务 |
CAP_NET_BIND_SERVICE | 允许绑定低于 1024 的端口 |
CAP_NET_RAW | 允许使用 RAW 套接字 |
CAP_SYS_ADMIN | “根”权限(危险),启用过多功能集。 |
CAP_SYS_BOOT | 允许重新启动主机 |
CAP_SYS_MODULE | 允许加载和卸载内核模块 |
CAP_SYS_TIME | 允许进程设置系统时钟 |
CAP_SYS_CHROOT | 允许使用 chroot |
CAP_AUDIT_WRITE | 允许写入内核审计日志 |
提升工具权限有隐患,可能被恶意用户利用,破坏系统、窃取敏感信息或完全控制整个系统。
本文来自博客园,作者:whitehe,转载请注明原文链接:https://www.cnblogs.com/whitehe/p/18578423