【信息安全原理】——入侵检测与网络欺骗(学习笔记)

📖 前言:在网络安全防护领域,防火墙是保护网络安全的一种最常用的设备。网络管理员希望通过在网络边界合理使用防火墙,屏蔽源于外网的各类网络攻击。但是,防火墙由于自身的种种限制,并不能阻止所有攻击行为。入侵检测(intrusion detection)通过实时收集和分析计算机网络或系统中的各种信息,来检查是否出现违反安全策略的行为和遭到攻击的迹象,进而达到预防、阻止攻击的目的,是防火墙的有力补充。而网络欺骗则是在网络中设置用来引诱入侵者的目标,将入侵者引向这些错误的目标来保护真正的系统,同时监控、记录、识别、分析入侵者的所有行为。本章主要介绍入侵检测和网络欺骗的基本概念和工作原理。

在这里插入图片描述


目录

  • 🕒 1. 入侵检测概述
  • 🕒 2. 入侵检测方法
    • 🕘 2.1 特征检测
      • 🕤 2.1.1 模式匹配法
      • 🕤 2.1.2 专家系统法
      • 🕤 2.1.3 状态迁移法
    • 🕘 2.2 异常检测(误用检测)
      • 🕤 2.2.1 统计分析法
      • 🕤 2.2.2 人工免疫法
      • 🕤 2.2.3 机器学习法
      • 🕤 2.2.4 小结
  • 🕒 3. Snort简介
  • 🕒 4. 网络欺骗(Cyber Deception)
    • 🕘 4.1 蜜罐
    • 🕘 4.2 蜜网
    • 🕘 4.3 防御

🕒 1. 入侵检测概述

定义:通过从计算机系统或网络的关键点收集信息并进行分析,从中发现系统或网络中是否有违反安全策略的行为被攻击的迹象

根据检测方法来分:

  • 基于特征的入侵检测
  • 基于异常的入侵检测
  • 混合的入侵检测

根据数据源来分:

  • 基于应用的入侵检测系统(Application-based IDS, AIDS)
  • 基于主机的入侵检测系统(Host-based IDS, HIDS)
  • 基于网络的入侵检测系统(Network-based IDS, NIDS)
  • 混合的入侵检测系统(Hybrid IDS)

NIDS:
在这里插入图片描述

HIDS:

在这里插入图片描述

🕒 2. 入侵检测方法

🕘 2.1 特征检测

定义:收集非正常操作的行为特征(signature),建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是入侵。

特征:

  • 静态特征:如病毒或者木马的散列值、端口号、IP地址、域名
  • 动态特征:如网络统计数据、计算机或应用系统中的审计记录、日志、文件的异常变化、硬盘、内存大小的变化
  • 特征描述:描述语言

特征检测针对的是已知攻击,检测率取决于:攻击特征库的正确性与完备性

🕤 2.1.1 模式匹配法

将收集到的入侵特征转换成模式,存放在模式数据库中。检测过程中将收集到的数据信息与模式数据库进行匹配,从而发现攻击行为。

模式匹配的具体实现手段多种多样,可以是通过字符串匹配寻找特定的指令数据,也可以是采用正规的数学表达式描述数据负载内容。技术成熟,检测的准确率和效率都很高

🕤 2.1.2 专家系统法

入侵活动被编码成专家系统的规则:“If 条件 Then 动作”的形式。入侵检测系统根据收集到的数据,通过条件匹配判断是否出现了入侵并采取相应动作。

实现上较为简单,其缺点主要是处理速度比较慢,原因在于专家系统采用的是说明性的表达方式,要求用解释系统来实现,而解释器比编译器的处理速度慢。另外,维护规则库也需要大量的人力精力,由于规则之间具有联系性,更改任何一个规则都要考虑对其他规则的影响。

🕤 2.1.3 状态迁移法

利用状态转换图描述并检测已知的入侵模式。入侵检测系统保存入侵相关的状态转换图表,并对系统的状态信息进行监控,当用户动作驱动系统状态向入侵状态迁移时触发入侵警告。

状态迁移法能够检测出多方协同的慢速攻击,但是如果攻击场景复杂的话,要精确描述系统状态非常困难。因此,状态迁移法通常与其他的入侵检测法结合使用。

🕘 2.2 异常检测(误用检测)

定义:首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵。

