本篇文章是Cloud Computing 基础系列的最后一篇。通过参加我们的Cloud Computing ,进一步提高您的技能。 认证课程.
开发生命周期中最重要的一个方面就是了解如何确保运行网络应用程序的托管环境的安全。每当我们部署网络应用程序时,我们的服务器都允许外部系统通过特定端口进入连接。服务器端口可识别传入和传出的网络流量。
要了解服务器的漏洞,我们需要考虑通信是在哪里进行的。
![](https://www.linode.com/wp-content/uploads/2023/10/Server_Communication_Reference-1064x559.png)
在上面的例子中
- 客户端(左),通常是网络浏览器,向服务器发送 HTTP 请求。
- 服务器接收 HTTP 请求并进行处理。
- 通常由域名注册商管理的一个或多个域名服务器会对域名进行查询。
- 服务器检索或生成所请求的内容,并向客户端发送 HTTP 响应。
- 客户端接收响应并渲染内容。
在此过程中,在某些情况下,连接到我们服务器的可能是恶意计算机,它们希望利用我们服务器配置中的弱点。服务器被利用的原因有很多。
让我们来看看一些常见的服务器攻击。
分布式拒绝服务攻击(DDoS)
在分布式拒绝服务(DDoS)攻击中,攻击者试图用大量 HTTP 请求使目标服务器超载。这也被称为 HTTP 泛洪攻击。请记住,每次我们发出 HTTP 请求,我们的服务器都要负责响应请求。如果我们的服务器没有足够的资源来满足同时传入的大量请求,网络服务器就会停滞或崩溃。接下来,每个后续 HTTP 请求都会失败,导致网络服务器无法访问。
DDoS 攻击一般通过僵尸网络进行。僵尸网络是由感染了恶意软件(也称为恶意软件)的设备组成的网络,专门用于向目标机器发出大量 HTTP 请求。
![](https://www.linode.com/wp-content/uploads/2023/10/HTTP_Flood_Attacks_Reference-1064x559.png)
上图概述了 HTTP 泛洪攻击的原理。在右侧,客户端向服务器发出请求,但由于有多个机器人也向服务器发出请求,从而耗尽了服务器的资源,导致客户端无法连接服务器。
目录遍历
目录遍历是另一种常见的漏洞利用方式,一般针对配置较差的服务器。所有网络文件都直接从网络根目录提供。通过 HTTP 网络请求连接到我们服务器的用户只能访问网络根目录中的特定文件,而无法浏览或执行目录结构中更高文件夹中的文件。如果出现这种情况,就意味着攻击者可以访问关键的系统和配置文件,并对服务器造成严重破坏。
![](https://www.linode.com/wp-content/uploads/2023/10/Directory_Traversal_Reference-1064x558.png)
上图演示了这种攻击的原理。攻击者使用修改过的 URL 提交恶意 HTTP 请求,其中包括系统或配置文件的目录路径。服务器会处理请求,由于服务器配置或应用程序设计不当,服务器会检索系统文件并显示其内容或源代码。
暴力攻击
暴力破解攻击,也称为字典攻击或账户接管,是另一种非常常见的攻击方式,恶意代理试图通过这种方式进入服务器上的受限访问点。这种受限访问点通常是服务器的 root 账户或其他具有 root 权限的账户。攻击者使用恶意软件自动提交大量登录尝试,并根据字典单词自动生成密码和用户名组合。
![](https://www.linode.com/wp-content/uploads/2023/10/Brute_Force_Attack_Reference-1064x317.png)
上图展示了这种攻击的原理。左图中,攻击者使用恶意软件从单词表中生成的单词重复提交登录尝试。如果找到正确的组合,攻击者就可以访问服务器。即使服务器只使用 SSH 密钥身份验证,暴力破解攻击也会非常有效。
确保服务器安全
下面是一些在配置和保护服务器时需要考虑的最佳做法:
- 使用最新的安全补丁和更新,及时更新操作系统和软件。
- 禁用或阻止任何不必要的服务或端口,以尽量减少攻击面。
- 限制对服务器的访问,只允许授权用户连接服务器并与之交互。
- 使用 SSL 或 TLS 等加密协议确保网络通信安全。
- 制定强大的备份和灾难恢复计划,最大限度地减少数据丢失和停机时间。
- 使用高强度密码和多因素身份验证,防止未经授权的访问。
- 使用防火墙控制进出网络流量。
- 监控服务器日志和网络流量,查找可疑活动。
- 使用入侵检测和防御系统来识别和防止攻击。
- 实施文件系统权限和访问控制等安全措施,防止未经授权访问敏感数据。
参加我们的 Cloud Computing 入门认证课程,掌握在云计算领域取得成功的技能。
注释