系统架构设计师教程 第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)服务管理的复杂性

相关推荐
冷眼看人间恩怨3 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
Hejjon9 小时前
SpringBoot 整合 SQLite 数据库
笔记
西洼工作室11 小时前
【java 正则表达式 笔记】
java·笔记·正则表达式
初学者7.11 小时前
Webpack学习笔记(2)
笔记·学习·webpack
新手上路狂踩坑13 小时前
Android Studio的笔记--BusyBox相关
android·linux·笔记·android studio·busybox
stm 学习ing14 小时前
HDLBits训练3
c语言·经验分享·笔记·算法·fpga·eda·verilog hdl
尘觉14 小时前
算法的学习笔记—扑克牌顺子(牛客JZ61)
数据结构·笔记·学习·算法
bohu8315 小时前
sentinel学习笔记1-为什么需要服务降级
笔记·学习·sentinel·滑动窗口
初学者7.16 小时前
Webpack学习笔记(3)
笔记·学习·webpack
bohu8317 小时前
sentinel学习笔记5-资源指标数据统计
笔记·sentinel·statisticslot