合肥网站建设设计公司,江苏国泰做的网站案例,河南建设部网站官网,做旅游广告在哪个网站做效果好没有划重点#xff0c;只说了一句课后题和实验中的内容都可能会出。 2022考试题型#xff1a;选择20个20分#xff0c;填空10个10分#xff0c;名词解释4个20分#xff0c;简答6个30分#xff0c;分析与论述2个20分#xff0c;没找到历年题。 如此看来#xff0c;这门考… 没有划重点只说了一句课后题和实验中的内容都可能会出。 2022考试题型选择20个20分填空10个10分名词解释4个20分简答6个30分分析与论述2个20分没找到历年题。 如此看来这门考试大概是类似于马原考试的那种只要别太过分重点概念掌握一下就差不多了。所以如果逃课被王老师抓到太多的话就要认真点好好背背了因为如果考试难度不高的话大概会从平时分拉开差距(ì _ í) 1.零日攻击
零日攻击指未被公开披露的软件漏洞没有给软件的作者或厂商以时间去为漏洞打补丁或是给出建议方案从而攻击者能够给出这种漏洞破坏计算机程序、数据及设备。
利用零日漏洞开发进行的攻击称为零日攻击。零日攻击成功率高造成后果严重。零日漏洞反映了软件系统的脆弱性存在漏洞的隐秘性、修复的滞后性。
2.软件安全威胁分类
软件自身的安全软件漏洞、恶意代码、软件侵权。
3.软件漏洞
软件漏洞通常被认为是软件生命周期中与安全相关的设计错误、编码缺陷及运行故障等。
一方面软件漏洞可能会造成软件在运行过程中出现错误结果或运行不稳定、崩溃等现象甚至引起死机等情况另一方面软件漏洞会被黑客发现和利用进而实施窃取隐私等信息、甚至破坏系统等攻击行为。
4.恶意代码
恶意代码是在未授权情况下以破坏硬件、窃取信息、干扰正常使用、扰乱正常使用、扰乱用户心理为目的的软件或代码片段。如 蠕虫、特洛伊木马、后门、恶意广告、流氓软件、逻辑炸弹、僵尸网络、勒索软件等。
5.软件安全
软件安全是软件工程和软件保障的一个方面提供了一种系统的方法来标识、分析和追踪对危害及具有危害性功能的软件缓解措施和控制。
软件安全具有信息安全三大基本属性CIA保密性、完整性、可用性
保密性确保信息资源仅被合法的实体如用户、进程等访问使企业不泄露给未授权的实体
完整性信息安全中的完整性是指信息资源只能由授权的方式修改在存储或传输过程中不被授权、未授权或无意篡改、销毁或在篡改后能够被迅速发现
可用性信息安全中的可用性是指信息资源信息、服务和IT资源等可被合法实体并按要求特性使用。
其他属性可认证性、授权、可审计性、可控性、可存活性等。
6.PDRR模型
保护-检测-响应-恢复
7.软件中的错误、缺陷、故障和失效在软件生命周期各个阶段的表现
错误Error是在软件开发过程中出现的不符合期望或不可接受的人为差错其结果可能导致软件缺陷的产生
缺陷Bug/Defect是指由于人为差错或其他客观原因导致软件隐含能导致其运行过程中出现不希望或不可接受的偏差
故障Fault是指软件出现可感知的不正常、不正确或不按规范执行的状态
失效Fgilure是指软件丧失完成规定功能的能力的事件。
8.软件漏洞的成因
计算机系统结构决定了漏洞的必然性。例如数据和指令可能发生混淆人为因素导致编码错误等。
软件趋向大型化第三方扩展增多软件漏洞的增长和软件复杂度、代码行数的增长呈正比。
新技术、新应用的设计缺乏安全性考虑。
使用场景更具威胁、网络技术的引入使得软件的使用环境变得更加复杂多变。
缺乏对软件安全的重视开发者缺乏相关知识。
9.软件漏洞的特点
持久性与时效性广泛性与具体性可利用性与隐蔽性
10.软件漏洞的分类
基于漏洞成因分类内存破坏类、逻辑错误类、输入验证类、设计错误类、配置错误类
基于漏洞利用位置分类本地漏洞、远程漏洞
基于威胁类型的分类获取控制、获取信息、拒绝服务。
11.栈溢出、栈溢出漏洞及利用分析
栈溢出是指程序视图访问超出栈空间的内存区域
栈溢出漏洞是一种常见的安全漏洞攻击者可以通过向程序输入过多的数据来触发栈溢出进而覆盖栈中的关键数据以实现任意代码执行的目的
缓冲区溢出指攻击者通过向程序输入过长的数据超出缓冲区的大小从而覆盖栈中的其他数据。
12.堆溢出漏洞及利用分析
堆溢出漏洞是一种常见的安全漏洞它发生在程序动态分配内存时未能正确处理数据的情况。
13.格式化字符串漏洞及利用分析
格式化字符串漏洞是由于程序员在编程过程中错误的将用户输入作为格式化字符串传递给某些函数而没有对用户输入进行充分的验证和过滤导致用户可以控制格式化字符串的输出进而引发安全问题。
14.Windows安全漏洞保护分析
栈溢出检测选项/GS问题1.cookie值可以被猜测 2.cookie可以被修改 3.覆盖SEH绕过cookie检查 4.覆盖父函数的栈数据绕过cookie检查
数据执行保护DEP 1.最早出现在win xp sp 2.使可写数据不可执行使执行数据不可写问题可以执行已经加载的模块中的指令或调用系统函数栈上的数据作为这些函数/指令的参数
地址空间布局随机化ASLR 问题1.对于本地攻击DLL的地址不会重新随机化 2.造成内存碎片增多 3.有些DLL模块没有采用/DYNAMICBASE可以从这个模块发起攻击
安全结构化异常处理SafeSEH生成一张安全的SEH表保存在数据块里问题当进程中存在一个不支持SafeSEH的模块时整个SafeSEH的机制就可能失效
增强缓解体验工具包EMET增强型DEPSafeSEH升级版SEHOP强制性ASLRHeapSpray防护问题EMET不是操作系统的一部分会给操作系统的性能可靠性以及会给其上运行的应用程序带来严重的副作用且未跟上windows发展的步伐
15.Web安全漏洞
注入、失效的身份认证与会话管理、跨站脚本、不安全的直接对象引用、错误的安全配置、敏感的数据泄露、缺失功能级访问控制、跨站请求伪造、使用有漏洞的组件、未验证的重定向和转发
16.SQL注入漏洞
SQL注入漏洞是指攻击者能够利用现有Web应用程序将恶意的数据插入SQL查询中提交到后台数据库引擎执行非授权操作。
SQL注入具有广泛性基于SQL语言的标准数据库软件以及与之连接的网络应用程序都面临此类攻击。SQL注入攻击原理相对简单教程很多相较于其他漏洞对于SQL注入漏洞的防范要困难。
17.漏洞防护的基本措施
采用强类型语言如Java、C#等强类型语言几乎可以完全忽略数字型注入
尽可能避免使用拼接的动态SQL语句
在服务器端验证用户输入的值和类型是否符合程序的预期要求
在服务器端对用户输入进行过滤
避免网站显示SQL错误信息如类型错误、字段不匹配等
加固应用程序服务器和数据库、利用最低权限账户与数据库连接
遵守安全规范
使用专业的漏洞扫描工具进行安全性测试。
18.软件的生命周期
软件生命周期是指从软件的设计、开发、实施、维护等一系列过程的总和。通常的生命周期包括软件需求分析、软件设计、软件编码、软件测试、软件部署、维护、改进和升级等几个阶段。
19.安全开发生命周期SDL
安全培训、安全需求分析、安全设计、安全实施、安全验证、安全发布、安全响应。
20.软件安全需求分析的目的和作用
软件安全需求分析的目的是描述为了实现信息安全目标软件系统应该做什么才能有效提高软件产品的安全质量减少进而消散软件安全漏洞
一个缺少安全需求分析的软件开发项目将威胁到信息的保密性、完整性和可用性以及其他一些重要安全属性。这个软件产品被攻破可能就只是一个时间早晚的问题而不是条件的问题这取决于攻击者对于这个软件系统价值的判断。
21.网络安全等级保护制度
网络安全等级保护制度将网络划分为五个安全保护等级从第一级到第五级逐级增高。
第一级属于一般网络其一旦受到破坏会对公民、法人和其他组织的合法权益造成损害,但不危害国家安全、社会秩序和社会公共利益。
第二级属于一般网络其一旦受到破坏会对公民、法人和其他组织的合法权益造成严重损害或者对社会秩序和社会公共利益造成危害但不危害国家安全。
第三级属于重要网络其一旦受到破坏会对公民、法人和其他组织的合法权益造成特别严重损害或者会对社会秩序和社会公共利益造成严重危害或者对国家安全造成危害。
第四级属于特别重要网络其一旦受到破坏会对社会秩序和社会公共利益造成特别严重危害或者对国家安全造成严重危害。
第五级属于极其重要网络其一旦受到破坏会对国家安全造成特别严重危害。3)开展网络安全等级保护工作的流程。
22.等级保护工作
等级保护工作主要分为五个环节定级、备案、等级测评、安全建设整改、监督检查。
23.软件安全设计的目的和作用
软件安全设计的目的是将安全属性设计到软件架构中以实现软件产品本质的安全性。软件安全设计对于软件安全有着举足轻重的作用大多数软件安全问题都是由于软件设计上的安全性考虑不足或不完整所导致的。
24.软件架构安全性设计
软件架构设计逻辑架构、物理架构、系统架构
软件架构安全性设计软件架构安全设计首先需要进行系统描述包括系统功能、安全要求、系统部署和技术需求确定软件系统的安全级别。
25.安全设计原则
1减少软件受攻击面原则软件受攻击是指用户或其他程序及潜在的攻击者都能够访问到所有的功能和代码的总和。一个软件的攻击面越大安全风险就越大。减少软件受攻击面就是去除、禁止一切不需要使用的模块、协议和服务其目的是减少攻击可以利用的漏洞
2最小授权原则最小授权指系统仅授予实体完成规定的任务所必须的最小权限并且改权限的持续时间也尽可能短
3权限分离原则将软件功能设计为需要在两个或更多条件下才能实现以防止一旦出现问题整个软件都可能面临风险
4纵深防御原则在软件设计中加入层次化安全控制和风险缓解/防御方法它强调不依赖于单一的安全解决方案使用多种互补的安全功能即使一个安全功能失效也不会导致整个系统遭受攻击
5完全控制原则要求每一次访问受保护对象的行为都应可能进行细粒度检查
6默认安全配置原则为系统提供默认的安全措施包括默认权限、默认策略等尽可能让用户不需要额外配置就可以安全地应用
7开放原则软件设计本身应该是开放的安全防御机制的实现应该不依赖于设计本身。通过模糊和晦涩难懂的方法固然可以给攻击者增加一些难度或者说某种程度上提供了纵深防御的能力但不应该是唯一的或主要的安全机制
8最弱保护一环原则“保护软件系统中的最弱组件。该原则类似于“木桶原理”
9最少共用机制原则尽量减少依赖于一个以上用户甚至于所有用户的通用机制。设计应该根据用户角色来划分功能或隔离代码因为这可以限制软件的暴露概率提高安全性
10安全机制的经济性原则以较低的开发成本和资源消耗获得具有较高安全质量的软件产品和系统保障
11安全机制心理可接受原则安全保护机制设计得要简单要让用户易用要确保用户对资源的可访问以及安全机制对用户透明用户才会使用这些保护机制
12平衡安全设计原则以上介绍的这些安全设计原则每一项都有自己的侧重点将所有这些安全原则都设计到软件中是不可能的因此有必要在这些安全原则间进行决策折中即平衡安全设计原则。
26.威胁建模
威胁建模是一项在软件设计阶段不应忽视的、系统的、可迭代的、结构化的安全技术。对软件系统来说资产包括软件流程、软件本身以及它们处理的数据。在当前超过70%的漏洞来自于应用软件的情况下解决软件安全问题应该首先明确应用软件面临的威胁建立威胁模型,然后才能考虑软件的安全设计和编码实现。
27.软件安全编码的主要工作
选择安全的编程语言、版本配置管理、代码检测。
28.安全编译
编译是指将程序员编写的源代码转换为计算机可以理解的目标代码的过程。安全编译包括以下4个方面的含义。
1采用最新的集成编译环境并选择使用这些编译环境提供的安全编译选项和安全编译机制来保护软件代码的安全性。例如在VS中编译时开启/GS选项对缓冲区的安全进行检查。
2代码编译需要在一个安全的环境中进行。编译环境的完整性对于保证最终目标代码的正确性是很重要的。可以采用以下一些保证措施。
●在物理环境上对代码编译系统实施安全访问控制防止人为地破坏和篡改。
●在逻辑上使用访问控制列表防止未授权用户的访问。
●使用软件版本控制方法保证代码编译版本的正确性。
●尽量使用自动化编译工具和脚本,保证目标代码的安全性。
29.CERT安全编译建议
验证输入、留意编译器警告、安全策略的架构和设计、保持简单性、默认拒绝、坚持最小权限原则、清洁发送 给其他系统的数据、纵深防御、使用有效的质量保证技术、采用安全编码标准。