当前位置: 首页 > news >正文

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

📖 前言:在网络安全防护领域,防火墙是保护网络安全的一种最常用的设备。网络管理员希望通过在网络边界合理使用防火墙,屏蔽源于外网的各类网络攻击。但是,防火墙由于自身的种种限制,并不能阻止所有攻击行为。入侵检测(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
博客链接:🔎 作者博客主页

相关文章:

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

&#x1f4d6; 前言&#xff1a;在网络安全防护领域&#xff0c;防火墙是保护网络安全的一种最常用的设备。网络管理员希望通过在网络边界合理使用防火墙&#xff0c;屏蔽源于外网的各类网络攻击。但是&#xff0c;防火墙由于自身的种种限制&#xff0c;并不能阻止所有攻击行为…...

JVM GC 算法原理概述

对于JVM的垃圾收集&#xff08;GC&#xff09;&#xff0c;这是一个作为Java开发者必须了解的内容&#xff0c;那么&#xff0c;我们需要去了解哪些内容呢&#xff0c;其实&#xff0c;GC主要是解决下面的三个问题&#xff1a; 哪些内存需要回收&#xff1f; 什么时候回收&…...

【数值分析】LU分解解Ax=b,matlab自己编程实现

LU分解&#xff08;直接三角分解&#xff0c;Doolittle分解&#xff09; A x b , A L U Axb \,\,,\,\, ALU Axb,ALU { L y b U x y \begin{cases} Lyb \\ Uxy \end{cases} {LybUxy​ 矩阵 L {L} L 的对角元素为 1 {1} 1 &#xff0c;矩阵 U {U} U 的第一行和 A {A} A …...

华为HCIE-Datacom课程介绍

厦门微思网络HCIE-Datacom课程介绍 一、认证简介 HCIE-Datacom&#xff08;Huawei Certified ICT Expert-Datacom&#xff09;认证是华为认证体系中的顶级认证&#xff0c;HCIE-Datacom认证定位具备坚实的企业网络跨场景融合解决方案理论知识&#xff0c;能够使用华为数通产品…...

QT(C++)-QTableWight添加行和删除空行

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1、前言2、QTableWidget的添加行3、删除行 1、前言 最近要用QT开发项目&#xff0c;对QT不是很熟&#xff0c;就根据网上的查到的知识和自己的摸索&#xff0c;将一…...

软件测试/测试开发丨Python 面向对象编程思想

面向对象是什么 Python 是一门面向对象的语言面向对象编程&#xff08;OOP&#xff09;&#xff1a;Object Oriented Programming 所谓的面向对象&#xff0c;就是在编程的时候尽可能的去模拟真实的现实世界&#xff0c;按照现实世界中的逻辑去处理问题&#xff0c;分析问题中…...

一次降低进程IO延迟的性能优化实践——基于block层bfq调度器

如果有个进程正频繁的读写文件&#xff0c;此时你vim查看一个新文件&#xff0c;将会出现明显卡顿。即便你vim查看的文件只有几十M&#xff0c;也可能会出现卡顿。相对的&#xff0c;线上经常遇到IO敏感进程偶发IO超时问题。这些进程一次读写的文件数据量很少&#xff0c;正常几…...

C语言易错知识点十(指针(the final))

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 许久不见&#xff0c;甚是想念&#xff0c;真的是时间时间&#xff0c;你慢些吧&#xff0c;不能再让头发变秃…...

React 18 新增的钩子函数

React 18 引入了一些新的钩子函数&#xff0c;用于处理一些常见的场景和问题。以下是 React 18 中引入的一些新钩子函数以及它们的代码示例和使用场景&#xff1a; useTransition&#xff1a; 代码示例&#xff1a;import { useTransition } from react;function MyComponent()…...

安装与部署Hadoop

一、前置安装准备1、机器2、java3、创建hadoop用户 二、安装Hadoop三、环境配置1、workers2、hadoop-env.sh3、core-site.xml4、hdfs-site.xml5、linux中Hadoop环境变量 四、启动hadoop五、验证 一、前置安装准备 1、机器 主机名ip服务node1192.168.233.100NameNode、DataNod…...

MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)

文章目录 MySQL 8.0 InnoDB Tablespaces之General Tablespaces&#xff08;通用表空间/一般表空间&#xff09;General tablespaces&#xff08;通用表空间/一般表空间&#xff09;通用表空间的功能通用表空间的限制 创建通用表空间&#xff08;一般表空间&#xff09;创建语法…...

循环生成对抗网络(CycleGAN)

