如何使用ASM防护常见的DDOS攻击

简介: DDOS是一类比较常见的针对用户系统的攻击类型,通过利用协议漏洞、或者直接发起大规模请求等方式耗尽服务资源,导致正常请求无法得到处理。ASM网关支持很多7层的功能,可以配置一些高级规则来过滤恶意流量,本文按照从简单到复杂的顺序,逐步介绍防护措施。

阿里云服务网格(简称ASM)是一个统一管理微服务应用流量、兼容Istio的托管式平台。通过流量控制、网格观测以及服务间通信安全等功能,服务网格ASM可以全方位地简化您的服务治理,并为运行在异构计算基础设施上的服务提供统一的管理能力。
DDOS是一类比较常见的针对用户系统的攻击类型,通过利用协议漏洞、或者直接发起大规模请求等方式耗尽服务资源,导致正常请求无法得到处理。
常见的DDOS攻击类型:

  • 传输层攻击:比较典型的攻击类型包括SYN Flood攻击、连接数攻击等。这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的。主要在SLB侧进行防护。
  • Connection Flood:是典型的利用小流量冲击大带宽网络服务的攻击方式,这种攻击的原理是利用真实的IP地址向服务器发起大量的连接。并且建立连接之后很长时间不释放,占用服务器的资源,造成服务器上残余连接(WAIT状态)过多,效率降低,甚至资源耗尽,无法响应其他客户所发起的链接。
  • HTTP Flood攻击(即CC攻击)、游戏假人攻击等。这类攻击占用服务器的应用处理资源,消耗服务器计算资源,从而达到拒绝服务的目的。

ASM网关支持很多7层的功能,可以配置一些高级规则来过滤恶意流量,下面按照从简单到复杂的顺序,逐步介绍防护措施:

网关黑白名单

ASM的网关支持配置黑白名单,目前支持三个字段:
image.png
最常用的是配置IP黑名单,可以封禁一些出现频率较高的恶意IP。这种方式最为简单、直接。能够有效防护Connection Flood和HTTP Flood攻击。
您还可以根据实际情况,配置HTTP域名和Port黑白名单来缩小攻击面。
具体配置方式请参考:https://help.aliyun.com/document_detail/467886.html
说明:ASM网关黑白名单支持动态加载,并不需要网关重启。您可以随时配置开启网关黑白名单,不会导致正常流量被中断。

授权策略

如果黑白名单不能满足您的需求,您可以考虑配置授权策略。ASM控制台提供了友好的配置界面,还是比较方便的。
image.png
授权策略支持更多字段,能够对请求进行更多限制。比如只允许对/productpage路径使用GET方法调用;或者禁止使用POST方法访问/details路径,甚至可以限定只有携带了指定的JWT才可以访问。
关于授权策略的详细使用方法,请参考:https://istio.io/latest/docs/reference/config/security/authorization-policy/
说明:授权策略同样支持动态加载规则比黑白名单更加丰富。配置中的路径、域名等字段只支持前缀、后缀和精准匹配,暂时不支持正则匹配

OPA插件

ASM目前支持对指定命名空间的工作负载使用OPA进行鉴权。支持用户自定义OPA策略。开启OPA策略后,用户可以自行编写Rego脚本。Rego是一种高级的声明式的语言,是专门为OPA建立的,支持了丰富的内置函数。自定编写Rego脚本为鉴权提供了极大的灵活度,可以满足您绝大部分的定制配置,比如支持正则匹配请求中的某些字段。
如何在ASM中开启OPA插件请参考:https://help.aliyun.com/document_detail/308209.html
以下Rego表示一个简单的RBAC控制策略:

package istio.authz
import input.attributes.request.http as http_request
allow {
    roles_for_user[r]
    required_roles[r]
}
roles_for_user[r] {
    r := user_roles[user_name][_]
}
required_roles[r] {
    perm := role_perms[r][_]
    perm.method = http_request.method
    perm.path = http_request.path
}
user_name = parsed {
    [_, encoded] := split(http_request.headers.authorization, " ")
    [parsed, _] := split(base64url.decode(encoded), ":")
}
user_roles = {
    "guest1": ["guest", "admin"],
    "admin1": ["admin"]
}
role_perms = {
    "guest": [
        {"method": "GET",  "path": "/productpage"},
    ],
    "admin": [
        {"method": "GET",  "path": "/productpage"},
        {"method": "GET",  "path": "/api/v1/products"},
    ],
}

OPA可以提供比黑白名单和授权策略更强大的防护能力。比如恶意流量的path或者请求参数中有某些特殊字符,并且出现位置不固定,使用黑白名单和授权策略则无法完成这个任务。Rego可以轻松的实现正则匹配。
*示例:如果path路径中包含418,或agent包含curl,就拒绝该请求。*

package istio.authz
import input.attributes.request.http as http_request
package istio.authz
import input.attributes.request.http as http_request
allow {

not contains(http_request.headers["user-agent"], "curl")
not contains(http_request.path, "418")

}

OPA的优点是更加灵活,但是需要使用者有一定的Rego语言基础。但是随着OPA在云原生领域越来越普及,相信会有越来越多的用户使用。
OPA的缺点:如果用户没有接触过Rego,有一定的学习成本;如果用户第一次在ASM控制台开启OPA,需要重启一下业务pod。如果攻击已经出现,这个可能会有流量风险。当前ASM团队也在持续优化OPA策略,会朝着流量零损失的方向持续改进。

目录
相关文章
|
1天前
|
监控 负载均衡 安全
什么是DDoS攻击及如何防护DDOS攻击
通过上述防护措施,企业和组织可以构建全面的DDoS防护体系,有效抵御各类DDoS攻击,确保网络和服务的稳定运行。
22 10
|
25天前
|
数据采集 边缘计算 安全
高防CDN防御ddos攻击的效果怎么样
如在线购物、支付及娱乐。然而,随着企业价值和知名度提升,它们可能遭受竞争对手或黑客的DDoS攻击,即通过大量僵尸网络使目标服务器过载,导致服务中断,造成经济损失和声誉损害。针对这一挑战,天下数据推出的高防CDN不仅具备传统CDN的加速功能,还能有效抵御DDoS攻击,保护企业网络安全。
44 0
|
2月前
|
网络协议 安全 网络安全
DDoS攻击有哪些常见形式?
【10月更文挑战第13天】DDoS攻击有哪些常见形式?
237 14
|
2月前
|
安全 网络协议 网络安全
DDoS攻击的模式
【10月更文挑战第13天】DDoS攻击的模式
73 12
|
1月前
|
网络协议 安全 物联网
网络安全涨知识:基础网络攻防之DDoS攻击
网络安全涨知识:基础网络攻防之DDoS攻击
72 0
|
2月前
|
监控 安全 JavaScript
DDoS攻击趋势令人担忧,安全防御体系构建指南
DDoS攻击趋势令人担忧,安全防御体系构建指南
70 1
|
2月前
|
网络协议 安全 网络安全
如何识别DDOS攻击模式?
【10月更文挑战第12天】如何识别DDOS攻击模式?
113 18
|
2月前
|
监控 网络协议 网络安全
识别DDoS攻击
【10月更文挑战第12天】识别DDoS攻击
72 16
|
2月前
|
监控 安全 网络协议
DDoS攻击
【10月更文挑战第12天】DDoS攻击
116 12
|
2月前
|
人工智能 安全 网络安全
基于阿里云平台帮助出海企业应对DDoS攻击
基于阿里云平台帮助出海企业应对DDoS攻击
下一篇
DataWorks