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

相关推荐
冰帝海岸4 小时前
01-spring security认证笔记
java·笔记·spring
架构师Wu老七5 小时前
【软考】系统架构设计师-信息系统基础
系统架构·软考·系统架构设计师·信息系统基础
小二·5 小时前
java基础面试题笔记(基础篇)
java·笔记·python
wusong9998 小时前
mongoDB回顾笔记(一)
数据库·笔记·mongodb
猫爪笔记8 小时前
前端:HTML (学习笔记)【1】
前端·笔记·学习·html
Resurgence038 小时前
【计组笔记】习题
笔记
pq113_69 小时前
ftdi_sio应用学习笔记 3 - GPIO
笔记·学习·ftdi_sio
爱米的前端小笔记10 小时前
前端八股自学笔记分享—页面布局(二)
前端·笔记·学习·面试·求职招聘
寒笙LED12 小时前
C++详细笔记(六)string库
开发语言·c++·笔记
岳不谢12 小时前
VPN技术-VPN简介学习笔记
网络·笔记·学习·华为