威胁建模STRIDE框架

威胁建模STRIDE框架

  • 1.威胁建模框架概述
  • 2.STRIDE威胁建模框架
    • 欺骗 - 冒充某人或某物
    • 篡改 - 未经授权更改数据
    • 否认性 - 不宣称对执行的操作负责
    • 信息泄露 - 查看不应查看的数据
    • 拒绝服务 - 系统繁忙
    • 权限提升 - 拥有本不应该拥有的权限
  • 3.后续的威胁发现

1.威胁建模框架概述

威胁建模框架可帮助你生成潜在威胁的列表,并找到降低或消除风险的方法。

引入威胁建模框架目的是在开发生命周期的早期尽可能多地发现并修复问题。 等待时间越长,客户的风险就越高

一般使用 STRIDE 框架中的六个主要威胁类别来发现安全设计问题:

类别说明
欺骗冒充某人或某物
篡改未经授权更改数据
否认性不宣称对执行的操作负责
信息泄露未经许可查看数据
拒绝服务系统繁忙
权限提升拥有本不应该拥有的权限

每个威胁类别都与安全控制关联,如下:

类别安全控制描述
欺骗身份验证其身份是否如其所述
篡改完整性防止恶意修改数据
否认性不可否认性操作与用户绑定
信息泄露机密性保护数据免遭意外泄露
拒绝服务可用性系统适当处理所有请求
特权提升授权用户拥有执行请求的适当权限

2.STRIDE威胁建模框架

欺骗 - 冒充某人或某物

当恶意人员或程序成功地冒充用户或系统进行恶意活动时,就会发生欺骗。

示例包括:

1、案例1:在同一台机器上假冒一个进程或文件

如果一个攻击者在你的代码运行之前预先创建了特定的文件,而你的代码也需要创建同名的文件,那么你的代码可能会意外地使用攻击者创建的文件。这种情况下,攻击者可以控制该文件的内容,从而可能导致数据被误认为是由你的代码生成的,从而被信任和处理。

假设你的代码在 /tmp 目录下创建一个文件 data.txt 用于存储重要数据:

File file = new File("/tmp/data.txt");
if (!file.exists()) {file.createNewFile();
}
// 后续对文件进行读写操作

如果攻击者在你的代码运行之前,已经创建了 /tmp/data.txt 并写入了恶意数据,那么你的代码可能会使用这个文件,误以为这是你创建的文件,从而信任并处理该数据。

同样的,如果管道、本地过程调用(IPC)等用于进程间通信的文件权限没有被很好地管理,攻击者可能接管这些通信端点,欺骗或干扰与这些端点通信的进程。

假设你的代码使用 Unix 域套接字与另一个进程通信,并且套接字文件位于 /tmp 目录下:

ServerSocketChannel serverChannel = ServerSocketChannel.open();
serverChannel.socket().bind(new UnixDomainSocketAddress("/tmp/socket"));

如果没有正确设置文件权限,攻击者可以在 /tmp 目录下创建同名的套接字文件并接管通信。这样,攻击者就可以接收和发送数据,伪装成合法的通信方,欺骗你的进程。

2、案例2:假冒一台机器

ARP欺骗

攻击者在本地网络中可以发起假冒ARP(地址解析协议)请求。ARP用于将IP地址映射到物理MAC地址,攻击者可以通过发送伪造的ARP响应来篡改ARP缓存,从而将流量重定向到攻击者的设备上。

IP欺骗

攻击者可以伪造IP数据包,使其看起来像是来自另一个合法的IP地址。这种技术常用于拒绝服务(DoS)攻击或绕过基于IP地址的访问控制。

DNS欺骗

攻击者可以伪造DNS响应,篡改域名解析结果

正向DNS查询攻击:攻击者假冒DNS服务器,向客户端返回伪造的IP地址。

影响:用户被重定向到攻击者控制的恶意网站。

反向DNS查询攻击:攻击者篡改反向DNS记录,使某个IP地址解析为虚假的域名。

影响:误导性解析结果可能被用于欺骗或绕过安全措施。

