0

    软件安全测试艺术

    2023.04.19 | admin | 157次围观

    在使自己信赖软件测试之前,谁能够议论测试的事情呢?谁都不能议论,也不会议论。因此,如果没有开展测试,原因会是别的什么,但都不是令人信服的拒绝测试的理由。这些原因不外有三种:负担不起测试,不测试也可以做得很好,不知道怎么测试。.

    负担不起测试——考虑到节俭的人不同意超过花费的限度,所有的开销都要事先做出选择。如果进行测试的话,有什么事情就不做了呢?如果不做的事情是给软件增加别的功能特性的话,或许你值得庆贺你选定了一个较简单的产品。较简单的产品事实上比较容易测试(并且还有一个好的理由:安全的主要敌人是复杂性app安全性测试点,而没有什么比逐步增加功能特性更能带来复杂性的了)。如果不进行测试的话,通常给出的理由是“要按时把产品弄出来”。如果不是使性子的话,这个理由是不够充分的。本书所讲的这种测试致力于软件的未来,其重要性甚至要超过按时把产品弄出来。只有那些醉心于财富之梦的CEO们才阻止测试而不去考虑软件的未来。测试是努力让你控制未来,而不是让它控制你。测试让不可避免的未来产品故障提前在当前出现。当威廉·吉布森说出名言“未来已经来临,只是尚未广为流传而已”的时候,他并不关心我们这里讲的测试。你显然想做的事情就是把未来不对等地发布,以便能在你的用户(和竞争对手)之前看到产品的未来。读了这一段以后,你极可能在头脑中已有测试的框架,所以,我们停止这个论题,继续看下一个问题。

    不测试也可以做得很好——某些产品或许不需要太多的测试。这些产品和创新无关,它们是不易损坏的日用品,或者是相当无聊的东西。这不是我们关心的东西,我们这里所说的是要保护安全敏感的产品。哪些产品属于这一类呢?如果在其使用期间将面对感觉灵敏的对手,那么,这个产品就是安全敏感的。如果其仅有的危险是面对笨蛋(“嗨,看这个!”)或者无规则的偶然事件(阿尔法粒子),这个产品或许并不是安全敏感的。但是,作为软件和网络来说,几乎所有的东西都是安全敏感的,这是因为,就算没什么危险,起码每个极富攻击性的人都是你的邻居。达到完美程度需要的负担不再是罪犯实施完美的犯罪,而是防卫者实行完美的抵御。的确,不进行测试你也可能侥幸成功,就像你不穿戴任何保护装置,也可能在用电动带锯锯铝的时候、在摩亚国(Moab)进行山地自行车赛的时候或者在清洗P3级防放射泄露装置实验室时侥幸地不会受到伤害。总是有人能侥幸地逃过这些伤害,甚至是比这更危险的情况。但这种理由在这里并不适用。为什么?因为你的产品越成功,传播越广,那些攻击的人就越多,那些感觉灵敏的对手也会越多,他们将选中你的产品作为特别项目。只需要问问微软就知道了。如果你想要让你的产品得到广泛的使用app安全性测试点,就需要对软件进行测试。唯一的问题就是“由谁来测试?”..

    不知道怎么测试——这又让我们回到了本书的宗旨。你已经准备好了,也愿意开展测试,可是你不会。或者,你想要确保你不落后于你的对手。抑或,你需要比这里罗列的内容更多的“极限运动”的原始材料。你到这个地方就来对了(这里不是“独一无二”的地方)。这是(让我们清楚地说)一个完全正确的地方。作者久经考验,而技术是当前最新的。尽管安全相关的技术具有从未“完备”的极大优点,但你所要做的不会超过这个范围。如果你愿意,就可以成为本书的读者。同时,掌握Chris Wysopal、Lucas Nelson、Dino Dai Zovi和Elfriede Dustin教给你的东西,并将其付诸实践。像这样的技能集合不会无限增长,而你的对手的技能发展也不会比这些东西发展得更多。

    从目录中你可以看到,测试是一种思考方法,而不是一个待按的按钮,也不是一个待批准的预算。你极可能只有接受这种思考方法,并且,除了工具的常规使用和具体化的技术之外,没有什么东西更能强化思考的方法。这不是开玩笑。外部的攻击者技能非常熟练且日益专业,同时拥有工具和思考模式。恶意软件,特别是那些把好公民变成无心的坏公民的恶意软件,已经使得长期存在的对安全威胁者的假定变为现实:真正的威胁来自内部。

    问:外部攻击者度量成功的第一个依据是什么?答:获得内部的信任、访问和授权。如果这个攻击者计划通过利用目标内部所运行软件的漏洞来达到这个目的,那么只有你的设计和测试能够阻止攻击者的行动。如下图所示,其中思想不是“产品在做其设定的工作吗?”而是“产品没有做它未设定的工作吧?”这个问题比质量保证问题更为严峻,因为这是安全性内在的一个口子。这种问题并不能由开发本身全部处理,它必须是经过测试保证的,更适合由受过专门训练的测试人员来执行,而不是和软件构建过程搅到一起。

    这同样是本书的着眼点。本书将讲述如何施加专家级的压力,进行加快故障出现时间的测试。你将学会如何高效地完成这样的测试,以使你乐于开展测试并摒弃不经过测试而侥幸成功的想法。换句话说,这就像在灌木丛中打猎。你自学也能学会怎么做,但跟随一个专家级的追踪者比艰难地学习每一件事情更快。掌握本书所提供的东西,你不仅可以成为一个强大的猎手,而且还有自己做一个追踪者的机会。别忘了,所有的技能都是实践的结果。这些作者都是经验丰富的;现在轮到你了,他们已经帮了你一把。

    Daniel E�� Geer, Jr��, 理学博士...

    2006年7月24日

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: 软件安全
    发表评论