一、说明 循环生成对抗网络&#xff08;CycleGAN&#xff09;是一种训练深度卷积神经网络以执行图像到图像翻译任务的方法。网络使用不成对的数据集学习输入和输出图像之间的映射。 二、基本介绍 CycleGAN 是图像到图像的翻译模型&#xff0c;就像Pix2Pix一样。Pix2Pix模型面临…...

数组--53.最大子数组和/medium

53.最大子数组和 1、题目2、题目分析3、解题步骤4、复杂度最优解代码示例5、抽象与扩展 1、题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连…...

centos 编译安装 python 和 openssl

安装环境&#xff1a; centos 7.9 &#xff1a; python 3.10.5 和 openssl 3.0.12 centos 6.10 &#xff1a; python 3.10.5 和 openssl 1.1.1 两个环境都能安装成功&#xff0c;可以正常使用。 安装 openssl 下载地址 下载后解压&#xff0c;进入到解压目录 执行&#xf…...

【nodejs】前后端身份认证

前后端身份认证 一、web开发模式 服务器渲染&#xff0c;前后端分离。 不同开发模式下的身份认证&#xff1a; 服务端渲染推荐使用Session认证机制前后端分离推荐使用JWT认证机制 二、session认证机制 1.HTTP协议的无状态性 了解HTTP协议的无状态性是进一步学习Session认…...

数据结构【线性表篇】(三)

