安全测试笔记二
2.6 加密
加密对应用程序的安全性非常重要,而且加密只有正确应用时才能提供真正的安全保障。
1,是否使用久经考验的加密方案,而不是自己开发加密技术
2,是否合适的密钥大小和应用科学的算法
3,是否采用措施保护密钥本身的安全
4,是否在必要和机密的地方才使用加密,而不滥用加密
常见加密漏洞 | |
漏洞 | 风险 |
使用自定义加密 | 相对于由系统平台提供安全策略而言,自定义的加密码更易被破解 |
使用简单算法或密钥 | 缩短破解时间 |
长时间使用同一加密 | 静态密钥容易被复制使用 |
2.7 参数操作
检查应用程序如何处理参数,包括在客户端和服务器传递的表单字段,查询字符串,coolie,Http头信息和视图状态。
1,是否验证所有的输入参数,包括隐藏字段
2,参数传递是否有敏感数据
3,是否加密含有敏感数据的参数
常见参数漏洞 | |
漏洞 | 风险 |
对输入参数验证不全 | 易受拒绝服务,跨站脚本和SQL注入攻击 |
未经加密的敏感数据作为参数传递 | 数据易在客户端被篡改 |
2.8 异常处理
检查应用程序处理异常的方法,确保在发生异常时系统不在客户端暴露过多的信息。
1,是否向客户端公开太多的错误提示,提示越多越准确,越易被利用。
2,是否在服务器端捕获和记录保存异常日志
3,是否采用统一的标准处理异常情况
4,是否自定义错误信息,代替系统自身暴露的错误提示
2.9 审核和日志
1,是否有审核和日志方案
2,是否审核失败的登录尝试
3,是否审核如授权,启用/禁用等关键操作
4,是否对所有的审核做日志记录
5,是否对日志记录做必要的保护,如定期备份
2.10 配置管理
检测应用程序如何处理重要的配置资料。
1,是否支持远程管理配置
2,是否采用强身份验证,如客户端证书
3,配置资料是否存储于WEB空间中(存储于WEB空间之外将有更高的安全性)
4,配置资料是否明文(如数据库配置文,连接字符串)
5,是否限制对配置资料的访问
6,是否区分应用程序管理员与配置管理员特权
常见敏感数据漏洞 | |
漏洞 | 风险 |
不安全的配置管理 | 未经授权的用户可重新配置应用程序 |
不安全的配置存储 | 可轻意获取配置资料 |
明文配置存储 | 未经授权的用户可访问配置资料,如帐号,密码,数据库连接符等 |
管理员太多 | 加大系统配置资料涉漏的风险 |
2.11 部署与基础结构
检验底层网络和主机基础结构提供给应用程序的安全设置,检验运行环境要求的所有限制,包括:网络拓朴结构,中间件应用服务器,数据库服务器,防火墙。
1,部署方案是否明确且合适(粗糙的部署方案将使整体安全性大打折扣)
2,部署所需的各支持软件及版本是否清晰
3,应用服务器部署设置是否安全(各种web服务器都有对应的安全设置指导)
4,是否有必要的硬件或软件防火墙
2.12 Web浏览端
除了系统本身在设计和程序实现要考虑安全性外,Web浏览器端的设置也会影响到安全性。
1,是否设置了自动完成功能,如表单内容,地址
2,是否设置了自动保存密码
3,是否设置了自动清理浏览临时文件
4,是否设置自动保存网址
5,未经登录或授权的系统内部地址是否可以直接打开浏览
6,是否存在导航失误,如浏览器的前进,后退,刷新等命令导致错误的跳转
7,如果系统能在浏览器各项设置为默认的情况下正常运行,则可以考虑调高浏览器的安全设置。
如禁用cookie,禁用脚本等设置。
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友