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

从HSE攻击事件漫谈针对勒索攻击防御的两大误区

前言

HSE遭到严重的勒索软件攻击,爱尔兰的医疗服务系统是该国的公共资助医疗系统,在受到勒索病毒攻击之后,被迫在上周五关闭其 IT 系统,以此作为预防措施,避免威胁扩散。该事件导致该国家多家医院的服务取消和中断,幸运的是,正在进行的冠状病毒疫苗接种活动并未受到影响,这次勒索病毒攻击的勒索金额高达2000万美元,就此次攻击事件笔者监控到的一些信息与大家分享,漫谈业界针对勒索病毒攻击防御存在的两大误区,同时针对这两大误区,笔者也分享自己在处理勒索病毒攻击时候的一些安全经验,供大家参考学习。

攻击事件

笔者通过监控某恶意软件分享平台,获取到此次攻击事件的样本,并在在暗网上找到这款勒索病毒的聊天记录,2021年5月14号这个勒索病毒黑客组织对HSE发起勒索攻击之后,受害者与勒索病毒黑客组织联系,该黑客组织声称自己是ContiLocker团队,并获取了HSE高达700GB的重要数据,这些信息包含患者信息和员工信息、合同、财务报表、工资单等,如下所示:

需要HSE支付高达19,999,000 美元的勒索赎金,同时为了让受害者相信已经获取了HSE的重要数据,黑客提供了一些相关数据进行下载验证,随后几天黑客组织一直在催受害者交纳赎金,并威胁说在下周一(2021年5月24日)在暗网上售卖或公布盗取的数据,如下所示:

2021年5月20日黑客给受害者免费下发了解密工具,如下所示:

笔者下载了这款勒索病毒的解密工具,确实是可以解密的,解密工具名称前缀使用了受害者的ID信息,如下所示:

2021年5月14日爱尔兰总理就曾在新闻发布会上表示,他们将不支付任何赎金,在收到解密工具之后,HSE给黑客发送了法院的指令信息给黑客组织。

据FBI调查Conti勒索软件在过去的一年中,袭击了美国至少16个医疗保健和紧急服务机构,影响了超过400个全球组织,其中290个位于美国。

针对这个勒索病毒的一些攻击流程,国外安全厂商之前也分享过一个此勒索病毒的溯源分析案例,黑客攻击大致流程,如下所示:

详细的报告链接:

https://thedfirreport.com/2021/05/12/conti-ransomware/

两大误区

笔者看过一些业界分享的关于勒索病毒防御的视频直播等,现在业界针对勒索攻击的防御,可能存在两大误区,这可能也是因为对勒索病毒研究和理解不够深入导致的。

第一个误区:

现在认为勒索病毒攻击并不多,交纳赎金的企业也并不多,其实就最近被曝光的几起勒索病毒来说,交纳的赎金已经高达上亿美元了,可见交纳赎金的企业还是很多的,还有一些企业是选择偷偷交钱,外界不知道。

第二个误区:

仅靠某个单一的产品就能防御勒索?零信任防勒索?现在勒索病毒攻击都是以定向化攻击为主,不在是以前那种使用单一的方式来传播勒索病毒了,如果连勒索病毒攻击手法都没搞清楚,也没搞清楚这些勒索病毒是怎么进来的,企业的数据又是通过什么方式丢失的,就想当然通过某个单一产品或某个新的概念就能防勒索,就是认知层面的差距了,而且现在已经并不仅仅是防勒索病毒这么简单了,黑客的攻击是使用了一整套完整的攻击流程,利用了多种不同的恶意软件,很多都是潜伏在企业多达几周,几个月了,等盗取了企业的重要数据之后,最后才使用勒索病毒加密数据,这种成熟的攻击手法并不是靠某个产品就可以防御解决的,需要的是一整套解决方案,同时需要跟黑客比拼速度,抢在黑客进行勒索病毒攻击之前,也就是攻击链接中间阶段,迅速捕获到威胁,然后清除威胁,阻止黑客进一步攻击行为,这种不是单纯的某个产品或某个概念来防御的。

