系统架构设计师教程 第18章 18.7 系统架构的脆弱性分析 笔记

18.7 系统架构的脆弱性分析

18.7.1 概述

安全架构的设计核心是采用各种防御手段确保系统不被破坏,而系统的脆弱性分析是系统安全性的另一方面技术,即系统漏洞分析。

漏洞的来源:

1.软件设计时的瑕疵

2.软件实现中的弱点

3.软件本身的瑕疵

4.系统和网络的错误配置

18.7.2 软件脆弱性

1.软件脆弱性定义

软件脆弱性是指由软件缺陷的客观存在所形成的一个可以被 攻击者利用的实例

2.软件脆弱性的特点和分类

主要特点:

1.系统中隐藏的弱点,本身无危害,被利用后产生严重后果

2.根本来源是开发过程中引入的逻辑错误

3.系统环境差异可能导致不同的脆弱性

4.修改旧的脆弱性可能会引入新的脆弱性

典型分类:ISOS 分类法、 P A分类法、 Landwehr分类法、 Aslam 分类法、 Bishop分类法和IBM 分类法。

3.软件脆弱性的生命周期

包含 了引入、产生破坏效果、被修补和消失等阶段

4.软件脆弱性的分析方法

软件脆弱性分析可从三个方面考虑:

(1)分析软件故障现象,分析故障的技术本质、总结脆弱性模式;

(2)分析软件开发,发现安全管理和技术的薄弱环节,提高软件安全性;

(3)分析软件使用,发现其脆弱性,采取相应措施,避免脆弱性转化为安全故障。

软件脆弱性分析首先要明确分析对象,脆弱性分析对象可以分为两类:脆弱性数据软件系统

常用的探测工具是扫描器,它 能够自动检测远程或本地主机安全脆弱性的程度

脆弱性扫描器采用的是基于特征的扫描方法,依据具体特征库进行判断,关键在于脆弱性特征库的规模和完善程度。

18.7.3 典型软件架构的脆弱性分析

1.分层架构

大多数分层架构模式通常包括4个层次: 即表示层、业务层、持久化层和数据库层。

脆弱性主要表现:

(1)层间的脆弱性。

(2)层间通信的脆弱性。

2.C/S 架构

C/S分为两部分:服务器部分和客户机部分

脆弱性主要表现

(1)客户端软件的脆弱性

(2)网络开放性的脆弱性。

(3)网络协议的脆弱性。

3.B/S架构

脆弱性主要表现

使用 HTTP 协议,更容易被病毒入侵

4.事件驱动架构

事件驱动架构是一种分布式异步架构,适合高扩展工程的、较流行的分布式 异构架构模式,有较高柔性,它由高度解耦、单一目的异步接收的事件处理组件和处理事件组成。

脆弱性主要表现

(1)组件的脆弱性

(2)组件间交换数据的脆弱性

(3)组件间逻辑关系的脆弱性

(4)事件驱动容易进入死循环

(5)高并发的脆弱性

(6)固定流程的脆弱性

5.MVC架构

应用可被分成三层:模型层、视图层和控制层

脆弱性主要表现

(1)MVC架构的复杂性带来脆弱性

(2)视图与控制器间紧密连接的脆弱性

(3)视图对模型数据的低效率访问的脆弱性

6.微内核架构

微内核架构是指内核的一种精简形式,通常由内核系统和插件组成

脆弱性主要表现

(1)微内核架构难以进行良好的整体化优化

(2)微内核系统的进程间通信开销大

(3)通信损失率高

7.微服务架构

微服务架构是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间相 互协调、相互配合、为用户提供最终价值。

脆弱性主要表现

(1)开发人员需要处理分布式系统的复杂结构。

(2)开发人员要设计服务之间的通信机制

(3)服务管理的复杂性

相关推荐
_落纸21 小时前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE21 小时前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha21 小时前
SpringBoot
笔记·学习
Hello_Embed1 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中1 天前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto1 天前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h1 天前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
周周记笔记1 天前
学习笔记:第一个Python程序
笔记·学习
丑小鸭是白天鹅1 天前
Kotlin协程详细笔记之切线程和挂起函数
开发语言·笔记·kotlin
潘达斯奈基~1 天前
《大数据之路1》笔记2:数据模型
大数据·笔记