软件安全测试-软件安全测试概述

article/2025/9/8 1:15:30

目录

1. 写在前面

2. 什么是安全测试?

3. 安全测试和渗透测试的区别?

4. 何为安全漏洞?

4.1. 常见的漏洞类型

4.2. 漏洞等级

5. 安全漏洞的危害?

6. 如何发现或预防安全漏洞?

6.1 安全测试方法 

6.2 安全测试内容

6.3 安全测试过程

7. 写在最后


1. 写在前面

关于安全的重要性以及安全意识到底有多重要,咱们从2021年互联网历史上破坏力最惊人漏洞之一Log4j漏洞讲起,漏洞波及面和危害程度堪比2017年的“永恒之蓝”漏洞。从爆发至今,Log4j漏洞影响的严重性、广泛性已经在各领域开始显现,并不断加大。简单点说,黑客可以恶意构造特殊数据请求包payload触发漏洞,从而可以在目标服务器上执行任意代码,导致服务器被黑客控制。

Apache Log4j 是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的,现在已经发展为Apache软件基金会的项目之一。

本次漏洞是因为Log4j2组件中 lookup功能的实现类 JndiLookup 的设计缺陷导致,这个类存在于log4j-core-xxx.jar

log4j的Lookups功能可以快速打印包括运行应用容器的docker属性,环境变量,日志事件,Java应用程序环境信息等内容。比如我们打印Java运行时版本。

