系统架构-安全架构设计
概述
对于信息系统来说,威胁有:物理环境(最基础)、通信链路、网络系统、操作系统、应用系统、管理系统
- 物理安全:系统所用设备的威胁,如自然灾害、电源故障
- 通信链路安全:在传输线路上安装窃听装置,或对通信链路进行干扰
- 网络安全:通过技术手段窃取互联网信息
- 操作系统安全:对系统平台的软件或硬件芯片中植入威胁
- 应用系统安全:对于网络服务或用户业务系统安全的威胁
- 管理系统安全:由于人员管理上疏忽而引发人为的安全漏洞
具体安全威胁:
- 信息泄露:信息机密
- 破坏信息的完整性:被非授权地进行增删、修改或破坏
- 拒绝服务:Dos攻击,大量访问导致合法访问被无条件阻止
- 非法使用(非授权访问):被非授权的人或非授权的方式使用
- 窃听:窃取信息资源中的敏感信息,属于被动攻击
- 业务流分析:通过长期监听,利用统计分析方法对信息进行研究
- 假冒:通过欺骗信息系统达到非法用户冒充成为合法用户
- 旁路控制:利用系统薄弱之处获得非授权的权利
- 授权侵犯:被授权地使用某一信息资源,却用于其他非授权的目的
- 特洛伊木马:软件中含有不易察觉或无害程序段,常用于监听
- 陷阱门:后门,在系统中设置机关,使当提供特定的输入数据时,允许违反安全策略
- 抵赖:来自用户的攻击,如否认自己发送过消息
- 重放:所截获某次合法的通信数据进行备份,非法的重新发送备份
- 计算机病毒:主动攻击,传染性强,破坏性强
- 人员渎职:授权人将信息泄露给非授权人
- 媒体废弃:信息从废弃磁盘或打印过的存储介质中获得
- 物理侵入:侵入者通过物理控制而获得对系统的访问
- 窃取:重要的安全物品,如盗取令牌
- 业务欺骗:某伪系统欺骗合法用户或系统资源放弃敏感信息
安全架构是架构面向安全性方向上的一种细分,通常有三道安全防线:产品安全架构、安全技术体系架构、审计架构。
- 产品安全架构:构建产品安全质量属性的主要组成部分以及它们之间的关系。从源头打造自身安全的产品
- 安全技术体系架构:构建安全技术体系的主要组成部分以及它们之间的关系,构建安全基础设施、安全工具和技术、安全组件与支持系统
- 设计架构:独立的审计部门或其所能提供的风险发现能力,审计的范围主要包括安全风险在内的所有风险
安全模型
信息系统的安全目标是控制和管理主体(用户和进程)对客体(数据和程序)的访问
安全模型准确得描述安全的重要方面及其与系统行为的关系
安全策略是从安全角度为系统整体和构成它的组件提出基本的目标
分类:
- 机密性:访问控制:MAC强制(BLP、Chinese Wall)、DAC自主、RBAC角色(最常用,根据角色赋予相应的权限)
- 完整性:Biba、Clark-Wilson
状态机模型
一种无论处于何种状态都是安全的系统。用状态语言将安全系统描述成抽象的状态机,用状态变量表述系统的状态,用转换规则描述变量变化的过程
BLP模型
Bell -LaPadula 模型,主要保护信息的机密性,不能保证信息完整性
使用主体、客体、访问操作(读、写、读/写)以及安全级别这些概念
安全规则:
- 简单安全规则:安全级别的主体不能读安全级别高的客体:只能下读
- 星属性安全规则: 安全级别高的主体不能往级别低的客体写:只能上写(为了保证级别高的主体的信息不流入级别低的客体)
- 强星属性安全规则:不允许对另一级别进行读写
- 自主安全规则:使用访问控制矩阵来定义说明自由存取控制
Biba模型
Biba模型不关心信息机密性的安全级别,它的访问控制不是建立在安全级别上,而是建立在完整性级别上
完整性的三个目标:保护数据不被未授权用户更改;保护数据不被授权用户越权修改;维持数据内部和外部的一致性
安全规则:
- 星完整性规则:完整性级别低的主体不能对完整性级别高的客体写数据:只能下写
- 简单完整性规则:完整性级别高的主体不能从完整性级别低的客体读数据:只能上读(防止高完整性信息被低完整性信息wuran)
- 调用属性规则:一个完整性级别低的主体不能从级别高的客体调用程序或服务
CWM模型
Clark-Wilson模型是一种将完整性目标、策略和机制融为一体的模型。
CWM提出职责隔离目标:体现用户完整性
CWM提出应用相关的完整性验证进程:保证数据完整性
CWM定义了变换过程的应用相关验证:建立过程完整性
Chinese Wall模型
又名Brew and Nash模型,通过行政规定和划分、内部监控、IT系统等手段防止各部门之间出现有损客户利益的利益冲突。Chinese Wall安全策略的基础是客户访问的信息不会与当前他们可支配的信息产生冲突。多应用于金融领域。
安全规则:
- 与主体曾经访问过的信息属于同一公司数据集合的信息,即墙内信息可以访问
- 属于一个完全不同的利益冲突组的可以访问
- 主体若未对任何属于其他公司数据集进行过访问,则可以“写”相关客体
定理:
- 一个主体一旦访问过一个客体,则该主体只能访问位于同一公司数据集的客体或在不用利益组的客体
- 在一个利益冲突组中,一个主体最多只能访问一个公司数据集
信息安全整体架构设计
WPDRRC模型
WPDRRC模型有六个环节:Warning(预警)、Protect(保护)、检测(Detect)、React(响应)、Restore(恢复)、Counterattack(反击),它们具有较强的时序性和动态性
3大要素:人员、策略、技术。人员是核心,策略是桥梁,技术是保证
整体架构设计
重点考虑两个方面:系统安全保障体系;信息安全体系架构
系统安全保障体系:
由安全服务、协议层次和系统单元三个层面组成,具体工作中要考虑以下几点:
- 安全区域策略的确定
- 同一配置和管理防病毒系统
- 网络安全管理
信息安全体系架构:具体在安全控制系统中,有以下5各方面:
- 物理安全
- 系统安全
- 网络安全
- 应用安全
- 安全管理
网络安全体系架构设计
一般包括5类安全服务:鉴别、访问控制、数据机密性、数据完整性和抗抵赖性
OSI定义分层多点安全技术体系架构
- 多点技术防御:在对手可以从内部或外部多点攻击一个目标的前提下,部署安全防御
- 分层技术防御:在对手和目标间使用多个防御机制
- 支撑性基础设施:如公钥基础设施以及检测和响应基础设施
鉴别
基本目的:防止其他实体占用和独立操作被鉴别实体的身份。实体由申请者来代表,实体为验证者提供数据项来源
访问控制
决定开放系统环境中允许使用哪些资源、在什么地方合适阻止未授权访问的过程
数据机密性
依赖于所驻留和传输的媒体。
存储数据的机密性能通过隐藏数据语义(加密)或将数据分片来保证。
传输数据的机密性能通过禁止访问、隐藏数据语义或分散数据来保证
数据完整性
对于不同的媒体,数据完整性保护机制主要分为以下两个情况:
- 阻止对媒体访问的机制,包括物理的隔离
- 用以探测对数据或数据项序列的非授权修改的机制
抗抵赖服务
一般使用数字签名,包括证据生成;证据传输、存储及恢复;证据验证和解决纠纷
数据库系统的安全设计
数据库完整性
数据库完整性是指数据的正确性和相容性,由完整性约束来完成。
数据库完整性约束可以通过DBMS或应用程序来实现
基本原则:
- 根据数据库完整性约束的类型确定其实现的系统层次和方式
- 实体完整性约束、引用完整性约束时数据库中最重要的完整性约束
- 要慎用目前主流DBMS都支持的触发器功能
- 在需求分析阶段就必须指定完整性约束的命名规范,尽量使用有意义的英文单词
- 根据业务规则对数据库完整性进行细致的测试
- 要有专职的数据库设计小组
- 采用合适的CASE工具来降低数据库设计各阶段的工作量
数据库完整性约束可分为6类:列级静态约束、元组静态约束(行)、关系级静态约束(表)、列级动态约束、元组级动态约束和关系级动态约束
系统架构的脆弱性分析
脆弱性分析主要是分析信息系统中产生脆弱性的根源
从技术角度而言:软件设计时的瑕疵、软件实现中的弱点、软件本身的瑕疵、系统和网络的错误配置
脆弱性的四个特点:
- 脆弱性是软件系统隐藏的弱点,本身不会引起危害
- 大多数脆弱性来源于自觉或不自觉的引入逻辑错误
- 系统环境的任何差异都有可能导致不同的脆弱性问题
- 旧的脆弱性得到修补或纠正的同时可能会引入新的脆弱性
脆弱性的声明周期:
- 引入阶段
- 产生破坏效果阶段
- 修补阶段
典型软件架构脆弱性分析
分层架构:
- 层间的脆弱性,下层一旦发生错误,导致整个程序将会无法正常允许
- 层间通信的脆弱性:层层通信势必导致性能下降
C/S架构:
- 客户端软件脆弱性:客户端程序容易面临被分析、数据截取的安全隐患
- 网络开放性:如果用二层C/S结构,客户端可以直接读取服务器端的数据,会给系统带来安全隐患
- 网络协议:不便于随时与用户交流
B/S架构:
- 如果使用HTTP协议,没有安全保护,容易被病毒入侵
事件驱动架构:
- 组件的脆弱性:一个组件被触发了,不能确定响应该事件的其他组件及各组件间的执行顺序
- 组件间交换数据的脆弱性:组件不能很好地解决数据交换的问题
- 组件间逻辑关系的脆弱性
- 事件驱动容易进入死循环:由编程逻辑决定
- 高并发的脆弱性:高并发事件处理可能造成系统响应问题,也容易导致系统数据不正确、丢失数据等现象
- 固定流程的脆弱性:事件驱动的可响应流程基本固定
MVC架构:
- 结构复杂性带来的脆弱
- 视图与控制器间紧密连接的脆弱性:视图与控制器高度绑定,妨碍了它们的独立重用
- 视图对模型数据的低效率访问
微内核架构:
- 难以进行良好的整体化优化,微内核的核心态只实现了最基本的系统操作,系统难以进行良好的整体优化
- 进程间通信开销也较单一内核系统大得多
- 通信损失率高
微服务架构:
- 开发人员需要处理分布式的复杂结构
- 服务之间的复杂通信机制
- 服务管理的复杂性
图片来源于网络
相关文章:

