​2024年保护微服务的前10种技术


8f6fb5b47b7932a3b5e1c188276f5977.png
1*5rY-jEv7qlpa_swi4WMIBw.png

引言

与当前正在使用的任何其他技术或方法一样,微服务也有其自己的一套缺陷和问题。尽管如此,微服务架构的采用率不断增加,预计到2028年将达到1718.2亿美元。

然而,尽管团队使用微服务,但确保这些微服务的安全性仍然被视为事后事项。 这可能导致应用程序中的许多安全问题,甚至可能使用户数据面临风险,甚至导致应用程序停机。因此,让我们看看在2024年保护微服务的前10种方法!

微服务架构的常见威胁是什么?

在深入研究保护微服务之前,了解可能使您基于微服务的应用程序面临风险的威胁是很重要的。

1. 滥用有缺陷的身份验证和授权

攻击者获取对基于微服务的应用程序的访问权限的主要原因是身份验证和访问策略的配置错误。这些策略和机制的配置错误将是灾难性的,因为它可能暴露敏感信息,甚至让攻击者通过执行远程代码来获得对系统的访问权限。

2. 基于API的攻击

在微服务架构中,API安全性的重要性是毫无争议的,因为每个组件都与API相互连接;此外,当OWASP提出其自己的十大最常见问题清单时,您就知道这个方面有多重要。

攻击者通常通过身份验证和有效载荷处理配置错误来利用API端点,通过操纵有效载荷绕过可能已经设置的任何验证。

3. DDoS和DoS攻击

在适当的控制措施缺失的情况下,没有人免疫拒绝服务攻击。

这是我们必须接受的现实,因为任何人都可以轻松获取提供DDoS服务的服务,价格低至每天$30,具体取决于攻击的规模和持续时间。 当您的基于微服务的应用程序可能能够扩展以抵抗DDoS或DoS攻击以保持其服务运行时;

真正的问题是以何种代价? 在DDoS或DoS攻击期间,微服务的扩展将对成本产生重大影响,因为即使使用诸如AWS Lambda等无服务器解决方案,计算资源也不便宜。

保护微服务的策略

既然我们已经确认了即使微服务也会受到攻击,并且这只是一个“何时”的问题。

让我们看看一些策略,我们可以实施以减少攻击可能带来的影响。

1. 安全设计

顾名思义,安全设计或左移安全性意味着安全性必须从设计阶段考虑,并必须在整个开发生命周期中应用。这可能不是微服务特有的概念,但由于它带来的显著好处,必须遵循此概念。

如果您目前正在实践DevSecOps,那么

您很可能正在遵循左移或安全设计原则,在这里您在每个开发阶段都考虑安全性。这不仅有助于在非常早期阶段识别威胁和安全问题,而且由于整个体系结构可以被设计为以最小的努力解决安全问题,因此还可以减少修复这些问题所需的工作量。

2. 零信任架构

e85fd6cd6da2a00142f830dcb2b2091e.png
0*WwUOyxvlmEib6tHx.png

这些架构设计对网络安全领域并不陌生,多年来我们已经看到其采用率稳步增长。这将我们多年来一直在使用的多种安全技术组合成一个强大的设计,能够减少甚至是最复杂应用程序的攻击面。

零信任基于一些共同的关键原则,这些原则共同发挥作用,形成了最安全的应用程序部署;其中一些原则是:

•最小特权•持续监控和验证•设备访问控制•微分割

由于微服务独立于其他服务,这种方法非常适合确保即使一个微服务被攻破,攻击者也无法危及应用程序的其余部分。

3. 访问控制(IAM)

安全性的最重要方面之一是访问控制,甚至是零信任架构背后的关键原则之一,该架构要求仅为任何给定实体分配最小特权。

将有多个用户,如果没有多个账户用于允许每个微服务与其他微服务或其他服务(如数据库)进行通信。在这些部署中,必须分配最小数量的访问权限,以允许微服务执行定义的任务。