因为这里没有任何的白名单,那么我们就可以构造任何的字符串,只有符合${就可以,那么就很容易构造漏洞

咱们中国的阿里第一时间发现了改漏洞,但是第一时间报给了apache的软件基金会,并没有报给中国的软件工信部,这导致中国滞后于美国去处理这件事情,所以我们每个人都要有安全意识,更要明白出现安全问题如何处理和防范。

2. 什么是安全测试?

安全测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程

导致软件出现安全问题的主要原因或根源事软件的安全漏洞。

3. 安全测试和渗透测试的区别?

安全测试是从内到外的一种测试,是一种安全预防性测试,代码审查,架构分析,而渗透测试是从外到内的测试,它是一种试探的方法。

出发点差异:渗透测试是以成功入侵系统,证明系统存在安全问题为出发点;而安全测试则是以发现系统所有可能的安全隐患为出发点。

视角差异:渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复。

覆盖性差异:渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。

成本差异:安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较渗透测试需要投入更多的时间和人力。

解决方案差异:渗透测试无法提供有针对性的解决方案;而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。

4. 何为安全漏洞?

安全漏洞特指在硬件、软件、协议的在逻辑设计上或具体实现或系统安全策略上存在的缺陷或错误。

4.1. 常见的漏洞类型

1,客户端漏洞:
XSS(跨站脚本攻击)
CSRF(跨站请求伪造)
XXE(XML外部实体注入)


2,服务端漏洞:
SQL注入
文件上传漏洞
服务器请求伪造(SSRF)
反序列化
命令执行漏洞
文件包含漏洞
逻辑漏洞
越权漏洞
敏感信息泄露

4.2. 漏洞等级

  • 紧急: 可以直接被利用的漏洞,且利用难度较低。被攻击之后可能对网站或服务器的正常运行造成严重影响,或对用户财产及个人信息造成重大损失
  • 高危: 被利用之后,造成的影响较大,但直接利用难度较高的漏洞。或本身无法直接攻击,但能为进一步攻击造成极大便利的漏洞。
  • 中危: 利用难度极高,或满足严格条件才能实现攻击的漏洞。或漏洞本身无法被直接攻击,但能为进一步攻击起较大帮助作用的漏洞。
  • 低危: 无法直接实现攻击,但提供的信息可能让攻击者更容易找到其他安全漏洞。
  • 信息: 本身对网站安全没有直接影响,提供的信息可能为攻击者提供少量帮助,或可用于其他手段的攻击,如社工等。

5. 安全漏洞的危害?

  

6. 如何发现或预防安全漏洞?

6.1 安全测试方法 

6.2 安全测试内容

6.3 安全测试过程

7. 写在最后

安全隐患就像软件的其他缺陷一样是不可能杜绝的,只能尽可能防御,减少,下面是一下软件安全测试设计的基本原则

  • 最小授权

只授予每个用户/程序在执行操作时所必须的最小特权。这样可以限制事故、错误、攻击带来的危害,减小特权程序之间潜在的相互影响。

  • 发生故障优先保证安全

当系统发生故障时,对任何请求默认应加以拒绝。

  • 深入防御原则

采用多层安全机制,这个概念范围比较大。比如在表单中的字段校验不光要在页面校验,还要在后台有相应的校验机制;比如在信任区、非信任区之间二次部署防火墙。

  • 权限分离

比如禁止root用户远程登录、多重身份校验登陆等。

  •  系统架构设计和代码尽可能简洁,越复杂的系统,bug越多...
  • 共享事务的数量和使用尽可能少,毕竟单独控制一个操作比并行控制两个过程更容易一些。
  •  安全保护机制不能依赖于攻击者对系统实现过程的无知、而只依赖于像口令/密钥这样较容易改变的东西。
  • 不信任原则,要严格限制用户、外部部件的信任度,要假设他们都是不安全的。
  • 对受保护的对象的每一个访问都要经过检查。
  • 心理接受程度,不能通过限制、甚至组织用户访问系统资源来阻止攻击,但可以考虑引入少量可接受的使用障碍。
  • 不要等开发人员编码完成才开始进行安全测试,可以负责任的讲65%以上的安全漏洞都是发生在架构设计阶段,因此要积极参与到架构设计评审活动中,将一些低中级别的隐患扼杀在摇篮中。


http://chatgpt.dhexx.cn/article/mptWChXm.shtml

相关文章

动态应用安全测试(DAST)

什么是DAST安全测试? 动态应用程序安全测试(DAST)从web应用程序外部测试安全性。一个很好的类比是通过攻击银行保险库来测试其安全性。DAST要求安全测试人员不了解应用程序的内部。这被称为“黑盒”测试方法——因为测试人员看不到隐喻性的“盒子”内部。它的目的是…

安全基础--22--安全测试

一、安全漏洞评估 1、评估方式 自动化扫描:系统层漏洞大部分情况下使用自动化扫描 手工评估:耗时、不全面、技术要求高 2、评估流程 二、安全配置评估 1、安全配置评估分类 评估说明基础安全配置评估在了解现状和基本需求的情况下,定义业…

常规测试、安全测试、渗透测试的区别

安全测试是在IT软件产品的生命周期中,检查产品,检验产品符合安全需求定义和产品质量标准的过程,功能测试是检验产品各功能,根据功能测试用例,逐项测试,检查产品是否符合用户要求的功能。 安全测试是在IT软…

安全测试(初测)报告

安全测试(初测)报告 系统名称 版本号 V1.0 送测单位 送测时间 20XX年XX月XX日 复测时间 XXXX有限责任公司 20XX年XX月XX日 有效性声明 1、本测试报告封面及结论未盖章无效; 2、本测试报告需经审批和授权签字人签字,…

做好安全测试的方法

目录 摘要: 一.安全性测试 二.常见的软件安全性缺陷和漏洞 三.做好安全性测试的建议 总结 摘要: 今天主要跟大家讲一下什么是安全测试和怎么做好安全测试的几种方法。还有安全测试的优缺点及过程,最后会给大家几条建议,希望对…

AppScan 安全测试详解+实操

定义:AppScan是IBM的一款web安全扫描工具,主要适用于Windows系统。该软件内置强大的扫描引擎,可以测试和评估Web服务和应用程序的风险检查,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等…

Android安全测试

目录 1、客户端APP安全 2、服务端安全 3、通信安全(通信保密性) 1、客户端APP安全 (1)反编译-APP加密或者代码混淆或者加壳处理 (2)防二次打包-验证APP签名-获取二次打包后APP的签名与正确的AP签名进行…

软件测试之安全测试

一、什么是安全测试? 安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。 二、安全测试的目的? 1、提升IT产品的安全质量; 2、尽…

软件安全测试

安全测试 文章目录 安全测试安全测试类型安全性测试工具分类 安全测试 安全测试一般围绕被保护的资产,通过代码和程序的分析来确定威胁或漏洞的严重程度,以及被利用的可能性和影响,来评估特定威胁或漏洞对企业造成负面影响的风险。除了综合的…

安全测试入门介绍

目录 1、安全测试定义 2、安全测试目的 3、安全测试与常规测试区别 4、安全测试类型 5、安全测试工具 1、安全测试定义 安全测试是建立在功能测试基础上进行的测试,安全测试提供证据表明,在面对恶意攻击时,应用仍能充分满足它的需求&…

什么是安全测试

一、安全测试概述 1.1.定义 安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程 1.2.概念 安全测试是检查系统对非法侵入渗透的防范能力 1.3.准则 理论上来讲,只要有足够的时间和资源,没有无法进入的系…

如何从0到1做一次完整的安全测试

大家好,我是馨馨,一个混过大厂,待过创业公司,有着6年工作经验的软件测试妹纸一枚。近期针对公司项目做了一次完整的安全测试,扫描出来了不少漏洞,价值还挺大的。回顾整个流程,并没有特别复杂的点…

机器学习之向量空间的基本概念

向量空间:如果在一个空间中,任取若干个向量进行相加或数乘,其计算结果仍然在该空间中,则称这个空间为向量空间。换句话说,向量空间对于相加和数乘运算是封闭的(closed)。 当然,基于向量的广义定义&#xff…

什么是向量空间

向量 AB(AB上面有→)的大小(或长度)叫做向量的模,记作|AB|(AB上有→)或|a|(a上有→)。 向量空间又称线性空间,是线性代数的中心内容和基本概念之一。在解析几何里引入向量概念后,使许多问题的处…

向量空间中的:线性相关与线性无关

生成空间:以二维空间为例,给定两个非零向量。 其中两个非零向量系数a,b任意取值组合,就可以得到整个二维空间,除非两向量共线。 一个向量固定,另一个向量自由变化,其线性组合可得到一条直线。 …

关于向量空间和线性空间的认识

Reason 这两天学习张贤达的《矩阵分析和应用》,1.3.2节对向量空间的定义扩展,然后突然扩展到线性空间让我很不适应,并不能理解二者的关系。上网一查更迷惑了,很多的线性代数教材倾向于将二者等价,大家对向量空间和线性…

线性代数学习之向量空间,维度,和四大子空间

空间: 在上一次https://www.cnblogs.com/webor2006/p/14306046.html学习了诸多在线性代数中非常核心的概念(线性组合、线性相关、线性无关、生成空间,空间的基...),这次则继续学习重要的核心概念(空间、维度、四大子空间)。在之前的学习中用到…

大数据入门10:向量空间模型(Vector Space Model)

文章目录 向量空间模型(Vector Space Model)0. 概述1. TF(Term frequency ,TF)2. IDF(Inverse document frequency,IDF)3. TF-IDF(Term Frequency-Inverse Document Frequency)4. Similarity Function 相似性函数5. 举…

05转置和向量空间

进入了向量空间才算开始了线性代数的大门。几个重要的概念: 列空间包含所有列向量的线性组合,记作 C ( A ) C(A) C(A);当且仅当 b b b在 A A A的列空间时, A X b AXb AXb才有解; 一个 m n m\times n mn的系数矩阵 …

向量空间模型算法(Vector Space Model)

概念介绍 向量空间模型(VSM:Vector Space Model)由Salton等人于20世纪70年代提出,并成功地应用于文本检索系统。 VSM概念简单,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语…