软件安全性测试(连载2)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 软件安全性测试(连载2)

1.5软件安全三要素


1. 机密性(Confidentiality)

      机密性要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。加密技术的过程如下。

1)发送方通过加密函数和加密密钥对数据进行加密处理,形成密文。

2)发送方将加密好的密文发送给接收方。

3)接收方接收发送方发送过来的密文。

4)接收方接收过来的密文通过解密函数和解密密钥进行解密操作,还原数据。


      如果一个加密算法在第3)步没有合适的算法,这个加密过程是不可逆的,否则是可逆的。MD5是常用的不可逆的加密算法。但是并不可以说不可逆的算法是不可以破解的,比如MD5算法可以通过“彩虹表”软件来进行破解。


2. 完整性(Integrity)

      完整性则要求保护数据内容是完整、没有被篡改的。常见的保证一致性的技术手段是数字签名。公元179927日,康熙皇帝驾崩,留下传位诏书“传位十四太子”,大家都知道,在皇宫里面太子争权夺位在历朝历代是都存在的,雍正为列皇子第四位,为了达到皇位,派人把诏书改为“传位于四太子”。对于这个故事是否真假已经无从考据了,但是这正反应出来软件安全中的完整性。如果当时康熙皇帝可以把诏书设置为只读模式,估计就没这事情了。


3. 可用性(Availability)

      可用性要求保护资源是“随需而得”。尽管数据进行了加密,数字签名等安全措施,但是正常程序在正常使用的时候,数据必须是可用的。影响可用性的很好例子是DDOS攻击。


1.6 WEB软件安全威胁OWASP Top 10


image.png

4 OWASP Top 102013软件安全威胁OWASP Top 10对比图


      42017软件安全威胁OWASP Top 102013软件安全威胁OWASPTop 10对比图。2017软件安全威胁OWASP Top 10分别如下。

  • A1:2017-注入。
  • A2:2017-失效的身份认证。
  • A3:2017-敏感数据泄露。
  • A4:2017-XML 外部实体(XXE)。
  • A5:2017-失效的访问控制。
  • A6:2017-安全配置错误。
  • A7:2017-跨站脚本(XSS)。
  • A8:2017-不安全的反序列化
  • A9:2017-使用含有已知漏洞的组件。
  • A10:2017-不足的日志记录和监控。


这些知识在本章中都将有所涉及。


1.7同源策略


      同源策略中的“源”指不同的主机“HOST”、不同的子域名、不同的端口或不同的协议。程序不可以跨“源”进行调用。比如A“源”的程序不得调用B“源”中的程序。a.com通过以下代码:


<scriptscr=http://b.com/b.js></script>


加载了b.com上的b.js,但是b.js是运行在a.com页面中的,因此相对于当前打开的页面(a.com)来说,b.js的源就应该是a.com而非b.com1展示了同源的几种不同的情形。


1 同源策略



但是srchref属性是支持跨域操作的,比如。

<img src="https://www.mydomain.com/img/tree.gif"></a>
<ahref="http://www.mydomain.com/hello.js">…</a>
<imgsrc="http://www.mydomain.com/hello.js">
<img src="#"onerror="http://www.mydomain.com/hello.js">


1.8 HTTP协议简介


      由于本章主要介绍基于WEB的安全测试知识,所以在这里很有必要对HTTP协议进行简单地介绍。


1. HTTP协议包

5是一个HTTP协议包。

image.png

5 HTTP协议包


      它包括一个起始行、一到多个头域、一个结束头域的空行(CTRL+)以及一个消息实体(根据情况可能不存在)。头域是由一组“域名:域值”组成的值参对,包括“通用头域”“请求头域”“响应头域”和“实体头域”(“请求头域”“响应头域”分别在请求包和响应包中出现)。下面简单介绍一下请求包和响应包。


2. 请求包

      请求包分为“POST”“GET”“HEAD”“PUT”“DELETE”“CONNECT”“TRACE”和“OPTIONS”八中类型。其中“POST”与“GET”是经常使用的。6是一个请求包。