系统架构-安全架构设计
概述 对于信息系统来说,威胁有:物理环境(最基础)、通信链路、网络系统、操作系统、应用系统、管理系统 物理安全:系统所用设备的威胁,如自然灾害、电源故障通信链路安全:在传输线路上安装窃听…...
基于大语言模型的AI智能体开发:构建具备工具使用能力的智能助手
本文将结合大语言模型(LLM)与工具调用能力,构建新一代AI智能体系统。通过ReAct框架实现智能思考-行动循环,集成网络搜索、计算器、API调用等外部工具,并基于LangChain实现可扩展的智能体架构。 一、新一代AI智能体技术…...

鼠标指定范围内随机点击
鼠标指定范围内随机点击 点赞神器 将鼠标移动到相应位置后按F5 F6键,设置点击范围, F8开始,ESC中止。 有些直播有点赞限制,例如某音,每小时限制3千次,可以设置1200毫秒,3000次。 软件截图&#…...

HashSet 概述
1. HashSet 概述 HashSet 是 Java 集合框架中 Set 接口的一个实现类,它存储唯一元素,即集合中不会有重复的元素。HashSet 基于哈希表(实际上是 HashMap 实例)来实现,不保证元素的顺序,并且允许存储 null 元…...

遥测终端机,推动灌区流量监测向数据驱动跃迁
灌区范围那么大,每一滴水怎么流都关系到粮食够不够吃,还有生态能不能平衡。过去靠人工巡查、测量,就像拿着算盘想算明白大数据,根本满足不了现在水利管理的高要求。遥测终端机一出现,就像给灌区流量监测安上了智能感知…...