中间人攻击

一旦攻击者成功假冒了一台机器,他们可以充当中间人,在客户端和服务器之间拦截并篡改通信。这种攻击可以导致信息泄露、数据篡改和身份认证信息的窃取

钓鱼攻击

攻击者发送伪装成合法机构(如银行)的电子邮件或创建伪造的网站。当用户点击链接并输入身份认证信息,这些信息会被发送到攻击者控制的服务器。

3、案例3:人员假冒

人员假冒 指的是攻击者伪装成其他人,通常包括两种主要形式:

  • 进入某人的账户:攻击者获取并使用别人的账户凭证(如用户名和密码),从而以该账户的身份进行操作。
  • 使用别人的账户进行伪装:攻击者创建虚假的账户,冒充某个真实存在的个人或机构,进行欺诈、操控或其他恶意活动。

在威胁建模数据流关系图中可能面临欺骗攻击风险的元素和交互是:

名称交互定义
过程 <-> 过程一个任务从任务接收数据或向任务发送
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据
过程 <-> 外部实体一个任务向外部实体发送数据或从外部实体接收数据

那么,如何防止欺骗攻击?主要的方案是使用身份验证验证用户和系统的身份是否属实

示例包括:

  • 发送和接收使用数字签名进行签名的消息,以验证来源并确保消息完整性。
  • 使用 SSL/TLS 保护数据传输,以加密信息源和目标之间的流量。
  • 使用具有时效有限的令牌、密码或多重身份验证的唯一凭据来帮助保护用户、管理员和服务帐户。

用于降低或消除风险的常用安全控制:

对于数据:

  • 哈希
  • 消息验证码
  • 数字签名

对于系统:

  • 用户身份验证
  • Cookie 身份验证
  • Kerberos
  • SSL/TLS
  • 证书
  • IPSec
  • 数字签名的数据包

IPSec(Internet Protocol Security)是一种网络安全协议,用于在IP网络上提供加密和认证服务。通过使用IPSec隧道,可以保护跨终结点的通信,确保数据在传输过程中不被窃听、篡改或伪造

IPSec隧道是通过在两个终结点之间建立一个加密的“隧道”来保护通信的。这两个终结点可以是路由器、防火墙、VPN网关或主机等设备。IPSec隧道主要使用以下两个协议来实现安全通信:

  • AH(Authentication Header):提供数据包的完整性和源认证,但不加密数据。它确保数据在传输过程中未被篡改,并验证数据包的发送者身份。
  • ESP(Encapsulating Security Payload):提供数据加密、完整性校验和认证功能。ESP不仅能验证数据包的完整性和身份,还能加密数据,确保数据的机密性。

篡改 - 未经授权更改数据

当恶意攻击者未经授权在系统中读取、修改、删除或插入数据时,就会发生篡改。

案例包括:

1、案例1:篡改文件

文件篡改

文件篡改指的是攻击者利用对文件的写入权限,恶意修改文件内容。这种攻击可以发生在多种环境下,包括本地磁盘和远程共享文件。

如果你的代码依赖于某些文件,而这些文件的写入权限被不受信任的用户或程序所控制,那么这些文件可能被篡改。攻击者可以修改文件内容来改变程序的行为或引入漏洞。

如果文件通过网络共享(例如在Web应用中,JavaScript文件可能来自远程源),攻击者可以通过破坏共享源或中间人攻击篡改文件。这可能导致恶意代码注入或其他安全问题。

链接和重定向篡改

指的是攻击者通过修改链接或重定向设置来干扰程序的正常操作。这通常涉及到篡改网页上的链接、重定向规则或其他形式的跳转。

缓存污染攻击

缓存污染攻击是指攻击者利用缓存机制的漏洞,将恶意数据插入到缓存中,从而影响后续的请求和响应。

2、案例2:篡改内存

当数据在函数或方法中按引用传递时,实际上是传递了数据的内存地址而不是数据的副本。这种方式通常用于提高性能,但也会带来安全风险。