勒索病毒重在防御,目前大部分勒索病毒都是无法解密的,很多人说那我做好数据备份,是不是就可以防御勒索病毒,高枕无忧了,再不用担心勒索病毒了?确实,数据备份可以有效在某些程度防御勒索病毒,就算中了勒索病毒没有解密工具企业的重要业务也不会停止,可以使用备份的数据快速恢复业务,但是勒索病毒黑客组织早就不仅仅是最初的单纯的使用某个勒索病毒进行加密攻击,而是已经使用了"窃密+勒索"相组合双重攻击模式,先盗取企业的重要数据,最后再通过勒索病毒加密企业数据,这样当企业的重要数据被泄露之后,虽然企业数据有备份,但有可能还是会被黑客”勒索“交纳赎金,因为勒索攻击已经变为了发展成另外一种新的双重威胁模式,这样看来,企业的数据没有备份,想要快速恢复业务,那就只能乖乖交钱解密恢复业务了,既使你的企业的数据是有备份的,是不是就不用交钱解密了呢?

就像这次爱尔兰医疗机构HSE一样,黑客免费给HSE提供了勒索病毒解密工具,那HSE是不是就不用交钱了?如果这个黑客组织真的盗取了这家医疗机构高达700G的客户数据,这些数据如果都是客户的隐私数据,里面如果还包含一些重要人物的隐私数据,这些数据如果被公开,那可能损失的不仅仅是这2000万美元了,至于企业的数据文件解不解密其实并不重要了,所以黑客才免费给HSE受害者提供了解密工具,HSE目前要做的可能是要需要安全专家去给企业做一次完整的溯源分析,确认是不是有高达700G的客户数据被泄露了,可能黑客只是盗取了很少的一部分数据而已,并没有像黑客说的那样,盗取了企业高达700G的数据,这些问题HSE应该也请了专业的安全应急专家团队进行了相应的评估,最后发现可能黑客并没有盗取这么多数据,也有可能盗取的数据并不太重要,也不是企业的核心数据,(猜测)这也许就是爱尔兰总理拒绝支付赎金的原因,或者是因为怕以后有更多的企业被勒索攻击,给国家造成更大的损失,所以拒绝支付赎金,至于后面是否支付了赎金,可能也是个未知数了。

很多企业被勒索之后选择交钱的

其实是有两个原因,一个原因就是为了快速恢复业务,另外一个原因也是为了企业的数据不被泄露,被迫交纳赎金,可能数据被泄露风险价值远大于勒索病毒的赎金吧,但是交了赎金,黑客还会不会公开这些数据或者在暗网渠道再次贩卖这些企业的重要数据,就只能看这些黑客是不是“盗亦有盗”,讲不讲“武德”了。

此前因为交纳赎金的企业太多了,有一些企业中了勒索病毒之后选择默默交纳赎金,才导致越来越多的黑客组织,甚至包含一些技术成熟的黑客组织也开始使用勒索病毒进行攻击快速获利,比方Lazarus之前就利用勒索病毒发起勒索攻击,未来这种APT+勒索的定向攻击方式应该会成为勒索病毒网络犯罪活动的主流趋势,这些被勒索病毒攻击的企业最后为什么要交纳赎金,也许就是笔者上面说的两个原因吧,其实勒索病毒黑客组织一直在改变自己的攻击方式以及勒索运营模式,最开始单纯的使用一些简单的攻击方式,使用一个勒索病毒加密勒索,后面通过各种复杂的攻击流程,进入企业盗取企业重要数据之后,最后再使用勒索病毒攻击,随着勒索病毒黑客组织的发展,现在又多了一种勒索运营模式,就是下面这种使用DDOS三重勒索的攻击模式。

勒索病毒的攻击已经呈现定向化趋势,企业备份数据固然很重要,然而仅仅靠备份数据来防止勒索病毒以及其他网络犯罪黑客攻击,是远远不够了,勒索病毒攻击从最开始的单纯的“勒索”,发展到后面“勒索+窃密”,最近一些勒索病毒黑客组织还使用DDOS的方式,对受害者企业进行攻击,迫逼受害者交纳赎金,如下所示:

这似乎成了另一种方式的“勒索”了,勒索攻击未来还会有更多新型的表现形式,单纯的防个勒索病毒攻击已经完全满足不了企业的需求了,防御勒索病毒攻击的关键的是需要更快更及时地发现企业中存在各种潜在的黑客组织攻击活动,及时阻断这些潜在的攻击行为,从而阻止黑客进行更进一步的攻击,保护企业的数据资产,企业的数据是企业的核心资产,目前黑客主要通过两种手段来获利:(1)窃取 (2)勒索,未来黑客组织会结合这两种方式来对企业发起攻击,并会产生更多的“勒索”攻击运营模式,也许是因为“勒索”能带来更直接的收入吧。

很多朋友会问我某某勒索病毒是怎么进来的?某某勒索病毒是通过什么方式传播的?某次勒索病毒攻击事件的攻击手法是怎么样的?其实每一次的勒索病毒攻击都需要专业的安全团队对企业进行一次深入的分析和溯源,这并不是一项简单的工作,是一项非常复杂且繁琐的工作,需要安全专家有足够的安全分析经验,这些分析溯源工作不是靠AI或自动化就能完成的事情,必须要有专业的安全分析人员对中招的企业环境进行详细的分析溯源,勒索病毒攻击现在已经使用了类似APT的攻击方式,每一个攻击的背后可能都是一次完整的有预谋的定向攻击,这种攻击溯源就是人与人的对抗了,高端成熟的黑客组织还会在他们入侵完成之后,在进行勒索病毒攻击之前,删除掉所有的系统日志、残留文件等入侵痕迹,这更一步加大了专业安全分析人员溯源分析的难度,可能需要收集更多的数据,才能更好的溯源了。

针对上面的两个误区:

(1)勒索病毒黑客组织攻击越来越多,黑客组织不断地在寻找着下一个攻击目标,而且很多企业选择交纳赎金,这也从侧面导致勒索病毒攻击会更多。

(2)防御勒索病毒攻击并不是防御某个单一勒索病毒样本,这种防御已经演变成了防御类似APT攻击这种高端的攻击行为,黑客各种不同的攻击链阶段会使用不同类型的恶意软件以及漏洞等,需要一套完整的安全防御解决方案和完整的防御体系,同时需要有更专业的安全分析人员对企业中潜在的威胁活动进行分析,及时发现企业中存在的潜在威胁,中断后面被勒索攻击的风险,现在的黑客组织一般在进入企业之后,会在企业潜伏数天,数周,数月或更长时间,谁能在这个期间更早的发现企业中存在的潜在安全威胁,谁才能有效的阻止企业被黑客进行勒索病毒攻击的可能。

总结

未来几年勒索病毒仍然是企业最大的威胁之一,现在这种攻击的背后是一套完整的攻击流程,黑客在不同的攻击阶段会使用各种不同的攻击手法,同时在攻击的过程中会使用各种不同的恶意软件以及相关漏洞等,并不是像之前使用单一的攻击手法了,变成了一种非常复杂的攻击活动,防勒索病毒攻击,其实已经变成了防APT攻击一样了,而且勒索病毒黑客组织也在不断的更新自己的“勒索”运营模式,未来可能会有更多新型的“勒索”模式出现。

相关文章:

从HSE攻击事件漫谈针对勒索攻击防御的两大误区

前言 HSE遭到严重的勒索软件攻击,爱尔兰的医疗服务系统是该国的公共资助医疗系统,在受到勒索病毒攻击之后,被迫在上周五关闭其 IT 系统,以此作为预防措施,避免威胁扩散。该事件导致该国家多家医院的服务取消和中断&am…...

设计模式(结构型模式)外观模式

目录 一、简介二、外观模式2.1、子系统2.2、外观类2.3、使用 三、优点与缺点 一、简介 外观模式(Facade Pattern)是一种结构型设计模式,提供了一个统一的接口,用于访问子系统中的一组接口。这个模式隐藏了子系统的复杂性&#xff…...

