如何做一款好的waf产品(2)

2021-08-11 14:45:55 浏览数 (1)

Web系统通常和其他相关系统一同使用(如数据库系统等)。这就使得攻击者将攻击行为伪装成一种看上去无害的形式(譬如通过编码变换)提交进来以攻击后台的其他系统。由于后台系统的种类繁多,WAF必须识别出针对这些系统的攻击,这为WAF的开发带来了很大的难处,为了使WAF的规则可以有效的抵御这些攻击,WAF必须发现出这些攻击并将变换的输入数据还原成正常的数据。

WAF支持以下的数据还原方法

1. URL解码 (如%XX)

2. 以空字节结尾的字符串(Null byte string termination),如C风格字符串。

3. 路径中的本级目录引用 (如使用 /./ 或与之等价的编码字 符串)。

4. 路径中的上级目录引用(如使用 /../ 或与之等价的编码字 符串)。

5. 大小写混合使用(Mixed case),如SeLeCt )。

6. 大量使用空格字符。

7. 注释移除(如将DELETE/**/FROM 改为 DELETE FROM)。

8. 将""(Windows下 的)改为"/"

9. 对IIS制定的Unicode编码进 行转换 (%uXXYY)。

10. 对HTML中的一些特殊定 义的字符进行转换,比如c,这个其实就是HTML代码里用ASCII代码表示字符的方式c代表的就是字符为99的ASCII字符,即“c”,&quot;(引号), &#xAA;(十六进制表示的字符),关于html中特殊字符请见一篇文章<html中特殊字符>:地址:http://sailinglee.javaeye.com/blog/446898)

11. 转义字符(Escaped characters) (如t, 01, xAA, uAABB)。

黑名单机制

WAF的黑名单定义采用了下述的机制:

1. 基于签名(Signature-based), 签名的方法通常采用关键字或是正则表达式对流量内容进行检查。(适应于业务单一场景,不采用)。

2. 采用基于规则(Rule-based),同签名方法很相似,但是规则可以在逻辑上更复杂(如支持AND 、OR),同时也可定义对内容的某一特定部分进行检查。

白名单机制

1.主动模式下除了那些被相关规则判别出是有效和安全的流量可以通过外,其他 所有的流量都默认禁止通过。

2.这种方法在处理效率上比较高(因为允许通过的流量的特征比较少,所以对流量进行检查时使用的检查规则较少,同时也更安全,

但其缺点在于需要对受保护的系统有较深入的了解以决定哪些流量是允许的。这种主动模式在Web应用经常变化的情况下维护起来比较困难。

3. 主动模式下其配置可以自动修改 (如采用学习模式),自动配置需要如何来维护 (自动 手工,还是完全自动两种模式。

4. 升级时WAF平滑升级。

5.主动模式可以采用严格的内容检查规则方法、统计分析方法或是基于异常检测的神经网络方法。

waf规则

1. 产品在出厂时具有对已知攻击所定义的策略库。

2. 该规则库默认支持owasp十大漏洞基础防护策略。

3. 策略库的升级、变更生效时间无延迟。

4. 策略灵活可选择,否则如果所有的规则都进行检查,对性能影响太大。

API 接口

是否支持API接口允许自开发插件?

保护技术Protection Techniques

这一部分列出了使用普通的保护机制无法达到的一些特定的安全需求,这篇文 章无法描述出所有的Web安全问题,

这些内容可以从我们的另外的一个有关各种威胁分类的项目中找到http://www.webappsec.org/projects/threat/.

限制暴力破解攻击

1. 可以检测到HTTP访问控制中的暴力破解攻击(HTTP status code 401).

2. 可以检测到应用中任一部分的暴力破解攻击(对同一资源的大量访问)。

3. 可以为不返回401错误的应用定制防暴力破解攻击规则 (probably with a regular expression applied to a response part).

4. 可以采用限制或阻止攻击者的手段。

5. 可以检测到Session管理机 制中的暴力破解攻击(从单一IP或某个IP段发出的Session太多)。

6. 可以检测到自动客户端(Session请求 的频率过高)。

Cookie保护方法Cookie Protections Measures

1. 对cookie进行签名, 防止在客户端对之进行修改。

2. 对cookie进行加密以隐藏其中的内容。

3. 对cookie进行完全隐藏(cookie机制虚拟化:发送到客户端的每一个cookie都是用唯一ID)。

4. 是否可以为每一个应用定制保护规则?一个WAF可能保护了多个Web应用,每个Web应用都有自己的特点,针对每个应用制定不同的cookie保护方法。

限制会话攻击

1. 为了完全接管应用中的session处理机 制,需要支持下面的机制:

a. Cookies

b. Form parameters

c. URI 重写

2. session IDs机制,session IDs可以结合到身份验证机制。

3. 是否可以为每一个应用定制保护规则。

保护表单中的隐藏域

防止表单中隐藏域的值被篡改。

URL加密和参数保护

URL和参数的加密以防止它们被任意的访问(如强制访问、session劫持等),cryptographic URL Encryption :这种方法很好,有两个层面,一个是URL的加密,要同Session等一次性的机制结合起来,使

得每次访问的目标都要通过Web应用的一个统一解密入口才能到达真正的URL,还有一个是参数的加密,可以有效的 防止暴力猜测。

严格的请求顺序控制

是指WAF严格的监视请求的顺序,只有那些可能的后续请求才能被允许。(譬如说某个站点有ABC三个网页,A中有一个链接到B,但是没有到C的直接链接,那么在 访问A之后马上访问C就是一种异常的访问,有可能是一种攻击),例如阿里云waf,防止黄牛刷票。

0 人点赞