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

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐,蛇年吉祥!

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期待与您前行,加油。

该文是贵大0624团队论文学习笔记,分享者陈超帆同学,未来我们每周至少分享一篇论文笔记。前一篇博客介绍了Computers & Security2022的MPSAutodetect,提出基于堆叠去噪自编码器的恶意Powershell脚本检测模型。这篇文章将带来CCS’21清华大学的DeepAID,提出一种基于深度学习的异常检测模型,一个能够有效融合深度学习优势与可解释性机制,且具备良好适应性和扩展性的系统。本文将无监督模型的解释聚焦于寻找异常偏离正常数据的原因,使深度学习模型在安全领域的应用更具可解释性;并以 Distiller 用 FSM 整合专家知识与反馈,独特设计实现规则匹配、泛化及未知威胁检测,提升系统性能。由于我们还在不断成长和学习中,写得不好的地方还请海涵。希望这篇文章对您有所帮助,这些大佬真值得我们学习。fighting!

  • 欢迎关注作者新建的『网络攻防和AI安全之家』知识星球(文章末尾)

在这里插入图片描述

原文作者:Dongqi Han, Zhiliang Wang, Wenqi Chen, et al.
原文标题:DeepAID: Interpreting and Improving Deep Learning-based Anomaly Detection in Security Applications
原文链接:https://dl.acm.org/doi/pdf/10.1145/3460120.3484589
发表会议:CCS 2021
笔记作者:贵大0624团队 陈超帆


一.摘要

无监督深度学习(DL)技术已被广泛应用于各种与安全相关的异常检测应用中,这是因为深度神经网络(DNN)具有检测不可预见威胁的巨大潜力和卓越性能。 然而,由于缺乏可解释性,DL 模型在实践中的应用遇到了主要障碍。 遗憾的是,现有的解释方法是针对有监督学习模型和/或非安全领域提出的,无法适应无监督 DL 模型,也无法满足安全领域的特殊要求。

本文提出了 DeepAID,这是一个通用框架,旨在解释安全领域中基于 DL 的异常检测系统,以及在解释的基础上提高这些系统的实用性。 文章首先为无监督 DNNs 提出了一种新颖的解释方法,即针对安全领域提出并解决具有特殊约束条件的精心设计的优化问题。 然后,文章基于所提出的解释器和基于模型的扩展 Distiller 提供了几种应用,通过解决特定领域的问题来改进安全系统。文章将 DeepAID 应用于三类与安全相关的异常检测系统,并广泛评估了DeepAID的解释器与具有代表性的先前作品。 实验结果表明,DeepAID 可以为无监督 DL 模型提供高质量的解释,同时满足安全领域的一些特殊要求。文章还提供了几个用例,说明 DeepAID 可以帮助安全操作员理解模型决策、诊断系统错误、向模型提供反馈并减少误报。


二.引言及前置知识

1.评估的安全系统

文章使用了三个安全系统Kitsune、DeepLog 和 GLGV来评估所提出的解释和改进方案。

  • Kitsune使用的数据集主要来源于物联网(IoT)网络。这些数据集用于训练和评估基于表格数据的 Kitsune 系统在网络入侵检测方面的性能。地址:https://github.com/HuskyDG/magisk-files/releases
  • DeepLog使用由 Hadoop 文件系统日志的关键数字序列组成的HDFS 数据集。通过对 HDFS 日志数据的分析,DeepLog 系统可以识别出不符合正常时间序列模式的异常情况,从而帮助检测和诊断文件系统中的问题。地址:https://github.com/Thijsvanede/DeepLog
  • GLGV使用收集了真实内部计算机网络 58 天内的大量多源事件的 LANL - CMSCSE 数据集。GLGV 系统基于图数据,利用该数据集检测高级持续性威胁(APT)活动中的横向移动,通过构建认证图并分析图中的节点和边的关系来识别异常的认证行为。

在这里插入图片描述

代表性的深度学习解释器如下:

  • 比较了多种代表性的深度学习解释器(包括 DeepAID)在支持无监督学习Support Unsupervised、不同数据类型、稳定性Stable、效率Efficient和鲁棒性Robust等方面的特性。可以看出DeepAID 在支持无监督学习、适应多种数据类型以及在稳定性、效率和鲁棒性方面都具有优势。

