安全测试学习

一、安全测试概述

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.软件的发布与安装安全

发布件的完整性校验(签名、哈希)
防病毒:需要安装的软件需要经过常用的杀毒软件(如360、金山毒霸等)的扫描,保证没有病毒特种码,以免被杀软处理掉

4.5.协议与接口攻防

业务交互数据在网络中使用的协议安全性测试
协议测试工具:codenomical
对外开放的端口:系统对外开放的端口必须是必要的,禁止开放无用端口
端口扫描工具:Nmap,近端可以直接在服务器上使用命令查看
接口:接口接受的数据需要做严格的处理

4.6.敏感数据保护

识别敏感数据:密码、秘钥、会话标识;个人信息、商业机密、客户信息等
保护:加密、存储位置、传输方式;获取数据脱敏、匿名化

4.7.手机端安全

app的签名、反逆向,用户隐私,文件权限,网络通讯,升级
1、app的签名、反逆向

2、用户隐私

本地保存用户密码、无论加密与否,敏感信息隐私信息,如聊天记录、关系链、银行卡号等是否加密保存
配置文件等是否保存到外部设备上
保存到外部设备的信息加载前判断是否被篡改

3、文件权限

App所在目录不允许其他组成员读写

4、网络通讯

重要敏感数据传输加密

5、运行时解释保护

嵌有解释器的软件XSS、SQL注入等
外部连接的是否有URL欺骗等漏洞

6、组件权限保护

禁止App内部组件被任意第三方程序调用
调用外部组件先验证签名

7、升级

升级包完整性、合法性校验,避免被劫持

8、3rd库

跟进第三方库的更新

4.8.静态代码分析(纯白盒)

白盒测试主要是通过对代码的浏览来发现问题
1、危险函数
2、工具检测
3、逻辑漏洞

4.9.灰盒

需要的地方对代码进行动态调试查看。审计中思路可以考虑如下部分
1、涉及敏感数据的时候,检查是get、post哪种形式发送数据

2、提交铭感数据的时候是否有防止csrf的token、refer、验证码

3、sql注入

4、XSS
我们用的antisamy只能过滤基于标签的XSS伪造,其他的无法过滤,需要做二次过滤

5、权限校验、越权

6、session会话管理
常规cookie及session形式,把token作为session的形式,特别注入登录用户和token的绑定关系

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

漏洞监测工具
Metasploit本质上是一个为用户提供已知安全漏洞主要信息的计算机安全项目(框架),并且Metasploit帮助指定渗透测试和IDS监测计划、战略以及利用计划

6.4.Maltego

取证,证书
Maltego跟其他取证工具不同,因为它在数字取证范围内工作。Maltego被设计用来把一个全面的网络威胁图片传给企业或者其他进行取证的组织的局部环境,它是一个平台

6.5.Appscan

一个领先的web应用安全工具,可自动进行安全漏洞评估、扫描和检测所有常见的web应用安全漏洞,如:SQL注入、跨站点脚本攻击(CSS)、缓冲区溢出等
涵盖 XML 和 JSON 基础架构的 SOAP 和 REST Web 服务测试支持 WSSecurity 标准、 XML 加密和 XML 签名。详细的漏洞公告和修复建议

6.6.Awvs

AWVS ( Acunetix Web Wulnerability Scanner)是一个自动化的Web 应用程序安全测试工具,它可以扫描任何可通过Web 浏览器访问的和遵循 HTTP/HTTPS 规则的 Web站点和 Web应用程序、国内普遍简称WVS

6.7.Nmap

端口扫描器
Nmap被用于发现网络和安全审计。据数据统计,全世界成千上万的系统管理员使用nmap发现网络、检查开放端口、管理服务升级计划,以及监视主机或服务的正常运行时间。Nmap是一种使用原始IP数据包的工具,以非常创新的方式决定网络上有哪些主机,主机上的哪些服务(应用名称和版本)提供什么数据、什么操作系统、什么类型、什么版本的包过滤/防火墙正在被目标使用

6.8.kail Linux

目前比较流行的安全渗透测试平台,包含了最新的安全测试工具,允许用户从CD或者U盘启动,通过U盘来实施安全渗透测试

6.9.Acunetix

网络漏洞扫描器
Acunetix是一款非常受欢迎并且非常使用的自动漏洞扫描器,Acunetix通过抓取和扫描网站和Web应用的SQL注入、XSS、XXE、SSRF和主机头攻击和其他500多个web漏洞

大家如果还有更实用厉害的工具,可以告诉我,我来补充哈,谢谢大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值