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

简介: DDOS是一类比较常见的针对用户系统的攻击类型,通过利用协议漏洞、或者直接发起大规模请求等方式耗尽服务资源,导致正常请求无法得到处理。常见的DDOS攻击类型:传输层攻击:比较典型的攻击类型包括SYN Flood攻击、连接数攻击等。这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的。主要在SLB侧进行防护。Connection Flood:是典型的利用小流量冲击大带宽网络服务的攻击方式,这种攻

DDOS是一类比较常见的针对用户系统的攻击类型,通过利用协议漏洞、或者直接发起大规模请求等方式耗尽服务资源,导致正常请求无法得到处理。

常见的DDOS攻击类型:

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

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

网关黑白名单

ASM的网关支持配置黑白名单,目前支持三个字段:

最常用的是配置IP黑名单,可以封禁一些出现频率较高的恶意IP。这种方式最为简单、直接。能够有效防护Connection Flood和HTTP Flood攻击。

您还可以根据实际情况,配置HTTP域名和Port黑白名单来缩小攻击面。

具体配置方式请参考:https://help.aliyun.com/document_detail/467886.html

说明:ASM网关黑白名单支持动态加载,并不需要网关重启。您可以随时配置开启网关黑白名单,不会导致正常流量被中断。

授权策略

如果黑白名单不能满足您的需求,您可以考虑配置授权策略。

授权策略支持更多字段,能够对请求进行更多限制。比如只允许对/productpage路径使用GET方法调用;或者禁止使用POST方法访问/details路径,甚至可以限定只有携带了指定的JWT才可以访问。

关于授权策略的详细使用方法,请参考:https://aliyuque.antfin.com/alibabacloudservicemesh/product-and-engineer/vf0nzcf68vzhpxr5

说明:授权策略同样支持动态加载规则比黑白名单更加丰富。配置中的路径、域名等字段只支持前缀、后缀和精准匹配,暂时不支持正则匹配。

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可以轻松的实现正则匹配。

package istio.authz
import input.attributes.request.http as http_request
# 如果path路径中包含418,或agent包含curl,就拒绝该请求。
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攻击模式?
【10月更文挑战第12天】如何识别DDOS攻击模式?
86 18
|
30天前
|
网络协议 安全 网络安全
DDoS攻击有哪些常见形式?
【10月更文挑战第13天】DDoS攻击有哪些常见形式?
149 14
|
30天前
|
安全 网络协议 网络安全
DDoS攻击的模式
【10月更文挑战第13天】DDoS攻击的模式
52 12
|
23天前
|
监控 安全 JavaScript
DDoS攻击趋势令人担忧,安全防御体系构建指南
DDoS攻击趋势令人担忧,安全防御体系构建指南
45 1
|
4天前
|
域名解析 网络安全
被DDOS攻击,应该做什么?
一直以来,网络上关于ddos攻击的讨论都围绕着ddos攻击的防御方式以及攻击种类。但是当网站还是不幸中招的时候,很多网站管理者都不知道应该做什么才能尽量减少损失,这无形中也加大了网站的受害程度。
19 0
|
30天前
|
人工智能 安全 网络协议
如何防御DDoS攻击?教你由被动安全转变为主动安全
如何防御DDoS攻击?教你由被动安全转变为主动安全
252 0
|
30天前
|
网络协议 网络安全
阿里云国际该如何设置DDoS高防防护策略?
阿里云国际该如何设置DDoS高防防护策略?
|
30天前
|
域名解析 弹性计算 负载均衡
通过联合部署DDoS高防和WAF提升网站防护能力
通过联合部署DDoS高防和WAF提升网站防护能力
|
1月前
|
监控 网络协议 网络安全
识别DDoS攻击
【10月更文挑战第12天】识别DDoS攻击
55 16
|
1月前
|
监控 安全 网络协议
DDoS攻击
【10月更文挑战第12天】DDoS攻击
77 12