据我所知,渗透测试可分为黑匣子、灰盒和白盒测试.但是安全代码审查又如何呢?它是白盒测试的一部分还是分开的?
发布于 2018-11-16 10:37:32
安全代码检查是对应用程序的源代码进行审核的过程,以验证是否存在适当的安全控制,它们是否按预期工作,并且是否已在所有正确的地方调用。OWASP
考虑到这一点,请考虑灰盒测试:
黑匣子测试人员不知道要测试的应用程序的内部结构,而白盒测试器可以访问应用程序的内部结构。灰盒测试人员部分了解内部结构,包括访问内部数据结构的文档以及所使用的算法。维基百科

戊酯将通过反向工程软件识别漏洞进入汇编代码,并从那里识别攻击向量,如缓冲区溢出。但是,根据上面的定义,安全代码评审必须是白盒测试。
要回答您的问题,安全代码评审只通过白盒测试执行.在某些情况下,个人可能会歪曲这个定义以适应上面的例子,但由于反向工程组装代码不是源代码,我将不承认这一点。
发布于 2018-11-16 10:40:19
白盒测试与源代码评审之间的区别在于,在审查源代码检查中的代码后,您不会提供有关漏洞可用性的知识,但是在白盒测试中,您会使用这些知识来创建工作POC (概念的证明)。在源代码审查中,您只需指出受漏洞影响的代码片段,在白盒测试中,我们将遍历整个执行流程,端到端来确定漏洞并创建一个POC。
发布于 2018-11-16 20:31:01
主要区别在于实际执行的操作。白盒测试和安全代码评审有着相似的目标。
白盒测试包括触摸产品。在任何级别的测试中,都会对被测试的产品做一些事情--例如,调用一个函数并验证其响应,或者某个假装为用户的人通过一个核心流程。在任何情况下,软件都是经过物理测试的;它必须以某种方式存在,并且必须以某种方式使用。然后它必须被使用。
在安全代码评审中,产品不受影响。也许可以将其作为一种补充活动来触及,但核心功能是阅读。你读了源代码,分析了它,并最终试图找出和综合它的问题,以纠正。安全代码评审是常规代码评审的一个子集,它可以涉及对设计、实现、性能、美学等方面的分析。
考虑这一问题的一种方法是:
编辑:上面只查看白框(以回答OP问题的特定范围),但同样的原则适用于黑匣子和灰盒测试。在任何测试方法中,必须将产品用作测试任务性质的固有副产品。这与代码评审不一样(如前所述)。
https://security.stackexchange.com/questions/197785
复制相似问题