软件安全测试

第一章
Software safety
软件安全性是指软件在系统中运行而不至于在系统工作中造成不可接受风险的能力
Software security
软件安全指软件在受到恶意攻击的情形下依然能够继续正确运行及确保软件在被授权范围内能够合法使用。
计算机安全的四大目标
可用性、安全性、机密性、完整性。
安全漏洞定义
安全漏洞特指硬件、软件、协议在逻辑设计上或具体实现或系统安全策略上存在的缺陷或错误,这些缺陷或错误可以被不法者或者电脑黑客利用来获取计算机系统的额外权限,在未授权或提高权限的情况下通过植入木马,病毒等方式来攻击或控制整个电脑,从而窃取电脑中的重要资料和信息,甚至破坏系统。
软件安全开发的阶段划分
安全需求分析(需求阶段)-> 体系结构风险分析(设计阶段)-> 代码审核(代码阶段)-> 基于风险的安全测试(测试设计阶段)-> 渗透测试(测试执行阶段)-> 安全操作(实施阶段)
第二章
信息安全特性身份认证,数据完整性,数据机密性,操作的不可否认性
对称加密
发送方对明文用加密密钥和加密算法进行加密处理,变成密文,连同密钥一起,发送给接收方;接收方收到密文后,使用发送方的加密密钥及相同算法的逆算法对密文解密,恢复明文。
非对称加密(进行少量数据进行加密)
通信前,接收方随机生成一对公开密钥和私有密钥,将公开密钥公开给发送方,自己保留私有密钥;然后发送方利用接收方的公开密钥加密明文,使其变为密文;最后接收方收到密文后,使用自己的私有密钥解密密文,获得明文。
数据加密:公钥加密,私钥解密。(只保证数据机密性)
数字签名:私钥加密,公钥解密。(不能保证数据机密性)
HASH加密
把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出值就是散列值。(单向加密,输入明文后由系统直接加密算法处理得到明文,连同明文密文一起发送,主要用于进行某些信息的鉴别)
数字证书工作过程
它采用公钥体制,即利用一对互相匹配的密钥进行加密,解密。每个用户自己设定一把特定的仅为本人所知的私有密钥,用它进行解密和签名;同时设定一把公共密钥并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息可以安全无误到达目的地。
通过数字手段保证加密过程是一个不过逆的过程,只有私有密钥才能解密
举例说明生物认证
生物认证就是通过生物学特征和行为特征来辨识每个人的自动化方法。
指纹,声音,眼睛,脸部或者以上的特征综合。(瞳孔)
访问控制三要素
主体,客体,控制策略
主体(通常指用户)
客体(信息的载体,或者从其他主体或客体接收信息的实体)
自主访问控制
是由客体的属主对自己的客体进行管理,由属主自己决定是否将自己客体的访问权或者部分访问权授予其他主体,这种控制是自主的
(注:灵活,但无法抵御木马的攻击)
强制访问控制
用于将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。
注:
访问控制列表(以文件为核心):对于每个资源,列出可能的用户及访问权限
访问控制能力表(以用户为核心)
WIN NT的访问控制两种形式
自主访问控制列表:包含了用户和组的列表,以及对应的权限
系统访问控制列表:包含了对象被访问的时间
安全保障的定义
安全保障是判断信息系统可信度的基础,安全保障技术用来检验需求的正确性以及设计,实现和维护的有效性,能显著提高系统的可信度,及早发现错误并修正错误
系统评估的定义
系统评估是一种以具体的安全功能要求和安全保障证据为基础,对系统进行可信度测量的技术
OSI七层模型(P47)
把通信过程分成:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层