如果攻击者能够访问或修改传递的数据的引用,他们可以在安全检查之后改变数据内容,从而影响程序的行为或绕过安全防护。

假设你有一个函数处理用户提交的数据:

public void processData(UserData data) {// 执行一些安全检查if (isValid(data)) {// 处理数据data.modify(); // 这里 data 是按引用传递的}
}

在这种情况下,如果攻击者能够访问 data 的引用,他们可以在 isValid 检查之后直接修改 data 对象,从而绕过检查

3、案例3:篡改网络

网络篡改是指攻击者通过控制网络流量来修改数据,这包括中间人攻击、数据包篡改和注入攻击。随着无线通信技术的发展,特别是SDR(软件定义无线电是一种无线通信技术,它利用软件而不是硬件来处理无线信号)的出现,攻击者能够更容易地拦截和篡改无线数据流。(现代SDR单元价格相对较低,使得更多的攻击者能够使用这种技术进行恶意操作,攻击者可以通过SDR分析和破解无线协议,从而获取或修改传输的数据)

在威胁建模数据流关系图中可能面临篡改攻击风险的元素和交互是:

名称交互定义
过程 <-> Data store 数据存储一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止篡改攻击?

示例包括:

  • 验证输入以防止处理恶意的数据
  • 使用数字签名对消息进行签名,以确保消息不被篡改
  • 使用访问控制列表应用权限
  • 使用 SSL/TLS 保护传输
  • 创建 IPSec 隧道,以保护终结点之间的通信

用于降低或消除风险的常用安全控制有:

  • 操作系统完整性控制
  • 访问控制列表 (ACL)
  • 数字签名
  • 消息验证码

否认性 - 不宣称对执行的操作负责

当有人出于恶意或无意采取某个操作,但他不承认时就会发生否认性威胁

示例包括:

  • 拒绝承认修改了包含敏感操作的日志。
  • 使用其他人的帐户以避免被抓。
  • 声称没有删除数据库记录。

系统日志是攻击者的金矿,不仅可用于操纵,还可用于收集有关用户、环境和弱点的数据。

可能面临否认性攻击风险的元素和交互:

名称交互定义
过程 <-> 过程一个任务向其他任务发送数据或从其他任务接收数据
过程 <-> 外部实体一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据

那么,如何防止否认性威胁?

一般来讲,不可否认性通过创建和保护安全日志来确保每个操作都可以追溯到其来源。

用于降低或消除风险的常用安全控制:

  • 强身份验证
  • 安全日志记录和监视
  • 数字签名
  • 安全时间戳

信息泄露 - 查看不应查看的数据

向未经授权的个人公开敏感数据时,会发生信息泄漏。 无论是在有意或无意的情况下,都有可能发生信息泄露。

示例包括:

1、案例1:进程信息泄露

进程信息泄露是指攻击者通过各种途径获取关于正在运行的进程的敏感信息。这种泄露可能会导致系统安全性严重下降。以下是一些常见的泄露方式及其影响

泄漏内存地址

攻击者通过泄露进程的内存地址,可以获得关于进程内存布局的信息。这种信息对绕过一些防御机制(如地址空间布局随机化 ASLR)尤其重要,ASLR 是一种安全机制,它通过随机化进程的内存地址布局来阻止攻击者猜测地址。泄露内存地址可能使攻击者能够绕过 ASLR,从而进行精确的攻击。如果攻击者知道了内存中某个函数的确切位置,他们可以利用这点来执行代码注入攻击。

泄露秘密信息

泄露包括但不限于数据库连接字符串、密码口令等敏感信息,这些信息的泄露可能导致进一步的攻击。

泄露设计细节

泄露系统设计的细节(如反欺诈规则)可以帮助攻击者理解系统的防御机制,从而找到绕过这些机制的方法

2、案例2:数据存储信息泄露

不合理的安全机制使用

如果文件或目录的权限设置不当,可能导致未授权的用户访问敏感数据。例如,公开可读的文件或目录可能被任何人访问

加密密钥泄露

