目录

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%以上的安全漏洞都是发生在架构设计阶段,因此要积极参与到架构设计评审活动中,将一些低中级别的隐患扼杀在摇篮中。

软件安全测试-软件安全测试概述相关推荐

  1. 软件安全分析与应用概述

    软件安全-保护软件中的智力成果.知识产权不被非法使用,包括篡改及盗用等.研究的内容主要包括防止软件盗版.软件逆向工程.授权加密以及非法篡改等.采用的技术包括软件水印(静态水印及动态水印).代码混淆(源 ...

  2. ORAN专题系列-18:5G O-RAN FrontHaul前传接口互操作性测试规范IOT概述与总体架构

    前言: 前传接口(FrontHual)是传统的BBU与RU之间的接口,在O-RAN之前,前传接口虽然定义了物理连接的CPRI标准,但CPRI之上承载的M plane和S/C/U plane的IQ数据, ...

  3. MFQ测试设计模型概述

    早期的测试设计过程是直接根据测试需求或规格来设计用例,这种方法存在很多局限性,本章节我们讨论的是一种新的,或者说更全面的测试设计方法,现在在很多测试更完善的企业(如华为),他们提出了新的测试设计过程, ...

  4. 安全测试-优秀测试工程师必备的4项安全测试方法!

    用您5分钟时间阅读完,希望能对您有帮助! 一.安全性测试 1.安全性测试方法 测试手段可以进行安全性测试,目前主要安全测试方法有: 1)静态的代码安全测试 主要通过对源代码进行安全扫描,根据程序中数据 ...

  5. 怎样编写测试类测试分支_编写干净的测试–天堂中的麻烦

    怎样编写测试类测试分支 如果我们的代码有明显的错误,我们很有动力对其进行改进. 但是,在某些时候,我们认为我们的代码"足够好"并继续前进. 通常,当我们认为改进现有代码的好处小于所 ...

  6. 测试beta测试_重新想象不断变化的自动化世界中的Beta测试

    测试beta测试 从根本上讲,beta测试是对真实用户在真实环境中执行的产品的测试. 这种测试类型有很多名称-用户接受测试(UAT),客户接受测试(CAT),客户确认和现场测试(在欧洲很常见),但是基 ...

  7. cta 音频测试_CTA测试介绍.pdf

    CTA测试介绍 CTA Introduction 目 录 1 .CTA入网结构及概述 2 .泰尔实验室(CTTL)测试项目简介 3 .泰尔实验室入网测试及问题整改流程 4 .泰尔实验室入网测试注意事项 ...

  8. 持续测试下测试工程师的自我修养

    在持续测试不断实施的情况下,测试方法论.测试实践.测试技术都在快速发展和迭代,因此对于每一位测试工程师来说,持续学习就变成一个不得不说的话题.下面将从测试理论基础知识点出发,介绍持续测试下测试工程师的 ...

  9. 我眼中的测试高手—测试架构师

    1.概述 既然是写我眼中的测试高手,得先容我作一下自我介绍,让你们了解一下我的背景.介绍前再啰嗦一句:是我眼中的测试高手,不一定对,如果有不对的地方,请多多包涵.我有 8 年以上工作经验,其间前 5 ...

  10. 用VS.NET中的测试工具测试ASP.NET程序

    在编写ASP.NET应用程序的时候,你会花费多长的时间来考虑性能的问题?很不幸,大多数开发者都对性能问题感到很后悔.性能的规划和设计真的需要放在前面和中心位置.你需要考虑自己的目标,并且确保把良好的性 ...

最新文章

  1. 移动端给img加上max-width:100%
  2. 视觉检索:视频多帧排序
  3. SQLite的事务处理方式
  4. 4.24企业数据库应用实践技术沙龙
  5. 以 DirectUI 方式实现的ImageButton
  6. java inner static_Java SE Static Inner
  7. 计算机通信事业单位专业知识点,事业单位计算机专业知识招考大纲
  8. sublime java 编译_03 sublime text3下配置Java的编译运行环境
  9. MATLAB 检验矩阵中是否有某些元素 对元素统计
  10. VC6.0代码移植到VS2008运行时乱码问题解决
  11. 电话机器人源码,语音电话机器人
  12. 吴恩达深度学习课程第五章第二周编程作业(pytorch实现)
  13. Convert to RINEX安装及简单使用
  14. npm install Error: EACCES: permission denied 问题解决
  15. 一个完全的新人如何搭建自己的个人网站
  16. 1 0.99999的悖论_物理学四大神兽:你能追上乌龟吗?无穷大到底是多大?(1)...
  17. Prometheus(监控报警系统) 的学习笔记
  18. ubuntu系统调节电脑亮度
  19. in作为介词的用法_介词in的用法
  20. 你没见过的中文编程工具,用中文开发android安卓应用,安卓开发的初体验!

热门文章

  1. 关于学习CRS计算机订座系统的实践报告
  2. Jmeter脚本录制:Jmeter5.0脚本录制
  3. 干货分享 基于MATLAB的带噪图像的高斯滤波论文
  4. monkey测试linux设备,关于使用Monkey运行脚本测试
  5. 推荐几个学习嵌入式及Linux比较好的网站或博客
  6. 2021.5.22 Python爬虫实战:效率办公,从下载文献开始...
  7. 特步2020年总收入81.72亿元,主品牌下半年显著复苏
  8. 【MySQL】MySQL复制原理与主备一致性同步工作原理解析(原理篇)(MySQL专栏启动)
  9. 华为一前员工【惯例】失败案例分享
  10. STM32学习日记1-新建工程模板(库函数)