代码审计服务技术白皮书v1.1_第1页
代码审计服务技术白皮书v1.1_第2页
代码审计服务技术白皮书v1.1_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、共享学问共享欢快卑微如蝼蚁、坚强似大象专业效劳技术白皮书代码审计效劳版本变更记录时间2022/5/21版本V1.0说明文档创立、丰富内容修改人专业效劳部名目 HYPERLINK l “_TOC_250042“ 一. 概述1 HYPERLINK l “_TOC_250041“ 根本概念1 HYPERLINK l “_TOC_250040“ 代码审计与模糊测试1 HYPERLINK l “_TOC_250039“ 效劳的必要性1 HYPERLINK l “_TOC_250038“ 客户收益1 HYPERLINK l “_TOC_250037“ 二. 效劳的实施标准和原则2 HYPERLINK l

2、“_TOC_250036“ 政策文件或标准2 HYPERLINK l “_TOC_250035“ 效劳原则2 HYPERLINK l “_TOC_250034“ 三. XXXX 代码审计效劳3 HYPERLINK l “_TOC_250033“ 效劳范围3 HYPERLINK l “_TOC_250032“ 效劳分类3 HYPERLINK l “_TOC_250031“ 整体代码审计和功能点人工代码审计3 HYPERLINK l “_TOC_250030“ 单次效劳和年度效劳3 HYPERLINK l “_TOC_250029“ 效劳流程4 HYPERLINK l “_TOC_250028“

3、效劳特点5 HYPERLINK l “_TOC_250027“ 效劳报告6 HYPERLINK l “_TOC_250026“ 效劳留意事项6 HYPERLINK l “_TOC_250025“ 四. 代码审计方法论6 HYPERLINK l “_TOC_250024“ 代码检查技术6 HYPERLINK l “_TOC_250023“ 源代码设计7 HYPERLINK l “_TOC_250022“ 错误处理不当7 HYPERLINK l “_TOC_250021“ 直接对象引用7 HYPERLINK l “_TOC_250020“ 资源滥用8 HYPERLINK l “_TOC_25001

4、9“ API 滥用8 HYPERLINK l “_TOC_250018“ 应用代码关注要素8 HYPERLINK l “_TOC_250017“ 跨站脚本漏洞8 HYPERLINK l “_TOC_250016“ 跨站恳求伪装漏洞9 HYPERLINK l “_TOC_250015“ SQL 注入漏洞9 HYPERLINK l “_TOC_250014“ 命令执行漏洞9 HYPERLINK l “_TOC_250013“ 日志伪造漏洞9 HYPERLINK l “_TOC_250012“ 参数篡改9 HYPERLINK l “_TOC_250011“ 密码明文存储9 HYPERLINK l “

5、_TOC_250010“ 配置文件缺陷10 HYPERLINK l “_TOC_250009“ 路径操作错误10 HYPERLINK l “_TOC_250008“ 资源治理10 HYPERLINK l “_TOC_250007“ 担忧全的 Ajax 调用10 HYPERLINK l “_TOC_250006“ 系统信息泄露10 HYPERLINK l “_TOC_250005“ 调试程序残留10 HYPERLINK l “_TOC_250004“ 五. 相关工具11 HYPERLINK l “_TOC_250003“ 信息收集工具11 HYPERLINK l “_TOC_250002“ 静态

6、分析工具11 HYPERLINK l “_TOC_250001“ 源码提取工具11 HYPERLINK l “_TOC_250000“ 六. 为什么选择 XXXX11一.概述根本概念代码审计Code Review是由具备丰富编码阅历并对安全编码原则及应用安全具有深刻理解的安全效劳人员对系统的源代码和软件架构的安全性、牢靠性进展全面的安全检查。代码审计效劳的目的在于充分挖掘当前代码中存在的安全缺陷以及标准性缺陷,从而让开发人员了解其开发的应用系统可能会面临的威逼,并指导开发人员正确修复程序缺陷。代码审计与模糊测试在漏洞挖掘过程中有两种重要的漏洞挖掘技术,分别是代码审计和模糊测试Fuzzing。代

