【软件安全】期末浓缩复习题

1-2 为什么必须对软件安全给予强烈关注?

背景:软件无处不在。信息化时代软件涉及即时通信、电子邮件、移动商务、智能家居等各方面。软件规模日益庞大,操作系统从百万行增长至亿行。
问题:软件漏洞普遍存在,零日漏洞成为主要威胁。在软件开发设计过程中,软件漏洞和不安全的软件配置这些软件安全问题时有发生。
结论:软件安全应当引起重视,成为当务之急。改善软件安全问题有利于社会、经济和国防建设,软件安全关乎国家竞争力。

1-8 软件安全概念解释

是软件工程和软件保障的一个方面,提供了一种系统的方法来标识、分析和追踪对危害及具有危害性功能的软件缓解措施和控制。
软件安全具有信息安全三大基本属性CIA: 保密性、完整性、可用性。其他属性:可认证性、授权、可审计性、抗抵赖性、可控性、可存活性等。

2-1 软件漏洞,错误、缺陷、bug的区别和联系

漏洞是存在于信息系统、系统安全过程、内部控制或实现过程中的、可被威胁源攻击或触发的弱点。软件漏洞通常被认为是软件生命周期中与安全相关的设计错误、编码缺陷及运行故障等。1)软件错误发生在软件开发的生命周期中,是人为的差错导致的。包括需求说明错误、设计错误、编码错误、测试错误、配置错误、文档错误。2)软件Bug存在于软件产品中,由于人为差错或其他客观原因造成。是一种静态形式,一旦激活会影响用户的正常功能需求。软件漏洞的存在更加隐蔽,关乎软件的安全问题。软件漏洞的存在体现了软件的脆弱性。
联系:这些概念都描述了软件在功能、行为上的异常和错误,对软件的可用性造成了损害。

2-3 软件漏洞的成因

  1. 计算机系统结构决定了漏洞的必然性。例如,数据和指令可能发生混淆,人为因素导致编码错误等。
  2. 软件趋向大型化,第三方扩展增多。软件漏洞的增长和软件复杂度、代码行数的增长呈正比。
  3. 新技术、新应用的设计缺乏安全性考虑。
  4. 使用场景更具威胁。网络技术的引入使得软件的使用环境变得更加复杂多变。
  5. 缺乏对软件安全的重视,开发者缺乏相关知识。

2-4 软件漏洞如何分类分级管理?

分类:1)基于漏洞成因的分类。内存破坏类、逻辑错误类、输入验证类、设计错误类、配置错误类。2)基于漏洞利用位置的分类。本地漏洞、远程漏洞。3)基于威胁类型的分类。获取控制、获取信息、拒绝服务。
分级:1)按照漏洞严重级别。严重、重要、中等、低。2)利用通用漏洞评分系统(CVSS)分级。依照基本度量、时间度量、环境度量三个标准对漏洞打分。

3-3 什么是缓冲区溢出漏洞?

缓冲区溢出漏洞就是在向缓冲区写入数据时,由于没有做边界检查,导致写入缓冲区的数据超过预先分配的边界,从而使溢出数据覆盖在合法数据上而引起系统异常的一种现象。

4-3 Web漏洞分为哪几大类型

A1注入 A2失效的身份验证 A3敏感数据泄露 A4XML外部实体 A5失效的访问控制 A6安全配置错误 A7跨站脚本 A8不安全的反序列化 A9使用含有已知漏洞的组建 A10不足的日志记录和监控

4-4 试将Web典型漏洞

Web客户端:XSS(跨站脚本攻击):恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时,嵌入其中Web里面的javascript代码会被执行,从而达到恶意攻击用户的目的。
CSRF(跨站请求伪造):攻击者获取用户信息后伪造请求(例如Cookie),利用用户身份完成攻击操作,如发布文章、购买商品、转账、修改资料甚至密码等。
Web服务端:Sql注入漏洞:攻击者将恶意的数据插入SQL查询中,提交到后台数据库引擎执行非授权操作。
弱口令漏洞:文件上传漏洞:由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过Web访问的目录上传任意文件,包括网站后门文件(webshell ),进而远程控制网站服务器。
未加密登录请求:由于Web 配置不安全,登陆请求把诸如用户名和密码等敏感字段未加密进行传输,攻击者可以窃听网络以劫获这些敏感信息。

5-4 SD3+C原则是SDL模型实施的基本原则

