电子科技大学 软件安全技术 考试复习要点

电子科技大学 软件安全技术 考试复习要点
电子科技大学 软件安全技术 考试复习要点

早期的面向终端的计算机网络是以单个主机为中心的星形网

分组交换网则是以网络为中心,主机都处在网络的外围。

网络是指“三网”,即电信网络、有线电视网络和计算机网络。

发展最快的并起到核心作用的是计算机网络.

计算环境是以计算机为基础的,为了满足人类数据处理和信息交流所构建的包括计算机、通信终端、网络及交换设备以及软件等内容的基础设施的总称。

计算机网络最简单的定义:计算机网络是一些互相连接的、自治的计算机的集合。从网络的交换功能分类:电路交换。报文交换。分组交换。混合交换

从网络的作用范围进行分类:广域网 WAN,局域网 LAN,城域网 MAN,接入网 AN 从网络的使用者进行分类:公用网,专用网。

两种国际标准:国际标准 OSI,非国际标准 TCP/IP称为事实上的国际标准.

为进行网络中的数据交换而建立的规则、标准或约定即网络协议

网络协议的组成要素:语法,语义,同步

文件传送模块—通信服务模块—网络接入模块—网络---。。。网络接入模块负责做与网络接口细节有关的工作(例如,规定传输的帧格式,帧的最大长度等。)网络分层的好处:各层之间独立,灵活性好,结构上可分割,易于实现维护,促进标准化工作。

TCP/IP 是四层的体系结构:应用层、运输层、网际层和网络接口层

综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构:应用层,运输层,网络层,数据链路层,物理层

TCP/IP 的三个服务层次:无连接分组交付→运输服务(可靠数据或不可靠)→各种应用服务

因特网三个阶段:ARPANET→NSFNET→各网络之间需要使用路由器来连接

制订因特网的正式标准要经过以下的四个阶段:因特网草案,建议标准,草案标准,因特网标准

指令系统:计算机的指令系统就是指该计算机能够执行的全部指令的集合。

软件的概念:与一系统(尤指计算机系统)有关的程序、步骤和有关文件编制的完整集合。特指特定类型计算机所使用的程序的总称,连同与计算机或程序有关的资料,例如手册、图表和操作指令。

操作系统(Operating System)是一个管理计算机系统的软件,它管理着计算机系统中的软件资源和硬件资源,并为用户使用计算机提供方便、有效和安全可靠的工作环境。操作系统追求的目标是合理调度、分配计算机的各种资源,最大限度地提高系统中各种资源的利用率。

操作系统的功能-从资源管理的角度:管理处理器,管理存储器,管理设备,管理文件。

操作系统的功能-从服务的角度:运行程序,管理信息,输入输出,检查和处理错误

操作系统的分类:桌面操作,服务器操作,通用操作,嵌入式操作系统

应用软件以系统软件为基础。

所谓信息,就是客观世界中各种事物的变化和特征的最新反映,是客观事物之间联系的表征,也是客观事物状态经过传递后的再现。

信息的性质和特征:普遍性和可识别性,存储性和可处理性,时效性和可共享性,增值性和可开发性,可控性和多效用性

“信息安全”定义,国内外的论述大致可分为两大类:一类是指具体的信息技术系统的安全。而另一类则是指某一特定信息体系的安全。但是有人认为这两种定义失之于过窄,而应定义为:一个国家的社会信息化状态和信息技术体系不受外来的威胁与侵害。

信息安全的5个基本属性:安全,可用,保密,可控,可靠

软件安全性是指软件不被恶意使用或者攻击进而造成用户信息资产损失的属性。软件安全:软件在恶意攻击下能够正确地完成其功能。

软件安全属性:可信性,完整性。可用性

软件安全保护什么?软件的完整性、可用性、保密性、运行安全性。

①软件自身安全防止软件丢失、被破坏、被篡改、被伪造

②软件存储安全可靠存储,保密存储,压缩存储,备份存储

③软件通信安全安全传输、加密传输、网络安全下载、完整下载

④软件使用安全合法用户与非法用户,授权访问,防止软件滥用,防止软件窃取,