C语言函数的栈帧与销毁(面试亮点)

目录 如果你能熟练的掌握函数的栈帧与销毁在面试中是及其亮眼的加分项,所以我们来以实例来将解函数是如何实现栈帧与销毁的。 一. 函数栈帧 二.寄存器 三. 用例题讲解创建栈帧的过程 3.1 main 函数的反汇编代码。 第一步:给调用main函数的函数分配…...

使用 GreenSock(GSAP)实现 字符串动画

要使用 GreenSock(GSAP)实现 "JianMa XinXi" 这个字符串的动画,其中两个 x 字符自动旋转,j 和 m 字符上下跳动,并且美化这个字符串使其可以作为 logo 使用,我们可以通过以下步骤来实现&#xff1…...

linux系统zabbix监控服务端部署

zabbix服务端部署 zabbix服务端部署安装mysql创建初始数据库为Zabbix server配置数据库为Zabbix前端配置PHP启动Zabbix server和agent进程浏览器访问ipConfigure DB connection页面Zabbix server details页面登录账户名密码 zabbix 官网www.zabbix.com服务端部署 rpm -Uvh ht…...

算法----回溯(附录---剪枝)

回溯相信大家都已经了解了所以这章我将见但介绍下回溯剪枝 为什要剪枝 在《算法----回溯(正文)》中我提到过回溯就是暴力,为什么那些题能过,因为数据范围小 那如果数据范围大了,就不行了,这时剪枝的作用就…...

从Unity到Three.js(模型文件加载)

模型加载功能探索,用blender导出了个glb格式的cube进行的测试。 初接触js语法,回调注册的地方直接使用匿名函数总感觉脑子跟不上,反应不过来,就把加载后的回调简单封装了下, 官方文档是直接使用的匿名函数。 另外看官方…...

Webshell一句话木马

一、webshell介绍(网页木马) 分类: 大马:体积大、隐蔽性差、功能多 小马:体积小,隐蔽强,功能少 一句话木马:代码简短,灵活多样 二、一句话木马: :…...

【Web】Spring rce CVE-2022-22965漏洞复现学习笔记

目录 原理概览 漏洞简述 Tomcat AccessLogValve 和 access_log 例题: 原理概览 spring框架在传参的时候会与对应实体类自动参数绑定,通过“.”还可以访问对应实体类的引用类型变量。使用getClass方法,通过反射机制最终获取tomcat的日志配置成员属性…...

springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统

springboot/ssm大学生选修选课系统高校选课排课成绩管理系统Java系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:my…...

【芯片设计- RTL 数字逻辑设计入门 14 -- 使用子模块实现三输入数的大小比较】

文章目录 三输入数的大小比较问题分析verilog codeTestBench Code综合图仿真波形图 三输入数的大小比较 在数字芯片设计中,通常把完成特定功能且相对独立的代码编写成子模块,在需要的时候再在主模块中例化使用,以提高代码的可复用性和设计的层…...

Xilinx FPGA——在线升级

同以前单片机在线升级的做法一样,本质就是通信Flash操作跳转。 一、通信驱动 我使用的是UDP有线传输, 二、Flash芯片驱动 规划Flash芯片的区域,一般bootloader放在起始位置,APP放在bootloader之后的空白区域。 2.1 Flash擦除 我…...

电商小程序02数据源设计

上一篇我们讲解了电商小程序的需求分析,分析了需要具备的功能并且绘制了系统原型。有了原型之后下一步的事情就是根据原型来设计数据源。 数据源就像盖房子打地基一样,地基打不好,楼可能就盖不高,盖起来要再想调整就比较困难。 …...

Leetcode 3033. Modify the Matrix

Leetcode 3033. Modify the Matrix 1. 解题思路2. 代码实现 题目链接:3033. Modify the Matrix 1. 解题思路 这一题是一道easy的题目,整体思路上没啥难度,就是按照题目翻译一下即可,先遍历一下找到每一列的最大元素&#xff0c…...