7、码审计是通过静态分析程序源代码,找出代码中存在的安全性问题;而模糊测试则需要将测试代码执行起来,然后通过构造各种类型的数据来推断代码对数据的处理是否正常,以觉察代码中存在的安全性问题。由于承受的分析方法不同,这两项技术的应用场所也有所不同。代码审计常用于由安全厂商或企业的安全部门发起的代码安全性检查工作;模糊测试则普遍用于软件开发和测试部门的程序测试。效劳的必要性实践证明,程序的安全性是否有保障很大程度上取决于程序代码的质量,而保证代码质量最快捷有效的手段就是代码审计。在风险评估过程中,代码审计是一般脆弱性评估的一种很好的补充,xxxx 代码审计效劳的代码掩盖率为 100%,能够找到一些安全测

8、试所无法觉察的安全漏洞。同时,由于主持代码审计的安全效劳人员一般都具备丰富的安全编码阅历和技能,所以其针对性比常见的脆弱性评估手段会更强、粒度也会更为细致。客户收益对于客户而言,代码审计可以带来以下收益:明确安全隐患点代码审计能够对整个信息系统的全部源代码进展检查,从整套源代码切入最终明至某个威逼点并加以验证,以此明确整体系统中的安全隐患点。提高安全意识如上所述,任何的隐患在代码审计效劳中都可能造成“千里之堤溃于蚁穴”的效果, 因此代码审计效劳可有效催促治理人员杜绝任何一处小的缺陷,从而降低整体风险。提高开发人员安全技能在代码审计效劳人员与用户开发人员的交互过程中,可提升开发人员的技能。另外,

9、 通过专业的代码审计报告,能为用户开发人员供给安全问题的解决方案,完善代码安全开发标准。二.效劳的实施标准和原则政策文件或标准xxxx 代码审计效劳将参考以下标准进展工作。OWASP TOP 10CWE/SANS TOP 25ASP/ASP.NET/PHP/JSP 安全编码标准xxxx 代码审计最正确实践xxxx 安全效劳工作标准、代码审计实施标准效劳原则xxxx 在供给代码审计效劳中,将遵循以下原则。保密性原则保密性原则是代码审计效劳中最重要的原则,它是鼓舞客户实施代码审计效劳的心理根底,同时也是对客户的人格及隐私权的最大敬重。代码审计的保密范围,包括客户供给源代 码和相关技术文档的保密性以

10、及输出成果的保密性。对效劳过程中获知的任何客户系统及源 代码的信息均属隐秘信息,不得泄露给第三方单位或个人,不得利用这些信息进展任何侵害 客户的行为;对效劳的报告提交不得集中给未经授权的第三方单位或个人。标准性原则xxxx 代码审计效劳将依据安全效劳工作标准、代码审计实施标准进展严格落实。实施必需由专业的安全效劳人员依照标准的操作流程进展,对操作过程和结果要有相应的记录,提 供完整的效劳报告。三.xxxx 代码审计效劳效劳范围xxxx 代码审计效劳的范围包括使用ASP、ASP.NETVB/C#、JSPJAVA、PHP 等主流语言开发的B/S 应用系统、使用C+、JAVA、C#、VB 等主流语言

11、开发的C/S 应用系统,以及使用XML 语言编写的文件、SQL 语言和数据库存储过程等。效劳分类整体代码审计和功能点人工代码审计整体代码审计是指代码审计效劳人员对被审计系统的全部源代码进展整体的安全审计, 代码掩盖率为 100%,整体代码审计承受源代码扫描和人工分析确认相结合的方式进展分析, 觉察源代码存在的安全漏洞。但整体代码审计属于白盒静态分析,仅能觉察代码编写存在的 安全漏洞,无法觉察业务功能存在的缺陷。功能点人工代码审计是对某个或某几个重要的功能点的源代码进展人工代码审计,觉察功能点存在的代码安全问题。功能点人工代码审计需要收集系统的设计文档、系统开发说明书等技术资料,以便代码审计效劳

12、人员能够更好的了解系统业务功能。由于人工代码审计工作量极大,所以需要分析并选择重要的功能点,有针对性的进展人工代码审计。单次效劳和年度效劳单次效劳是指xxxx 一次性为客户的被审计系统供给代码审计效劳,效劳完成后提交代码审计报告并指导客户进展问题修复。单次效劳仅能够觉察目前源代码中可能存在的各种安全 问题,对于系统后续开发产生的安全问题无能为力。年度效劳是指xxxx 以肯定的时长可以是半年、年等为单位向客户供给有限次数每月/双月/季度/半年的代码审计效劳,每次代码审计均会供给具体的代码审计报告。年度效劳能够持续跟进系统的安全状况,在效劳期限内最大限度保证系统的安全。效劳流程xxxx 代码审计效

