根据*的数量标识重要程度,最高级 ***

一、软件安全

重新认识软件*

软件的重要性:软件是构建网络空间的“水泥”

软件的最本质特性:可编程(programmable)

软件是不负责任的产品 为什么??()

软件和程序的定义

image-20230102230652126

软件

是用户与硬件之间的接口,用户通过软件与计算机交流

软件包括 程序、数据和文档

程序

是一组通过计算机执行,以完成特定任务的指令

程序包括以下类型: 源程序、汇编代码、目标程序

软件、网络空间安全发展历程

这是一条线,完整的发展过程,未来做研究等,也可以按照类似的方法

编程语言、操作系统、专用软件的发展路线,反映了这些年软件技术交叠发展的态势

什么是软件安全 ***

软件安全是网络空间安全的重要部分. 主要研究软件的防御机制与技术,软件脆弱性分析与漏洞利用技术,网络系统环境中软件的攻防博弈,以及软件安全性的工程化保障方法.

image-20221227142004483

白帽与黑帽 *

黑帽子(破坏方法):与攻击、攻击程序和破解软件相关的方法

白帽子(建设方法):与设计、防御和功能性相关的方法

软件安全三部曲 ***

image-20221228151447620

软件安全防御:从”白帽“的视角,研究软件的各类防御机制

软件安全分析和利用:从”黑帽“的视角,研究软件存在的各种安全脆弱性问题以及高效发现及利用方法

安全的软件开发:确保软件安全的工程化方法,BSI是其核心思想,需要贯彻始终

主席网络安全观 **

image-20221228151647672
  • 一、关于网络安全的定位

​ 1.没有网络安全就没有国家安全

​ 2.网络安全为人民,网络安全靠人民

  • 二、关于安全和发展的关系

​ 1.网络安全和信息化是一体之两翼,驱动之双轮

​ 2.以安全保发展,以发展促安全

  • 三、关于网络安全法治

​ 1.互联网不是法外之地

​ 2.坚持依法治网、依法办网、依法上网

  • 四、关于网络空间技术能力

​ 1.大力发展核心技术,加强关键基础信息设施安全保障

​ 2.最关键最核心的技术要立足自主创新、自立自强

  • 五、关于网络安全人才建设

​ 1.网络空间的竞争,归根结底是人才的竞争

​ 2.形成人才培养,技术创新,产业发展的良性生态

  • 六、关于互联网国际治理

​ 1.尊重网络主权,维护和平安全,促进开放合作,构建良好秩序

​ 2.构建网络空间安全命运共同体

image-20230102233025872

《网络信息安全的真相》**

  • 木桶原理(国外更倾向于叫链条原理?): 安全防御系统的强度是由其最薄弱环节的强度决定的

  • PDR模型:安全防御是一个过程,包含防护-检测-响应等基本环节

  • 没有银弹:没有一个实际系统是无懈可击的,没有一项安全技术可以包治百病

软件安全与网络安全的关系 **

  • 网络空间各种各样部件的大多数功能都是通过软件实现的,因此软件漏洞将直接影响网络空间的安全

  • 围绕软件漏洞,无论是攻击还是防御,实际上都是在网络层面展开对抗

image-20221228152029114

软件安全研究视角

源代码 汇编代码 机器码

要贯穿于这几个层次来综合分析,才会更好!

  • 理解程序是软件安全攻防的基本功
  • 掌握程序的生成与运行原理是理解程序的前提

二、逆向工程

基础概念 定义 *

逆向工程:通过观察系统及其行为,建立其结构蓝图,以弄清其运行规律的过程

软件逆向工程: 针对软件的逆向工程

目标软件/程序: 运用逆向工程进行分析的特定软件或程序

程序编译过程

image-20230102233655971

image-20221228152616035

程序的运行过程 *

栈桢中存放的东西

image-20230102233924030

image-20221228153645531

三种逆向方法比较

image-20230102234031543

逆向工程的敌手

image-20230102234134750

围绕逆向分析的博弈对抗 *

image-20221228154105548

具体的内容如下图

image-20221228154120777

image-20221228154131608

image-20221228154149766

image-20221228154158942

三、安全的软件开发(SDL) **

image-20221228154447041

软件安全问题的根源 *

image-20221228154550056

软件(安全)的三大问题:复杂性、互连性、可扩展性

复杂性:软件的规模和复杂性无节制增长,影响因素还有代码集成的紧密程度,补丁等,编译连接后的代码库会变大

互联性:互联网增加了攻击目标的数量,简化了实施攻击的方法,通过网络访问不需要人工干预,很容易启动,当前企业体系结构在互联环境下暴露出越来越多的安全隐患

可扩展性:可以通过插件等方式提供附加功能,导致难以阻止通过插件引入漏洞

软件开发的三大问题:复杂性、复用性、劣币效应

为什么软件是不负责任的? 可以从软件开发的三大问题, 劣币效应这里回答

因为众多开发商对安全仍然不够重视,更加重视的是产品的功能以及快速上线,抢占市场. 于是产生了劣币排斥良币的现象.

内构安全(build security in /BSI) **

​ 内构安全是一种协同化努力,通过提供实践、工具、指南、规则、原则及其他资源,让软件开发者、架构师和安全参与人员可以借此在软件开发的每个阶段将安全构建到软件中去

image-20221228155350390

软件安全三大支柱 **

image-20221228155550112

支柱一:风险管理 *

  • 在整个SDLC中,识别、评级、追踪风险是软件风险实践的关键

  • 安全接触点是与特定类型的RMF结合的最佳实践. 一旦针对特定软件的安全最佳实践“锁定”了一组风险,就会得到适当的处理

  • 没有百分百的安全.只有通过实施风险管理,并充分考虑那些受影响的关键商业信息,才能让软件安全走出“技术王国”,为商业带来价值

支柱二:安全接触点 **

软件安全接触点: 在软件开发生命周期中保障软件安全的一组最佳实践

  • 这些接触点从黑帽子(渗透和攻击)和白帽子(防御和保护)两个方面综合考察软件开发中可能出现的问题

  • 结合了接触点的软件开发生命周期(SDLC)就成为SDL,可在每个阶段尽可能避免和消除漏洞,同时又保留了熟悉的工作方式

  • 它是软件安全的三大支柱的核心

支柱三:安全知识 **

image-20221228162902379

image-20221228162920125

image-20230103092133700

image-20230103092224532

![image-20230103092233471](ucas-软件安全原理-复习/image-202301030922 33471.png)

安全知识与接触点 **

记住这张图,并会进行相关的判断,例如 渗透测试是用来针对需求和使用案例的吗? x

image-20221228163018072

软件安全的缺点(缺陷和瑕疵) *

image-20221228155636901

缺点分为了缺陷和瑕疵,都可以导致漏洞

华为、微软为什么要实施SDL

image-20230103093354333

image-20230103093515077

针对安全接触点和软件工件,对应哪一部分?

image-20230103093651054

image-20230103093808648

image-20230103093832998

image-20230103093841206

image-20230103093849198

四、软件全球供应链安全 *

image-20221228163423463

​ 问到软件供应链和前面讲到的三部曲的过程的关系,

案例 *

image-20221228163448867

五、操作系统安全

image-20230103094248246

分段、分页

段保护、页保护

宏内核、微内核

固件

操作系统脆弱性和保护机制 *

image-20230103101910978

围绕缓冲区溢出对抗的博弈演进 **

image-20230103102019896

六、浏览器安全 B/S

浏览器参考架构

image-20230103102856110

同源策略

image-20230103103409271

攻击面分析 *

image-20230103103910817

七、移动安全