首页 > 其他分享 >安全测试简述

安全测试简述

时间:2023-09-24 19:55:55浏览次数:42  
标签:密码 攻击 用户 认证 安全 简述 测试 权限

一、安全测试介绍

安全测试就是发现软件安全漏洞的过程,旨在保护软件系统的数据与功能。安全测试以破坏系统的安全策略为目标进行攻击,从而检查系统的漏洞或薄弱环节。

对软件系统的要求:能够向合法用户提供服务,同时能够阻止非授权用户使用和破坏

 

 

二、安全测试常用方法

  1. 静态代码检查:通过代码走读的方式对源代码的安全性进行测试
  2. 动态渗透测试:主要借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试
  3. 扫描程序中的数据:主要对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞

三、安全测试维度

  1. 客户端脚本安全测试
  2. 网络安全性测试
  3. 用户认证安全性测试
  4. 应用程序安全性测试
  5. 数据库安全性测试

四、客户端脚本安全测试

1、跨站脚本攻击(XSS)

XSS:跨站脚本(cross site script)为了避免与前端css混淆,改名为xss。

跨站脚本攻击:是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页面是,嵌入的代码会被执行,从而达到恶意攻击用户的目的。

XSS攻击的危害:盗取各类用户账户;盗取、注入修改、删除客户端敏感数据;网站木马;肉鸡(控制受害机攻击别的机器)

 

 

 

 

XSS攻击案例:1.使用document.cookie获取当前网站的全部cookie数据;2.注入外部js文件

XSS攻击防御:

  • HttpOnly:
    • 给关键的Cookie都加上HttpOnly属性
    • 浏览器禁止页面的javascript访问带有HttpOnly属性的Cookie
  • 输入检查
    • 检查用户输入的数据中是否包含了一些特殊字符,如<、>、'、"
    • 如果发现存在特殊字符,则将这些字符过滤或者编码
  • 输出检查
    •  在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击  

XSS漏洞扫描:

  • 手工检测
    • 校验结果精准,但是对于一个大型Web应用,效率比较低
  • 软件自动检测
    • 方便,却存在误报,或者有些隐蔽的XSS无法检测出

2、跨站点请求伪造(CSRF)

CSRF(Cross-site-request forgery)是指跨站请求伪造,通俗解释为攻击者盗用了你的身份,以你的名义发送恶意请求或进行某些非常操作

 

 

 CSRF攻击防御:

  • 验证码 
    • 验证码被认为是对抗CSRF攻击最简洁有效的防御方法,但是处于用户体验考虑,不能给所有的操作都加上验证码 
  • 验证HTTP Referer 
    • HTTP Referer可用于检查请求是否来自合法的“源”
  • 添加token并验证
    • 在请求地址中添加token并验证

五、网络安全性测试

1、数据加密

  • HTTPS协议加密
    • 要求网站使用https协议传输数据
  • 程序数据加密
    • 在程序中对接口数据进行加密,保证敏感数据不是按照明文进行传输

2、数据签名

  • 数据签名:在发送请求的时候,增加一个无法伪造的字符串,用来保证数据在传输的过程中不被篡改
  • 数据签名好处:防篡改、防伪造、防抵赖

Dos攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源。目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统停止响应甚至崩溃。

3、时间戳

  • 时间戳机制主要用来应对非法的DOS攻击
    • 服务端接收到请求后先拿当前的时间和请求中的时间做比较
    • 一定时间之内的才会进行后续的业务处理
    • 超过指定时间以外的直接返回错误码

4、流量限制

  • 服务器所能处理的并发是有限,超过一定的并发可能会导致系统崩溃
  • 基于对业务系统的保护,需要对请求访问速率进行限制,防止访问速率过高

六、用户认证安全性测试

1、认证与会话管理

认证(Authentication)认证实际上就是一个验证凭证的过程,目的是为了认出用户是谁

授权(Authorization)授权是授予用户可以操作的权限,目的是为了决定用户能够

1.1、密码

  • 密码是最常见的认证手段,持有正确密码的人被认为是可信的
  • 密码的优点是使用成本低,认证过程实现起来简单
  • “密码强度”是设计密码认证方案时第一个需要考虑的问题
    • 密码长度
    • 密码复杂度
    • 密码有限周期、历史密码记录

1.2、Session认证

 

 

 1.3、Token认证

 

1.4、多因素认证

 

 

 

2、暴力破解

  • 暴力破解:是指黑客利用密码字典,使用穷举法猜解出用户密码
    • 暴力破解是现在最为广泛使用的攻击手法之一
    • 为了提高效率,暴力破解一般会使用带有字典的工具进行自动化操作
  • 提高暴力破解难度
    • 要求用户设置复杂的密码
    • 认证时加入验证码校验
    • 对尝试登录的行为进行判断和限制

3、权限控制

某个主体对某个客体实施某种操作,而系统对这种操作的限制就是权限控制,也称为访问控制。

权限管理方式:1.垂直权限管理 2.水平权限管理

 

 

 