行为:需要一组能够标识用户特征、网络特征或者系统特征的测量参数,如CPU利用率、内存利用率、网络流量等等。基于这组测量参数建立被监控对象的行为模式并检测对象的行为变化。

两个关键问题:

  • 选择的各项测量参数能否反映被监控对象的行为模式。
  • 如何界定正常和异常。

数据源评价
正常行为的学习依赖于学习数据的质量,但如何评估数据的质量呢?
可以利用信息论的熵、条件熵、相对熵和信息增益等概念来定量地描述一个数据集的特征,分析数据源的质量。

定义1:给定数据集合 X X X, 对任意 x ∈ C x x ∈C_x xCx, 定义熵 H ( X ) H(X) H(X)为:

H ( X ) = ∑ x ∈ C x P ( x ) log ⁡ 1 P ( x ) H(X)=\sum_{x \in C x} P(x) \log \frac{1}{P(x)} H(X)=xCxP(x)logP(x)1

在数据集中,每个唯一的记录代表一个类,熵越小,数据也就越规则,根据这样的数据集合建立的模型的准确性越好。

定义2:定义条件熵 H ( X ∣ Y ) H(X | Y) H(XY)为:
H ( X ∣ Y ) = ∑ x , y ∈ C x , C y P ( x , y ) log ⁡ 1 P ( x ∣ y ) H(X \mid Y)=\sum_{x, y \in C_{x}, C_{y}} P(x, y) \log \frac{1}{P(x \mid y)} H(XY)=x,yCx,CyP(x,y)logP(xy)1

其中, P ( x , y ) P(x, y) P(x,y) x x x y y y 的联合概率, P ( x ∣ y ) P(x | y) P(xy)为给定 y y y x x x 的条件概率。安全审计数据通常都具有时间上的序列特征,条件熵可以用来衡量这种特征,按照上面的定义,令 X = ( e 1 , e 2 , … , e n ) X=(e_1, e_2, …, e_n) X=(e1,e2,,en),令 Y = ( e 1 , e 2 , … , e k ) Y=(e_1, e_2, …, e_k) Y=(e1,e2,,ek),其中 k < n k<n k<n,条件熵 H ( X ∣ Y ) H(X | Y) H(XY)可以衡量在给定 Y Y Y以后,剩下的 X X X的不确定性还有多少。条件熵越小,表示不确定性越小,从而通过已知预测未知的可靠性越大。

案例:系统调用系列与LSM监控点系列
在这里插入图片描述在这里插入图片描述

🔎 软件学报,2005, 16(6):张衡,卞洪流,吴礼发等,基于LSM的程序行为控制研究

🕤 2.2.1 统计分析法

以统计理论为基础建立用户或者系统的正常行为模式。主体的行为模式常常由测量参数的频度、概率分布、均值、方差等统计量来描述。抽样周期可以短到几秒钟长至几个月。

异常:将用户的短期特征轮廓与长期特征轮廓进行比较,如果偏差超过设定的阈值,则认为用户的近期活动存在异常。

入侵判定思路较为简单,但是在具体实现时误报率和漏报率都较高,此外,对于存在时间顺序的复杂攻击活动,统计分析法难以准确描述。

常用统计模型

  • 操作模型,对某个时间段内事件的发生次数设置一个阈值,如果事件变量X出现的次数超过阈值,就有可能是异常;
  • 平均值和标准差模型
  • 巴尔科夫过程模型,状态迁移矩阵

统计分析法要解决四个问题

  • 选取有效的统计数据测量点生成能够反映主机特征的会话向量。
  • 根据主体活动产生的审计记录,不断更新当前主体活动的会话向量。
  • 采用统计方法分析数据,判断当前活动是否符合主体的历史行为特征。
  • 随着时间变化,学习主体的行为特征,更新历史记录。

🕤 2.2.2 人工免疫法

将非法程序及非法应用与合法程序、合法数据区分开来,与人工免疫系统对自体和非自体进行类别划分相类似。 Forrest采用监控系统进程的方法实现了Unix平台的人工免疫入侵检测系统。

在这里插入图片描述

🕤 2.2.3 机器学习法

机器学习异常检测方法通过机器学习模型或算法对离散数据序列进行学习来获得个体、系统和网络的行为特征,从而实现攻击行为的检测。

