• 0
  • 0
分享
  • 安全性测试:安全测试的常用方法——软件测试圈
  • 恬恬圈 2023-03-21 14:41:45 字数 1398 阅读 968 收藏 0

  安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程,其主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,安全指标不同,测试策略也不同。

  但安全是相对的,安全性测试并不能最终证明应用程序是安全的,而只能验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。例如,测试应用软件在防止非授权的内部或外部用户的访问或故意破坏等情况时的运作。

  软件安全是软件领域中一个重要的子领域,系统安全性测试包括应用程序和操作系统两个方面的安全性。而系统安全性又包括两个方面的测试:一是软件漏洞,设计上的缺陷或程序问题;二是数据库的安全性,这也是系统安全性的核心。

  安全测试的常用方法有以下几种:

  (1)静态代码检查

  静态代码检查主要是通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题。

  (2)动态渗透测试

  动态渗透测试法主要是借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试,进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行,但覆盖率较低,因为在测试过程中很难覆盖到所有的可能性,只能是尽量提供更多的测试数据来达到较高的覆盖率。

  (3)扫描程序中的数据

  系统的安全性强调,在程序运行过程中数据必须是安全的,不能遭到破坏,否则会导致缓冲区溢出的攻击。数据扫描主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞,这也是静态代码检查和动态渗透测试很难测试到的。

  从用户认证、网络、数据库和Web 四个角度进行安全性测试,需要注意以下几个方面:

  (1)用户认证安全性测试

  1) 系统中不同用户权限设置;

  2) 系统中用户是否出现冲突;

  3) 系统不应该因用户权限改变而造成混乱;

  4) 系统用户密码是否加密、是否可复制;

  5) 是否可以通过绝对途径登录系统;

  6) 用户退出后是否删除其登录时的相关信息;

  7) 是否可以使用退出键而不通过输入口令进入系统。

  (2)网络安全性测试

  1) 防护措施是否正确装配完成,系统补丁是否正确;

  2) 非授权攻击,检查防护策略的正确性;

  3) 采用网络漏洞工具检查系统相关漏洞(常用的两款工具为NBSI 和IPhackerIP);

  4) 采集木马工具,检查木马情况;

  5) 采用各种防外挂工具检查程序外挂漏洞。

  (3)数据库安全性测试

  1) 数据库是否具备备份和恢复的功能;

  2) 是否对数据进行加密;

  3) 是否有安全日志文件;

  4) 无关IP 禁止访问;

  5) 用户密码使用强口令;

  6) 不同用户赋予不同权限;

  7) 是否使用视图和存储过程。

  (4)Web 安全性测试

  1) 部署与基础结构;

  2) 输入验证;

  3) 身份验证;

  4) 授权;

  5) 配置管理;

  6) 敏感数据;

  7) 会话管理;

  8) 加密;

  9) 参数操作;

  10) 异常管理;

  11) 审核和日志记录。



作者:佚名    

来源:http://www.51testing.com/html/52/n-7792552.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、方案特色:  1.一体化:统一技术体系、统一管控模式、统一调度模式、统一用户体验,有效的提升了平台本身的可维护性,极大的提升了平台的用户体验和使用成本;  2.分层回归:支持分层自动化(单元测试、接口测试、WebUI自动化、前端测试)和端到端(全链路WebUI自动化)持续回归;  3.集成性:提供丰富的API,便于与其他平台(如研发协作平台等)的集成;  4.原子性:方案的运作具备独立的使用周期,不依赖于其他平台或系统;  5.扩展性:自主研发,可快速进行方案扩展,如代码质量度量体系、覆盖率、持续集成等;  6.业务解耦:自动化管控模块AQC-Auto与手动用例管控模块AQC-Case...
            1 1 1584
            分享
          •   根据国外科技媒体 MacRumors 报道,通过分析 iOS 日志文件,显示苹果公司内部正在测试 iOS 17.1.1 更新。  从版本号判断,iOS 17.1.1 更新主要集中在修复现有版本中的 BUG 上,但尚不清楚会修复哪些问题。  该媒体预估,iOS 17.1.1 将会包含 iOS 17.2 Beta 1 更新中的修复内容,包括修复 Wi-Fi 连接问题、修复夜间自动关机一段时间等诸多问题。  苹果公司此前承诺,将会在今年晚些时候发布的更新中,修复影响 iPhone 15 系列的宝马无线充电问题,但该修复程序是否会包含在 iOS 17.1.1 中还有待观察。  目前尚不清楚 iOS...
            0 0 922
            分享
          • 一、什么是兼容性测试?很多人都知道兼容性测试,但是却很少能准确理解兼容性测试,大多都只会想到浏览器的兼容;实际兼容性还有其他内容,包括web 兼容和APP 兼容;那么下面咱们先说说什么是兼容性测试:兼容测试(Compatibility Test Suite )官方简称CTS ,指对所设计程序与硬件、软件之间的兼容性的测试。一般来说,兼容性指能同时容纳多个方面,在计算机术语上兼容是指几个硬件之间、几个软件之间或是软硬件之间的相互配合程度。按照我的理解,我认为兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境...
            7 7 950
            分享
          •   IT行业薪资待遇普遍很高,一名优秀的技术工程师的工资是传统行业普通员工的几倍之多,这已经是不争的事实。所以,每年转行IT的人不在少数。大家都希望靠学一技之长,改变命运,其想法和勇气可嘉。尤其是在近几年,越来越多的人将软件测试作为转行IT的首要选择,这是为何?  1、行业趋势使然  在互联网+时代,大数据、云计算等技术的应用,使得未来互联网化是必不可挡的趋势,因此IT行业的市场需求空缺会越来越大,对人才综合技术能力的要求也会越来越高。在互联网行业同类产品众多,企业要想站稳市场,只能以“质”取胜,所以作为软件质量的把关者——软件测试,在企业中占据着非常重要的位置。  2、薪资待遇高,发展好  ...
            0 0 935
            分享
          •   一、专业技能  1、孰练测试理论,测试方法,测试流程以及常用的测试文档的编写,如︰测试计划,方案,用例,报告等,能够根据项目需求提取测试点,设计合理的测试用例,执行用例以及提交测试报告。保证软件的质量。  ⒉、熟练测试用例设计方法︰如等价类,边界值,场景法,因果判定表等进行测试用例的设计,熟练使用禅道进行Bug的提交和管理,并对缺陷进行跟踪和定位,配合开发人员解决bug,确保产品的质量。  3、熟练使用Mysql和Oracle数据库,熟练使用Sql语句进行增删改查,子查询,多表联查,分组查询等,可用于表单测试、后台数据查询,熟练数据库的管理,对数据进行批量操作等。nosql,redis,m...
            0 0 283
            分享
      • 51testing软件测试圈微信