蓝桥杯刷题--python-4

0成绩分析 - 蓝桥云课 (lanqiao.cn) import os import sys # 请在此输入您的代码 n=int(input()) max_=float(-inf) min_=float(inf) res=0 for _ in range(n): score=int(input()) # 最高分 max_=max(max_,score) # 最低分 min_=min(min_,score) # 总分 res+=sc…...

openJudge | 距离排序

总时间限制: 1000ms 内存限制: 65536kB 描述 给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。 输入 输入包括两行,第一行包含一个整数n表示点的个数,第二…...

【算法】排序详解(快速排序,堆排序,归并排序,插入排序,希尔排序,选择排序,冒泡排序)

目录 排序的概念: 排序算法的实现: 插入排序: 希尔排序: 选择排序: 堆排序: 冒泡排序: 快速排序: 快速排序的基本框架: 1.Hoare法 2. 挖坑法 3.前后指针法 快…...

LeetCode Python -8.字符串转整数

文章目录 题目答案运行结果 题目 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格检查下一个…...

【java】笔记10:类与对象——本章练习

题目1: 代码如下: import java.util.Scanner; public class Input{public static void main(String[]args){Circle cnew Circle();PassObject yuannew PassObject();System.out.println("r""\t""times");yuan.printAreas…...

《UE5_C++多人TPS完整教程》学习笔记8 ——《P9 访问 Steam(Acessing Steam)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P9 访问 Steam(Acessing Steam)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…...

缓存穿透问题与解决方案

引言 在分布式系统中,缓存技术被广泛应用以提高系统性能和响应速度。然而,缓存穿透是一个常见而严重的问题,特别是在面对大规模请求时。本文将深入探讨缓存穿透的原因、影响以及一些有效的解决方案,以确保系统在面对这一问…...

《Git 简易速速上手小册》第1章:Git 基础(2024 最新版)

文章目录 1.1 Git 简介:版本控制的演变1.1.1 基础知识讲解1.1.2 重点案例:协作开发流程优化案例:功能开发与分支策略 1.1.3 拓展案例 1:代码审查与合并1.1.4 拓展案例 2:冲突解决 1.2 安装和配置 Git:首次设…...

交易中的胜率和盈亏比估算

交易中的胜率和盈亏比估算 1.定义 胜率是指交易者在一定时间内成功交易的次数占总交易次数的比例。例如,如果交易者在10次交易中成功了6次,那么他的胜率就是60%。 盈亏比是指交易者每笔成功交易的盈利与每笔失败交易的亏损之间的比例。例如&#xff0…...

mysql RR、RC隔离级别实现原理

事务隔离级别实现过程 快照读(select语句) 获取事务自己版本号,即事务 ID获取 Read View 查询得到数据,然后 Read View 中事务版本号进行比较。如果不符合 Read View 可见性规则(看最新数据还是副本里的数据&#xf…...

c语言--指针数组(详解)

目录 一、什么是指针数组?二、指针数组模拟二维数组 一、什么是指针数组? 指针数组是指针还是数组? 我们类比一下,整型数组,是存放整型的数组,字符数组是存放字符的数组。 那指针数组呢?是存放…...

Elasticsearch单个索引数据量过大的优化

当Elasticsearch(ES)中的单个索引(index)的数据量变得过大时,可能会遇到性能下降、查询缓慢、管理困难等问题。为了优化和应对大索引的挑战,可以考虑以下策略: 1. 使用分片和副本 分片&#xf…...

Java安全 CC链1分析(Lazymap类)

Java安全 CC链1分析 前言CC链分析CC链1核心LazyMap类AnnotationInvocationHandler类 完整exp: 前言 在看这篇文章前,可以看下我的上一篇文章,了解下cc链1的核心与环境配置 Java安全 CC链1分析 前面我们已经讲过了CC链1的核心ChainedTransf…...

【lesson51】信号之信号处理

文章目录 信号处理可重入函数volatileSIGCHLD信号 信号处理 信号产生之后,信号可能无法被立即处理,一般在合适的时候处理。 1.在合适的时候处理(是什么时候?) 信号相关的数据字段都是在进程PCB内部。 而进程工作的状态…...

分享springboot框架的一个开源的本地开发部署教程(若依开源项目开发部署过程分享持续更新二开宝藏项目MySQL数据库版)

1首先介绍下若依项目: 若依是一个基于Spring Boot和Spring Cloud技术栈开发的多租户权限管理系统。该开源项目提供了一套完整的权限管理解决方案,包括用户管理、角色管理、菜单管理、部门管理、岗位管理等功能。 若依项目采用前后端分离的架构&#xf…...

leetcode:131.分割回文串

树形结构: 切割到字符串的尾部,就是叶子节点。 回溯算法三部曲: 1.递归的参数和返回值: 参数字符串s和startIndex切割线 2.确定终止条件: 当分割线到字符串末尾时到叶子节点,一种方案出现 3.单层搜索…...

Linux下的json-c

一、json-c库的安装(ubuntu) root用户运行以下命令: apt-get install libjson0-dev libjson0非root用户运行以下命令: sudo apt-get install libjson0-dev libjson0二、解析json数据 1. json_object json_object是JSON-C库中定义的一个结构体&#…...

[C#] 如何使用ScottPlot.WPF在WPF桌面程序中绘制图表

什么是ScottPlot.WPF? ScottPlot.WPF 是一个开源的数据可视化库,用于在 WPF 应用程序中创建高品质的绘图和图表。它是基于 ScottPlot 库的 WPF 版本,提供了简单易用的 API,使开发人员能够通过简单的代码创建各种类型的图表&#…...

如何修复Mac的“ kernel_task” CPU使用率过高的Bug?

当计算机开始缓慢运行时,这从来都不是一件有趣的事情,但是当您弄不清它为何如此缓慢时,甚至会变得更糟。如果您已经关闭了所有程序,并且Mac上的所有内容仍然感觉像是在糖蜜中移动,这可能是令人讨厌的kernel_task导致高…...

【NodeJS】006- API模块与会话控制介绍d

1.简介 1.1 接口是什么 接口是 前后端通信的桥梁 简单理解:一个接口就是 服务中的一个路由规则 ,根据请求响应结果 接口的英文单词是 API (Application Program Interface),所以有时也称之为 API 接口 这里的接口指的是『数据接口』&#…...

[UI5 常用控件] 08.Wizard,NavContainer

文章目录 前言1. Wizard1.1 基本结构1.2 属性1.2.1 Wizard:complete1.2.2 Wizard:finishButtonText1.2.3 Wizard:currentStep1.2.4 Wizard:backgroundDesign1.2.5 Wizard:enableBranching1.2.6 WizardStep:…...

EasyExcel分页上传数据

EasyExcel分页上传数据 一、实例 controller上传入口 PostMapping("/upload")ResponseBodyLog(title "导入工单", businessType BusinessType.IMPORT)public AjaxResult uploadFile(HttpServletRequest request, MultipartFile files) throws Exceptio…...

Spring Native 解放 JVM

一、Spring Native 是什么 Spring Native可以通过GraalVM将Spring应用程序编译成原生镜像,提供了一种新的方式来部署Spring应用。与Java虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常…...

汇编的两道题

1.编写一个在显示器上显示一个笑脸字符的程序 看这段程序的结构,可以看出,每个代码段,带有segment的必须用ASSUME 来进行段分配。 PROG1 SEGMENT;PROG1段的开始ASSUME CS:PROG1;PROG1(自己命名的,叫啥都可以&#xff…...

Seurat - 聚类教程 (1)

设置 Seurat 对象 在本教程[1]中,我们将分析 10X Genomics 免费提供的外周血单核细胞 (PBMC) 数据集。在 Illumina NextSeq 500 上对 2,700 个单细胞进行了测序。可以在此处[2]找到原始数据。 我们首先读取数据。 Read10X() 函数从 10X 读取 cellranger 管道的输出&…...

Mac 版 Excel 和 Windows 版 Excel的区别

Excel是一款由微软公司开发的电子表格程序,广泛应用于数据处理、分析和可视化等领域。它提供了丰富的功能和工具,包括公式、函数、图表和数据透视表等,帮助用户高效地处理和管理大量数据。同时,Excel还支持与其他Office应用程序的…...

【报错解决】-bash: export: `-8‘: not a valid identifier 不是有效的标识符

现象 一登陆就提示-bash: export: -8’: not a valid identifier 不是有效的标识符 问题出现的原因 设置字符集时多写了空格 [rootdb1 ~]# cat >>/etc/profile<<EOF export LANGen_US.UTF -8(-8前不应有空格) EOF 解决方法 cd /etc vi profile 把export带有-8的…...

Docker-Learn(三)创建镜像Docker(换源)

根据之前的内容基础&#xff0c;本小点的内容主要涉及到的内容是比较重要的文本Dockerfile 1. 编辑Dockerfile 启动命令行终端&#xff08;在自己的工作空间当中&#xff09;,创建和编辑Dockerfile。 vim Dockerfile然后写入以下内容 # 使用一个基础镜像 FROM ubuntu:late…...

「递归算法」:二叉树剪枝

一、题目 给你二叉树的根结点 root &#xff0c;此外树的每个结点的值要么是 0 &#xff0c;要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1&#xff1a; 输入&#xff1a;root [1,null,0,0,1] 输出&…...

Kafka下载(kafka和jdk、zookeeper、SpringBoot的版本对应关系)

文章目录 一、准备工作1、必须环境2、kafka使用自带的zookeeper还是自己单独部署zookeeper?二、下载一、准备工作 1、必须环境 kafka本身的开发语言是Scala,而Scala是基于jdk开发的,所以要先安装jdk kafka版本jdk版本kafka使用jdk版本官网说明1.0建议使用1.8https://kafka.…...

自然语言NLP

什么是NLP NLP&#xff08;Natural Language Processing&#xff09;是自然语言处理的缩写&#xff0c;是计算机科学和人工智能领域的一个研究方向。NLP致力于使计算机能够理解、处理和生成人类自然语言的能力。通过NLP技术&#xff0c;计算机可以通过识别和理解语言中的文本…...

容器库(5)-std::list

std::forward_list是可以从任何位置快速插入和移除元素的容器&#xff0c;不支持快速随机访问&#xff0c;支持正向和反向的迭代。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器…...

配置VMware实现从服务器到虚拟机的一键启动脚本

正文共&#xff1a;1666 字 15 图&#xff0c;预估阅读时间&#xff1a;2 分钟 首先祝大家新年快乐&#xff01;略备薄礼&#xff0c;18000个红包封面来讨个开年好彩头&#xff01; 虽然之前将服务器放到了公网&#xff08;成本增加了100块&#xff0c;内网服务器上公网解决方案…...

第5讲小程序微信用户登录实现

小程序微信用户登录实现 小程序登录和jwt&#xff0c;httpclient工具类详细介绍可以看下小锋老师的 小程序电商系统课程&#xff1a;https://www.bilibili.com/video/BV1kP4y1F7tU application.yml加上小程序登录需要的参数&#xff0c;小伙伴们可以登录小程序后台管理&#…...

Kong 负载均衡

负载均衡是一种将API请求流量分发到多个上游服务的方法。负载均衡可以提高整个系统的响应速度&#xff0c;通过防止单个资源过载而减少故障。 在以下示例中&#xff0c;您将使用部署在两台不同服务器或上游目标上的应用程序。Kong网关需要在这两台服务器之间进行负载均衡&…...

基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)

Google插件名称为&#xff1a;ChatGPT to MarkDown plus, 下载地址为ChatGPT to MarkDown plus使用方法&#xff1a;见GitHub主页或插件介绍页面https://github.com/thisisbaiy/ChatGPT-To-Markdown-google-plugin/tree/main 我将源代码上传至了GitHub&#xff0c;欢迎star, Is…...