此外,如果您使用诸如AWS Lambda之类的解决方案,则建议使用短寿命的凭证,例如“角色”,这样用户帐户必须假定角色才能执行任务,没有此角色将没有任何本机权限。

4. 威胁建模

7035fef82b6713c1ba37078ecbba8047.png
0*dIoZYAFDu-HjQRXH.png

您可能知道您的微服务在应用程序构建到小规模时做什么,但是一旦您的应用程序增长并且您的微服务数量失控增长时,所有这些都会发生变化!很快,您将不知道做什么以及理解的任何意义都开始消失。

一旦发生这种情况,您将很可能在架构和微服务内留下未计划的空白,这些空白允许攻击者进入。

这就是威胁建模派上用场的地方,它允许考虑系统的数据流、服务间通信和外部威胁等多个方面。

威胁建模使架构师能够可视化和识别体系结构中存在的各种问题,并确保在构建应用程序之前修复了已识别的风险,从而节省了在开发和测试阶段所花费的大量金钱和时间。

5. 漏洞管理

我们已经确认微服务运行在不同的语言上,并在单个微服务中有多个组件来启用其功能。

漏洞管理是一种被忽视的方法,允许工程师和管理员识别和修补这些不同组件,无论是容器基础架构、代码还是甚至是使用的第三方库。

正确的漏洞和补丁管理不仅能够实现安全应用程序,而且能够实现严格的合规性。

6. 事件响应

9e1c29a688a89d1980be19c31d0ea0a6.png
0*0flHjUyCFbZtR-YX.png

这是没有人愿意考虑的事情,因为每个人都忙于保护他们的应用程序。时代已经改变了,规划一个合适的事件响应可以帮助您的应用程序从攻击中恢复。

这是因为现在不再是如果您的应用程序受到攻击,而是WHEN它将受到攻击,拥有适当的事件响应程序将有助于准备您的应用程序和团队更好地应对特定类型的攻击。

拥有详细的事件响应手册还可以帮助发展您的微服务设计,因为从中学到的经验可以直接纳入应用程序的设计中。

7. 密钥管理

d306f400860c377297406d5268a3f708.png
1*Q-YYkdmsqkwFbwsjsPI8OQ.png

复杂的应用程序可能有数百甚至数千个微服务协同工作,这些功能可能需要使用API密钥、密码和其他形式的密钥以进行身份验证。

在应用程序中管理数百个密钥变得很麻烦,当您需要安全地存储、使用并轮换每个密钥时,就更是如此。这通常是当开发人员变懒

,将这些密钥硬编码到源代码中或将它们存储在配置文件中时。将密钥以明文形式存储是一场灾难,攻击者可以简单地读取源代码或纯文本并检索这些密钥。

推荐的密钥管理方法是将所有密钥存储在安全的保险库中,例如HashiCorp Vault、AWS Secrets Manager或AWS Systems Manager Parameter Store。这些解决方案使开发人员能够安全地存储并根据需要检索他们的密钥,而无需将它们硬编码到源代码中,甚至存储在配置文件中。

8. 容器安全性

当您在保护微服务架构的所有其他方面时,一个关键组件经常被忽视。这是运行所有微服务的组件,在大多数情况下这些是容器!

确保您的容器基础架构得到安全保护与确保微服务本身的安全性同样重要,因为容器安全性中的漏洞可能使攻击者能够进入基础架构并从底层破坏应用程序。

因此,关注关键的安全方面,如但不限于容器镜像、运行时、注册表、网络和运行时安全性,至关重要。

此外,关注供应商特定组件,如Kubernetes Pod Security,确保它们根据规范进行加固,这也将增加您在容器环境中的安全性。

9. 服务网格

这个专用的基础架构层添加到您的微服务架构之上,允许您控制微服务之间的通信。该层引入了关键组件,如:

•边车•服务发现•负载均衡•流量管理•安全策略•可观察性和分布式跟踪