蓝耘平台介绍:算力赋能AI创新的智算云平台
一、蓝耘平台是什么 蓝耘智算云(LY Cloud)是蓝耘科技打造的现代化GPU算力云服务平台,深度整合自研DS满血版大模型技术与分布式算力调度能力,形成"模型算力"双轮驱动的技术生态。平台核心优势如下: 平台定位…...

QtDesigner中Button控件详解
一:Button控件 关于Button控件的主要作用就是作为触发开关,通过点击事件(click)执行代码逻辑,或者作为功能入口,跳转到其他界面或模块。 二:常见属性与配置 ①Button的enabled,大…...

Flink 源码编译
打包命令 打包整个项目 mvn clean package -DskipTests -Drat.skiptrue打包单个模块 mvn clean package -DskipTests -Drat.skiptrue -pl flink-dist如果该模块依赖其他模块,可能需要先将其他模块 install 到本地,如果依赖的模块的源代码有修改&#…...

docker的安装和简单使用(ubuntu环境)
环境准备 这里用的是linux的环境,如果没有云服务器的话,就是用虚拟环境吧。 虚拟环境的安装参考:vmware17的安装 linux镜像的安装 docker安装 我使用的是ubuntu,使用以下命令: 更新本地软件包索引 sudo apt u…...
mongo客户端操作mongodb记录
背景: 长时间不操作mongodb数据库,已经遗忘了命令,今天正好用到,温习一下 直接上命令 #进入mongodb数据库安装bin目录cd /opt/mongodb/bin#连接mongodb ./mongo #查看所有的数据库 show dbs; #选择数据库 use xx; #查看表 show …...
Flink 数据清洗与字段标准化最佳实践
—— 构建可配置、可扩展的实时标准化清洗链路 本文是「Flink Kafka 构建实时数仓实战」专栏的第 4 篇,将围绕字段标准化这一核心问题,从业务痛点、技术架构、配置设计到完整代码工程,系统讲透标准化实践。 📌 一、为什么实时字段…...
哈工大李治军《操作系统》进程同步与信号量笔记
1.什么是信号量? 定义:记录一些信息(即量),并根据这个信息决定睡眠还是唤醒(即信号)。睡眠和唤醒只是一个信号(相当于0和1)。 2.问题:一种资源的数量是8&am…...