在这里插入图片描述


2.前置知识

(1)深度学习模型的可解释性问题

在这里插入图片描述

(2)为什么要用有限状态机(FSM)?

在这里插入图片描述

异常检测系统现有工作:

  • 基于重建的方法:利用深度学习模型(如自编码器 Autoencoder)对正常数据进行学习和重建,通过计算输入数据与重建数据之间的差异(如重建误差 RMSE)来检测异常。
  • 基于分类的方法:将异常检测视为分类问题,通过训练分类模型来区分正常和异常数据。这些模型学习正常数据的特征和模式,将不符合这些模式的数据分类为异常。

现有工作的不足:

  • 缺乏对异常的有效解释:现有的深度学习异常检测方法大多仅关注检测精度,而忽略了解释能力,难以建立对系统决策的信任,也不利于根据异常情况采取针对性的措施。
  • 不适用无监督学习:现有针对深度学习模型的解释方法主要针对有监督学习模型和非安全领域,不适用于无监督深度学习模型在安全领域的应用。
  • 模型可扩展性和适应性差:许多现有模型在面对新的异常类型或数据分布变化时,难以快速适应和扩展。

因此,开发一个能够有效融合深度学习优势与可解释性机制,且具备良好适应性和扩展性的系统迫在眉睫。研究需求:

  • 异常检测框架不仅能够准确检测异常,还能为检测结果提供有效的解释。
  • 模型能够不断学习和更新,快速适应新出现的异常模式或数据分布的变化。

三.本文框架

本文设计的框架如下图所示:

  • 左侧是原始数据(如网络流量、系统日志等)的来源,这些数据通常是非结构化的,无法直接输入深度学习模型。因此,需要经过预处理和特征工程,将其转换为适合模型处理的格式(如表格、时间序列或图结构),然后输入到基于深度学习的异常检测系统中。
  • 右边部分突出了 DeepAID 的两个核心模块,即Interpreter和Distiller。Interpreter 专注于为无监督深度学习模型中的异常提供解释,通过特定的技术和算法,帮助安全从业者理解异常发生的原因;Distiller 则作为基于 Interpreter 解释结果的扩展,进一步将这些解释和专家反馈提炼为有限状态机(FSM)模型,以提高安全系统的实用性,使其更易于理解、调试和优化。

在这里插入图片描述

本文的研究目标及创新点:

  • 设计解决安全系统决策理解、诊断调整、误报减少等问题。
  • 数据类型针对性处理:针对表格、时间序列和图数据这三种不同的数据类型,分别设计了独特的解释方法。
  • 提升系统可解释性与实用性:将无监督模型的解释聚焦于寻找异常偏离正常数据的原因使深度学习模型在安全领域的应用更具可解释性。
  • 模型的可扩展性:以 Distiller 用 FSM 整合专家知识与反馈,独特设计实现规则匹配、泛化及未知威胁检测,提升系统性能。

四.具体实现

1.DeepAID 的工作流程

具体工作流程如下图所示:
在这里插入图片描述

(1)第一部分,该系统的数据输入。
基于深度学习的异常检测系统对输入数据(如网络流量、系统日志等)进行处理,将对应的异常数据输入到 DeepAID 的 Interpreter 模块。

(2)第二部分,基于 Interpreter 结果的决策与操作。
Interpreter模块根据数据类型(表格、时间序列或图)采用相应的基于无监督的模型解释方法(即对于给定的异常Xo,inter找到一个被视为正常的参考x*,关注异常偏离正常数据的原因并给出解释),再将这些解释以一种直观且易于理解的方式呈现给安全操作员。

安全操作员根据 Interpreter 提供的解释来判断模型决策是否合理。如果解释合理且符合他们对系统行为的预期,那么他们可以初步建立对模型决策的信任。除了理解已知的异常情况,Interpreter 还可能揭示一些之前未被发现或未被明确理解的系统行为模式或异常特征,这有助于发现潜在的安全风险或新的攻击模式。当解释结果不合理或与预期不符时,安全操作员可以利用这些信息深入诊断系统中可能存在的错误。例如,可能发现特征提取过程中的问题、模型过拟合或欠拟合现象,或者是数据本身存在的偏差等。