所有这些组件在提供对应用程序中流动数据更多控制方面发挥着至关重要的作用。

10. 可用性的断路器模式

保护微服务架构不仅意味着加固各个组件,还要使架构能够在攻击或可能出现的其他操作问题期间处理故障和错误。

断路器模式的概念使应用程序能够将特定微服务与应用程序的其余部分隔离开来,如果连续发生故障,这种隔离可以使应用程序的一部分(取决于哪个微服务有问题)能够正常运行,但也可以防止资源枯竭。

此外,应用程序将能够确定故障的微服务是否已恢复,通过优雅地尝试向先前有问题的微服务发送请求并监视其响应,而不会强制整个负载到它,这可能会导致服务再次失败。

结论

保护微服务并非总是一帆风顺,需要一些计划。然而,通过正确的技术、工具和程序的组合,您的基于微服务的应用程序可以更安全、更有抵抗力地抵御攻击。

希望您找到这篇文章有帮助。

感谢您的阅读!

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

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

相关文章

如何默认管理员开启CMD

许多朋友使用win10系统的时候经常会用到CMD命令,而且还要以管理员身份运行,那么如何设置默认打开cmd都是以管理员身份运行,设置的方法挺简单,大家跟着下面的步骤操作即可。 Win10怎么默认以管理员身份运行cmd? 1、在开…

解读 Xend Finance:向 RWA 叙事拓展,构建更具包容性的 DeFi 体系

在二十世纪后,非洲地区陆续爆发了主权运动,这也让非洲大陆逐渐摆脱“殖民地”的标签。目前,非洲大陆公有 54 个主权国家,接近 15 亿且仍在飙升的人口规模,其 GDP 已经与印度相当,且仍旧处于飞速的发展进程中…

【机器学习300问】44、P-R曲线是如何权衡精确率和召回率的?

关于精确率和召回率的基础概念我已经写了两篇文章,如果友友还不知道这两个评估指标是什么,可以先移步去看看这两篇文章: 【机器学习300问】25、常见的模型评估指标有哪些?http://t.csdnimg.cn/JtuUO 总结一下这两个概念&a…

SQL Server 文件组详解

数据文件组 SQL Server 数据库最常用的存储文件是数据文件和日志文件。 数据文件用于存储数据,由一个主要数据文件(.mdf)和若干个次要数据文件(.ndf)构成;日志文件用于存储事物日志,由.ldf文件…

Java全栈课程之Linux———基本属性

一、看懂文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 在Linux中我们可以使…

2000元投影仪坚果N1 Air怎么样?对比D5X哪款更好?

投影仪市场,近年来作为家电数码领域的新星,已经引起了广泛的关注。特别是在年轻人群体中,投影仪成为了提升生活品质、享受家庭娱乐时光的重要工具。随着市场的繁荣,各种品牌和型号的投影仪如雨后春笋般涌现,其中&#…

Linux--进程(1)

目录 前言 1.冯诺依曼体系结构 2. 操作系统(Operator System)--第一个被加载的软件 3.进程 3.1基本概念 3.2Linux中的PCB 3.3通过系统调用创建子进程-fork初识 fork:创建一个子进程 为什么要创建子进程? fork的原理: 进一步了解fo…

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework PDF: https://arxiv.org/html/2403.13248v1 1 概述 为弥补Sora不开源的缺陷,本文提出多代理框架Mora,整合先进视觉AI代理,复制Sora的全能视频生成能力。Mora能利用…

2024年《期刊引证报告》解读,迎来哪些新调整?

​ 【SciencePub学术】 近日,科睿唯安官方发布了一则关于2024年《期刊引证报告》:为增强透明度和包容性,期刊影响因子学科排名迎来新调整的文章。文章中对今年新调整过的地方做出了详细的解释。 截图来源:科睿唯安公众号 动态一…

#Linux(连接档概念)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)硬链接(inode,建立硬链接的文件inode号相同) (2)创建硬链接:ln 文件名1 文件名…