越权漏洞案例:对于普通用户来说,只有自己发布的信息才有权限删除。如果后台服务在删除的接口中没有进行权限的校验,就会出现越权漏洞,同理修改接口也存在越权漏洞。
七、应用程序安全性测试

1、SQL注入

SQL注入攻击是指通过构建特殊的请求参数传入应用程序,通过执行SQL语句进而执行攻击者所要的操作,主要的原因是程序没有细致地过滤用户输入的数据,导致非法数据侵入系统。SQL注入在安全问题中排行榜首!

 

SQL注入防范:

  • 对用户的输入数据进行校验
  • 不要动态拼装SQL,使用参数化语句
  • 不要使用管理员权限的数据库连接,为每个应用使用单独的权限进行数据库连接
  • 不要把敏感数据直接保存到数据库中
  • 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

2、文件上传漏洞

八、数据库安全性测试

  • 数据备份和恢复
    • 数据库对关键数据要配置备份恢复机制
  • 敏感数据加密
    • 对数据库中存储的敏感信息进行加密,不使用明文展示
  • 审计追踪机制
    • 系统设置相应的日志记录,特别是对数据修改和删除的记录,以便日后查证,确保系统的安全
  • 认证和权限控制
    • 对操作数据库的用户进行认证和权限控制

 

 

标签:密码,攻击,用户,认证,安全,简述,测试,权限
From: https://www.cnblogs.com/wsmbszyn/p/17726395.html

相关文章

  • 信息安全系统设计与实现学习笔记3
    信息安全系统设计与实现学习笔记3一、知识点归纳以及自己最有收获的内容知识点归纳程序设计语言的要素和技能包括语法、语义和语用。这在shell脚本中体现在各类命令中。语言基本成分包括数据成分、运算成分和控制成分。第10章sh编程sh脚本是包含sh语句的文本文件,由sh解释......
  • PPT| 网络安全运维管理实践 P34
       本人在四大咨询机构从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.  【智能制造数字化咨询】该PPT共34页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击关注下方。   随......
  • 信息安全系统设计与实现 学习笔记3
    一、总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的?一门程序设计语言的必备要素和技能包括:语法:掌握语言的基本语法,包括变量、数据类型、运算符、流程控制语句、函数、类等。算法和数据结构:能够设计和实现常用的算法和数据结构,如......
  • #20211105李宜时《信息安全系统设计与实现》第三周学习总结
    20211105李宜时《信息安全系统设计与实现》第三周学习总结学习不同编程语言的必备要素和技能1.语法和基本结构了解编程语言的语法和基本结构是编程的第一步。这包括变量、数据类型、运算符、条件语句、循环结构等。以下是Python、C和Java中的示例代码片段:Python#定义变量并......
  • 《信息安全系统设计与实现》学习笔记3
    第十章sh编程sh脚本sh脚本是一个包含sh语句的文本文件,命令行解释程序sh要执行该语句。创建文件文本mysh,包含:#!/bin/bash#commentlineechohellosh脚本与C程序sh脚本和C程序有一些相似之处,但他们在根本上是不同的。sh是解释程序,逐行读取sh脚本并直接执行这些行,而C......
  • 20211128李杰《信息安全系统设计与实现》第十章笔记
    一、任务内容自学教材第10章,提交学习笔记(10分) 大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在shell脚本中是如果呈现出来的? ,评分标准如下 1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行......
  • 《信息安全系统与设计》第三周学习笔记
    sh脚本sh脚本是一个包含sh语句的文本文件,命令解释程序sh要执行该语句sh脚本的第一行通常以#!组合开始,通常称为shebang实践创建文本文件my.sh编辑运行sh脚本与c程序sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行c程序必须先编译链接到一个二进制可执行文件,......
  • 2023-2024-1 20211211《信息安全系统设计与实现(上)》第10章学习笔记
    内容目录一、程序设计语言与shell脚本(1)一门程序设计语言有哪些必备要素和技能(2)这些要素和技能在shell脚本中如何呈现二、sh脚本三、sh脚本与C程序四、命令行参数五、sh变量六、sh中的引号七、sh命令(1)内置命令(2)linux命令八、sh控制语句(1)if-else-fi(2)if-elif-e......
  • 《信息安全系统设计与实现》第三周学习笔记
    一门程序语言必备的要素和技能语法和语义:了解程序设计语言的语法规则和语义约定,包括变量声明、语句结构、运算符、条件语句、循环结构等。掌握正确的语法和语义可以编写有效且不会造成语法错误的程序。数据类型:了解不同数据类型的概念和用法,例如整数、浮点数、字符串、布尔值等......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记3(必做)
    学习笔记3程序设计语言必备要素和技能shell脚本实践过程截图程序设计语言必备要素和技能1.语法和语义:了解语言的基本语法规则和语义,包括如何定义变量、数据类型、运算符、控制结构等。这是编写有效代码的基础。2.数据结构和算法:掌握数据结构(如数组、链表、栈、队列)和基......