(3)第三部分,Distiller模块更新规则。
如果 Interpreter 的解释被认为是合理的,安全操作员可以进一步将这些解释结果提供给专家进行审查。专家根据自己的专业知识和经验,对解释结果给出反馈,这些反馈可以是对异常类型的确认、对系统行为的新见解,或者是对模型改进的建议等。这些反馈信息被输入到 Distiller 模块中。

Distiller 再根据专家反馈,将其转化为系统可以理解和应用的规则,并更新系统的内部模型(如有限状态机 FSM 模型)。DeepAID 还可以通过 Distiller 来帮助减少误报。当系统检测到一个异常并被标记为可能的误报时,Distiller 可以根据之前积累的规则和反馈信息,对该异常进行进一步的分析和判断。如果根据现有知识可以确定该异常为误报,系统可以采取相应的措施,如调整检测阈值、优化模型参数或改进特征工程等,以减少类似误报的出现。

在这里插入图片描述


2.Distiller工作流程

Deep AID 中的 Distiller 模型是由两个有限状态机构成。图 3 展示了 Distiller 模型的两个有限状态机如何协同实现对异常解释的建模以及根据专家反馈进行决策的过程。将解释向量(x°~ x )的每个维度的值范围划分为M个等长区间,这样总共会产生M×N个状态,其中N是特征维度数量。例如,如果有5个特征维度(N=5),并且每个维度的值范围被划分为3个区间(M=3),那么第一个FSM就会有3×5=15个状态。

接着介绍这两个FSM分别对应的状态转移:

  • 第一个 FSM 主要负责对异常解释进行建模,通过将异常解释映射到特定的状态序列,捕捉异常在不同特征维度上的特征模式。如果某个特征维度对异常判断的影响较大(即有效性高),那么它所对应的状态在转移过程中会更优先被考虑,而有效性较低的状态则在后续步骤中被涉及。也就是图3中的黑色箭头。
  • 第二个 FSM 则专注于建立从异常解释到专家反馈的映射关系。一旦确定了异常解释在第一个FSM中的状态序列,就可以直接根据这个状态序列转移到对应的专家反馈状态,从而将异常解释与专家知识结合。
  • 当第一个 FSM 确定了异常解释的状态序列后,第二个 FSM 根据这个状态序列直接转移到相应的专家反馈状态,从而实现将专家知识引入系统决策过程。

在这里插入图片描述

图4则是在实际的工作中,Distiller是如何根据专家反馈对规则进行迭代更新。过滤器Distiller根据专家反馈更新规则的流程如下:

  • ①初始化阶段(Empty Distiller):开始时,Distiller处于初始状态,没有任何已有的规则和反馈信息。
  • ②更新规则(Update 1st rule):当分析师遇到异常A1(例如IP扫描)时,首先通过DeepAID的解释器获取其解释()。分析师根据自己的理解和经验将A1标记为“Scanning”,这就形成了一条新的规则(s1s2s3->r1)。③ 然后,Distiller根据这条规则更新其内部的两个有限状态机(FSM)的转移矩阵。在第一个FSM中,将与异常A1的解释向量对应的状态映射到新的反馈状态“Scanning”(r1),并更新相关的转移概率(按照重要性s1s2s3进行排序连接。由于此时s1s2s3仅仅被关联到Scanning攻击上,没有其他的可能性,所以概率都为1)。相同的在第二个FSM中,也相应地建立从到的转移关系。
  • ③第一次测试异常(Test two anomalies):接着对异常A1和A2进行测试。对于A1,其解释向量首先被映射到第一个FSM中的状态序列s1s2s3。然后,根据两个FSM中的转移概率,计算A1与各个反馈状态的匹配概率。在这个例子中,由于之前刚刚更新了规则,使得从s1s2s3到“Scanning”()的转移概率很高,所以计算得出,这意味着Distiller非常确定A1属于“Scanning”类型的异常,与分析师的标记一致。对于A2,其解释向量映射到状态序列s4s5s3,计算得到概率为0.33,这表明A2与“Scanning”有一定的相似性,但匹配概率相对较低。这说明即使A2与A1不完全相同,但基于Distiller学习到的规则,它也能识别出A2可能具有类似的异常特征。
  • ④第二次更新规则(Update 2nd rule):分析师进一步分析A2,发现它实际上是“Port Scan”类型的异常,于是再次更新Distiller的规则,将A2的解释向量对应的状态s4s5s3映射到新的反馈状态“Port Scan”(r2),并更新两个FSM中的相应转移关系。
  • ⑤第二次测试异常(Test two anomalies):再次对A1和A2进行测试时,对于A1,映射到r1攻击的概率变成了0.83,因为s3同样可能出现在r2的特征序列中。而对于A2,现在计算映射到r2的攻击的概率变成了0.83,因为s3同样可能出现在r1的特征序列中。