image.png

6请求包


      由于这是一个GET请求,是一个不带Body体的。一般Body体为POST参数和附件。起始行:GET/HTTP/1.1表示基于HTTP 1.1协议的GET请求。


3. 响应包

      HTTP的响应代码概要如2所示


2 HTTP响应代码概要表

响应代码

内容

1XX

指示信息---表示接收到请求,继续进程

2XX

成功---表示请求已被成功接收、理解和接受

3XX

重定向---要完成请求必须进行更进一步的操作

4XX

客户端错误---请求有语法错误或者无法实现

5XX

服务器错误---服务器未能实现合法请求


常见的响应代码如下(括号内为响应短语)。

  • 200OK):客户端请求成功。
  • 304No Changed):没有改变。
  • 401Unauthorized):请求未授权,这个状态代码必须和WWW-Authenticate报文域一起使用。
  • 400Bad Request):客户端请求有语法错误,不能被服务器端理解。
  • 403Forbidden):服务器请求被收到,但是拒绝提供服务。
  • 404Not Found):请求资源不在,比如:错误的URL
  • 500Internal Server Error):服务器内部错误。
  • 503Server Unavailable):服务器当前不能处理客户请求,一段时间后可能恢复正常。

7是一个响应包。

image.png

7 响应包


起始行:HTTP/1.1 200 OK表示返回为200OK200的响应短语)的基于HTTP/1.1的响应包。消息实体一般为返回的HTTP代码或者JSON代码。


星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net


顾翔凡言:


图是软件项目三角形。

image.png

 软件项目三角形


      下面做如下假设。

l 假设质量(Q)与范围(S)不变,时间(T)减少的情形下,必须雇佣高水平的人员或者先进的技术,即增大产品的成本(C)。同理,质量(Q)与范围不变,时间(T)增加的情形下,可以减少成本(C)。

l 假设质量(Q)与时间(T)不变,范围(S)增加的情形下,也必须增大成本(C)。同理,质量(Q)与时间(T)不变,范围(S)减少的情形下,可以减少成本(C)。

l 假设质量(Q)与成本(C)不变,时间(T)减少的情形下,范围(S)必须减少。同理,质量(Q)与成本(C)不变,时间(T)增加的情形下,可以加大范围(S)。


于是可以得到如下公式:

Q = TC/S

 也就是说质量消耗单位模块的时间和金钱的乘积。从这里可以看出,完成一个功能,需要达到一定的质量,必须消耗有效的时间或者增加产品的成本投入,由此可以看出为了赶进度,盲目加班赶工是不可取的。

目录
相关文章
|
XML SQL 安全
软件安全性测试(连载10)
软件安全性测试(连载10)
125 0
软件安全性测试(连载10)
|
SQL 存储 安全
软件安全性测试(连载21)
软件安全性测试(连载21)
147 0
软件安全性测试(连载21)
|
存储 安全 Java
软件安全性测试(连载24)
软件安全性测试(连载24)
125 0
软件安全性测试(连载24)
|
安全 前端开发
软件安全性测试(连载7)
软件安全性测试(连载7)
119 0
软件安全性测试(连载7)
|
安全 程序员 网络安全
软件安全性测试(连载18)
软件安全性测试(连载18)
98 0
软件安全性测试(连载18)
|
存储 Web App开发 移动开发
软件安全性测试(连载8)
软件安全性测试(连载8)
91 0
软件安全性测试(连载8)
|
前端开发 JavaScript
软件安全性测试(连载4)
软件安全性测试(连载4)
60 0
|
SQL 缓存 网络协议
软件安全性测试(连载23)
软件安全性测试(连载23)
122 0
软件安全性测试(连载23)
|
SQL 存储 Oracle
软件安全性测试(连载11)
软件安全性测试(连载11)
118 0
软件安全性测试(连载11)
|
存储 JavaScript 前端开发
软件安全性测试(连载3)
软件安全性测试(连载3)
110 0
软件安全性测试(连载3)
下一篇
无影云桌面