代码审计报告 下载本文

二. 审核对象 2.1 应用列表 本次代码审核的对象包括: 基本信息 应用系统名称 XX WEB应用 □ ASP □ ASP.NET(VB) 语言类型 □ ASP.NET(C#) □ PHP □ JSP(JAVA) □ 其它 ________________ 2.2 参与人员 参与人员 XXX XXX XXX 工作职责 联系方式 2.3 审计工具 工具一 工具名称 工具用途 相关信息 XXXX 工具二 工具名称 XXXX 工具用途 相关信息 … … 三. 现状分析 XX门户网站是由XX公司开发的基于XXX语言的网站,主要功能有产品及解决方案、合作伙伴、客户支持、工作机会、eDM以及贯穿多个模块的讨论组。根据模块的不同进行访问权限的控制。 整个网站采用唯一的访问入口default.aspx,所有模块均由系统根据权限和参数来进行控制。系统用户根据权限的不同分为超级管理员、模块管理员和用户三个级别。前台用户访问使用HTTP协议,后台管理员维护使用HTTPS协议,以保证通讯安全。 除了产品及解决方案、合作伙伴、讨论组、工作机会、客户支持五个模块进行了定制开发以外,整个网站的基础架构(如用户管理、权限管理、网站安全、文件上传下载等)均采用成熟的平台来构建。因此,最可能出现各种问题的地方也集中在各个定制模块当中,源代码审计的重点也集中在这几部分的代码上。 四. 审计结果 4.1 XX模块 4.1.1 XXXXXX 编 号 描 述 潜在威胁 所在页面 问题行数 修改建议 NS-SCA-XXXX-XX 4.1.2 XXXXXX 编 号 描 述 潜在威胁 所在页面 问题行数 修改建议 NS-SCA-XXXX-XX 五. 审计结论与建议 5.1 审计结果简评 通过对XX WEB应用进行为期XX天的源代码审计,我们得出如下结论: 底层平台采用了较为成熟的用户管理、权限控制、模块动态加载及访问控制技术,代码的编写基本符合编码规范的要求。但在部分功能模块上还存在一些问题,需要加于改进,主要体现在以下几个方面: ? XXXXXX … … ? XXXXXX … … 注意事项 5.2 脆弱性和缺陷编程意见 经过本次代码审计,也发现了被检测WEB应用存在的一些问题或缺陷,在本节我们会根据我们的经验来提出一些改进意见或建议,供WEB应用开发、管理人员参考。这部分内容对于后期的维护和扩展也有一定的指导意义。 ? 永远不要相信用户的输入 用户的输入主要包括以下几类: ? WEB访问请求中URL的参数部分; ? HTML表单通过POST或GET请求提交的数据 ; ? 在客户端临时保存的数据(也就是Cookie); ? 数据库查询。 ? 安全功能方面 ? 不要过于信任应用程序访问控制规则; ? 身份鉴别系统和会话管理可能会被绕过或是被篡改; ? 存储的敏感信息可能被抽取。 ? 其它: ? 服务器:安装最新的补丁,降低WEB应用运行用户的权限,适当设置应用所在目录的读写权限。 ? WEB服务器软件:不要开启目录浏览、写入、脚本资源访问等功能。 ? 错误处理:必须关闭详细错误显示,比较好的处理方式是开启错误重定向功能在出错后重定向到指定页面(如网站首页),并且这个页面不能把异常信息发送给客户端,如: ? 代码质量:主要是指可用性、可维护性、运行效率、重复代码量等等指标,高质量的代码不仅易于维护,而且运行效率高,因为当受到拒绝服务攻击时可以有效降低对系统的影响。好的代码依赖于合理的系统架构、优秀的程序编写人员和严谨的工作作风。 5.3 定期进行代码抽样审计 虽然我们在本次代码审计中发现了这些问题,并且相信这些安全隐患能够在短时间内解决。我们仍然建议您定期进行类似的安全抽样审计,保障不断发展的动态网络的持续安全。 5.4 系统上线前进行全面的测试 在网站新上线或是部分功能更新时,建议进行全面的测试,确保无问题后再在正式环境中上线使用。 5.5 制定完善的开发文档 应该为网站制定完善的开发文档,不建议在开发过程中实现开发文档要求以外的功能,应该注重并严格遵守以下几方面内容: ? 输入输出实现 ? 程序变更准则 ? 修改程序代码准则 ? 程序验证准则 ? 功能需求 ?