五.实验评估

1.数据集

  • Kitsune:使用的数据集主要来源于物联网(IoT)网络。这些数据集用于训练和评估基于表格数据的 Kitsune 系统在网络入侵检测方面的性能。
    https://github.com/HuskyDG/magisk-files/releases
  • DeepLog:使用由 Hadoop 文件系统日志的关键数字序列组成的HDFS 数据集。通过对 HDFS 日志数据的分析,DeepLog 系统可以识别出不符合正常时间序列模式的异常情况,从而帮助检测和诊断文件系统中的问题。
    https://github.com/Thijsvanede/DeepLog
  • GLGV: 使用收集了真实内部计算机网络 58 天内的大量多源事件的 LANL - CMSCSE 数据集。GLGV 系统基于图数据,利用该数据集检测高级持续性威胁(APT)活动中的横向移动,通过构建认证图并分析图中的节点和边的关系来识别异常的认证行为。

2.Interpreter效率&准确性表现

图6是不同解释器在解释 2000 个异常时的运行时间对比,实验结果表明DeepAID 和 DeepLIFT 在效率方面比其他方法快至少两个数量级。

在这里插入图片描述

图8展示的是在 Kitsune 系统处理 Mirai 僵尸网络流量时,发现了一些具有极高重建误差(RMSE)的假阳性(FP)情况。通过 DeepAID 的解释器的解释结果(如以表 3 © 为代表)中发现,解释器认为这些 FP 主要是由与协方差(cov.)或皮尔逊相关系数(pcc.)相关的过大特征值引起的。

随后,研究人员修改了特征提取算法,经过改进后,Kitsune 系统中的 FP 数量大幅减少(降低了 94.92%),同时对真正异常的检测影响较小(仅下降了 0.17%)。这充分证明了 DeepAID 的解释器在帮助诊断系统错误、定位问题根源以及指导改进措施方面的有效性。

在这里插入图片描述


3.Interpreter基于距离的攻击鲁棒性评估

图12是分别改变解释维度和改变攻击尺度下的Interpreter鲁棒性表现,其中图(a)是在改变解释维度时的实验结果,实验结果表明DeepAID 解释器在 L0 攻击下表现出很高的鲁棒性且在 L2 攻击下也表现出较强的鲁棒性。图(b)则是在改变攻击尺度时的实验结果,实验结果表明DeepAID 对 L0 攻击的鲁棒性不受攻击尺度的显著影响且对 L2 攻击具有一定的鲁棒性

在这里插入图片描述


4.Distiller可靠性评估

表4是基于 Distiller 的可靠检测性能评估,从表4中可以看出,在DeepAID加持下的Kitsune模型在处理多类数据时,无论是在已知类别分类的准确性( f1-micro、f1-macro)还是在未知威胁检测能力(UACC)上,均表现出色,并且在泛化能力(f1-micro、f1-macro)方面远超baseline方法。

