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

2021-08-11 14:46:04 浏览数 (1)

唯一的事务ID

为每一个HTTP事务(一个事务定义为一个请求和其相应的响应)分配一个唯一的ID并在包括在日志信息里面。

access访问日志

访问日志是指对通过WAF的所有事务的记录。访问日志通常是文件的形式、数据库。

1. 访问日志可以导出至文件。

2. 支持常用的日志格式

3. 访问日志的格式可以定制。

4. 访问日志是否可以发送至Syslog服务器。

5. 访问日志是否可以定时的发送至日志服务器 (如通过 FTP, SFTP, WebDAV等)。

可疑事件日志和通知

事件日志是指对那些可疑的事务的记录。事件日志通常是文件,也可以保存在数据库中。

WAF可以支持下面的事件通知方法:

1. 邮件

2. Syslog

3. SNMP Trap

4. OPSEC Event Logging API (ELA - http://www.opsec.com/intro/sdk_overview.html#ela)

5. 使用 HTTP(S) push进行通知。该技术通过延长response的时间保持与客户端的TCP连接,类似websocket

这样就可以在其中加入通知内容提醒客户端,具体的方法参考HTTP PUSH技术原理。

完整的事务日志

一个完整的事务日志必须包括HTTP请求及其响应。重点是请求的body部分,响应的body部分可选。完 整的事务日志有以下的要求:

1. 有对事务日志格式的描述性文档。

2. 日志的详细程度应该可以定制。 如:允许用户只记录request的body部分而不记录response的body部分,应该只对那些可疑的事务进行详细的记录,而对那些非可疑的事务只进行有限详细的记 录。

3. 可以指定哪些事务需要记录,譬如说:只记录可疑的事务,或是只记录带参数的动态页面事务。

4. 对于支持Session机制的WAF来说应该记录包含可疑事务的整个Session中的访问数据。

日志访问

对日志的访问有如下要求:

1. 日志可以定期通过FTP 或SCP导出为文件。

2. 日志可以直接通过访问数据库得到,数据库的结构需要有详细的文档描述。

3. 日志可以通过提供的API访问获得(取pull)。

4. 提供API支持开发插件在消息到来时即时获得 (推push)。

5. 日志可以签名为thwart tampering,水印。

如果支持 Syslog 需要评价以下几个方面:

1. 支持基于UDP的Syslog。

2. 支持面向连接TCP的Syslog。

3. 在面向连接的Syslog中应该支持SSL来保护传输内容。

4. 当使用SSL时,客户端和服务器端的证书应该可以还有其他的作用。

5.日志留存时长。

5.1. 可以设置日志保存的最大期限,对超出这个期限的日志进行删除。

5.2. 可以设置日志的最大存储空间,当达到空间限制值时删除最早的日志。

5.3. 支持多中日志留存规则(如违反规则的日志可以保存的时间长一些)。

5.4. 在删除日志之前可以进行自动的备份。

敏感数据处理

1. 可以从日志中删除敏感数据

2. 可以设置哪些是敏感数据

3. 可以自动识别哪些是敏感数据吗, 可以定制。

4. 使用哪些模糊化的处理方法 (一个简单的办法是使用替换方法,如替换成*,或者使用一种可以还原的转换方法,允许特定的人员在必要时进行还原)

敏感数据的处理是对日志的一个高要求,如用户提交的银行账号、密码等,这些如果记录在日志中会存在很大的 风险,所以可以将其转换为*,或采用可逆的加密机制,在可控的情况下进行还原。

事件报告

由于分析员可能会经常查看事件日志,需要用报告来跟踪综合的安全等级

1. 生成可理解的事件报告,支持哪些过滤条件。

a. 日期和时间。

b. IP地址范围。

c. 事件类型。

d. 其他(请一一指出)。

2. 报告可以随时生成。

3. 报告可以定期生成 (如:每日或每周)。

报告的显示

定制的目的是使报告看上去和公司的其他文档格式一致

1. 显示相关定制 (如色彩、logo等)。

2. 内容定制 (目标群体如主管、 开发人员等)。

3. 报告中包含了适合的图表。

0 人点赞