每一层功能独立,它利用其下一层提供的服务并为其上一层提供服务。
2个开放系统中的同等层之间的通信规则和约定 称为协议
1 – 4 为下层协议,5 – 7 位上层协议
OSI七层模型主要是为解决异种网络互连时所遇到的兼容问题,最大优点是将服务,接口和协议这3个概念明显区分开来。
入侵检测
入侵检测是对入侵行为的检测。它通过收集和分析网络行为,安全日志,审计数据,其他网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否存在违反安全策略的行为和被攻击的迹象。
安全扫描
基本原理是采用模拟黑客攻击的方式对目标可能存在的已知安全漏洞进行逐项检测,以便对于工作站,服务器,交换机,数据库等各种对象进行安全漏洞检测。
安全扫描技术分为:
主机安全扫描技术(针对系统中不合适设置和脆弱口令等)
网络安全扫描(执行一些脚本文件模拟对系统进行攻击的行为并记录系统的反应),核心技术(端口扫描技术和漏洞扫描技术)
扫描技术分为:PING扫描技术,端口扫描技术(TCP全连接扫描,TCP SYN扫描,秘密扫描技术),操作系统扫描技术,如何探测访问控制规则以及已知漏洞的扫描技术
防火墙的功能
通常部署在本地局域网和互联网之间,依据已经配置好的安全规则,过滤掉那些可能有害于系统安全的数据流。
防火墙:服务访问规则,验证工具,包过滤,应用网关4个部分。
注:
审计是事后认定违反安全规则行为的分析技术(日志记录器,分析器,通告器—收集数据,分析数据,通报结果)
计算机网络安全威胁主要包括:
信息泄露,拒绝服务式攻击,网络滥用
计算机网络安全威胁表现:
窃听,重传,篡改,行为否认,非授权访问,病毒传播
攻击形式:主动攻击,被动攻击
第三章
软件安全开发过程(P62)
需求分析(产品需求文档) –> 产品设计(产品设计文档)-> 开发编码(安全编码规范)-> 产品测试(产品代码扫描,产品黑盒测试)-> 系统发布(安全审核报告)
SSDL的组成部分(P63)
安全规则、规则及规章,安全需求,架构、设计评审和威胁建模,安全的编码原则,白盒、黑盒、灰盒测试,判定可利用性
获取安全需求的方法
基于传统用例,基于问题框架,反模型
安全测试中的黑盒测试、白盒测试、灰盒测试p67
黑盒测试:局外人对系统进行分析,使用工具来检系统的攻击面,并探查系统内部的信息
白盒测试(最有效的方法):通过访问源代码,设计文档,进行威胁建模或逐行审查代码,查找信息指导测试数据的选择
灰盒测试:(白盒与黑盒结合)
软件安全部署的意义P72
安全部署意味着软件安装时使用了安全的默认值,文件许可权限经过了适当的设置,并在应用程序配置中使用了安全设置
软件安全部署的结果可以达到优化分布式系统工作效率的目标
缓冲区溢出P75
攻击方式:直接输入法,传递参数法
指定代码行运行代码方法:利用另一个函数的返回地址
直接利用函数指针
解决办法:
积极检查边界
不让攻击者执行缓冲区内的命令
程序指针检查
编写风格良好的代码

进程和线程的区别
进程是程序在计算机上的一次执行活动,是操作系统进行资源分配的单位(指正在执行的程序)
线程是进程中的一个实体,是被系统独立调度和分派的单位,它可与同属一个进程的其他线程共享进程所拥有的全部资源
注:线程有创建,可运行,运行中,阻塞,死亡 5种状态
异常的处理机制(P79)
面向对象的异常处理机制:Java中的try-catch-finally
面过过程的异常处理机制:VB VB.NET 中的On Error
举例说明输入安全P81
数字安全问题:表单上对输入数字的格式,精度,范围,类型和范围的匹配
字符串安全问题:使用正则表达式,输入中拒绝特殊字符
环境变量安全问题:环境变量不能有 = ,
文件名安全问题:去除特殊字符
数据库安全问题:注入攻击
账户和口令安全问题:加密等等
B/S架构的交互过程

B/S架构的交互流程

第四章
代码静态分析工作流程
1、提取源代码
2、根据分析需求把源程序代码转换为易于分析处理的程序模型
3、将代码按照检查规则执行分析
4、按照指定的报告模板生成分析报告
静态分析的过程(4个过程)
建模:语法分析,语法解析,抽象语法树,语义分析,跟踪控制流,跟踪数据流,污染传播,指针别名歧义
分析算法:断言检查,本地分析方法(抽象解释,谓词转换器,模型检查),全局分析
规则:规则格式,用于污染传播的规则
报告结果
控制流图P106(以下2点建议看课本)
描述了函数或者方法之间潜在的控制流
数据流图
数据流分析一般是对某个函数的控制流图进行遍历,同时记录数据值的产生和使用位置
本地分析和全局分析
本地分析(抽象解释,谓词转换器,模型检查):主要针对分支和循环,要求方法可靠
全局分析:用来分析程序各个函数之间的关系
内存分配方式(缓冲区分配)P128?
保持当前缓冲区大小不变,终止整个程序或者完成部分操作
动态分配缓冲区,满足操作的缓冲区空间需求
代码审查周期(P114)
1.确立目标
2.运行静态分析工具
3.审查代码(使用静态分析工具的输出)
4.进行修补
编程语言的分类
编译型语言:c/c++
解释型语言:SHELL脚本和PHP
虚拟机语言:JAVA和C#
缓冲区溢出分类(P130)
字符串(天生危险的函数_gets scanf,有界字符串操作,保留NULL终止符,字符集、表达式和编码,格式串)
整数(回绕错误,截断和符号位扩展,有符号数和无符号数之间的转换)
补救措施:
利用返回代码处理错误
管理异常
防止资源泄露
日志记录和调试
第五章
源代码分析过程的阶段(P159)
构建集成:该阶段确定是否需要将SCA集成到构建编译程序
转换:通过一系列命令聚集起来的源代码会被转换为一个与build ID相关联的中间格式,该构建build ID 通常就是正在扫描的项目的名称
分析:系统将扫描在转换阶段识别出的源文件,随后生成一个分析结果文件,该文件通常为FORTIFY项目FPR格式。
对转换和分析阶段的验证:确保源文件的扫描使用了正确的规则包,而且没有报告重大错误
Fortify SCA包含的分析器
数据流分析器,控制流分析器,语义分析器,
结构分析器,配置分析器,缓冲分析器
HP Fortify扫描向导(P161)
HP Fortify扫描向导是一个实用程序,可以快速准备和扫描SCA项目代码。扫描向导能够运行本地扫描,如果正在使用HP Fortify云扫描,在处理器密集扫描分析阶段,云计算机可以相互分担压力
第六章
计算机病毒的特征:繁殖性,破坏性,传染性,潜伏性,隐蔽性,可触发性
病毒生命周期:
潜伏阶段 -> 传染阶段 -> 触发阶段 -> 发作阶段
计算机病毒工作原理(P239图)
计算机病毒通常由:引导模块,感染模块,破坏模块组成
一个计算机病毒通常需要通过引导模块装入内存,寻找感染目标,在触发条件满足时,由破坏模块实施病毒的破坏动作。
木马和后门的区别
木马:通过制定的程序来控制另一台计算机。控制端(客户端)和被控制端(服务端)
后门:一般指那些绕过安全性控制而获取对程序或系统访问权的程序方法。
联系:都是隐藏在用户系统中想歪发送消息,而且本身具有一定权限,以便远程机器对本级的控制
区别:木马是一个完整的软件,需采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限。
后门通常是程序设计者为了能在日后随意进入系统而设置的,它不仅绕过系统已有的安全设置,而且还能挫败系统上各种增强的安全设置。
木马分为:远程控制木马,记录型木马,反弹端口型木马,代码类木马,分布式攻击木马
后门分为:网页后门,线程插入后门,扩展后门,C/S后门
Web基本认证
客户端必须使用用户标识和口令向服务器说明自己的身份。
注:口令在服务器上是加密,但传输时 用户名和口令以明文显示,每个访问请求都要传递用户名和口令
Web认证:基本认证,数字认证,NTLM认证,证书认证,表单认证
注:微软口令 LANMAN和NTLM(超过14字符只存在)
主动侦察与被动侦察的区别
用来发现目标网络上主机信息的侦察方法
被动侦察:是从开放的信息源中收集数据(合法的行为)
主动侦察:是指使用技术工具发现目标网络上活动主机的信息。(不精确,费时,易被发现)
Web系统基本架构