加密密钥是保护数据的核心。如果加密密钥泄露,攻击者可以解密保护的数据,从而访问敏感信息

文件名泄露

文件名本身可能包含敏感信息。例如,一个名为“2013年5月裁员/Alice辞退信.docx”的文件,文件名就透露了文件内容的信息

程序和系统的敏感数据

日志、临时文件和交换区:这些存储区域可能会包含敏感数据。如果没有正确保护,攻击者可以从中提取信息

操作系统和用户设备的安全性

如果攻击者可以控制用户的操作系统,他们可以从设备中提取敏感数据

数据彻底删除

普通删除操作可能不会彻底清除硬盘上的数据,数据可能被恢复。使用专业的数据擦除工具或物理破坏硬盘,确保数据被彻底销毁。

3、案例3:数据流中的信息泄露

数据在网络上传输的风险

当信息在网络上传输时,数据流特别容易遭受信息泄露攻击。攻击者可以通过多种手段截获或读取网络数据流中的信息。攻击者可以利用伪造的网络控制协议将流量重定向到他们自己的设备上,从而查看原本不会传输到他们设备的数据。这种攻击可以在攻击者不在数据流路径上的情况下进行。

共享计算环境的风险

当计算资源在云端共享,或者一台服务器由多个不信任的用户共享时,数据流的安全性面临更高的风险。不同用户可能会互相干扰,或在共享环境中进行信息窃取。即使在单一机器上,如果该机器上有多个用户或进程,也可能存在数据流泄露的风险。例如,恶意用户可能会监视或干扰其他用户的通信。

加密流量的风险

即使数据流量经过加密,攻击者也可能通过其他方式获取信息。例如,攻击者可能会分析加密流量的元数据,或者使用侧信道攻击来推断加密数据的内容。

社交网络分析

攻击者可以通过社交网络分析获取信息,包括查看DNS记录、社交媒体(如LinkedIn)的活动等。这些信息可能帮助攻击者理解目标的行为模式、社交圈以及潜在的攻击路径

可能面临信息泄漏风险的元素和交互:

名称交互定义
过程 -> 过程一个任务将数据发送到另一个任务
过程 <-> 外部实体外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止信息泄露威胁呢?

示例包括:

  • 应用访问控制列表,以确保合适的用户可以访问适当的数据。
  • 加密静态数据、传输中数据和正在使用的数据。
  • 强制实施 SSL/TLS 以保护传输。
  • 使用 IPSec 隧道保护跨终结点的通信。

用于降低或消除风险的常用安全控制:

  • 加密
  • 访问控制列表 (ACL)

拒绝服务 - 系统繁忙

当攻击者导致系统不可用时,将发生拒绝服务。

示例包括:

  • 向网络发送大量请求。
  • 占用内存和 CPU 进程。
  • 请求数量过多导致数据存储崩溃。

拒绝服务攻击的分类:

1、攻击者正在攻击 vs. 持续攻击

  • 正在攻击:这是指攻击者在某个时刻进行攻击。例如,攻击者可能通过填满网络带宽或发送大量请求来使系统瘫痪。这种攻击会在攻击者停止攻击时结束,除非系统有持久性漏洞。
  • 持续攻击:这种攻击会持续存在,甚至在系统重启后依然能继续攻击。例如,攻击者可能使用 while(1){fork();}(不断创建进程)来耗尽系统资源,或者填满磁盘空间,使系统无法正常运作。

2、放大型攻击 vs. 非放大型攻击

  • 放大型攻击:这种攻击方式是攻击者通过较小的努力产生大的影响。通常,攻击者利用某些服务或协议的特性,使得少量的数据或请求就能对目标造成严重影响。
  • 非放大型攻击:这种攻击方式需要攻击者付出更多的努力或资源来对目标造成影响。例如,通过直接耗尽系统资源或带宽进行攻击,可能需要更多的攻击者或资源投入来产生显著效果。

可能面临拒绝服务风险的元素和交互:

名称交互定义
过程 -> 过程一个任务将数据发送到另一个任务
过程 <-> 外部实体一个任务向用户发送数据或从用户接收数据
过程 <-> 数据存储一个任务向数据存储发送数据或从数据存储接收数据
数据流 <-> 信任边界通过 Internet 将数据从受信任的环境传输给某人(反之亦然)

那么,如何防止拒绝服务攻击呢?

可用性确保系统为用户启动且正常运行。 示例包括:

  • 使用网络访问控制列表控制传入和传出的流量,ACLs 可以基于 IP 地址、端口号或协议类型来限制访问,确保只有授权的流量能够进入或离开网络。
  • 使用弹性资源管理不断增加或减少的系统资源(根据系统负载自动增加或减少计算资源,或使用负载均衡)。
  • 监视系统以检测是否出现异常(使用监控工具如 Prometheus、Grafana、Nagios来实时监测系统性能指标如 CPU 使用率、内存消耗、网络流量等。设置告警以在性能异常时通知管理员)。
  • 启用操作系统标志来处理内存和 CPU 进程。(通过操作系统的调度器设置进程优先级,确保关键进程获得足够的 CPU 资源;启用操作系统的内存管理功能如 Linux 的虚拟内存管理)

用于降低或消除风险的常用安全控制:

  • 访问控制列表
  • 筛选
  • 配额
  • 授权
  • 高可用性

权限提升 - 拥有本不应该拥有的权限

个人未经许可访问资源时,就会发生权限提升。 示例包括:

1、案例1:通过崩溃进程提升权限

崩溃进程通常指的是程序在运行时由于错误或攻击而中断或停止工作。攻击者可能通过触发这些错误来干扰程序的正常操作或利用程序的崩溃状态进行进一步的攻击。

例如:攻击者可能使用粉碎堆栈、利用栈或堆上的数据等技术来实现这些攻击。粉碎堆栈指的是通过溢出或其他手段破坏栈的内容,从而影响程序的控制流或数据流。

攻击者可以通过栈溢出或堆溢出攻击来覆盖程序的控制数据(如返回地址)或数据,导致程序行为异常或执行攻击者的代码。

2、案例2:通过授权失效提升权限

在某些程序中,可能存在路径上的权限检查遗漏,即某些操作在执行之前没有进行适当的权限验证。

如果程序有多个功能模块,其中某些模块在访问资源时没有验证用户的权限,那么攻击者可以利用这些模块进行未授权的操作。比如,一个文件管理程序在某些操作上没有检查用户是否有权限访问特定文件,那么攻击者可能会利用这个漏洞访问或修改不该访问的文件。

可能面临权限提升风险的元素和交互:

名称交互定义
过程 <-> 过程一个任务将数据发送到另一个任务
过程 <- 外部实体外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传任务接收来自用户的数据
过程 <- 数据存储任务接收来自数据存储的数据

那么,如何防止权限提升威胁呢?

授权确保用户拥有适当的权限。 示例包括:

  • 实现授权机制以验证对数据和资源的权限。
  • 应用安全控制,以使用最少的访问权限运行服务。
  • 监视访问以检测异常和未经授权的访问尝试。

用于降低或消除风险的常用安全控制:

  • 访问控制列表 (ACL)
  • 基于角色的访问控制 (RBAC)
  • 基于组的访问
  • 权限
  • 输入验证

3.后续的威胁发现

使用STRIDE对威胁分类后,可以使用威胁树分析程序中的威胁和漏洞

攻击树和攻击库:https://www.yuque.com/dahezhiquan/vyd91w/qornbrccqqf87ayr

用根节点表示系统所面临威胁的抽象描述,逐层细化威胁的细节信息,直到用叶节点表示具体攻击方式

建立威胁树后,就可以对威胁进行量化评估,评定其严重程度,可以使用DREAD方法来完成。

DREAD方法是以下单词的首字母缩写,分别从五个方面描述威胁的危害程度

在 DREAD 模型里,每个因素都可以分为高、中、低三个等级,分别用 3、2、1 的分数代表其权重值,可以具体计算出某一个威胁的风险值

