意识到你甚至有这样的问题已经让你领先于游戏。
我还要补充:
(C) 他不是很擅长审查代码,所以你只会得到“唾手可得的果实”
(D) 他真的是个渗透测试者,认为分支代码“哦,太容易了”,所以你会得到类似的结果结果作为渗透测试,只追踪到实际代码。
(E) 他是一名开发人员,对安全性了解不多,但知道一些糟糕的代码。
等等...
问题的关键是,他似乎对你不是很透明——所以它是哪个选项并不重要。Even(A) My code has no problems
不值多少钱,除非他能证明你的代码没有哪些问题(原文如此)。
不,运行自动化工具并不能算作安全代码审查,正如您显然正确地感觉到的那样。
所以,对于你的问题:
1. What should you ask him to do
“安全代码审查”。他应该告诉你他会做什么,和/或推荐你还需要什么(这可能/应该是一个很长的清单)。当然,你可以/应该给他更多的输入,比如你的应用程序做什么,谁可以访问,数据有多敏感等等。但即使你不这样做,他也应该要求这些信息。没有它,它根本就不是专业级别的代码审查。
2. How do I cross-check his work
- 我想说,一般来说,有 3 种可能性:
- 充分了解该主题以了解他声称在做什么,并提出棘手的问题 - 或找一个这样做的人(在与您不太了解的服务提供商打交道时总是如此......)
- 让另一位顾问进行竞争性审查——即使只是针对应用程序的一个子集。
- (这是一个很好的)执行外部黑盒渗透测试。这是验证代码审查的最佳方式。当然,让别人做渗透测试,然后比较结果。请注意,并非所有在 pentest 中发现的漏洞都与在代码审查中发现相关,反之亦然,但它应该为您提供一些指示。