一、安全测试概述
1.1.定义
安全测试是在软件产品开发基本完成时,验证产品是否符合安全需求定义和产品质量标准的过程
1.2.概念
安全测试是检查系统对非法侵入渗透的防范能力
1.3.准则
理论上来讲,只要有足够的时间和资源,没有无法进入的系统。因此,系统安全设计的准则是使非法侵入的代价超过被保护信息的价值
1.4.目标
通过对系统进行全面的脆弱性安全测试,发现系统未知的安全隐患并提出相关建议,确保系统的安全性。安全性一般分为应用程序级别和系统级别,区别如下:
- 应用程序级别:包括对应数据或业务功能的访问,核实应用程序的用户权限只能操作被授权访问的那些功能或数。
- 系统级别:包括对操作系统的目录或远程访问,主要核实具备系统和应用程序访问权限的操作者才能访问系统和应用程序
二、安全漏洞
细分流程图,安全漏洞根据客户端与服务器端的分布
2.1.钓鱼
黑客构造一个跟知名网站很相似的网站,吸引用户登录,输入敏感信息,或通过邮件等验证方式,不知不觉中获得用户的登录密码之类的
2.2.暗链
其实“暗链”就是看不见的网站链接,“暗链”在网站中的链接做的非常隐蔽,短时间内不易被搜索引擎察觉。它和友情链接有相似之处,可以有效地提高PR值。但要注意一点PR值是对单独页面,而不是整个网站
2.3.xss
跨站脚本攻击。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的
2.4.点击劫持
是一种视觉上的欺骗手段。大概有两种方式,一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面;二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义
2.5.CSRF
简单说, 攻击者盗用了你的身份,以你的名义发送恶意请求
限制的方式可以包括:
1)referer的限制
2)加入有效性验证Token
3、对跳转的地址没有做严格的校验
2.6.sql注入
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击
2.7.文件上传/文件包含
上传的附件没有进行过滤,当上传的文件为危险文件时,依然可以上传成功。 这样很容易服务器的后台被控制
2.8.暴力激活成功教程
使用一个好的字典,利用工具,暴力激活成功教程网站的登录名和密码
三、安全测试流程
提交申请
准备测试环境
收集基础信息
执行渗透测试
测试结果分析
编写测试报告
四、 测试特性
安全特性:操作系统安全、数据库安全、WEB安全、软件的发布和安装安全、协议与接口攻防、敏感数据保护、手机端安全、静态代码分析
4.1.操作系统安全
操作系统安全我们可以把它分为以下几块:
系统漏洞(操作系统补丁)、系统配置(安全加固)
工具Nessus,开源的工具可以使用OpenVAS。
4.2.数据库
数据库安全我们可以把它分为以下几块:
数据库漏洞(补丁)、数据库配置特产(安全加固)
工具可以使用Ngs
4.3.web安全
web安全我们可以把它分为以下几块:
身份验证、验证码、会话管理、权限管理、敏感信息传输、安全审计、信息泄露、输入校验、输出编码、上传下载、异常处理、注释代码等
容器的安全(tomcat)
应用软件安全(nginx、负载均衡软件、jquery等)
扫描工:appScan、awvs
1.身份验证
复杂度要求,必须由大写、小写、数字等组成
时效性要求,建议用户3个月更改一次口令
密码长度要求,最小8位,最大?位
管理员重置密码后密码必须在下次登录更改
强度要求,不能跟原密码一致,不能与用户名相似
必须要有验证码机制
手机验证码超时机制
2.弱密码
3.验证码
验证码字符生成算法的安全随机数
验证码字符不能被验证码识别工具识别
验证码必须是一次性的
验证码超时
4.会话管理
登录前后会话要有变化
安全退出会话注销
会话超时机制
会话标识的传输和存储
5.敏感信息传输及存储
敏感信息不能以get方式提交
传输通道使用https
严格安全传输HSTS
对用户保密的信息不能传输到客户端
含有敏感信息的页面需要设置不缓存
4.4.软件的发布与安装安全
4.5.协议与接口攻防
业务交互数据在网络中使用的协议安全性测试
协议测试工具:codenomical
对外开放的端口:系统对外开放的端口必须是必要的,禁止开放无用端口
端口扫描工具:Nmap,近端可以直接在服务器上使用命令查看
接口:接口接受的数据需要做严格的处理
4.6.敏感数据保护
4.7.手机端安全
2、用户隐私
本地保存用户密码、无论加密与否,敏感信息隐私信息,如聊天记录、关系链、银行卡号等是否加密保存
配置文件等是否保存到外部设备上
保存到外部设备的信息加载前判断是否被篡改
3、文件权限
App所在目录不允许其他组成员读写
4、网络通讯
重要敏感数据传输加密
5、运行时解释保护
6、组件权限保护
7、升级
升级包完整性、合法性校验,避免被劫持
8、3rd库
跟进第三方库的更新
4.8.静态代码分析(纯白盒)
白盒测试主要是通过对代码的浏览来发现问题
1、危险函数
2、工具检测
3、逻辑漏洞
4.9.灰盒
2、提交铭感数据的时候是否有防止csrf的token、refer、验证码
3、sql注入
5、权限校验、越权
7、代码中使用的第三方插件、开源软件是否是最新、是否有安全漏洞
8、代码中所使用的加密算法,是否是安全的
9、跳转中的redirect(Spring MVC中redirect重定向)形式中不要带敏感信息,会被发回客户端重新请求的,相当于把这些参数放在了get请求中
10、SSRF服务端请求伪造,注意url中含有另外一个url的请求
11、加密算法的使用,是否使用的是不合场景的弱算法
五、 加密算法
5.1.弱算法
md2,md4,md5(2004年的国际密码学会议(Crypto’2004)王小云证明了MD5可以被碰撞,至此,MD5不再安全) ,sha1,blowfish
5.2. 推荐算法
sha256,aes128
5.3. 可逆的加密算法
des 3des aes128
5.4. 可逆加密算法 “对称式”和“非对称式”
对称式加密特点
加密和解密使用同一个密钥,通常称之为“Session Key ”
DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
不可逆加密算法:sha256 sha512 md5
不可逆加密算法的特征是,加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文。这种加密后的数据是无法被解密的,只有重新输入明文
常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
MD5输出128bit
SHA1输出160bit
SHA256输出256bit
另外还有SHA244,SHA512
分别输出244bit,512bit
六、 常用工具
6.1. Burpsuit
一个用于攻击web应用程序的集成平台,包含大量的安全测试工具,并为这些工具设计了对外访问接口,以加快攻击应用程序的过程
6.2.Wireshark
适用于Windows和Linux的网络协议分析工具,也是一个很出名的数据包分析工具,可以检查网络流量,是观察TCP/IP异常流量的很好的工具,Wireshark是个抓包工具,或者更确切的说,它是一个有效的分析数据包的开源平台
6.3.Metasploit
6.4.Maltego
6.5.Appscan
6.6.Awvs
AWVS ( Acunetix Web Wulnerability Scanner)是一个自动化的Web 应用程序安全测试工具,它可以扫描任何可通过Web 浏览器访问的和遵循 HTTP/HTTPS 规则的 Web站点和 Web应用程序、国内普遍简称WVS
6.7.Nmap
6.8.kail Linux
目前比较流行的安全渗透测试平台,包含了最新的安全测试工具,允许用户从CD或者U盘启动,通过U盘来实施安全渗透测试
6.9.Acunetix
大家如果还有更实用厉害的工具,可以告诉我,我来补充哈,谢谢大家
到此这篇什么是安全测试_软件测试方法的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/te-aq/8358.html