什么是异常?

  • 在大多数异常检测场景里,异常指与大部分其他对象不同的对象
  • 异常(离群点)可以分类三类:
    • 全局离群点:指一个数据对象显著偏离数据集中的其余对象
    • 情境离群点:对于某个特定情境,这个对象显著偏离其他对象
    • 集体离群点:数据对象的一个子集作为整体显著偏离整个数据集

异常检测:指出给定的输入样本 { X i } i = 1 n \{X_i\}_{i=1}^{n} {Xi}i=1n中包含的异常值

  • 有监督异常检测:如果是给定了带正常值或异常值标签的数据,异常检测可以看作是监督学习的分类问题。
  • 无监督异常检测:不提供任何带标签数据
  • 弱监督异常检测:在训练样本 { X i } i = 1 n \{X_i\}_{i=1}^{n} {Xi}i=1n中附加正常值样本集 { y j } j = 1 m \{y_j\}_{j=1}^{m} {yj}j=1m,进行更高精度的异常检测

在这里插入图片描述

根据模型本身的特点进行分类,大致可以分为以下几种:

  • 统计检验方法
  • 基于深度的方法
  • 基于偏差的方法
  • 基于距离的方法
  • 基于密度的方法
  • 深度学习方法

🔎 A Review of the Advancement in Intrusion Detection Datasets

🕤 2.2.4 小结

异常检测(误用检测)

  • 可以检测未知攻击!
  • 不在预定义的合法行为集中,就一定是攻击吗?
  • 检测率取决于:正常行为模式的正确性与完备性以及监控的频率
  • 系统能针对用户行为的改变进行自我调整和优化,但随着检测模型的逐步精确,检测过程会消耗更多的系统资源

两种方法比较

  • 检测的攻击类型:已知与未知
  • 特征:已知攻击特征与已知正常行为特征
  • 性能:误报率(rate of false positive)与漏报率(rate of false negative)
    • 对每种方法,各在何种情况下发生误报、漏报?
特征检测异常检测
通过进行上下文分析有效识别已知攻击检测未知攻击和漏洞以及已知攻击
它依赖于系统软件和操作系统来识别攻击和漏洞它较少依赖于操作系统,而是检查网络模式来识别攻击
攻击签名数据库应定期更新它构建观察网络通信的档案以识别攻击模式
特征检测的IDS对协议的了解最少异常检测的IDS执行协议分析以研究数据包详细信息

评价指标:
在这里插入图片描述

🕒 3. Snort简介

在这里插入图片描述

Snort是采用C语言编写的一款开源基于网络的入侵检测系统,具有小巧灵活、配置简便、功能强大、检测效率高等特点。Snort主要采用特征检测的工作方式,通过预先设置的检测规则对网络数据包进行匹配,发现各种类型的网络攻击

Snort由三个模块组成:数据包解析器、检测引擎、日志与报警子系统

  • 网络数据包首先交给数据包解析器进行解析处理,处理结果提交给检测引擎与用户设定的检测规则进行匹配。在此基础上,检测引擎的输出交给日志与报警子系统处理,日志与报警子系统将依据系统设置,记录数据包信息或者发出警报。

在snort中有五种动作:alert、log、pass、activate和dynamic

  • Alert:产生告警,然后记录数据包信息
  • Log:记录数据包信息
  • Pass:忽略数据包
  • activate:报警并且激活另一条dynamic规则
  • dynamic:保持空闲直到被一条activate规则激活,被激活后就作为一条log规则执行。

规则选项组成了Snort入侵检测引擎的核心
在这里插入图片描述

规则选项:
msg:在报警和包日志中打印一个消息
flags:检查tcp flags的值。

在snort中有8个标志变量:

  • F- FIN
  • S-SYN
  • R-RST
  • P-PSH
  • A- ACK
  • U-URG
  • 2- Reserved bit 2
  • 1 - Reserved bit

content:在包的净荷中搜索指定的样式。它可以包含混合的文本和二进制数据。

二进制数据一般包含在管道符号中|,表示为字节码。

所有的Snort规则选项用分号;隔开。规则选项关键字和它们的参数用冒号:分开。

🕒 4. 网络欺骗(Cyber Deception)

最早由美国普渡大学的 Gene Spafford 于1989年提出,它的核心思想是:采用引诱或欺骗战略,诱使入侵者相信网络与信息系统中存在有价值的、可利用的安全弱点,并具有一些可攻击窃取的资源(当然这些资源是伪造的或不重要的),进而将入侵者引向这些错误的资源,同时安全可靠地记录入侵者的所有行为,以便全面地了解攻击者的攻击过程和使用的攻击技术。