当K值取值较大时模型的表现更好,且当K=15时,UACC 达到 > 98%,而未使用 DeepAID 的 Kitsune 系统本身在检测未知威胁方面能力较弱(UACC = 0.28)。这表明 DeepAID 通过 Distiller 能够显著提高系统对未知威胁的检测能力,使其能够更好地应对新型攻击,增强了系统的安全性和可靠性。

在这里插入图片描述


5.DeepAID重训模型减少误报

通过重新训练深度学习模型来减少误报的实验结果,DeepAID 在降低误报率方面的表现远远优于随机选择方法。在较低的重新训练比例下,DeepAID 就能实现较高的误报率减少量,这充分体现出它能够更精准地识别出那些致使模型产生误报的关键样本。

在这里插入图片描述


六.总结及个人感受

本文提出并验证了DeepAID模型,具体贡献如下:

  • 提出了 DeepAID 这一通用框架,包含 Interpreter 和 Distiller 两个关键技术。Interpreter 通过优化带特殊约束的目标函数,能为无监督 DNN 提供高保真、可读、稳定、鲁棒且高效的解释,有效满足了安全领域的特殊需求。
  • 通过在三种安全相关的异常检测系统上应用和评估,证明了 DeepAID 能为基于深度学习的安全应用提供高质量解释,并且在理解模型决策、发现新知识、诊断错误和减少误报等方面表现出色,显著提升了安全系统的实用性。

本文作者提出了未来该方向工作的重点:

  • 进一步研究 DeepAID 的对抗鲁棒性。当前主要针对优化和距离攻击进行了评估,但仍可能受到其他攻击(如模型中毒、搜索过程劫持、制造特殊异常破坏简洁性等)的影响,需探索应对更多攻击类型的方法,增强框架的安全性。
  • 扩展 Distiller 到其他数据类型。当前主要针对表格数据实现了 Distiller,未来需将其扩展到时间序列、图数据等其他类型,以提升框架在不同数据场景下的应用能力。

可解释性工作是各领域的研究重点,本文通过将有限状态机引入异常检测是一个亮点,读者可以详细研究具体过程(Interpreter和Distiller)。同时,本文设计详细的对比实验,值得我们学习,但遗憾表格、时间序列、图数据仅使用了表格进行实验,还有部分工作需要完善。未来,我们小组希望结合部分优势进行深入研究。

最后,祝大家新春快乐,阖家幸福,感谢这一年来大家的陪伴!

2024年4月28日是Eastmount的安全星球——『网络攻防和AI安全之家』正式创建和运营的日子,该星球目前主营业务为 安全零基础答疑、安全技术分享、AI安全技术分享、AI安全论文交流、威胁情报每日推送、网络攻防技术总结、系统安全技术实战、面试求职、安全考研考博、简历修改及润色、学术交流及答疑、人脉触达、认知提升等。下面是星球的新人券,欢迎新老博友和朋友加入,一起分享更多安全知识,比较良心的星球,非常适合初学者和换安全专业的读者学习。

目前收到了很多博友、朋友和老师的支持和点赞,尤其是一些看了我文章多年的老粉,购买来感谢,真的很感动,类目。未来,我将分享更多高质量文章,更多安全干货,真心帮助到大家。虽然起步晚,但贵在坚持,像十多年如一日的博客分享那样,脚踏实地,只争朝夕。继续加油,再次感谢!