css设置div的2个span一个在最左边,一个在最右边

界面&#xff1a; 代码&#xff1a; <html><style>.top span {display: block;position: absolute;margin: 0 20px; /* 添加边距以避免太靠近边缘 */ }.top span:nth-child(1) {left: 5px; /* 调整左侧位置 */ }.top span:nth-child(2) {right: 5px; /* 调整右侧位…

【前端性能】前端性能优化方法总结

关于前端性能指标和测量方法可以看这篇&#xff1a;【前端性能】前端性能指标和测量方法总结 文章目录 前端性能优化网络方向HTTP缓存本地储存HTTP升级DNS预解析使用CDN 渲染方向HTMLCSSJS图片Webpack优化 前端性能优化 可以从网络请求方向和页面渲染方向进行优化&#xff1a…

鸿蒙一次开发,多端部署(六)自适应布局

针对常见的开发场景&#xff0c;方舟开发框架提炼了七种自适应布局能力&#xff0c;这些布局可以独立使用&#xff0c;也可多种布局叠加使用。 下面我们依次介绍这几种自适应布局能力。 拉伸能力 拉伸能力是指容器组件尺寸发生变化时&#xff0c;增加或减小的空间全部分配给容…

鸿蒙一次开发,多端部署(十一)设置应用页面

本小节以“设置”应用页面为例&#xff0c;介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口。 页面设计 为充分利用屏幕尺寸优势&#xff0c;应用常常有在小屏设备上单栏显示&#xff0c;大屏设备上左右分两栏显示的设计&#xff0c;设置应用页面设计如下。 观察…

不要取和所用方法名字相同的类

package 练习; import java.util.*; public class StringBuilder {public static void main(String[] args){Scanner scan new Scanner(System.in);String r scan.nextLine();StringBuilder x new StringBuilder(r);System.out.println(x);}} 奉上错误代码&#xff08;上面&…

qt5-入门-标签页部件QTabWidget-1

参考&#xff1a; C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt5.12 目录 效果实现Qt Designer操作代码addStretch()解释 效果 首页有三个按钮和最近文件列表。 拖动窗口&#xff0c;按钮和文件列表仍然处…

【C++】1600. 请假时间计算

问题&#xff1a;1600. 请假时间计算 类型&#xff1a;基本运算、整数运算 题目描述&#xff1a; 假设小明的妈妈向公司请了 n 天的假&#xff0c;那么请问小明的妈妈总共请了多少小时的假&#xff0c;多少分钟的假&#xff1f;&#xff08;提示&#xff1a; 1 天有 24 小时&…

关于UDS刷写的一些杂谈

最近在做CAPL编写UDS刷写上位机的工作&#xff0c;后续过来更新现在这里查个眼&#xff0c;以免后面忘记了。 下面放一些可能会用到的知识点&#xff1a; 1.一般的刷写流程如下所示&#xff1a; 红色标记代表为功能寻址。 预编程&#xff1a;10 01&#xff0c;10 83&#xf…

Linux——du, df命令查看磁盘空间使用情况

一、实现原理&#xff1a; df 命令的全称是Disk Free &#xff0c;显而易见它是统计磁盘中空闲的空间&#xff0c;也即空闲的磁盘块数。它是通过文件系统磁盘块分配图进行计算出的。 du 命令的全称是 Disk Used &#xff0c;统计磁盘有已经使用的空间。它是直接统计各文件各目…

HarmonyOS4.0—自定义渐变导航栏开发教程

前言 今天要分享的是一个自定义渐变导航栏&#xff0c;本项目基于鸿蒙4.0。 先看效果&#xff1a; 这种导航栏在开发中也比较常见&#xff0c;特点是导航栏背景色从透明到不透明的渐变&#xff0c;以及导航栏标题和按钮颜色的变化。 系统的导航栏无法满足要求&#xff0c;我们…