文档章节

2019年测试指南-源码审查&渗透测试&平衡方法的必要性

猪鼻子插葱
 猪鼻子插葱
发布于 02/28 09:14
字数 1688
阅读 43
收藏 0

源代码审查


概述
源代码审查是手动检查Web应用程序源代码以解决安全问题的过程。任何其他形式的分析或测试都无法检测到许多严重的安全漏洞。正如流行的说法“如果你想知道真正发生了什么,请直接找到源代码。”几乎所有安全专家都认为实际查看代码没有任何替代品。所有用于识别安全问题的信息都在代码在某处。与测试第三方封闭式软件(如操作系统)不同,在测试Web应用程序时(特别是如果它们是在内部开发的),源代码应该可用于测试目的。

许多无意但重要的安全问题也很难通过其他形式的分析或测试发现,例如渗透测试,使源代码分析成为技术测试的首选技术。使用源代码,测试人员可以准确地确定发生了什么(或者应该发生什么)并删除黑盒测试的猜测工作。

通过源代码审查特别有利于发现的问题示例包括并发问题,有缺陷的业务逻辑,访问控制问题,加密弱点以及后门,特洛伊木马,复活节彩蛋,定时炸弹,逻辑炸弹和其他形式的恶意码。这些问题通常表现为网站中最有害的漏洞。源代码分析也可以非常有效地查找实现问题,例如未执行输入验证的位置或可能存在失效打开控制过程的位置。但请记住,操作过程也需要进行审核,因为部署的源代码可能与此处分析的源代码不同[13]。

好处:

  • 完整性和有效性

  • 准确性

  • 快速(适合有能力的评审员)

缺点:

  • 需要高技能的安全开发人员

  • 可能会错过编译库中的问题

  • 无法轻松检测到运行时错误

  • 实际部署的源代码可能与正在分析的源代码不同

渗透测试


概述
多年来,渗透测试一直是用于测试网络安全性的常用技术。它通常也被称为黑盒测试或道德黑客攻击。渗透测试本质上是远程测试正在运行的应用程序以查找安全漏洞的“艺术”,而不了解应用程序本身的内部工作原理。通常,渗透测试团队可以像访问用户一样访问应用程序。测试人员就像攻击者一样,试图查找和利用漏洞。在许多情况下,测试人员将获得系统上的有效帐户。

虽然渗透测试已被证明在网络安全性方面是有效的,但该技术并不能自然地转化为应用程序。在网络和操作系统上执行渗透测试时,大部分工作涉及查找并利用特定技术中的已知漏洞。由于Web应用程序几乎完全是定制的,因此Web应用程序领域的渗透测试更类似于纯粹的研究。已经开发了渗透测试工具来自动化该过程,但是由于Web应用程序的性质,它们的有效性通常很差。

今天许多人使用Web应用程序渗透测试作为其主要的安全测试技术。虽然它确实在测试程序中占有一席之地,但我们认为它不应被视为主要或唯一的测试技术。加里麦格劳[14]总结了渗透测试,他说,“如果你没有通过渗透测试,你知道你确实有一个非常糟糕的问题。如果你通过渗透测试,你不知道你没有一个非常糟糕的问题“。但是,有针对性的渗透测试(即尝试利用先前评论中检测到的已知漏洞的测试)可用于检测网站上部署的源代码中是否实际修复了某些特定漏洞。

好处:

  • 可以快速(因此便宜)

  • 需要比源代码审查相对较低的技能

  • 测试实际暴露的代码

缺点:

  • 在SDLC中太晚了

  • 仅限正面碰撞测试。

平衡方法的必要性

由于有许多技术和方法来测试Web应用程序的安全性,因此很难理解使用哪种技术以及何时使用它们。经验表明,对于究竟应该使用哪种技术来构建测试框架的问题,没有正确或错误的答案。实际上,所有技术都应该用于测试所有需要测试的区域。

虽然很明显没有单一的技术可以有效地覆盖所有安全测试并确保所有问题都得到解决,但许多公司只采用了一种方法。历史上使用的方法是渗透测试。渗透测试虽然有用,但无法有效解决许多需要测试的问题。在软件开发生命周期(SDLC)中,它只是“太晚了”。

正确的方法是一种平衡的方法,包括从手动审查到技术测试的几种技术。平衡的方法应涵盖SDLC所有阶段的测试。该方法利用了最合适的技术,具体取决于当前的SDLC阶段。

