• 0
  • 0
分享
  • 安全性测试:安全测试的常用方法——软件测试圈
  • 恬恬圈 2023-03-21 14:41:45 字数 1398 阅读 1063 收藏 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、引言对mysql数据库进行备份最近比较苦逼,拿着测试的钱,干着运维的活,估计这只有小屌丝能理解。。小屌丝表示 不服。。。。由于要做数据备份,所以就写了一个脚本,让它自己跑着吧~~二、代码实战代码示例# -*- coding:utf-8 -*- # @Time   : 2022-07-29 # @Author : Carl_奕然 #DB基本信息 import os import time import datetime import glob...
            1 0 4543
            分享
          • 概述:边界值分析是测试设计一个稳定的部分,但是对黑盒测试人员来讲有时候边界并不是那么明显。这些不明显的边界被称作隐藏的边界。本文提供几个隐藏的边界的例子,还有一些以让隐藏边界显露来设计测试计划的要点方法。使用边界值分析和等价类划分是测试设计的基础做法之一。该理论的含义是对于一个特定的输入,测试中更常使用的值是在这些输入范围的边界附近的值。在边界之间的一类值当用到测试时常被认为是“等价的”。举个例子,如果你的APP有一个功能是让输入一个价格的打折值,有效的范围很可能就是0百分比到100百分比。将要测试的值就会是那些在边界附近的值,或-1百分比,0百分比,100百分比和101百分比。你很可能也会选...
            10 10 1549
            分享
          •   新浪科技讯 北京时间1月16日晚间消息,据报道,微软正考虑对旧金山人工智能(AI)研究公司OpenAI投资100亿美元。分析人士称,这笔潜在交易有可能成为人工智能新时代的决定性交易。  如果微软对人工智能技术深远影响的押注是正确的,那么这笔交易还可能引发人工智能世界的一场重组,因为其他科技公司也竞相在“生成式人工智能”(Generative AI)的新领域争夺自己的位置。  上个月,OpenAI因为推出了一款智能聊天机器人系统ChatGPT而成为了全球关注的焦点。ChatGPT是一套人工智能系统,可以回答问题,并用听起来十分自然的语言生成文本。  ChatGPT很快就得到了微软的关注。微软...
            0 0 1080
            分享
          • 1、强制等待(无条件等待)使用方法:time.sleep(delay)delay的单位为秒,delay设置多少秒页面就会等待多少秒(死等),这个方法很容易让线程挂掉,使程序抛异常,所以要慎用此方法。使用举例:打开百度,强制等待5秒#导入强制等待模块 import time from selenium import webdriver   wd = webdriver.Chrome() wd.get('https://www.baidu.com') #强制等待5秒 time.sleep(5)2、显式等待(有条件...
            3 3 2084
            分享
          • 对一个系统的指定功能进行压力测试时,发现把登录接口一起做了压力测试,那么如何在保持登录情况下,单独对指定接口进行压力测试呢?01 压力测试目标对接口A进行X次压力测试(本文示例压测10次)02 脚本设计思路接口请求头【系统登录】接口请求【系统登录】接口断言获取token【子系统登录】接口请求【子系统登录】接口断言获取cookie子系统的功能接口A请求:添加请求cookie管理器子系统的功能接口A断言监听器03 脚本解说Logic Controller逻辑控制器,主要用于控制jmeter脚本运行的逻辑:Once Only Controller仅一次控制器:主要用于控制登录接口,确保压力测试过程中...
            0 0 2197
            分享
      • 51testing软件测试圈微信