13、劳主要分为四个阶段,包括代码审计前期预备阶段、代码审计阶段实施、复查阶段实施以及成果汇报阶段:前期预备阶段在实施代码审计工作前,技术人员会和客户对代码审计效劳相关的技术细节进展具体沟通。由此确认代码审计的方案,方案内容主要包括确认的代码审计范围、最终对象、审计方 式、审计要求和时间等内容。代码审计阶段实施在代码审计实施过程中,xxxx 代码审计效劳人员首先使用代码审计的扫描工具对源代码进展扫描,完成初步的信息收集,然后由人工的方式对源代码扫描结果进展人工的分析和确 认。依据收集的各类信息对客户要求的重要功能点进展人工代码审计。结合自动化源代码扫描和人工代码审计两方的结果,代码审计效劳人员需整理

14、代码审计效劳的输出结果并编制代码审计报告,最终提交客户和对报告内容进展沟通。复测阶段实施经过第一次代码审计报告提交和沟通后,等待客户针对代码审计觉察的问题整改或加固。经整改或加固后,代码审计效劳人员进展回归检查,即二次检查。检查完毕后提交给客户复 查报告和对复查结果进展沟通。成果汇报阶段依据一次代码审计和二次复查结果,整理代码审计效劳输出成果,最终汇报工程领导。效劳特点图 3.1代码审计效劳流程全程化效劳,有效保证效劳质量xxxx 可以为客户供给商定期限内的全程化代码审计效劳。效劳的过程不仅仅是帮助客户觉察问题,也会为客户的问题修补供给专业的建议和指导,做到问题觉察、修补、验证的全 程跟踪,每

15、一次效劳都会在前一次的根底上查找的突破口,力求最大程度地保证审计目标 的安全。专家级解决方案,一切以解决问题为目标xxxx 有着专业的安全效劳团队,团队成员无论是在风险评估、安全加固、渗透测试,还是在代码审计等领域均有着丰富的阅历,全部问题的解决方案均由团队成员依据多年阅历总 结而来,方案确实可行。降低本钱,节约投资在 xxxx 为客户打造的年度效劳方案中,效劳人员第一次代码审计的结果将会成为后续审计效劳的参考依据,避开了单次效劳中每次都会为某一特定问题所累,节约了审计时间,同 时也降低了客户在每个阶段的投入。效劳报告在审计工作完成后两个工作日内,xxxx 审计人员将出示一份代码审计报告。在报

16、告中,审计人员将会依据审计结果针对源代码中的每个安全弱点进展具体描述,描述内容至少包括安全弱点所在的代码页名、代码行数、问题代码片段以及弱点可能导致的安全问题等。除此之外,审计人员还将针对各种具体的安全弱点供给解决方案和相关的安全建议,为治理/开发人员的维护和问题修补工作供给参考。效劳留意事项为避开风险的产生,代码审计工作通常不会在生产或测试效劳器上进展。客户需要供给源代码或存储源代码的计算机载体。代码审计效劳人员会将一些代码审计工具安装在存储源代码的计算机载体中,在完成代码审计后卸载这些工具,以保护客户资产。在代码审计过程中,确定代码审计效劳人员和客户方协作人员的联系方式,便于准时沟通并解决

17、效劳过程中的各类问题。四.代码审计方法论代码检查技术代码检查是代码审计工作中最常使用的一种技术手段。代码检查可以由人工进展,也可 以借助代码检查工具自动进展。在实际应用中,通常承受“自动分析+人工验证”的方式进展。代码检查的目的在于觉察代码本身存在的问题,如代码对标准的遵循、可读性,代码的规律表达的正确性,代码构造的合理性等方面。通过分析,可以觉察各种违反程序编写标准的问题,主要包括以下几类。源代码设计源代码设计问题通常来源于程序设计之初,例如代码编写工具的使用等。在这方面的审计主要是分析代码的系统性和约束范围,主要从下面的几个方面进展:担忧全的域担忧全的方法担忧全的类修饰符未使用的外部引用未