当然,有时候和情况下只有一种技术是可能的。例如,对已创建的Web应用程序进行测试,但测试方无法访问源代码。在这种情况下,渗透测试显然比没有测试好。但是,应鼓励测试方质疑假设,例如无法访问源代码,并探索更完整测试的可能性。

平衡的方法取决于许多因素,例如测试过程的成熟度和企业文化。建议平衡测试框架应该类似于图3和图4中所示的表示。下图显示了覆盖软件开发生命周期的典型比例表示。为了与研究和经验保持一致,公司必须更加重视发展的早期阶段。

© 著作权归作者所有

猪鼻子插葱
粉丝 1
博文 44
码字总数 172746
作品 0
崇明
高级程序员
私信 提问
Google为第三方应用设置了访问Gmail数据的新规则 | 只为解决数据泄露的困境

     谷歌将对希望访问用户Gmail收件箱的第三方应用程序推出更严格的规则。新规定将于2019年1月9日生效。   在7月份,谷歌因允许第三方应用免费漫游和访问用户的Gmail数据(包括Gmail邮件...

嘶吼RoarTalk
2018/10/10
0
0
【嘶吼送书】从零开始的渗透测试生活 |《Web安全攻防:渗透测试实战指南》

     零基础入门,从渗透测试信息收集到后渗透攻防,安全专家实战讲解,全面介绍Web渗透核心攻击与防御方式!      购买链接:   京东:https://item.jd.com/12401707.html   当...

嘶吼RoarTalk
2018/08/06
0
0
2019测试指南-web应用程序安全测试(二)地图应用架构

互连和异构Web服务器基础架构的复杂性可包括数百个Web应用程序,并使配置管理和审查成为测试和部署每个应用程序的基本步骤。实际上,只需要一个漏洞就可以破坏整个基础架构的安全性,即使是一...

猪鼻子插葱
03/04
25
0
2019测试指南-安全测试数据分析和报告

安全测试指标和度量 的目标定义安全测试指标和度量的目标是将安全测试数据用于风险分析和管理流程的先决条件。例如,诸如安全测试中发现的漏洞总数之类的度量可能会量化应用程序的安全状态。...

猪鼻子插葱
03/04
30
0
2019测试指南-测试&测试原理

什么是测试? 在Web应用程序的开发生命周期中,需要测试许多东西,但测试实际上意味着什么?Merriam-Webster Dictionary将测试描述为: 进行测试或证明。 进行测试。 根据测试分配站立或评估...

猪鼻子插葱
02/27
91
0

没有更多内容

加载失败,请刷新页面

加载更多

[mycat]PartitionByString分片报错

java.lang.RuntimeException: error,check your partitionScope definition.at io.mycat.route.util.PartitionUtil.<init>(PartitionUtil.java:69) PartitionUtil.java 注意:其中count,l......

Danni3
30分钟前
8
0
OSChina 周三乱弹 —— 魂淡!不是这种粪发涂墙

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @小小编辑推荐歌曲《10/10》- Rex Orange County 《10/10》- Rex Orange County 手机党少年们想听歌,请使劲儿戳(这里) @奋斗的小牛 :上午...

小小编辑
42分钟前
740
11
Arduino教程:认识Arduino控制板

@toc 1.1 课程说明 认识Arduino控制板的各个部分, 1.2 器材 名称 数量 规格 Arduino uno控制板 1 R3 1.3 UNO电路: UNO参数 名称 参数说明 工作电压: 5V 输入电压: 接上USB时无须外部供电...

acktomas
48分钟前
6
0
WeUI框架

WeUI框架 WeUI是一套小程序的UI框架,所谓UI框架就是一套界面设计方案,有了组件,我们可以用它来拼接出一个内容丰富的小程序,而有了UI框架,我们就可以让我们的小程序变得更加美观。 体验W...

达达前端小酒馆
51分钟前
5
0
Rainbond 5.1.8发布,应用网关支持多IP网络接入

2019年10月23日,Rainbond发布5.1.8版本,本次版本更新带来了应用网关对多IP的支持, 第三方组件对域名实例的支持 等新功能和修复若干BUG。 Rainbond:支撑企业应用的开发、架构、交付和运维的...

好雨云帮
53分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部