主要三大部分:应用层,支撑技术,中间件,最底层的计算机资源
Web系统面临的威胁:保密性,完整性,可用性,可追究性
Web服务器类型
微软IIS服务器,Apache服务器(UNIX系统),Tomcat服务器(开源)
数据库类型
Oracle,MySQL,SQL Server (DB2,mic_access)
SQL注入
指攻击者通过修改WEB应用要发送给数据库的sql语句,达到获得某些想要得知的数据(或完成某个操作)的目的。
第七章
OWASP
P(273)专注软件安全的非盈利性组织
TOP10
P(278)
注入攻击的类型
常用:OS命令注入,XPth注入,LDAP注入和SQL注入
Squery注入,SSI注入,XML注入
举例说明SQL注入攻击(P281)
SQL注入攻击是发生在应用程序和数据库层之间的安全漏洞
EG:P(282)
Select id from users where username =”a” or 1=1 and password =”123456”
XSS
跨站脚本攻击是一种网站应用程序的安全漏洞攻击,是脚本代码注入的一种。
主要分为:反射式XSS(非永久性),存储式XSS(永久性)和基于DOM的XSS
CSRF
跨站请求伪造,是一种对网站的恶意利用
XSS与CSRF的区别

URL重定向与转发的区别
URL转发通常用于站内页面之间转发请求消息,由目标页面负责处理请求,并且把相应消息发回给浏览器。URL转发是在服务器内部将请求转发给另一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发送了转发行为。(通常网址不变)
URL重定向:把一个URL重定向到另一个URL上去(网址变化)
第八章
什么是渗透测试
渗透测试是由受信任的第三方进行的一种评估网络安全的活动,它是一个通过各种手段攻击企业网络以找出存在于系统中的漏洞,进而给出存在于企业网络中的风险的过程。通过模拟现实的网络攻击,渗透测试正式了恶意攻击者有可能获取或破坏企业的数据资产。
渗透测试的阶段划分及内容(P292)必考
侦察,扫描,获取访问,维持访问,擦除证据
侦察:收集目标网络信息的最初阶段
扫描:查询活动系统,从而抓取网络共享,用户及特定应用程序信息的过程
获取访问:实际渗透过程
维持访问:将后门程序放入到被利用系统中,以便未来使用
擦除证据:删除日志文件项,擦除进入系统痕迹的过程
第九章
Webinpect 新特征
闪存的静态分析
新报告系统
可选的深度优先爬行
Java MVC框架支持
使用IBM Rational ClearQuest集成
Webinspect 工作流程

注:

第十章
Webinspect的扫描方式(P311)
启动向导扫描
启动基础扫描
启动Web服务扫描
启动企业扫描
分析报告的导出格式(P358)
PDF
HTML
RTF
TXT
XLS(excel)
本机WebInspect的内部格式

自己备注:3,4章比较凌乱,多看脸熟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯过客TYGK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值