唯一的事务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. 报告中包含了适合的图表。