软件的非法复制

⑤软件运行安全确保软件正常运行,功能正常

构建安全的软件是一个过程,这个过程包括:教育,设计,接口选择和规格定义,软件的实现和编,验证、测试和评估,软件提交和安全地执行,软件的维护、BUG 修复和调整

第二章要点::::::

安全漏洞(Security Hole):计算机系统具有的某种可能被入侵者恶意利用的属性

攻击:指以受损状态结束的已授权状态变换的顺序,攻击开始于脆弱状态

脆弱状态:从已授权的状态变换到未授权状态。

当系统的某个漏洞被入侵者渗透而造成泄密时,其结果就称为一次安全事件.

产生漏洞的原因:软件或协议设计时的瑕疵;软件或协议实现中的弱点;软件本身的瑕疵;系统和网络的错误配置

安全的软件:软件的安全性和软件质量。

安全测试:是对软件安全性或其水平的“证明”

安全测试:攻击测试,穿透(渗透)测试

缺陷的类型:有意的缺陷(恶意的和非恶意的)、无意中的缺陷(不注意的和疏忽的)

软件漏洞包括设计漏洞和实现漏洞

平台是指程序在其中所运行的环境,包括操作系统以及与之交互的组件。

安全工程分三个基本过程:风险、工程和保证

SDL:Secure Development Lifecycle

SDL从三个方面考虑软件安全的保障:设计安全,缺省安全,提交安全

软件的受攻击面:接口,服务,代码,协议,其他

受攻击面降低具体方法可以概括为:降低默认执行的代码量,限制可访问到代码的人员范围,限定可访问到代码的人员身份,降低代码所需权限

安全风险评估:用于判断系统中容易受攻击的漏洞级别

SDL中涉及安全的文档:安装文档,主线产品使用文档,帮助文档,开发人员文档安全工具:开发用于安全配置或审计的工具,如安全配置向导SCW

安全编码策略包括的内容:使用最新版本编译器与支持工具,使用编译器内置防御特性,使用源代码分析工具,勿使用违禁函数,减少潜在可被利用的编码结构或设计,使用安全编码检查清单

安全测试内容:模糊测试,渗透测试。运行时测试,重审威胁模型,重估受威胁面软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。

生命周期的各阶段:问题定义→可行性研究→ 需求分析→ 总体设计(概要设计)→ 详细设计→ 编码和单元测试→ 综合测试→ 软件维护。

软件过程模型是软件开发的指导思想和全局性框架

软件生存期是软件产品或系统一系列相关活动的全周期

经典软件过程模型:瀑布模型(系统/信息工程和建模,软件需求分析,设计,代码生成,测试,维护)原型模型,增量模型(分析,设计,编码,测试),喷泉模型(认为软件生命周期的各个阶段是相互重叠和多次反复的)螺旋模型

软件质量特性:功能性,可靠性,易用性,效率,可维护性,可移植性

软件质量评价–评价过程:测量,评级,评估

程序数据:功能性,可靠性,可移植性,易用性,效率,可维护性

第四章要点::::::

软件测试的目的: 为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。

测试的定义:为了发现程序中的错误而执行程序的过程。具体地说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。

软件测试的步骤:单元测试(模块测试),集成测试(模块间的接口,子功能的组合),有效性测试(使用实际数据进行测试),系统测试。

软件配置:需求说明、设计说明、原代码。

测试配置:测试计划和测试方案。

软件测试方法:黑盒(如果已知产品的功能,则可以对它的每一个功能进行测试,看是否都达到了预期的要求)白盒(如果已知产品的内部工作过程,则可以对它的每种内部操作进行测试,看是否符合设计要求。)

黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试是在程序接口进行的测试,又称为功能测试。

黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息(如数据文件)的完整性等。

黑盒测试不可能实现穷尽测试

白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。

利用白盒测试设计测试用例时,应包括以下三类测试:语句测试;分支测试;路径测试。

白盒测试也不能实现穷尽测试

白盒测试:逻辑覆盖(以程序的内部逻辑结构为基础的测试用例设计技术:

1.语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次。

2.判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖。

3.条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。

4. 判定/条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。

5.条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次。)