EasyRTC音视频实时通话在线教育解决方案:打造沉浸式互动教学新体验
一、方案概述 EasyRTC是一款基于WebRTC技术的实时音视频通信平台,为在线教育行业提供了高效、稳定、低延迟的互动教学解决方案。本方案将EasyRTC技术深度整合到在线教育场景中,实现师生间的实时音视频互动等核心功能,打造沉浸式的远程学习体…...
常见网络安全攻击类型深度剖析(三):DDoS攻击——分类、攻击机制及企业级防御策略
常见网络安全攻击类型深度剖析(三):DDoS攻击——分类、攻击机制及企业级防御策略 在网络安全威胁中,分布式拒绝服务攻击(Distributed Denial of Service, DDoS)堪称“网络流量炸弹”。攻击者通过控制成百上…...

【分布式系统中的“瑞士军刀”_ Zookeeper】一、Zookeeper 快速入门和核心概念
在分布式系统的复杂世界里,协调与同步是确保系统稳定运行的关键所在。Zookeeper 作为分布式协调服务的 “瑞士军刀”,为众多分布式项目提供了高效、可靠的协调解决方案。无论是在分布式锁的实现、配置管理,还是在服务注册与发现等场景中&…...
Libconfig 修改配置文件里的某个节点
THCommandStatus ( { Status "1"; index 5; }, { Status "2"; index 8; }, { Status "3"; index 7; }, { Status "4"; index 0; } ); 比如这是配置文件的内容ÿ…...
从FP32到BF16,再到混合精度的全景解析
笔者做过目标检测模型、超分模型以及扩散生成模型。其中最常使用的是单精度FP32、半精度FP16、BF16。 双精度"FP64"就不说了,不太会用到。 #1. 单精度、半精度和混合精度 单精度(FP32)、半精度(FP16)和混合…...