等级高(3)中(2)低(1)
Damage Protential获取完全验证权限;执行管理员操作;非法上传文件泄露敏感信息泄露其他信息
Reproducibility攻击者可以随意再次攻击攻击者可以重复攻击,但有时间限制攻击者很难重复攻击过程
Exploitability初学者在短期内能掌握攻击方法熟练的攻击者才能完成这次攻击漏洞利用条件非常苛刻
Affected users所有用户,默认配置,关键用户部分用户,非默认配置极少数用户,匿名用户
Discoverability漏洞很显眼,攻击条件很容易获得在私有区域,部分人能看到,需要深入挖掘漏洞发现该漏洞极其困难

DREAD比较主观,会在很多情况下产生奇怪的结果。因此,到2010年,微软 SDL团队不再推荐使用DREAD

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vxe-table之复选框 设置父子节点不互相关联

通过 checkStrictly 设置父子节点不互相关联&#xff0c;默认不显示头部复选框&#xff0c;可以通过 checkbox-config{showHeader} 设置 <template><div><vxe-table:column-config"{resizable: true}":data"tableData":tree-config"{…

sharding-jdbc metadata load优化(4.1.1版本)

背景 系统启动时&#xff0c;会注意sharding-jdbc提示加载metadata 于是想看看里面做了什么事情 问题追踪 debug后可以观察走到了该类 org.apache.shardingsphere.shardingjdbc.jdbc.core.context.ShardingRuntimeContext#loadSchemaMetaData 先看这个shardingRuntimeConte…

嵌入式-QT学习-小练习

1. 实现多窗口 2. 给按键增加图标 3. 动图展示 结果演示&#xff1a; Mul_Con main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }一、第一个窗口展示 …

Android 测试机

要测手机应用&#xff0c;直接挂电脑上跑虚拟机的话&#xff0c;怀疑电脑都要起火了。 eBay 上买了个新的机器&#xff0c;也才 100 美元多点&#xff0c;机器都没有拆过&#xff0c;电池是完全无电的状态。 操作系统是 Android 12 的版本&#xff0c;升级到 Android 14 后&am…

苹果CMS vs. 海洋CMS:哪个系统更易于百度收录?

在选择网站内容管理系统&#xff08;影视网站选择那个CMS&#xff1f;&#xff09;时&#xff0c;收录效率和优化能力是关键考量因素。苹果CMS和海洋CMS都是受欢迎的选项&#xff0c;但在百度收录效果上&#xff0c;苹果CMS表现得更为出色。以下将详细探讨苹果CMS为何在百度收录…

uni-app生命周期(三)

文章目录 一、uni-app的生命周期二、应用生命周期三、页面的生命周期函数1.简介2.页面加载时序介绍3.页面加载常见问题4.页面加载顺序4.部分生命周期介绍 四、组件的生命周期函数 一、uni-app的生命周期 应用生命周期&#xff08;整个App的生命周期&#xff09; 在app.vue里面…

是德keysight N7552A 9G电子校准件2端口

是德keysight N7552A 9G电子校准件2端口 频率范围为直流到 9 GHz 支持 N 型和 3.5 mm 连接器 更小、更轻巧的 2 端口电子校准件 零等待时间&#xff0c;实现更快校准 兼具电子校准件的便利性与经济型机械套件的性能 N7552A 支持是德科技的 PNA-X、PNA、ENA、PXI 矢量网络分…

四、滑动窗口-算法总结

