• 0
  • 1
分享
  • 安全性测试:安全测试的常用方法——软件测试圈
  • 恬恬圈 2023-06-14 15:28:02 字数 1398 阅读 1957 收藏 1

  安全性测试(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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   用例设计是测试工程师的日常工作之一,也是基本技能,今天,从实际工作的角度,跟大家分享下快速设计用例的7个小技巧:  1. 根据需求,先拆分大的功能点,作为主用例。例如,常见的增删改查,就属于大的功能点,可以作为主用例。  2. 使用等价类划分,按分类设计用例,基本分类可以从正面场景和负面场景入手。例如,测试创建可分为创建成功和创建失败2种场景,可分别设计用例。  3. 善用边界值,可结合等价类使用。测试经验告诉我们,测试有时会涉及大量数据,遍历所有数据效率较低,如果是手工执行,更难以实现覆盖所有数据,更有效率的做法是,先划分等价类,再从等价类中选择部分参数测试。  边界值是等价类所有可选参...
            0 0 889
            分享
          •       1:CC攻击是正常的业务逻辑,大并发让你处理不过来,处理XP SP2,以上的系统都封了RAW格式协议封包自定义,除了基于应用层改协议,之外都是模拟或请求来测试传输层      2:UDP不会粘包,不会少包,除非缓存区满      3:TCP主要特征有:3次握手连接4次挥手断开拥塞控制重传控制流传输方式,服务端需要额外解析方面有:协议粘包,协议少包,协议丢包、异常协议响应、正常协议响应      UDP主要特征有:包传输方式无粘包错包且...
            0 1 1518
            分享
          • cookie、session、sessionid与jsessionid,要想明白他们之间的关系,下面来看个有趣的场景来帮你理解。我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种方案:凭借柜台职员的记忆,由收柜台职员来为每位顾客办理存款/取款业务,单凭职员的记忆力,要记到每位顾客的相貌,并迅速这个顾客当前的存款以及存取的次数,每次存取的金额是多少。-----------这种方式表示协议本身支持状态。使用存折的方式,然后柜台职员就把每个顾客的存款/取款的信息保存在这张折子,然后交给顾客保管,当顾客来存款/取款时,只要拿出存折,职员查看存折就对当前这位顾客的存款/取款信息一目了然...
            0 0 1047
            分享
          • 前段时间,大众汽车用3万台机器人,50秒造一辆车的新闻,让我们认识了一个既熟悉又陌生的词--"第四次工业革命"。说起工业革命这个词,相信大家都不会陌生,凡是被历史考试蹂躏过的人,都把"工业革命是以机器取代人力,以大规模工厂化生产取代个体工场手工生产的一场生产与科技革命。"这段话背得个滚瓜烂熟了。但是加上"第四次"这个词,就不见得你能搞明白了。本小编今天就让你用3分钟,和这个"第四次工业革命"来个亲密接触。 有人问:"小编,你不是IT行业的么,怎么搞起工业的事情来了?"这句话问的好!因为就这一个问题,直接揭秘了"第四次工业革命"的本质!第一次工业革命,是用机器取代人力;第二次和第三次工...
            4 0 2087
            分享
          •   冒烟测试,刚进公司就接触到了。只是刚开始一直没有体会到冒烟的含义和精髓,一直以为是冒烟测试就是把待测产品的主要功能测试一下就行了。后面回想一下,不是那么回事的。  冒烟测试源自硬件行业,对一个硬件或者硬件组件改动后,直接给设备加电,看看设备会不会冒烟,没冒烟,就表示待测组件是通过了测试。  在软件开发过程中,一直有高内聚,低耦合这样的说法,各个功能模块之间的耦合还是存在的,因此一个功能的改动,还是会影响到其他功能模块。  因此在开发人员修复了先前测试中发现的bug后,想知道这个bug的修复是否会影响到其他功能模块,需要做的就是冒烟测试。  搞清楚冒烟测试的起源,冒烟测试的目的后,不难想到,...
            0 0 2617
            分享
      • 51testing软件测试圈微信