如何对Web Application进行安全性评估

如何对Web Application进行安全性评估呢?简单点说就是利用合适的工具,模拟网络用户对Web Application(包括Web Server)进行攻击,对一些潜在的安全弱点进行测试,找出Web Application的Weaknesses,根据严重程度进行评估。

具体进行Web Application的测试时要全面系统。下面的一些步骤可以用来发现被评估程序的安全漏洞和弱点。

1. 程序探索 - 分析程序的技术,架构和功能

a. 标注操作系统,Web服务器版本好,和其它应用程序相关技术

b. 使用专业工具进行自动服务器扫描,标注已知的安全漏洞

c. 标注程序管理功能,比如程序中的隐藏页面

d. 标注程序中所有已知的URLs,建立站点测试地图

e. 标注操作系统中Web根路径

f. 标注并且用文档记录各个级别用户能使用的所有程序功能

g. 确定SSL的配置和允许的加密密码

2. 原代码详审

a. 如果可能在本地建立原代码环境

b. 找出程序中不需要的注释和其它信息,有可能给攻击者提供一些程序或攻击目标的信息。

c. 找出不需要的外部链接,可能会把攻击者引到某些攻击路径

d. 确定动态页面是否生成一些这样的代码,攻击者可以通过已知的漏洞利用这些代码来访问

e. 了解URLs,确定输入字段中要传输的数据

f. 找出程序页面中的隐藏标签,确定它们是否能被利用来传输不希望的数据到服务器

3. 输入验证

a. 确定服务器端流程处理程序是否由通过的特定meta字符组成

b. 查找服务器端程序可能的”缓冲溢出”条件

c. 测试错误输出信息是否提供站点设计信息(如目录名,SQL语句等)

d. 确定是否HEX或Unicode值能被替换为ASCII字符来获取服务器端程序的安全

e. 确定“Server-side includes”是否能被用来在目标系统上执行任意命令

f. 修改隐藏标签和cookies,确定是否服务器端程序正确地验证这些数据

g. 试着在程序页面中插入客户端脚步代码,如JavaScript

h. 试着通过服务器端程序执行后端数据库SQL调用

i. 在所以的输入字段测试SQL注入攻击

j. 在所以的输入字段测试通过数据插入执行人员命令

4. 会话管理 - 使用会话管理中公开的漏洞,测试在程序中模拟其它用户

a. 验证会话管理中用户会话状态的维护

b. 验证会话ID被加密了,没有被增加,被预见,或者能被利用来攻击

c. 分析会话超时,看会话ID是否正确过期

d. 强力攻击login页面,或者会话ID,试图获得一个有效用户来访问。

e. 如果会话ID是通过cookie来传递的,确保会话ID在客户端没有被持久化

f. 禁止客户端cookie支持,观察是否任何会话数据通过URL被传递


在每个测试阶段,测试者都需要测试两个攻击场景:未认证用户和认证用户。认证用户能执行任何未认证用户能执行的功能,并且根据用户权限还可以


引用通告: 查看所有引用 | 我要引用此文章
Tags:
收藏到网摘:
评论: 0 | 引用: -1 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.