经常听别人说安全测试很重要,然鹅你并不了解?一文带你了解全貌

Posted 丸子说测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经常听别人说安全测试很重要,然鹅你并不了解?一文带你了解全貌相关的知识,希望对你有一定的参考价值。

随着互联网、5G、大数据时代的到来,越来越多的普通人,在感受到了手机带给我们便利的日常生活的同时,也感受到了由各种原因造成的信息安全泄露问题。

在过去的2020年,“数据泄露”这样的字眼时常浮现在我们普通人的眼前。比如:

2020年1月,百信息服务有限公司(为中国电信股份有限公司的全资子公司)售卖涉及国内公民个人信息约2亿条。

2020年3月19日,PingWest品玩称,有用户发现5.38亿条微博用户信息在暗网出售。涉及1.72亿条有账户基本信息,包括用户ID、账号发布的微博数、粉丝数、关注数、性别、地理位置等。

2020年3月,万豪酒店宣布520万客人信息被泄露。数据涉及姓名、出生日期、邮件地址、电话号码等。

2020年4月27日,哔哩哔哩视频网站拥有500万粉丝的UP主“机智的党妹”,发布消息称:自己的视频素材被盗,黑客称必须支付“赎金”才愿意将素材还回来。

此外,还有很多类似的信息安全事故。基于此,大家应该就不难理解为什么我们那么重视安全测试了。我猜很多小伙伴都听过安全测试,但是对安全测试并不是很了解,今天,我们就带大家了解一下安全测试这个话题。

什么是安全测试?

什么是安全关键性系统?

根据度娘的解释,安全测试是指:在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。

简单来说,安全测试就是通过测试,来确保软件产品信息安全的质量,以确保泄露数据的概率更低。

那么,什么是安全关键性系统呢?安全关键系统是指:如果操作系统出现操作丢失或者异常,将造成灾难性和严重的后果的系统。而对于这类问题,软件产品的供应方有义务负责和赔偿此类损失。

这也就是为什么要对软件的安全关键系统,做细致的测试的原因了。对软件进行了相应的测试活动,可以证明系统可以免责的行为,同时,也可以避免造成供应方灾难性的损失。

譬如,我们的医疗系统失效,就很有可能造成人员的死亡;或者银行系统的数据有问题,那么,大家都可能蒙受财产损失;等等。

由此可见,安全关键系统和人们的日常生活息息相关,对安全关键系统进行反复测试,是非常有必要的。

在测试关键系统的安全性时需要关注哪些点?

那么,安全关键系统有什么特征呢?对于测试人员来说,我们应该关注产品的哪些特质呢?你可以参考下述内容。

  • (1)追溯性是否可变更:系统需求或设计发生变更以后,要跟踪发生的变更,保证后续的活动都和变更后的要求保持一致。

  • (2)是否采用严格的开发和测试方法:开发和测试活动应该采用更严格的方法,保证每个活动的交付物的质量。例如,对于每个活动的交付物都要求进行正式评审,而避免仅仅进行非正式评审,甚至不评审。在组件测试中,要求代码覆盖率达到100%。

  • (3)是否对产品安全性进行分析:对安全关键系统进行安全分析。常见的方法有故障树分析、失效模式和影响分析(FMEA),以及常见问题检查表等。

  • (4)系统架构是否存在冗余:在设计系统架构时要考虑冗余,重复配置系统中一些关键组件或子系统。当系统发生故障时,冗余配置的组件介入并承担故障组件的工作。由此减少系统的故障时间,避免系统无法提供正常的功能。例如,上面提到的企业级存储设备通常都有两个或多个控制器。只要有一个控制器还能工作,设备就可以继续提供服务。

  • (5)产品质量如何:项目的开发总是在进度、成本、内容和质量之间进行动态平衡。对于安全关键系统,当这几个要素之间发生冲突时,要尽量保证质量,并通过增加投入或者延长开发时间来平衡。

  • (6)文档质量如何:高质量的文档主要体现在文档的广度和深度上。安全关键系统的开发过程必须配以高质量的文档,不仅需求和设计方案需要详细的记录,测试策略、测试方法及整个开发过程中的变更都要文档化。

  • (7)审计是否严格:整个系统的开发过程和最终产品都需要接受更严格的审计,安全关键系统通常都要接受第三方的审计。

进行测试时的其他注意事项

安全关键系统的开发,即使在与系统的实用性发生冲突时,也应更加注重安全。虽然,很多专业组织都为其开发提供了指南,但却不能避免风险。换句话说,符合标准的系统并不是完全没有缺陷,只能说是降低了发生安全风险的概率。

另外,在安全关键系统的测试中,对于测试所需的新技术和新工具,需要严格进行评估。条件允许的话,尽量采用成熟的技术和工具,从而避免影响测试结果。

那么,在做安全关键系统的测试时,除了要关注安全性外,我们还需要关注哪些方面呢?笔者以为,还需关注产品的:可靠性、易用性和可维护性等。

(1)遵循规章

安全关键系统经常受到政府、国际、组织规章和标准的影响,这些规章影响到了产品的开发过程、组织架构或正在开发的产品。对于一款产品而言,首要的就是需要遵循行业规章。只有被证实符合了相关的规章和标准才有可能在市场上销售。

(2)安全关键系统的复杂性

许多复杂的系统和综合系统,都有相应的安全性组件。有时候,这些安全性要素在当前系统级别(或其子系统的级别)并不显现,而在其高一级的系统级别或在复杂系统部署时,就会显现出来。比如,飞机的飞行控制组件和空中交通管制系统等。

对于测试人员来说,当我们在测试一个系统时,首先要做的就是风险识别、风险分析。风险识别应该在项目的早期进行,在识别到风险后,我们要进行定性或者定量分析和评估(包括风险发生的可能性、发生的后果和可能发生的时间等),根据分析得到的测试风险级别采取相应的应对措施,从而降低风险对测试目标的威胁;同时在整个测试过程中监控测试风险。

当然啦,即便如此,我们的测试还是可能会出现失效的情况。一方面,可能是测试领域某些技术缺失造成的,当然,也可能是因为产品复杂性造成影响分析失效的情况。不过这种都属于特例,出现的概率暂时可忽略。

写在最后

都说“亡羊补牢,为时未晚”,作为一名普通人,我们需要了解信息安全,需要知道如何保护自己的隐私信息,同时,更需要有更多有识之士,加入到安全测试的队伍中去,从源头减少信息泄露的可能性。

只有更多人加入到信息安全防护中去,我们的互联网生态才会真正的焕发生机~

最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。


包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……

关注我公众号:【程序员二黑】即可获取这份资料了!

推荐阅读

高薪程序员也躲不过35岁这一关…当能力与年龄脱节,我们该如何自救

大学毕业开始销售…不甘于现状,转行测试的自救之路

从销冠到失业,最后选择软件测试,回头看看这段路,我很幸运!

以上是关于经常听别人说安全测试很重要,然鹅你并不了解?一文带你了解全貌的主要内容,如果未能解决你的问题,请参考以下文章

第一篇--读刘同的《别做那只迷途的候鸟》

安全算法一文带你简要了解常见常用的安全算法

快进键启动,一文带你了解云原生时代容器安全

一文快速带您了解 KMMCompose 和 Flutter 的现状 | 开发者说·DTalk

一文快速带您了解 KMMCompose 和 Flutter 的现状 | 开发者说·DTalk

一文快速带您了解 KMMCompose 和 Flutter 的现状 | 开发者说·DTalk