Electron从入门到入门
项目说明 项目地址 项目地址:https://gitee.com/ruirui-study/electron-demo 本项目为示例项目,代码注释非常清晰,给大家当做入门项目吧。 其实很多东西都可以在我这基础上添加或修改、市面上有些已开源的项目,但是太臃肿了&am…...

优化提示词方面可以使用的数学方法理论:信息熵,概率论 ,最优化理论
优化提示词方面可以使用的数学方法理论:信息熵,概率论 ,最优化理论 目录 优化提示词方面可以使用的数学方法理论:信息熵,概率论 ,最优化理论信息论信息熵明确问题主题提供具体细节限定回答方向规范语言表达概率论最优化理论信息论 原理:信息论中的熵可以衡量信息的不确定性。…...

腾讯一面面经:总结一下
1. Java 中的 和 equals 有什么区别?比较对象时使用哪一个 1. 操作符: 用于比较对象的内存地址(引用是否相同)。 对于基本数据类型、 比较的是值。(8种基本数据类型)对于引用数据类型、 比较的是两个引…...

Golang | 倒排索引
文章目录 倒排索引的设计倒排索引v0版实现 倒排索引的设计 通用搜索引擎 v.s. 垂直搜索引擎: 通用搜索引擎:什么都可以搜索,更加智能化垂直搜索引擎:只能搜自家数据库里面的内容,一般都带着搜索条件,搜索一…...

大模型驱动智能服务变革:从全流程赋能到行业纵深落地
大模型技术的快速发展,正深刻改变着人工智能的研发与应用模式。作为"软硬协同、开箱即用"的智能化基础设施,大模型一体机通过整合计算硬件、部署平台和预置模型,重构了传统AI部署方式,成为推动AI普惠化和行业落地的重要…...
【Python-Day 5】Python 格式化输出实战:%、format()、f-string 对比与最佳实践
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

【初识Trae】字节跳动推出的下一代AI原生IDE,重新定义智能编程
初识官网文档 从官网可以看到有两个大标签页,即Trae IDE CN和Trae插件,这就说明Trae在发布Trae IDE的同时考虑到对主流IDE的插件支持,这一点非常有心,但是我估测Trae IDE的体验更好(就是AI IDE出生,毕…...

装备制造企业选型:什么样的项目管理系统最合适?
个性化定制需求日益增加、项目周期长、供应链协同复杂、成本控制难度大、以及设计、生产、安装、售后等环节协同不畅。这些挑战使得装备制造企业在传统的管理方式捉襟见肘,迫切需要一套高效、智能的项目管理系统来提升运营效率和盈利能力。 那么,对于装…...
技术面试一面标准流程
0. 自我介绍 ...... 1. 拷打项目 项目干了啥? 难点是啥? 问项目中用到的东西? 扩展? ...... 2. 基础知识 数据结构、C基础、设计模式 数据结构: 堆? unordered_map 和 布隆过滤器 都是用于查找…...
【playwright】 page.wait_for_timeout() 和time.sleep()区别
page.wait_for_timeout() 和 time.sleep() 都可以用于在代码中引入延迟,但它们的实现方式和效果有一些关键区别。以下是两者的详细对比: 1. 实现方式 page.wait_for_timeout(): 是 Playwright 提供的一个内置方法,专门用于在 Play…...
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护
常见网络安全攻击类型深度剖析(四):跨站脚本攻击(XSS)——分类、漏洞利用与前端安全防护 在Web应用安全中,跨站脚本攻击(Cross-Site Scripting, XSS)是攻击者利用浏览器漏洞&#x…...

QT多元素控件及其属性
Qt中提供的多元素控件有: QListWidget QListView QTableWidget QTableView QTreeWidget QTreeView widget和view多元素控件的区别: view是更底层的实现,widget是基于view封装而来,view是MVC结构的一种典型实现 MVC结构&am…...

如何快速高效学习Python?
如何快速高效学习Python? How to Fastly and Effectively Learn Python Programming? By JacksonML 1. Python年轻吗? Python自1991年诞生到现在,已经经历了三十四年或者更长时间了。毕竟,Python之父 – 吉多范罗苏姆先生(Gu…...