随着互联网的飞速发展,网络安全问题日益突出。作为公司安全专员,我有幸接触并比较了AWS和OCI这两种服务器的WAF(Web Application Firewall)防御思路。这两种服务器业务场景涉及广泛,WAF防御策略也各有千秋。
在这篇文章中,我将为大家简单介绍这两种国际一线WAF的异同点,并为读者提供部分文档指引,以期帮助大家更好地理解和应用这两种防御策略。
笔者是一名SE,因为公司业务场景涉及AWS和OCI两种服务器,需要为两类服务器提供WAF防御。比较完整的体会了两家公司的WAF防御思路。算是比较难得的经验,所以分享给大家。
对比项 | AWS | OCI |
---|---|---|
执行结构 | 线性 | 线性 + 并行 |
托管规则可见度 | 对细节进行了保密 | 非常详细(可精确到CVE,或特定类型威胁) |
托管子规则控制性 | 不可关闭,只能选择拦截或者记录 | 通过阈值权重调整至不同强度直到关闭 |
托管规则是否可复用 | 不支持 | 支持 |
是否支持分层设计 | 支持 | 不支持 |
入门难度 | 复杂,调整困难,托管不透明且高度集中 | 较易:无脑开推荐标签即可 |
问题 | 托管只能选择 | |
托管规则数量 | 10个付费1个免费 | 684非常精细,推荐规则默认够用 |
高级语法 | JSON语法:可以表达复杂逻辑但不易用,语法检查等体验糟糕 | JMESPath可以表达常见判断需求 |
DDos服务 | 基础免费,高级付费 | 完全免费 |
OCI WAF 配置可以参考这里的文档:
https://docs.oracle.com/en-us/iaas/Content/WAF/home.htm
AWS 提供了可视化规则编辑,和JSON在线编辑两种模式。直接一个标签就可以切换。
JSON结构可以实现的比较复杂,多层嵌套。但是其校验和提示能力非常糟糕。
比如下图,及对应的JSON结构。
{
"Name": "example-rule-01",
"Priority": 0,
"Action": {
"Block": {}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "example-rule-01"
},
"Statement": {
"SizeConstraintStatement": {
"FieldToMatch": {
"QueryString": {}
},
"ComparisonOperator": "GT",
"Size": "0",
"TextTransformations": [
{
"Type": "NONE",
"Priority": 0
}
]
}
}
}
付费规则1种:反机器人规则。
免费规则10种如下图:
OCI 拥有大量的托管规则,大量开启会大量冲突,所以官方的建议是:默认开启 推荐标签 + 你特别在意(面临的最大风险)的规则即可:
直接到这里去学习即可,OCI WAF 使用 JMESPath语言作为规则条件语言,表达能力也很强:
https://docs.oracle.com/en-us/iaas/Content/WAF/Concepts/understanding_conditions.htm#understanding_conditions
OCI的托管规则,总和达到684(2023年12月30日),我只能说太丰富了,由于OCI的工程师一直在追各种漏洞,所以他们会一直增加规则。
每个WAF最多可以加100条规则。
https://docs.oracle.com/en-us/iaas/Content/WAF/Reference/protectionruleids.htm#Supported_Protection_Rules