风险评估-代码审计技术方案.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码审计技术方案 编号 编制 审核 批准 密级 发布日期 变更记录 版本 修订时间 修订人 修订类型 修订章节 修订内容 ★修订类型分为:A-ADDED,M-MODIFIED,D-DELETED 注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯性 测试工具 反编译java类 如果项目中未提供所有java源代码,只提供编译后的class文件,可以运行jd-gui,选择菜单File---Open File,对class文件进行反编译 选择class文件或者jar包,点击打开按钮,即可查看反汇编后的java源代码 Eclipse环境审计 使用Eclipse的Import功能将程序代码导入workspace,打开任一java源文件,选择Source Analyse菜单下的条目进行关键方法搜索,搜索结果在窗口下面显示,然后进行人工分析。 认证管理 图形验证码 用户登录过程是否有图形验证码保护,防止自动化程序猜测密码 验证码复杂度是否符合要求(干扰、变形) 验证码在使用过一次后是否会自动刷新 验证码明文是否会被传送给客户端(页面或Cookie) 验证码是否在被保护的操作进行前来验证(无验证或无效验证) 认证实现 用户认证过程中,用户名和密码合法性的检查方式是否符合要求 较安全的做法为先校验验证码,再检查用户名,最后比对密码的密文 是否具备用户注销功能 用户注销时是否清理了当前用户会话 是否会将密码作为重定向的一部分进行传送 在统一认证SSO模式下,有的实现并非使用Token来交换认证信息,而是通过客户端直接传递账号、密码,这种情形下有可能在URL中直接传递明文密码。 认证过程中对于用户名错误和密码错误提示是否相同 统一用户名和密码错误提示,可以降低账号、密码被猜解的风险 检查用户认证页面是否对认证失败的次数进行了限制 授权管理 授权实现 应用的用户是否具有角色的区分 明确用户的角色定义、授权访问的范围,分析哪种情况下可能会导致越权 应用是否具备统一的(或独立)的权限控制模块 大部分的大型应用都会采用统一的权限控制模块 应用的权限控制模块是否存在漏洞 页面/功能是否使用了权限控制(模块) 识别出需要和无需权限控制的页面/功能,逐一进行验证。验证过程中需要考虑到用户的角色划分。 页面的权限控制是否正确 部分应用的权限控制(模块)的使用上存在缺陷,攻击者可能通过一些隐蔽的途径绕过鉴权,访问非授权资源 授权管理 高权限用户分析 分析系统高权限用户(例如:管理员用户)的分配情况及密码复杂度等 默认用户分析 分析系统是否存在默认用户、密码,密码复杂度等。 输入/输出验证 SQL注入防护 是否存在全局过滤器 过滤器配置、过滤函数等 过滤器是否可以过滤所有查询请求 请求是否都按要求经过过滤器处理 过滤器的过滤是否符合要求 初期检查可以依据PHPIDS的规则库,后期根据收集的情况予以补充 是否使用了预查询机制 预查询是指在将数据传入SQL语句前明确指定传输数据的类型,以执行必要的转换。在Java中预查询的调用方式为prepareStatement。 是否存在SQL语句拼接 某些特殊的查询(特别复杂的组合查询)难免用到SQL语句拼接,遇到这种情况,就需要检查拼接是否有可能导致注入。 跨站攻击防护 是否存在全局XSS过滤器(论坛的过滤库) 过滤器的过滤是否符合要求 是否存在需过滤和不需过滤两种输出,页面是否控制恰当(*) 某些情况下可能存在两种输出,文本输出和富文本(HTML)输出,要强制文本输出,只需要调用HTMLEncode()对内容进行编码后输出即可;但是富文本本身就需要使用html来进行格式的控制,简单的编码就无法使用,这时需要在此类内容从客户端输入(用户提交)或输出给客户端(显示)时进行危险代码过滤。 输出的时候是否进行编码(HTML、JS) CSRF攻击防护 Web表单是否使用了Token(或验证码) Web表单提交(成功或不成功)后token(或验证码)是否重置 检查Token的生成算法是否安全 可以从测试环境来检查生成的验证码是否符合复杂性要求,如是否有干扰线/点、字符变形等。 检查服务器获取Web表单参数值的方式 如果在操作时不严格区分GET和POST,在没有Token(或验证码)的辅助下很容易导致CSRF的发生。 文件上传防护 是否限制了上传文件的扩展名 以白名单形式指定允许上传的扩展名;以黑名单形式指定禁止上传的文件名 是否对上传文件进行了重命名操作 重命名操作是否安全,防止重命名过程中产生二次风险 是否对上传文件的存放位置禁止了脚本执行 文件下载防护 是否存在客户端指定文件名的下载功能 直接指定文件名的下载是否允许客户端指定路径 对于不同用户的文件在下载时是否进行了权限控制 文件下载功能中是否对用户的权

文档评论(0)

LoneWorf + 关注
实名认证
内容提供者

技术方案编写。

1亿VIP精品文档

相关文档