(By:Eastmount 2025-01-28 周二夜于贵阳 http://blog.csdn.net/eastmount/ )


前文赏析:

  • [论文阅读] (01)拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解
  • [论文阅读] (02)SP2019-Neural Cleanse: Identifying and Mitigating Backdoor Attacks in DNN
  • [论文阅读] (03)清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
  • [论文阅读] (04)人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
  • [论文阅读] (05)NLP知识总结及NLP论文撰写之道——Pvop老师
  • [论文阅读] (06)万字详解什么是生成对抗网络GAN?经典论文及案例普及
  • [论文阅读] (07)RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
  • [论文阅读] (08)NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats
  • [论文阅读] (09)S&P2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow
  • [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结
  • [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
  • [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例
  • [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例
  • [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例
  • [论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结
  • [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
  • [论文阅读] (17)CCS2019 针对PowerShell脚本的轻量级去混淆和语义感知攻击检测
  • [论文阅读] (18)英文论文Model Design和Overview如何撰写及精句摘抄——以系统AI安全顶会为例
  • [论文阅读] (19)英文论文Evaluation(实验数据集、指标和环境)如何描述及精句摘抄——以系统AI安全顶会为例
  • [论文阅读] (20)USENIXSec21 DeepReflect:通过二进制重构发现恶意功能(恶意代码ROI分析经典)
  • [论文阅读] (21)S&P21 Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land (经典离地攻击)
  • [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
  • [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
  • [论文阅读] (24)向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)
  • [论文阅读] (25)向量表征经典之DeepWalk:从Word2vec到DeepWalk,再到Asm2vec和Log2vec(二)
  • [论文阅读] (26)基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
  • [论文阅读] (27)AAAI20 Order Matters: 二进制代码相似性检测(腾讯科恩实验室)
  • [论文阅读] (28)李沐老师视频学习——1.研究的艺术·跟读者建立联系
  • [论文阅读] (29)李沐老师视频学习——2.研究的艺术·明白问题的重要性
  • [论文阅读] (30)李沐老师视频学习——3.研究的艺术·讲好故事和论点
  • [论文阅读] (31)李沐老师视频学习——4.研究的艺术·理由、论据和担保
  • [论文阅读] (32)南洋理工大学刘杨教授——网络空间安全和AIGC整合之道学习笔记及强推(InForSec)
  • [论文阅读] (33)NDSS2024 Summer系统安全和恶意代码分析方向相关论文汇总
  • [论文阅读] (34)EWAS2024 基于SGDC的轻量级入侵检测系统
  • [论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统
  • [论文阅读] (36)C&S22 MPSAutodetect:基于自编码器的恶意Powershell脚本检测模型
  • [论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

相关文章:

[论文阅读] (37)CCS21 DeepAID:基于深度学习的异常检测(解释)

祝大家新春快乐,蛇年吉祥! 《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正&#xff0…...

Linux - 进程间通信(2)

目录 2、进程池 1)理解进程池 2)进程池的实现 整体框架: a. 加载任务 b. 先描述,再组织 I. 先描述 II. 再组织 c. 创建信道和子进程 d. 通过channel控制子进程 e. 回收管道和子进程 问题1: 解答1&#xff…...

Kafka 消费端反复 Rebalance: `Attempt to heartbeat failed since group is rebalancing`

文章目录 Kafka 消费端反复 Rebalance: Attempt to heartbeat failed since group is rebalancing1. Rebalance 过程概述2. 错误原因分析2.1 消费者组频繁加入或退出2.1.1 消费者故障导致频繁重启2.1.2. 消费者加入和退出导致的 Rebalance2.1.3 消费者心跳超时导致的 Rebalance…...

SpringBoot+Electron教务管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.查询课程表代码2.保存学生信息代码3.用户登录代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootElectron框架开发的教务管理系统。首先&#xff…...

操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之控制台工作

前言 在 Linux 内核中,字符设备主要包括控制终端设备和串行终端设备,对这些设备的输入输出涉及控制台驱动程序,这包括键盘中断驱动程序 keyboard.S 和控制台显示驱动程序 console.c,还有终端驱动程序与上层程序之间的接口部分。 终端驱动程序…...

Autogen_core: Message and Communication

目录 完整代码代码解释1. 消息的数据类:2. 创建代理人(MyAgent):3. 创建和运行代理人的运行时环境:4. 根据发送者路由消息的代理(RoutedBySenderAgent):5. 创建和运行带路由的代理&a…...

ComfyUI工作流教程、软件使用、开发指导、模型下载

在人工智能和设计技术迅速发展的今天,AI赋能的工作流已成为创意设计与生产的重要工具。无论是图片处理、服装试穿,还是室内设计与3D建模,这些智能化的解决方案极大地提高了效率和创作质量。 为了帮助设计师、开发者以及AI技术爱好者更好地利用这些工具,我们整理了一份详尽…...

零基础Vue学习1——Vue学习前环境准备

目录 环境准备 创建Vue项目 项目目录说明 后续开发过程中常用命令 环境准备 安装开发工具:vscode、webstorm、idea都可以安装node:V22以上版本即可安装pnpm 不知道怎么安装的可以私信我教你方法 创建Vue项目 本地新建一个文件夹,之后在文件夹下打开…...

定西市建筑房屋轮廓数据shp格式gis无偏移坐标(字段有高度和楼层)内容测评

定西市建筑房屋轮廓数据是GIS(Geographic Information System,地理信息系统)领域的重要资源,用于城市规划、土地管理、环境保护等多个方面。这份2022年的数据集采用shp(Shapefile)格式,这是一种…...

汉语向编程指南

汉语向编程指南 一、引言王阳明代数与流形学习理论慢道缓行理性人类型指标系统为己之学与意气实体过程晏殊几何学半可分离相如矩阵与生成气质邻域镶嵌气度曲面细分生成气质邻域镶嵌气度曲面细分社会科学概论琴生生物机械科技工业研究所软凝聚态物理开发工具包琴生生物机械 报告…...

Writing an Efficient Vulkan Renderer

本文出自GPU Zen 2。 Vulkan 是一个新的显式跨平台图形 API。它引入了许多新概念,即使是经验丰富的图形程序员也可能不熟悉。Vulkan 的主要目标是性能——然而,获得良好的性能需要深入了解这些概念及其高效应用方法,以及特定驱动程序实现的实…...

AI常见的算法

人工智能(AI)中常见的算法分为多个领域,如机器学习、深度学习、强化学习、自然语言处理和计算机视觉等。以下是一些常见的算法及其用途: 1. 机器学习 (Machine Learning) 监督学习 (Supervised Learning) 线性回归 (Linear Regr…...

LibreChat

文章目录 一、关于 LibreChat✨特点 二、使用LibreChat🪶多合一AI对话 一、关于 LibreChat LibreChat 是增强的ChatGPT克隆:Features Agents, Anthropic, AWS, OpenAI, Assistants API, Azure, Groq, o1, GPT-4o, Mistral, OpenRouter, Vertex AI, Gemi…...

Spring Boot 日志:项目的“行车记录仪”

一、什么是Spring Boot日志 (一)日志引入 在正式介绍日志之前,我们先来看看上篇文章中(Spring Boot 配置文件)中的验证码功能的一个代码片段: 这是一段校验用户输入的验证码是否正确的后端代码&#xff0c…...

Spring Boot 实现文件上传和下载

文章目录 Spring Boot 实现文件上传和下载一、引言二、文件上传1、配置Spring Boot项目2、创建文件上传控制器3、配置文件上传大小限制 三、文件下载1、创建文件下载控制器 四、使用示例1、文件上传2、文件下载 五、总结 Spring Boot 实现文件上传和下载 一、引言 在现代Web应…...

慕课:若鱼1919的视频课程:Java秒杀系统方案优化 高性能高并发实战,启动文档

代码: Javahhhh/miaosha191: 运行成功了慕课若鱼1919的视频课程:Java秒杀系统方案优化 高性能高并发实战https://github.com/Javahhhh/miaosha191 https://github.com/Javahhhh/miaosha191 miaosha项目启动文档 需安装的配置环境: VMwar…...

React第二十七章(Suspense)

Suspense Suspense 是一种异步渲染机制,其核心理念是在组件加载或数据获取过程中,先展示一个占位符(loading state),从而实现更自然流畅的用户界面更新体验。 应用场景 异步组件加载:通过代码分包实现组件…...

虚幻基础08:组件接口

能帮到你的话,就给个赞吧 😘 文章目录 作用 作用 组件接口:可以直接调用对方的组件接口,而无需转换为actor。 实现对象间的通知。 A 通知 B 做什么。...

iPhone SE(第三代) 设备详情图

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn...

2025苹果CMS v10短剧模板源码

文件不到70kb,加载非常快 无配置,没有详情页,上传就可以直接使用 使用教程:上传到网站template目录并解压、进入网站后台选择模板 注意:默认调用ID为1的数据和扩展分类,建议新建站使用 源码下载&#xf…...

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...