数据结构【线性表篇】(三&#xff09; 文章目录 数据结构【线性表篇】(三&#xff09;前言为什么突然想学算法了&#xff1f;为什么选择码蹄集作为刷题软件&#xff1f; 目录一、双链表二、循环链表三、静态链表 结语 前言 为什么突然想学算法了&#xff1f; > 用较为“官方…...

Python装饰器的专业解释

装饰器&#xff0c;其实是用到了闭包的原理来进行操作的。 单个装饰器&#xff1a; 以下是一个简单的例子&#xff1a; def outer(func):print("OUTER enter ...")def wrapper(*args, **kwargs):print("调用之前......")result func(*args, **kwargs)p…...

vue3框架笔记

Vue Vue 是一个渐进式的前端开发框架&#xff0c;很容易上手。Vue 目前的版本是 3.x&#xff0c;但是公司中也有很多使用的是 Vue2。Vue3 的 API 可以向下兼容 2&#xff0c;Vue3 中新增了很多新的写法。我们课程主要以 Vue3 为主 官网 我们学习 Vue 需要转变思想&#xff0…...

pytest --collectonly 收集测试案例

pytest --collectonly 是一条命令行指令&#xff0c;用于在运行 pytest 测试时仅收集测试项而不执行它们。它会显示出所有可用的测试项列表&#xff0c;包括测试模块、测试类和测试函数&#xff0c;但不会执行任何实际的测试代码。 这个命令对于查看项目中的测试结构和确保所有…...

dev express 15.2图表绘制性能问题(dotnet绘图表)

dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…...

WorkPlus:领先的IM即时通讯软件,打造高效沟通协作新时代

在当今快节奏的商业环境中&#xff0c;高效沟通和协作是企业成功的关键。而IM即时通讯软件作为实现高效沟通的利器&#xff0c;成为了现代企业不可或缺的一部分。作为一款领先的IM即时通讯软件&#xff0c;WorkPlus以其卓越的性能和独特的功能&#xff0c;助力企业打造高效沟通…...

学习SpringCloud微服务

SpringCloud 微服务单体框架微服务框架SpringCloud微服务拆分微服务差分原则拆分商品服务拆分购物车服务拆分用户服务拆分交易服务拆分支付服务服务调用RestTemplate远程调用 微服务拆分总结 服务治理注册中心Nacos注册中心服务注册服务发现 OpenFeign实现远程调用快速入门引入…...

WPF 显示气泡提示框

气泡提示框应用举例 有时候在我们开发的软件经常会遇到需要提示用户的地方&#xff0c;为了让用户更直观&#xff0c;快速了解提示信息&#xff0c;使用简洁、好看又方便的气泡提示框显得更加方便&#xff0c;更具人性化。如下面例子&#xff1a;(当用户未输入账号时&#xff0…...

L1-062:幸运彩票

题目描述 彩票的号码有 6 位数字&#xff0c;若一张彩票的前 3 位上的数之和等于后 3 位上的数之和&#xff0c;则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。 输入格式&#xff1a; 输入在第一行中给出一个正整数 N&#xff08;≤ 100&#xff09;。随后 N 行…...

python+vue高校体育器材管理信息系统5us4g

优秀的高校体育馆场地预订系统能够更有效管理体育馆场地预订业务规范&#xff0c;帮助管理者更加有效管理场地的使用&#xff0c;有效提高场地使用效率&#xff0c;可以帮助提高克服人工管理带来的错误等不利因素&#xff0c;所以一个优秀的高校体育馆场地预订系统能够带来很大…...

10 款顶级的免费U盘数据恢复软件(2024 年 更新)

你曾经遇到过U盘无法访问的情况吗&#xff1f;现在我们教你如何恢复数据。 在信息时代&#xff0c;数据丢失往往会造成巨大的困扰。而USB闪存驱动器作为我们常用的数据存储设备&#xff0c;其重要性不言而喻。但是&#xff0c;U盘也可能会出现各种问题&#xff0c;如无法访问、…...

C# json 转匿名对象及C#关键字的处理

调用第三方接口&#xff0c;返回的json字符串&#xff0c;为了方便使用转为C#匿名对象&#xff1a; /// <summary>/// json转为匿名对象/// </summary>/// <typeparam name"T"></typeparam>/// <param name"json"></para…...

关于彻底通过外网,自动批量下载Python的pip依赖包后到企业内网重安装的步骤-比单个包的要方便多了。

关于彻底通过外网&#xff0c;自动批量下载Python包后到企业内网重安装的步骤 前言&#xff1a; 哎&#xff0c;在本人的前面的博客中&#xff0c;分享的方法可能是不通用的。因为在一次实践中发现它不能总是通用且麻烦。所以本次记录分享一个更方便快速的方式。 上期前言&am…...

Oracle T4-4小型机上配置Ldom部署rac

Ldom控制域配置 (两台主机一样&#xff0c;以hydb1为例) roothydb1 # ldm add-vds primary-vds0 primary roothydb1 # ldm add-vcc port-range5000-5100 primary-vcc0 primary roothydb1 # ldm add-vsw net-devigb0 primary-vsw0 primary roothydb1 # ldm add-vsw net-devixgbe…...

【2023Hadoop大数据技术应用期末复习】填空题题型整理

大数据的 4V 特征包含&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09; 答案&#xff1a;大量、多样、高速、价值Hadoop 三大组件包含&#xff08;&#xff09;&#xff08;&#xff09;&#xff08;&#xff09; 答案&…...

劫持 PE 文件:新建节表并插入指定 DLL 文件

PE格式简介 PE(Portable Executable)格式&#xff0c;是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式。 Portable 是指对于不同的Windows版本和不同的CPU类型上…...

HTTP分数排行榜

HTTP分数排行榜 介绍一、创建数据库二、创建PHP脚本三、上传下载分数四、测试 介绍 Unity中向服务器发送用户名和得分&#xff0c;并存入数据库&#xff0c;再讲数据库中的得分按照降序的方式下载到Unity中。 一、创建数据库 首先&#xff0c;我们要在MySQL数据库中建立一个…...

Android 实现 Slots 游戏旋转效果

文章目录 前言一、效果展示二、代码实现1.UI布局2.SlotAdapter2.SlotsActivity 总结 前言 slots游戏&#xff1a; Slots游戏是一种极具流行度的赌博和娱乐形式&#xff0c;通常被称为老虎机或水果机。它们在赌场、线上游戏平台和手机应用中广泛存在。一般这类游戏都使用Unity…...

AI产品经理 - 如何做一款软硬协同AI产品

【背景】从0做一款软硬协同的AI产品&#xff0c;以智能医药保温箱 1.以智能医药保温箱 2.调研定义市场方向 地点&#xff1a;医药、实验室 场景&#xff1a;长宽高/装箱/运输/实验室 3.需求挖掘 4.如何进行软硬件AI产品工作 软硬件产品设计&#xff1a;功能/硬件外观设计、…...

拒绝采样(算法)总结

先说说什么是拒绝采样算法&#xff1a;就类似于数学上的求阴影面积的方法&#xff0c;直接求求不出来&#xff0c;就用大面积 - 小面积 阴影面积的办法。 所谓拒绝 和 采样 &#xff1a;就像是撒豆子计个数&#xff0c;计算概率问题一样&#xff0c;大桶里面套小桶&#xff0c…...

分布式数据库事务故障恢复的原理与实践

关系数据库中的事务故障恢复并不是一个新问题&#xff0c;自70年代关系数据库诞生之后就一直伴随着数据库技术的发展&#xff0c;并且在分布式数据库的场景下又遇到了一些新的问题。本文将会就事务故障恢复这个问题&#xff0c;分别讲述单机数据库、分布式数据库中遇到的问题和…...

Spark中的数据加载与保存

Apache Spark是一个强大的分布式计算框架&#xff0c;用于处理大规模数据。在Spark中&#xff0c;数据加载与保存是数据处理流程的关键步骤之一。本文将深入探讨Spark中数据加载与保存的基本概念和常见操作&#xff0c;包括加载不同数据源、保存数据到不同格式以及性能优化等方…...

2023-12-20 LeetCode每日一题(判别首字母缩略词)

2023-12-20每日一题 一、题目编号 2828. 判别首字母缩略词二、题目链接 点击跳转到题目位置 三、题目描述 给你一个字符串数组 words 和一个字符串 s &#xff0c;请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符…...

C# 事件(Event)

C# 事件&#xff08;Event&#xff09; C# 事件&#xff08;Event&#xff09;通过事件使用委托声明事件&#xff08;Event&#xff09;实例 C# 事件&#xff08;Event&#xff09; 事件&#xff08;Event&#xff09; 基本上说是一个用户操作&#xff0c;如按键、点击、鼠标移…...

2312d,d的sql构建器

原文 项目 该项目在我工作项目中广泛使用,它允许自动处理联接方式动态构建SQL语句. 还会自动直接按表示数据库行结构序化.它在dconf2022在线演讲中介绍了:建模一切. 刚刚添加了对sqlite的支持.该API还不稳定,但仍非常有用.这是按需构建,所以虽然有个计划外表,但满足了我的需要…...

以太网二层交换机实验

实验目的&#xff1a; &#xff08;1&#xff09;理解二层交换机的原理及工作方式&#xff1b; &#xff08;2&#xff09;利用交换机组建小型交换式局域网。 实验器材&#xff1a; Cisco packet 实验内容&#xff1a; 本实验可用一台主机去ping另一台主机&#xff0c;并…...

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料&#xff0c;如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外&#xff0c;对涂料出口的需求不断增长&#xff0c;这增加了增长和扩张的机会。近年来&#xff0c;…...

华为ensp网络设计期末测试题-复盘

网络拓扑图 地址分配表 vlan端口分配表 需求 The device is running!<Huawei>sys Enter system view, return user view with CtrlZ. [Huawei]un in en Info: Information center is disabled. [Huawei]sys S1 [S1]vlan 99 [S1-vlan99]vlan 100 [S1-vlan100]des IT [S1-…...

Dockerfile: WORKDIR vs VOLUME

WORKDIR WORKDIR指令为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。 如果WORKDIR不存在&#xff0c;它将被创建&#xff0c;即使它没有在任何后续Dockerfile指令中使用。 语法 : WORKDIR dirpath WORKDIR指令可以在Dockerfile中多次使用。如果提供了…...

spring ioc源码-refresh();

主要作用是刷新应用上下文 Override public void refresh() throws BeansException, IllegalStateException {synchronized (this.startupShutdownMonitor) {// 启动刷新的性能跟踪步骤StartupStep contextRefresh this.applicationStartup.start("spring.context.refre…...

使用递归实现深拷贝

文章目录 为什么要使用递归什么深拷贝具体实现基础实现处理 函数处理 Symbol处理 Set处理 Map处理 循环引用 结语-源码 为什么要使用递归什么深拷贝 我们知道在 JavaScript 中可以通过使用JSON序列化来完成深拷贝&#xff0c;但是这种方法存在一些缺陷&#xff0c;比如对于函数…...

工程(十七)——自己数据集跑R2live

博主创建了一个科研互助群Q&#xff1a;772356582&#xff0c;欢迎大家加入讨论。 r2live是比较早的算法&#xff0c;编译过程有很多问题&#xff0c;通过以下两个博客可以解决 编译R2LIVE问题&解决方法-CSDN博客 r2live process has died 问题解决了_required process …...

【python高级用法】迭代器、生成器、装饰器、闭包

迭代器 可迭代对象&#xff1a;可以使用for循环来遍历的&#xff0c;可以使用isinstance()来测试。 迭代器&#xff1a;同时实现了__iter__()方法和__next__()方法&#xff0c;可以使用isinstance()方法来测试是否是迭代器对象 from collections.abc import Iterable, Iterat…...

Nx市工业数据洞察:Flask、MySQL、Echarts的可视化之旅

Nx市工业数据洞察&#xff1a;Flask、MySQL、Echarts的可视化之旅 背景数据集来源技术选型功能介绍创新点总结 背景 随着工业化的不断发展&#xff0c;Nx市工业数据的收集和分析变得愈发重要。本博客将介绍如何利用Flask、MySQL和Echarts等技术&#xff0c;从统计局获取的数据…...

关于正态分布

目录 1.正态分布是什么2.正态分布有什么用途3.如何确定数据服从正态分布 本文简单介绍正态分布的基本概念和用途。 1.正态分布是什么 正态分布&#xff0c;也称为高斯分布&#xff0c;是由德国数学家卡尔弗里德里希高斯在研究测量误差时提出的。他发现许多自然现象和统计数据…...