网络欺骗用途

  • 吸引攻击流量,影响入侵者使之按照防护方的意志进行行动
  • 检测入侵者的攻击并获知其攻击技术和意图,对入侵行为进行告警和取证,收集攻击样本
  • 增加入侵拖延攻击者攻击真实目标者的工作量、入侵复杂度以及不确定性,为网络防护提供足够的信息来了解入侵者,这些信息可以用来强化现有的安全措施

🕘 4.1 蜜罐

蜜罐(Honeypot)是最早采用欺骗技术的网络安全系统。

定义:蜜罐是一种安全资源,其价值在于被探测、攻击或突破

目标:就是使它被扫描探测、攻击或被突破,同时能够很好地进行安全控制

按照实现方式可将蜜罐分为物理蜜罐虚拟蜜罐

  • 物理蜜罐:安装真实操作系统和应用服务的计算机系统,通过开放容易受攻击的端口、留下漏洞来诱惑攻击者
  • 虚拟蜜罐:在物理主机上安装蜜罐软件使其模拟不同类型的系统和服务,一套物理主机可以由多个虚拟蜜罐

根据交互程度或逼真程度的高低可以分为低交互蜜罐、中交互蜜罐和高交互蜜罐

  • 低交互蜜罐:一个低交互的蜜罐可以用来模拟一个标准的Linux服务器,运行FTP、SMTP和TELNET等服务。
    • 通常使用一个交互脚本进行实现,按照交互脚本对攻击者的请求进行响应。
    • 比如:攻击者可以通过远程连接到这个蜜罐,然后通过猜测或暴力破解进行登录尝试,攻击者与蜜罐的交互仅限于登录尝试,并不能登录到这个系统。
  • 高交互蜜罐:提供真实的或接近真实的网络服务,还有一套安全监控系统,隐蔽记录攻击者的所有行为。
    • 通常模拟一个网络服务的所有功能。如FTP蜜罐完整实现FTP协议,Telnet蜜罐完整地实现Telnet协议
  • 中交互蜜罐:介于低交互蜜罐与高交互蜜罐之间。模拟实现一个网络服务或设备的大部分功能,包括漏洞模拟

低交互蜜罐的功能相对简单,一般包括:

  • 攻击数据捕获与处理,在一个或多个协议服务端口上监听,当有攻击数据到来时捕获并处理这些攻击数据,必要的时候还需给出响应,将处理后的攻击数据记录到本地日志,同时向平台服务端(如果有的话)实时推送;
  • 攻击行为分析,对攻击日志进行多个维度(协议维,时间维,地址维等)的统计分析,发现攻击行为规律,并用可视化方法展示分析结果

高交互蜜罐的功能相对复杂,一般包括:

  • 网络欺骗:对蜜罐进行伪装,使它在被攻击者扫描时表现为网络上的真实主机
    • 空间欺骗技术:伪装创建整个内网
    • 网络流量仿真:伪造与其他主机交互,将内网流量复制重现或用一定规则自动生成流量
    • 网络动态配置:配置动态的网络路由信息
    • 多重地址转换:使用代理服务功能进行地址转换
    • 创建组织信息欺骗:如邮件服务器伪造邮件往来
  • 攻击捕获:采集攻击者对网络实施攻击的相关信息,通过分析捕获的信息,可以研究攻击者所利用的系统漏洞,获取新的攻击方式,甚至是0 day攻击。难点是要在防止被攻击者识破的情况下尽可能多地记录下系统状态信息,还有通信加密问题
  • 数据控制:限制蜜罐向外发起的连接,确保蜜罐不会成为攻击者的跳板
  • 数据分析:对蜜罐采集到的信息进行多个维度(协议维,时间维,地址维,代码维等)的统计分析,发现攻击行为规律,并用可视化方法展示分析结果