黑盒测试:等价类划分(从所有可能的输入数据中选择一个子集来进行测试,根据输入数据和输出数据的特点,将程序输入域划分成若干个部分,即子集,然后从每个子集中选取具有代表性的数据作为测试用例

【1.规定了取值范围:一个有效的等价类和2个无效的等价类(不在范围内)

2. 规定了输入数据的个数:一个有效的等价类(等于该个数)和2个无效的等价类。

3.规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理:一个有效的等价类和一个无效的等价类。

4.规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类

5.如果输入条件规定了输入数据必须遵循的规则】

边界值分析:应该选取恰好等于、小于和大于边界的值作为测试数据,

错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。

软件测试步骤:

单元测试:主要使用白盒测试法(1)模块接口(2)局部数据结构(3)重要的执行路径(4)出错处理(5)边界条件。单元测试的步骤:单元测试的对象是模块,自己设计驱动模块和存根模块

集成测试:将各个模块组装成系统的方法:非增殖式组装方式和增殖式组装方式(同时完成单元和集成测试,自顶向下和自底向上)。

有效性测试:验证软件的功能和性能是否与用户的要求一致。

系统测试:要把软件与其它系统元素结合起来,进行一系列的集成测试和有效性测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方。

调试过程由两个部分组成:首先,确定程序中错误的确切性质和位置;然后,对程序代码进行分析,确定问题的原因,并设法改正这个错误。

调试策略:1、强行排错2、回溯法

安全漏洞分级:Dread模型【潜在的破坏,再现性,可利用性,受影响的用户,可发现性】

基于可利用性的TRAP模型:时间,可靠性/再现性,访问,定位

安全测试的目标:在给定的时间和资源不变的情况下,尽可能多地找出最为严重的安全缺陷。

基于风险的测试的三个步骤:信息搜索,威胁/风险建模,测试

威胁建模的目的:排定测试优先级,找出测试区域,发现系统弱点

威胁建模步骤:识别威胁的路径,识别威胁,识别漏洞,将漏洞分级

识别威胁路径:目的:识别应用程序级别最高的风险领域,确定相应的保护措施:了解应用程序平台和编程语言的整体强度,确定用户的访问类别,建立并分析数据流图

识别威胁:目的:深入识别沿威胁路径的处理,逐一理清与处理相关的每一种威胁。

在一个威胁路径上的9个高风险活动:数据解析,文件访问,数据库访问,生成子进程,身份鉴别,授权,同步或会话管理,处理私密数据,网络访问

识别漏洞:目的:找出可能存在于组件中的实际漏洞。搜寻漏洞的方法及途径:安全设计审查,安全代码审查,安全测试。对漏洞的可能缓解措施:数据验证测试,资源监视,关键功能的访问控制

风险分级:DREAD模型:潜在的破坏,再现性,可利用性,受影响的用户,可发现性

灰盒测试:组合使用白盒测和黑盒测试:白盒测试用于发现在设计和开发中详细说明的功能中的缺陷;黑盒测试在不需了解程序内部信息的时候找出缺陷。

常见安全设计原则:

1经济机制:代码尽可能简单、紧凑。软件愈复杂,出现安全BUG的可能性愈高。2默认失效保护:任何请求缺省应加以拒绝。

3安全中介:每个访问受保护对象的行为应当被检查。

4公开设计:与“不公开即安全”的原则相对应。设计自身不应具有神秘感。

5权限分离:切勿允许基于单一条件的操作过程。

6最小特权:只授予执行操作所必须的最小特权。

7最少公共机制:使公共资源尽可能少。

8心理可接受程度:安全产品与技术是否容易使用?用户能否接受?与UI的密切配合。

常见问题及对策:

1.执行第三方代码的安全复查

2.保证开发人员工作站的安全性

3.编写具有最低权限的代码

4.防止SQL注入

5.防止跨站点脚本编写

6.管理机密

7.安全地调用代码接口

8.执行安全的输入验证9.保证页面访问身份验证的安全性

管理系统维护对策:1.实现补丁管理2.保证Web服务器的安全性3:保证数据库服务器的安全性4.防止拒绝服务攻击5.限制文件I/O 6.执行远程管理

高级语言种类繁多,我们可以从应用特点(基础,结构化,专用)、语言内在特点(系统实现语言,静态高级语言,块结构高级语言,动态高级语言)和对客观系统(面向过程语言,面向对象语言)的描述三个不同的角度来对高级语言进行分类。选择具体高级语言类型的原则:(1)系统的应用领域(2)用户的要求(3)软件的执行环境(4)目标系统的性能要求(5)程序员的知识水平(6)软件的可移植性要求

程序设计风格:程序内部的说明文档【恰当的标识符(变量和标号)的名字; 适当的注释;

程序的视觉组织】,数据说明【次序应当规范化;该按字母顺序排列这些变量;对复杂的数据结构说明用程序设计语言实现这个数据结构的方法和特点】,语句构造【语句构造应遵循的原则是:每条语句应该简单而直接,不应为了片面追求效率而使代码变得过于复杂】,I/O【校验,组合的合法性,允许缺省值】,效率【效率主要指占用处理机时间和主存区域两个方面:代码效率,存储效率,I/O的效率】。

程序的注释分为两种:序言性注释和功能性注释

{ISO}MIS是借助于自动化数据处理手段进行管理的系统,由计算机硬件、软件、数据库各种规程和人共同组成。{中国企业管理百科全书}MIS是一个由人、计算机等组成的能进行管理信息的收集、传递、加工的信息系统。

一个信息系统的主要特征包括:依赖于计算机;涉及了软件和硬件;实现数据的采集、传递、加工、处理功能。

系统的主要特性:整体性,目的性,层次性,边界性,环境性,关联性

系统的运行环境要素:物理世界,管理者实体,使用者【用户,系统管理员,信息主管】,提供者,基础组织,入侵者

五种安全服务类型:身份鉴别,访问控制,数据保密,数据完整性,抗抵赖

把整个系统划分为以下三个部分:用户界面逻辑,业务逻辑,异常探测机

在系统安全方面要实现的主要功能包括:1.访问控制;2抗抵赖;3数据保密;4身份鉴别; 5授权机制;6日志审计;7.系统异常探测。

用户界面逻辑:包括登录控制【口令验证,口令修改,口令数据加密,登陆时间记录】和数据访问。

系统口令安全机制要求:长度,字符集,有效期

用户封锁:当出现用户多次登录系统失败的情况时,系统将锁定用户的操作并提示,解锁过程必须由系统管理员完成。

业务逻辑部分:主要包括数据服务【完成特定数据的加密、解密,日志数据的存储,权限及用户信息的存储】、权限管理【对用户授权为系统管理员(日常权限管理、日志审计、系统状态监控、异常监测、用户锁定处理)信息主管(系统启动和初始授权)】、日志审计【对用户的操作行为进行跟踪,日志信息不能人工清除,间隔一定的周期系统自动清除】三个部分。

异常探测机:日志的分析;网络状态的安全监测;提供一定的日志文件保护机制异常行为:用户身份的攻击,口令攻击,服务器的异常访问,数据库异常连接,数据库文件变动异常,系统管理员攻击,日志文件攻击

日志分析:用户名,用户标志(ID),用户登陆和退出时间;访问的功能(操作模块);用户锁定信息(非法用户冒用身份);口令变动时间;用户授权时间;授权功能;授权人。

针对日志文件自身的攻击主要有:日志数据的删除;日志数据的修改;

日志数据审计【手动审计,自动审计和报警】

网络异常探测机的主要功能是针对来自网络的信息进行分析,提供对信息系统的保护报警。

数据流量异常和服务连接异常【连接数量异常,连接主机异常和连接端口异常】计算机信息系统面临的3大类威胁:1信息系统设备的威胁;2.业务处理过程的威胁;3对数据的威胁。

影响信息系统安全的因素:1计算机系统内在软硬件的缺陷;2恶意攻击;3使用不恰当;

4自然灾害

信息系统的安全策略:物理安全,数据安全,网络安全,软件安全;系统管理;灾难恢复

相关主题
相关文档
最新文档