18、使用的代码错误处理不当这类问题的检查主要是通过分析源代码了解程序在治理错误、特别、日志记录以及敏感信息等方面是否存在缺陷。假设程序处理这类问题不当,最可能的问题是将敏感信息泄露给攻击者,从而可能导致危害性后果。这类问题主要表达在以下几个方面:程序特别处理返回值用法空指针日志记录直接对象引用直接对象引用意指在引用对象时没有进展必要的校验,从而可能导致被攻击者利用。通 过代码检查,审计人员可以分析出程序是否存在直接对象引用以及相应的对象引用是否安全。直接独享引用问题主要有以下几类:直接引用数据库中的数据直接引用文件系统直接引用内存空间资源滥用资源滥用是指程序对文件系统对象、CPU、内存、网络带宽等

19、资源的不恰当使用。资源 使用不当可能导致程序效率降低,患病拒绝效劳攻击的影响。代码检查中,审计人员将会依据编码标准分析代码中对各种资源的引用方法进展分析,觉察其中可能导致资源过度占用方面的问题。资源占用方面的问题主要有以下几类:担忧全的文件创立、修改和删除竞争冲突内存泄露担忧全的过程创立API 滥用API 滥用是指由系统或程序开发框架供给的API 被恶意使用,导致消灭无法预知的安全问题。检查过程中,审计人员将会针对此类问题来对源代码进展分析以觉察此类问题。API 滥用主要有下面几种类型:担忧全的数据库调用担忧全的随机数创立不恰当的内存治理调用不全的字符串操作危急的系统方法调用对于Web 应用来

20、说担忧全的 会话句柄也是API 滥用的一种。应用代码关注要素跨站脚本漏洞漏洞:对用户的输入没有承受有效的安全把握手段就将用户输入插入到返回页面中。 影响:攻击者可以利用存在XSS 漏洞的Web 网站攻击扫瞄相关网页的用户,窃取用户会话中诸如用户名和口令可能包含在Cookie 里等敏感信息、通过插入恶意代码对用户执行挂马攻击、XSS 漏洞还可能被攻击者用于网页篡改。跨站恳求伪装漏洞漏洞:提交表单中没有用户特有的标识。影响:攻击者可利用跨站恳求伪装 (CSRF) 漏洞假冒另一用户发出未经授权的恳求,即恶意用户盗用其他用户的身份使用特定资源。SQL 注入漏洞漏洞:对访问数据库的SQL 语句没有进展任

21、何过滤,可能导致SQL 注入。影响:假设 SQL 注入成功,攻击者可以猎取网站数据库的信息,可以修改删除数据库, 还可能猎取执行命令的权限,进而完全把握效劳器。命令执行漏洞漏洞:系统中使用了一些调用操作系统函数的命令,在调用过程中,假设命令的来源不行信,系统可能执行恶意命令。影响:攻击者有可能把要执行的命令替换成恶意命令,如删除系统文件。日志伪造漏洞漏洞:将未阅历证的用户输入写入日志。影响:攻击者可以利用该漏洞伪造日志条目或将恶意内容注入日志。参数篡改漏洞:一些重要参数可能会被篡改。影响:攻击者能够通过篡改重要参数或方法对系统进展攻击。密码明文存储漏洞:配置文件中存储明文密码。影响:在配置文件

22、中存储明文密码可能会危及系统安全,攻击者可以轻易猎取到系统密码。配置文件缺陷漏洞:配置文件内容存在缺陷,例如未设置统一的错误响应页面。影响:攻击者能够利用配置文件的缺陷对系统进展攻击。路径操作错误漏洞:用户输入没有有效的安全把握手段就直接对文件进展操作。影响:攻击者可以把握路径参数,访问或修改其他受保护的文件。资源治理漏洞:使用完资源后没有关闭,或者可能关闭不成功。影响:攻击者有可能通过耗尽资源池的方式发起拒绝效劳攻击,导致效劳器性能降低, 甚至宕机。担忧全的 Ajax 调用漏洞:系统存在担忧全的Ajax 调用。影响:攻击者能够利用该漏洞绕过验证程序或直接编写脚本调用Ajax 方法实现越权操作。系统信息泄露漏洞:特别捕获泄露系统信息。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论