经过多年的发展,有很多商用或开源的蜜罐项目,如honeyd, The Honeynet Project, 狩猎女神,Specter, Mantrap等。开源软件平台gitbub上可以找到大量各种类型的蜜罐(https://github.com/paralax/awesome-honeypots/blob /master/ README_CN.md给出了一个比较完整的蜜罐资源列表及网络链接),如数据库类蜜罐(如HoneyMysql,MongoDB等)、Web类蜜罐(如Shadow Daemon,StrutsHoneypot, WebTrap等)、服务类蜜罐(如Honeyprint, SMB Honeypot, honeyntp, honeyprint等)、工业控制类蜜罐(如Conpot, Gaspot, SCADA Honeynet, gridpot)

🔎 如何发现蜜罐?

🕘 4.2 蜜网

蜜网(Honeynet)是由多个蜜罐组成的欺骗网络,蜜网中通常包含不同类型的蜜罐,可以在多个层面捕获攻击信息,以满足不同的安全需求

蜜网既可以用多个物理蜜罐来构建,也可以由多个虚拟蜜罐组成。目前,通过虚拟化技术(如VMware)可以方便地把多个虚拟蜜罐部署在单个服务器主机上

🕘 4.3 防御

网络欺骗防御是一种体系化的防御方法,它将蜜罐、蜜网、混淆等欺骗技术同防火墙、入侵检测系统等传统防护机制有机结合起来,构建以欺骗为核心的网络安全防御体系

Garter对网络欺骗防御(Cyber Deception Defense)的定义为:使用骗局或者假动作来阻挠或者推翻攻击者的认知过程,扰乱攻击者的自动化工具,延迟或阻断攻击者的活动,通过使用虚假的响应、有意的混淆、假动作、误导等伪造信息达到“欺骗”的目的

根据网络空间欺骗防御的作用位置不同,可以将其分为不同的层次,包括:

  • 网络层欺骗
  • 终端层欺骗
  • 应用层欺骗
  • 数据层欺骗

国内外已有一些网络欺骗防御产品:

  • TrapX Security的DeceptionGrid
  • DARPA的Prattle
  • 美国Sandia国家实验室的Hades
  • 长亭科技2016年推出基于欺骗伪装技术的内网威胁感知系统谛听(D-Sensor)
  • 幻阵是我国默安科技研发的一款基于攻击混淆与欺骗防御技术的威胁检测防御系统

🔎 智能蜜罐DeepDig:把黑客变成免费渗透测试服务人员

🔎 用蜜罐检测 Kerberoasting 攻击


OK,以上就是本期知识点“入侵检测与网络欺骗”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/274787.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

原生微信小程序如何动态配置主题颜色及如何调用子组件的方法

一、最终效果 二、步骤 1、在初始化进入项目时&#xff0c;获取当前主题色 2、把主题色定义成全局变量&#xff08;即在app.js中设置&#xff09; 3、tabBar也需要定义全局变量&#xff0c;在首页时需要重新赋值 三、具体实现 1、app.js onLaunch () {//获取主题数据this.set…

SkyWalking UI 修改发布Nginx

文章目录 SkyWalking UI修改图标修改路由发布到Nginx添加认证修改路由模式vite.config.ts添加baseNginx配置 SkyWalking UI skywalking-booster-ui下载地址 修改图标 替换 logo.svg 修改路由 router - data - index.ts 发布到Nginx 添加认证 # 安装 yum install -y h…

Ubuntu安装K8S的dashboard(管理页面)

原文网址&#xff1a;Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;-CSDN博客 简介 本文介绍Ubuntu安装k8s的dashboard&#xff08;管理页面&#xff09;的方法。 Dashboard的作用有&#xff1a;便捷操作、监控、分析、概览。 相关网址 官网地址&#xff1a;…

新能源光伏行业CRM:推动绿色能源发展与高效客户管理的双重突破

随着“碳中和”计划以及传统能源价格的不断飙升&#xff0c;我国新能源光伏产业在国家“双碳”战略目标和市场需求的双重驱动下高歌猛进&#xff0c;中国光伏产业新增装机量、累计装机量连续多年位居全球首位。CRM在光伏产业中的作用也日益突出。下面为您介绍新能源光伏行业的C…

【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理

文章目录 一. 介绍二、HDFS Router-based Federation 架构1. 示例说明2. Router2.1. Federated interface2.2. Router heartbeat2.3. NameNode heartbeat2.4. Availability and fault toleranceInterfaces 3. Quota management4. State Store 三、部署 ing 本文主要参考官网&am…

Linux:不同计算机使用NFS共享资源

一&#xff0c;安装NFS文件系统 NFS即网络文件系统(network file system)&#xff0c;它允许网络中的计算机之间通过网络共享资源。目前&#xff0c;NFS只用于在Linux和UNIX主机间共享文件系统。 #使用mount命令可以将远程主机的文件系统 安装到 本地&#xff1a; #将远程主机…

Python初学者必须吃透的69个内置函数!

所谓内置函数&#xff0c;就是Python提供的, 可以直接拿来直接用的函数&#xff0c;比如大家熟悉的print&#xff0c;range、input等&#xff0c;也有不是很熟&#xff0c;但是很重要的&#xff0c;如enumerate、zip、join等&#xff0c;Python内置的这些函数非常精巧且强大的&…

Apache Flink连载(十九):Flink On Yarn运行-Yarn Session模式

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 任务提交命令 2. 任…

浏览器Post请求出现413 Request Entity Too Large (Nginx)

环境 操作系统 window server 2016 前端项目 Vue2 Nginx-1.25.3 一、错误信息 前端是vue项目&#xff0c;打包后部署在Nginx上&#xff0c;前端post请求出现Request Entity Too Large错误信息。 ​这种问题一般是请求实体太大&#xff08;包含参数&#xff0c;文件等&#xf…

代理模式:中间者的故事

代理模式&#xff1a;中间者的故事 介绍需求分析代理模式代码实现代理模式整理和用途第一种用途第二种用途第三种用途第四种用途 总结 介绍 本文引用《大话设计模式》第七章节的内容进行学习分析&#xff0c;仅供学习使用 需求&#xff1a;小明拜托自己好朋友小王给他朋友小美…

Adobe Premier及PrElements各版本安装指南

下载链接 https://pan.baidu.com/s/1FI_Zk4OsyRtx8AiMzgU57w?pwd0531 #2024版 1.鼠标右击【Pr2024(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Pr2024(64bit)】。 2.打开解压后的文件夹&#xff0c;鼠标右击【Setup】选择【以…

基于ssm兰亭序图书管理系统论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

每日一题(LeetCode)----二叉树-- 二叉树的右视图

每日一题(LeetCode)----二叉树-- 二叉树的右视图 1.题目&#xff08;199. 二叉树的右视图&#xff09; 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,nu…

【Web开发】深度剖析RBAC:概念、实现方法、优势及在Web应用中的应用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; Web开发 ⛳️ 功不唐捐&#xff0c;玉汝于成 前言 在现代Web开发的激烈竞争中&#xff0c;实现可扩展性、安全性和用户体验的平衡成为了至关重要的挑战。在这一背景下&#xff0c;Role-Bas…

计算机网络复习2

物理层 文章目录 物理层通讯基础奈奎斯特定理香农定理编码与调制交换传输介质&#xff08;了解&#xff09;物理层设备 通讯基础 数据信号码元信源信道信宿单工通道&#xff1a;只有一个方向半双工通道&#xff1a;不能同时发送和接收全双工通道 奈奎斯特定理 规定&#xff…

【ARMv8M Cortex-M33 系列 2.3 -- SEGGER JFlash 烧写命令介绍】

文章目录 SEGGER JFlash 烧写命令介绍JFlash 配置文件 固件烧写地址介绍确定烧写地址 SEGGER JFlash 烧写命令介绍 本文以介绍烧写 Renesas RA4M2 为例&#xff0c;对 JFlash 进行简单介绍。它是 ARM Cortex-M33 微控制器的型号之一。烧写前你需要先确保你有正确的 .hex 或 .b…

代码审计必要性探讨

1、背景 为了保证代码的质量&#xff0c;需要一系列的流程来进行保证&#xff1a; 今天要探讨的是代码审计的必要性。 2、代码审计 代码审计的做法多种多样&#xff0c;我理解必须解决以下问题 &#xff0c;才可能有效&#xff1a; 核心&#xff1a;审计的本质是对比&#…

Hadoop安装笔记_单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码&#xff0c;使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变&#xff0c;同时添加静态分区&#xff0c;分区字段为etl_date&#xff0c;类型为String&am…

java设计模式学习之【中介者模式】

文章目录 引言中介者模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用聊天室示例代码地址 引言 想象一下一座忙碌的机场&#xff0c;各种飞机需要起飞、降落&#xff0c;而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统&#xff0c;这将是一…

设计模式(4)--对象行为(7)--观察者

1. 意图 定义对象间的一种一对多的依赖关系&#xff0c; 当一个对象的状态改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 2. 四种角色 抽象目标(Subject)、具体目标(Concrete Subject)、抽象观察者(Observer)、 具体观察者(Concrete Observer) 3. 优点 3.1 …