安全测试】安全测试怎么测试

2021-02-02 16:52发布

5条回答
小橘子
1楼 · 2021-02-04 09:03.采纳回答

目前主要安全测试方法有:

①静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。

②动态的渗透测试:渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。这种测试的特点就是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。

③程序数据扫描:一个有高安全性需求的软件,在运行过程中数据是不能遭到破坏的,否则就会导致缓冲区溢出类型的攻击。数据扫描的手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现。例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具来进行验证,手工做是比较困难的。


小王霸
2楼 · 2021-02-02 17:24

5.1.测试的特性
安全特性:操作系统安全、数据库安全、WEB安全、软件的发布和安装安全、协议与接口攻防、敏感数据保护、手机端安全、静态代码分析。
5.1.1.操作系统安全
操作系统安全我们可以把它分为以下几块:
系统漏洞(操作系统补丁)、系统配置(安全加固)
业界权威工具Nessus,其他如retina、绿盟、天镜等。开源的工具可以使用OpenVAS。
5.1.2.数据库
数据库安全我们可以把它分为以下几块:
数据库漏洞(补丁)、数据库配置特产(安全加固)
工具可以使用Ngs
5.1.3.web安全
数据库安全我们可以把它分为以下几块:
身份验证、验证码、会话管理、权限管理、敏感信息传输、安全审计、信息泄露、输入校验、输出编码、上传下载、异常处理、注释代码等
容器的安全(tomcat)
应用软件安全(nginx、负载均衡软件、jquery等)

请叫我雷锋叔叔啊
3楼 · 2021-02-03 10:25

(1)安全性测试方法

有许多的测试手段可以进行安全性测试,目前主要安全测试方法有:

①静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。

②动态的渗透测试:渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。这种测试的特点就是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。

③程序数据扫描。一个有高安全性需求的软件,在运行过程中数据是不能遭到破坏的,否则就会导致缓冲区溢出类型的攻击。数据扫描的手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现。例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具来进行验证,手工做是比较困难的。

(2)反向安全性测试过程

大部分软件的安全测试都是依据缺陷空间反向设计原则来进行的,即事先检查哪些地方可能存在安全隐患,然后针对这些可能的隐患进行测试。因此,反向测试过程是从缺陷空间出发,建立缺陷威胁模型,通过威胁模型来寻找入侵点,对入侵点进行已知漏洞的扫描测试。好处是可以对已知的缺陷进行分析,避免软件里存在已知类型的缺陷,但是对未知的攻击手段和方法通常会无能为力。

①建立缺陷威胁模型。建立缺陷威胁模型主要是从已知的安全漏洞入手,检查软件中是否存在已知的漏洞。建立威胁模型时,需要先确定软件牵涉到哪些专业领域,再根据各个专业领域所遇到的攻击手段来进行建模。

②寻找和扫描入侵点。检查威胁模型里的哪些缺陷可能在本软件中发生,再将可能发生的威胁纳入入侵点矩阵进行管理。如果有成熟的漏洞扫描工具,那么直接使用漏洞扫描工具进行扫描,然后将发现的可疑问题纳入入侵点矩阵进行管理。

③入侵矩阵的验证测试。创建好入侵矩阵后,就可以针对入侵矩阵的具体条目设计对应的测试用例,然后进行测试验证。

(3)正向安全性测试过程

为了规避反向设计原则所带来的测试不完备性,需要一种正向的测试方法来对软件进行比较完备的测试,使测试过的软件能够预防未知的攻击手段和方法。

①先标识测试空间。对测试空间的所有的可变数据进行标识,由于进行安全性测试的代价高昂,其中要重点对外部输入层进行标识。例如,需求分析、概要设计、详细设计、编码这几个阶段都要对测试空间进行标识,并建立测试空间跟踪矩阵。

②精确定义设计空间。重点审查需求中对设计空间是否有明确定义,和需求牵涉到的数据是否都标识出了它的合法取值范围。在这个步骤中,最需要注意的是精确二字,要严格按照安全性原则来对设计空间做精确的定义。

③标识安全隐患。根据找出的测试空间和设计空间以及它们之间的转换规则,标识出哪些测试空间和哪些转换规则可能存在安全隐患。例如,测试空间愈复杂,即测试空间划分越复杂或可变数据组合关系越多也越不安全。还有转换规则愈复杂,则出问题的可能性也愈大,这些都属于安全隐患。

④建立和验证入侵矩阵。安全隐患标识完成后,就可以根据标识出来的安全隐患建立入侵矩阵。列出潜在安全隐患,标识出存在潜在安全隐患的可变数据,和标识出安全隐患的等级。其中对于那些安全隐患等级高的可变数据,必须进行详尽的测试用例设计。


赵小刀
4楼 · 2021-02-20 09:00

安全测试涵盖的范围很广,在某种程度上你需要有比性能测试、自动化测试等更为广泛的基础知识。在这里我简单给大家一个自学路线:

1. 掌握更多的软件基本知识。例如http协议、http状态码、数据库操作、中间件、服务器、linux、python等基础知识。

2. 学习了解安全漏洞的原理。各种注入、跨站、绕过等等黑客技术的原理和实现。

3. 学习安全漏洞的测试方法。基于原理,了解学习最简单有效的安全漏洞测试方法,可以结合使用部分半自动化工具等。


征戰撩四汸
5楼 · 2022-06-17 17:28

1、前期交互:确认一些信息(比如:何时进行?谁进行?在什么环境进行?等)遵循5W2H原则

2、信息收集:利用社会工程学  收集关于项目的信息(项目是谁开发的,根据谁可以猜测用户名和密码等)

3、威胁建模:利用收集的信息进行扫描项目

4、漏洞分析:根据扫描的结果进行漏洞的分析(漏洞存在于子系统或者其他的分支有或者系统的架构等)

5、漏洞攻击:根据分析的结果 对项目进行攻击,记录攻击的步骤等

6、后渗透攻击:攻击完成后一般都会留有后门以便下次对修改后的系统进行二次攻击

7、提交漏洞报告:最最重要的就是将前6个步骤按照此步骤编写成漏洞报告


相关问题推荐

  • 回答 2

    某网站的登录功能,用户登录页面需要填写用户名和密码,假设如果其中一个用户名和密码是admin和123456,当用户输入在相应的表单中输入正确的用户名和密码之后,此应用的相应函数执行一定的验证(验证用户名和密码是否匹配),服务器执行SQL语句(表名是user)...

  • 回答 2

    AWVS的主要功能模块Blind SQL Injector:盲注工具HTTP Editor:http协议数据包编辑器WebScanner:Web安全漏洞扫描(核心功能)Site Crawler:遍历站点目录结构(爬虫功能)HTTP Sniffer:HTTP协议嗅探器HTTP Fuzzer:模糊测试工具Authentication Tester:Web...

  • 回答 2

    1、创建新的扫描2、选择常规扫描3、选择appsacn4、填写目标的URL5、进行登录,点击记录,选择AppScan IE浏览器6、填写登录账号和密码,然后进行登录,登录成功后,点击我已登陆站点7、等待系统记录信息完成后,如果成功会显示已成功配置登录8、测试策略选择缺...

  • 回答 3

    按照阶段划分白盒测试,灰盒测试,黑盒测试按照测试执行方式手工测试,自动化测试按照对象分app测试,游戏测试,等按照目的分功能测试,性能测试,安全测试,稳定性测试,易用性测试,可移植性测试等还有单元测试 集成测试 系统测试...

  • 回答 5

    安全测试一直是测试中的必须要关注的点,但也一直是行业中的一个难点,因为需要考虑的事情太多了,我个人没有专业做过安全测试,但是可以提出国际标准MASVS中的一些关注点,mavsv将安全一共分为了三个级别,分别是L1:标准安全等级  L2:纵深防御   L3:抵...

  • 回答 4
    已采纳

    测试工具1、nessus 环境扫描2、acuneitx web网络扫描3、Dependency-Check依赖库扫描4、BurpSuite 抓包校验

  • 回答 8

    网络安全测评是对网络中网络结构、功能配置、自身防护等方面的测评和分析,发现网络中可能存在的安全功能缺陷、配置不安全等方面的问题。网络安全测评主要测评内容包括网络结构安全、网络访问控制、网络安全审计、边界完整性检查、网络入侵防范、恶意代码防范...

  • 回答 3

    一、什么是sql注入呢?        所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单...

  • 回答 4

    cookie测试对于会话cookie,要测试其在不退出web系统的情况下起作用,同时也要测试退出web系统后不起作用,即重新登录时没有上次操作的痕迹。对于持久cookie,要测试其在退出web系统后仍然起作用,即重新登录时保留上次操作的痕迹。对于持久cookie,还要进行c...

  • 回答 1

    搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事。本篇主要简单介绍在Web领域几种常见的攻击手段及Java Web中的预防方式。XSS ,SQL注入,DDOS,CSRF...

  • 回答 2

    每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址。如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本...

  • 回答 1

    一种路由选择协议,用于传递路由表信息。路由表是用来决定数据流量的转发路径。同时还会计算出多条去往相同路径中的最短路径。就好比去一个陌生的城市去旅游,在某个起点(路由器A),你想要去往某个景点X,这时候有2个人,一个导游(路由器B),一个路人(路...

  • 回答 1

  • 回答 1

    TCP是字节流传输协议,发送消息前的三次握手,发送过程中的顺序编号,确认应答(ACK)机制,开启时钟计时,客户端超时重传,服务端的差错检测(检验和)等。

  • 回答 2

    uri和url的定义略)区别就是uri定义资源。url就不用说了,还定义了如何找到这个资源;网页的绝对地址(absolutepath)就是uri,到一个文件夹/。比如说,一个服务器上,而url不单定义这个资源...

没有解决我的问题,去提问