文章目录 四、滑动窗口4.1 模板4.2 示例4.2.1 最小覆盖子串4.2.2 字符串的排列4.2.3 找到字符串中所有字母异位词4.2.4 无重复字符的最长子串 四、滑动窗口 4.1 模板 /* 滑动窗口算法框架 */ void slidingWindow(string s, string t) {unordered_map<char, int> need, …

QT::QComboBox自定义左击事件信号

因为QComboBox没有自定义的clink信号&#xff0c;所以自己新建一个MyComBox类继承QComboBox&#xff0c;并且添加自定义的左击信号&#xff0c;以及使用该信号连接一个槽函数 mycombobox.h #ifndef MYCOMBOBOX_H #define MYCOMBOBOX_H#include <QComboBox> #include &l…

在 Mac 上安装虚拟机怎么样,安装虚拟机与直接安装 Windows 系统有区别吗?

随着跨系统操作的不断发展&#xff0c;虚拟机技术在生产力领域扮演着越来越重要的角色。Mac作为一款主流的操作系统&#xff0c;也有着运行虚拟机的能力。接下来给大家介绍Mac装虚拟机好不好&#xff0c;Mac装虚拟机和装Windows系统一样吗的具体内容。 Mac装虚拟机好不好 Mac…

通信工程学习:什么是FDMA频分多址

FDMA&#xff1a;频分多址 FDMA&#xff08;Frequency Division Multiple Access&#xff0c;频分多址&#xff09;是一种在无线通信领域广泛应用的多址技术。该技术通过将可用的频谱资源按频率划分&#xff0c;把传输频带划分为若干较窄且互不重叠的子频带&#xff08;或称信道…

SprinBoot+Vue爱老助老服务平台的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优质…

c/c++面试100道

1.一道笔试题解析_哔哩哔哩_bilibili P20&#xff1a;#define offsetof(TYPE, MEMBER) ((size_t)&((TYPE*)0)->MEMBER) 1、 offsetof 宏是 C 语言中用于计算结构体成员相对于结构体起始地址的偏移量的宏定义。这个宏的定义如下&#xff1a; #define offsetof(TYPE, …

JavaScript模块化——ES6模块化规范

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;vscode Chrome浏览器 1.ES6 1.1ES6介绍 ES6的全称是ECMAScript 6&#xff0c;也称为ES2015&#xff0c;是JavaScript的一个重要版本&#xff0c;它引入了许多新特性和改进&#xf…

Linux搭建邮箱服务器(简易版)

本章是上一文档的简易版本搭建方式更为快速简洁&#xff08;只需要两条命令即可搭建&#xff09;&#xff0c;如果想了解更详细一些可以看我上一文档 Linux接发邮件mailx_linux mailx o365-CSDN博客文章浏览阅读857次&#xff0c;点赞25次&#xff0c;收藏19次。本文详细描述了…

独立站内容营销SOP 1.0 丨出海笔记

提到内容营销&#xff0c;可能很多朋友都听过但没深入做&#xff0c;国内跨境独立站通过内容营销做的大流量的目前不多&#xff0c;哪怕大如 Shein, Anker&#xff0c;大部分时候还是在买量获客的阶段。 但大家只要明白一点即可&#xff1a;内容做得好不好&#xff0c;直接影响…

文档智能:OCR+Rocketqa+layoutxlm

此次先记录LayoutLMv2&#xff0c;梳理相关论文&#xff0c;记录如下&#xff1a; 首先认识一下 visually-rich document understanding tasks → \to → VrDU 其次&#xff0c;the text fields of interest&#xff0c;与图像识别的感兴趣区域 region of Interest 类似&…

【脑机接口】脑机接口性能的电压波形的尖峰分类和阈值比较

Comparison of spike sorting and thresholding of voltage waveforms for intracortical brain–machine interface performance 脑机接口性能的电压波形的尖峰分类和阈值比较论文下载&#xff1a;摘要1 介绍2 方法2.1数据获取2.2spike sorting 技术2.3神经数据分析 3结果3.1神…

社交媒体的未来:Facebook如何通过AI技术引领潮流

在数字化时代的浪潮中&#xff0c;社交媒体平台不断演变&#xff0c;以适应用户需求和技术发展的变化。作为全球领先的社交媒体平台&#xff0c;Facebook在这一进程中扮演了重要角色。尤其是人工智能&#xff08;AI&#xff09;技术的应用&#xff0c;正在深刻地改变Facebook的…

搜索树和Map

一.搜索树 1.概念 二叉搜索树又叫二叉排序树&#xff0c;它可以是一颗空树也可以是具有以下性质的二叉树 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值它的左子树也分别为二…