安全设计。软件的设计和实现需考虑如何保护其本身(和存储的信息)抵御外部攻击。
安全配置。软件的缺省配置运行环境应考虑如何降低安全风险。重要的一个假设是软件自身代码总存在安全漏洞。安全部署。软件需要提供相应的文档和工具,以帮助最终用户或管理员安全地使用。此外,更新应该易于部署。
沟通。开发人员应为产品漏洞的发现准备响应方案,与系统应用的各类人员不断沟通,以帮助他们采取保护措施。

6-3 软件安全需求分析的主要工作是什么?它和软件需求分析有什么区别与联系?

主要工作:识别、确定、追踪和协调软件项目中涉及安全相关的功能性需求。
区别:1、软件安全需求分析需要更多的安全知识,软件需求分析则不需要;2、软件安全需求分析的过程中要考虑不同的安全攻击和防御,而软件需求分析可以忽略此类要素;3、软件安全需求分析的核心是安全需求,而软件需求分析的核心是功能性需求。
联系:1、软件安全需求分析是软件需求分析的一个衍生;2、软件安全需求分析应以功能性需求分析为基础,以更严格的标准审视安全功能性方面的问题;3、软件安全需求分析可以帮助从安全角度考虑性地确定系统需求,为软件系统更好地提供保护。

6-10 软件安全需求的获取方法有哪些?

头脑风暴:是指无限制的自由联想和讨论,其目的在于产生新观念或激发创新设想。问卷调查和访谈:可以直接用于生成安全需求,有效性取决于如何向被调查对象提出合适的问题。策略分解:将组织需要遵守的内部和外部政策,包括外部法律法规、隐私和遵从性命令分解成为详细的安全需求。数据分类:根据数据的重要性来进行分类,实际上也就是根据数据的敏感级,同时根据对数据泄露、变更或破坏的影响,有意识地为数据资产分配标签,以此来确定保护数据资产的不同安全保护需求和控制方法。主/客体关系矩阵:主/客体关系矩阵是角色和组件的二维表示,主体作为列,客体作为行。当主/客体关系矩阵产生后,与主/客体关系矩阵所允许的对应动作相违背的事件就可以判定为威胁,在此基础之上可以确定安全需求。使用用例和滥用案例建模:从使用用例出发,可以开发滥用案例。滥用案例可以通过对负面场景进行建模来帮助确定安全需求。软件安全需求跟踪矩阵:通过数据分类、使用用例和滥用案例建模、主/客体关系矩阵以及其他需求获取过程,可以将软件安全需求编制成一个需求列表或需求跟踪矩阵。

7-2 软件安全设计阶段的主要工作是什么?

  1. 分析安全需求:从客户和市场的角度确定对系统的安全性要求,并根据安全性需求,分析系统的功能和性能等属性;2.系统功能设计:确定(或者编辑)系统的安全逻辑功能,并根据系统安全性需求确定安全策略;3.安全架构设计:对系统架构(包括硬件架构和软件架构)进行设计;4.安全功能实现:编写实现安全功能的代码;5.系统测试:对系统进行安全性测试,包括安全功能测试和安全弱点检测;6.安全文档编写:编写安全文档,包括安全规约,安全方案,分析报告等。

8-1 软件安全编码阶段的主要工作有哪些?

选择安全的编程语言、版本(配置)管理、代码检测、安全编译

12-6 恶意代码防范的基本措施包括哪些?

1、 加强法制宣传,促进行业内人员明确恶意代码相关的法律责任,自觉履行恶意代码防治责任。2、健全管理制度,严格执行恶意代码防治规定,对恶意代码违法行为进行法律制裁。3、开展面向恶意代码检测的软件可信验证。从软件特征可信、软件身份可信、软件能力可信、软件环境可信四个方面开展验证。

14-3 软件版权的概念。侵权行为保护措施

概念:软件版权是软件知识产权的一部分,指软件著作权。针对软件版权的侵权行为:软件盗版;逆向工程;信息泄露。保护措施:基于硬件:对发行介质进行保护;软件狗;可信平台模块TPM基于软件:注册验证;软件水印;代码混淆;软件加壳;虚拟机保护

14-4 版权保护的目标

基本原则1)实用和便利性。2)可重复使用。3)有限的交流和分享。
1、 软件版权保护的目标是软件保护目标的一个子集。软件保护除了确保软件版权不受侵害以外,还要防范针对软件的恶意代码感染、渗透、篡改和执行等侵害。
2、 软件版权保护的许多措施同样可以应用于软件保护。

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值