一、安全测试的前世今生

1945年12月, 在宾夕法尼亚大学摩尔电气工程学院,占地1500 平方英尺,重达30吨的世界上第一台全电子数字计算机ENIAC诞生。不过,那时的计算机输入还是卡片带,谈不上编程语言。随着第一代电子的计算机诞生,出现了机器语言和汇编语言。当时编程仅被少数人和科学家所能驾驭,程序还不复杂,没有测试的概念。随着代码规模、复杂度的不断提升,一部分人开始思考如何验证程序的正确性。1957年Charles baker在他的新书中对调试和测试进行了区分。至此软件测试诞生,并发展壮大成一门新的重要学科。随着计算机应用数量、规模、成本、复杂性的大幅提升以及经济风险的大大增加,软件测试的重要性日益突出。

1994年10月,万维网联盟在麻省理工学院计算机科学实验室成立,标志着世界进入互联互通时代。万维网的出现使得世界上任何地方的任何一个人都可以通过网络访问任意一个联网程序,这极大提升了程序的普及和使用范围。同时,也使得程序容易遭受到更多的攻击和破坏。随着系统安全形势的日益严峻,软件安全测试应运而生。

纵观计算机行业发展史,我们不难发现计算机处理能力的提升催生了编程语言的出现,编程语言的发展促使了软件测试的诞生,万维网(WWW)的普及又触发了安全测试的兴起。所以,事务的诞生和发展都是形势发展到某一阶段的产物。那么,安全测试的未来将如何呢?

根据工信部安全中心发布的《2021年网络安全半年形势分析》报告显示,当前网络安全形势严峻,全球勒索软件攻击事件数量增长明显,大规模数据泄露事件不断涌现。2021年3月,微软Exchanger Server电子邮件服务器的安全漏洞导致全球范围内大量企业、政府部门被感染。2021年5月,美国最大的输油管道公司Colonial Pipeline遭受勒索攻击,导致美国东海岸燃油输送线路大面积停运。2021年6月,富士通的项目信息共享攻击ProjectWEB被攻击,导致多个政府部门敏感数据泄露。诸如此类,还有facebook的用户数据泄露、棱镜门、万豪信息泄露、震网病毒、委内瑞拉全国断网等等。

从这些事件中,我们不难发现随着数字时代的深入和万物互联的加深,不法分子也加速向线上转移,初步形成了专业化、规模化和产业化的网络黑灰产业。各种黑客组织的趋理性攻击越来越明显,网络安全防护形势日益严峻。大视角看,世界主要国家都将网络安全作为国家安全的战略重点,纷纷出台各类综合性网络安全文件,不断加码数据安全和供应链安全的要求,对各行业的网络安全水平提出了更多更细致的要求。在这种大环境下,各公司为了满足各类监管要求、行业标准,确保自身系统的安全可靠,势必会不断加大安全领域的投入。安全测试随着也将迎来一波大的发展,安全测试技能将会受到越来越多用人公司的青睐和追捧。

二、认识和开展安全测试

世界上没有绝对的安全,只有相对的安全。系统安全也是如此,攻破系统的成本大于攻破系统的收益,则认为系统是安全的,这个安全就是相对安全。有人说不对啊,我建个局域网,禁止外网访问,那我是不是就是绝对安全?网络隔离确实是一种行之有效的安全防护方式,但是这种安全也是相对的,不是绝对安全。比如:银行的核心系统都要求专网连接,互联网逻辑隔离。军网系统通常也是内部独立部署,甚至会做网络物理隔离。这种就一定安全吗,黑客确实无法通过常规的网络手段入侵系统,但是不要忘了还有间谍、内部人员被收买胁迫等情况,只要攻击者认为攻击收益非常大,大到愿意担负任意成本,那么在时间上这个系统终归一日会被通过某种方式攻破,所以安全都是相对的。

既然系统没有绝对安全,那么系统安全是不是就不重要了。当然不是,安全是产品的根基,一个易燃的汽车无论性能多么出众,设计多么美观,你都不会购买使用,毕竟它不安全。但是,你现在购买或者乘坐的汽车都存在一定概率的自燃问题,相关事故在新闻中也屡有报道。但是,你不会因此拒绝购买或使用汽车,因为汽车自燃的概率非常非常低,这种风险远小于给你带来的便利。基于这个安全前提,你才会考虑购买和使用汽车。

系统安全也是从这个思路出发,构建一个相对安全的系统。安全测试的思想就是验证系统的相对安全程度,提升系统的被攻破成本。从主动性上,安全测试可以分为主动防御检查和渗透性测试,其中渗透性测试又可分为基于规则的安全扫描和人工渗透测试。测试人员可从上述三个方面着手,组织开展系统安全测试。

2.1主动防御检查的思想是扎紧篱笆,高筑围墙,提高渗透攻击的成本。如系统登陆功能,本质是完成用户输入账号密码和数据库系统中记录的账号密码匹配。若匹配成功,则登陆成功,若匹配失败,则登陆失败。一条数据库查询语句就能实现上述功能。但是,正确的登陆功能却不能这么简单设计,因为太简单了,破解成本太低,攻击者的一波遍历探索,系统可能就被攻破了。这样的系统是不够安全的,用户也无法放心使用。从主动防御的思想出发,开发者应主动增加攻击者的破解成本。比如:增加图片验证码,避免攻击者使用自动工具遍历尝试。模糊登陆错误提示信息,不告诉攻击者是账号错误还是密码错误,提高撞库成功的难度。连续错误登陆五次,账户自动锁定,减少攻击者试错次数。规定密码必须是数字、字母和特殊字符的混合,增加攻击者暴力破解的难度。诸如此类,通过提升安全标准,提高系统被攻破的成本,从而打消攻击者的攻击意图,使其知难而退。那么开发人员应该给系统增加哪些安全检验呢?或者说测试人员应该从那些方面检查系统是否具备应有的安全检验以及安全检验的程度是否满足当前系统的安全需要?《信息安全技术 网络安全等级保护基本要求》、《信息系统等级保护安全设计技术要求》、《信息安全等级保护管理办法》等国家安全标准文件对安全设计标准都有详细的要求,测试人员可以从中选择适合自己系统的安全设计标准,对照系统进行检查。

