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

相关推荐
使一颗心免于哀伤2 分钟前
《重构》笔记摘录 - 9.处理继承关系
笔记
再睡一夏就好9 分钟前
Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别
linux·服务器·c语言·c++·笔记
俺的图图呢?35 分钟前
Django笔记——CSRF
笔记·django·csrf
我的golang之路果然有问题1 小时前
快速了解redis,个人笔记
数据库·经验分享·redis·笔记·学习·缓存·内存
无心水1 小时前
【Java面试笔记:基础】8.对比Vector、ArrayList、LinkedList有何区别?
java·笔记·面试·vector·arraylist·linkedlist
卡皮巴拉爱吃小蛋糕1 小时前
MySQL的MVCC【学习笔记】
数据库·笔记·mysql
清流君1 小时前
【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作
数据库·人工智能·笔记·mysql·ue5·数字孪生
BOB-wangbaohai2 小时前
Flowable7.x学习笔记(十四)查看部署流程Bpmn2.0-xml
xml·笔记·学习
m0_678693334 小时前
深度学习笔记22-RNN心脏病预测(Tensorflow)
笔记·rnn·深度学习
能来帮帮蒟蒻吗5 小时前
Docker安装(Ubuntu22版)
笔记·学习·spring cloud·docker·容器