功能测试  |  压力测试  |  验收测试  |  登记测试  |  APP测试

风险评估  |  漏洞扫描  |  基线检查  |  代码审计  |  渗透测试

如何开展系统安全测试相关推荐

  1. Buildroot stress-ng Linux系统压力测试

    /*********************************************************************** Buildroot stress-ng Linux系统 ...

  2. 使用系统规则测试System.in和System.out

    编写单元测试是软件开发的组成部分. 当您的被测类与操作系统交互时,您必须解决的一个问题是模拟其行为. 这可以通过使用模拟代替Java Runtime Environment(JRE)提供的实际对象来完 ...

  3. win7系统稳定测试软件,win7系统电脑测试cpu性能的方法(图文)

    一般情况,购买电脑都比较注重cpu性能,cpu是一台计算机的运算核心和控制核心,所以是非常重要的.很多用户遇到win7系统电脑开机CPU就达到80多度,并且会自动关机或重启,非常麻烦,怎么回事呢?这种 ...

  4. 工控系统安全测试平台及攻防验证【会议】

    工控系统安全测试平台及攻防验证 写在前面的话 会议记录 写在前面的话 <网络空间安全青年科学家长安论坛>,本篇博客为广州大学田志宏老师的报告内容. 会议记录

  5. EMC测试仪器_电巢学堂:单片机系统EMC测试和故障排除

    原标题:电巢学堂:单片机系统EMC测试和故障排除 对于从事单片机应用系统(软硬件)设计的工程技术人员来说,掌握一定的EMC测试技术是十分必要的. 一.关于EMC EMC:Electromagnetic ...

  6. EMC测试仪器_智芯文库 | 单片机系统EMC测试和故障排除

    对于从事单片机应用系统(软硬件)设计的工程技术人员来说,掌握一定的EMC测试技术是十分必要的. 一.关于EMC EMC:Electromagnetic Compatibility,即电磁兼容性.指设备 ...

  7. 助创cms众筹 php,【教程】助创cms众筹系统完整测试流程详解

    原标题:[教程]助创cms众筹系统完整测试流程详解 这两年提到互联网金融,不得不提的一个词语:众筹.的确相比飘忽不定的股市和频发跑路P2P,众筹具备低风险,收益高,周期短等各方面的优势.为了帮助更多朋 ...

  8. 图章制作软件测试自学,SecSeal安全电子印章系统内部测试大纲.doc

    SecSeal安全电子印章系统内部测试大纲 SecSeal安全电子印章系统 内部测试大纲 2004年3月 测试内容 测试人员: 测试日期: 测试软件版本: 印章管理系统: 盖章系统: 公文阅读器: 安 ...

  9. 芯准TSN系统的测试与验证(1)——测试环境配置

    芯准TSN是湖南华芯通网络科技有限公司设计研发的时间敏感以太网的解决方案.在标准以太网基础上,芯准TSN增加了对时间确定性传输的支持,能允许周期性与非周期性数据在同一网络中传输.下面,我们将介绍对TS ...

最新文章

  1. C#三种判断字符是否为汉字的方法
  2. CPU芯片哪家强?电视处理器这么选就对了!
  3. 一周一论文(翻译 总结)— [SOCC 13] jVerbs Ultra-Low Latency for Data Center Applications 在JVM虚拟机上构建RDMA的verbs操作
  4. CentOS6.2部署mysql环境
  5. Django 学习笔记之七 实现分页
  6. JAVA微信开发:[17]如何获取所有关注用户
  7. 前驱和后驱什么意思_14.98万!造型酷似“保时捷”,后置后驱续航510,这款SUV要火...
  8. 米聊PK微信:微信是一朵奇葩
  9. Nagios学习实践系列
  10. MySQL Fabric集群功能整理---择录官网
  11. 百练(十三~十六)题解
  12. drupal7 smtp+mimemail+mailsystem 实现发送html邮件
  13. 动态规划——Russian Doll Envelopes
  14. Python使用pyhive库远程操作hive的配置和使用
  15. IDEA 使用mybatis插件Free Mybatis plugin
  16. 协议僵化 or 协议僵化
  17. 交换机的主要技术指标
  18. 华为云CDN加速,让你告别网速慢的烦恼
  19. cudnn.benchmark = True什么意思
  20. C++排序——宇宙总统

热门文章

  1. html和cssb笔记
  2. 《拥抱》---梦中好友s:103
  3. 微信网页开发问题汇总
  4. Yocto系列讲解[理论篇]27 - BitBake全过程(5)
  5. c#通过键盘输入若干个整数,长度不得多于20个,最后将其中最大的数输出,采用控制台的形式实现。
  6. 使用MATLAB调用ANSYS过程中,使用如下命令 !D:\Program Files\ANSYS Inc\v150\ansys\bin\winx64\ANSYS150 -b -p ane3f
  7. Free校园小程序 开源发布,一款集合表白墙、失物招领、兼职和闲置二手买卖的云开发微信小程序
  8. Visual Studio2022快速生成函数说明文档
  9. 群晖服务器共享文件忘记密码,群晖NAS忘记登录的账号密码怎么办?
  10. 车载网络技术——CAN总线基础