Amazon GuardDuty 的新增功能 – Amazon EBS 卷的恶意软件检测

news2024/11/25 7:13:15
亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过, 点这里让它成为你的技术宝库!

借助 Amazon GuardDuty,您可以监控自己的 AWS 账户和工作负载以检测恶意活动。我们于近日在 GuardDuty 中增加了检测恶意软件的功能。恶意软件用于危害工作负载、重新调整资源用途或未经授权访问数据。启用 GuardDuty 恶意软件保护之后,当 GuardDuty 检测到您在 EC2 上运行的 EC2 实例或容器工作负载之一正在执行可疑操作时,就会启动恶意软件扫描。例如,当 EC2 实例与已知恶意的命令和控制服务器进行通信时,或者正在对其他 EC2 实例执行拒绝服务 (DoS) 或蛮力破解攻击时,就会触发恶意软件扫描。

GuardDuty 支持许多文件系统类型,该工具会扫描已知用于传播或包含恶意软件的文件格式,包括 Windows 和 Linux 可执行文件、PDF 文件、存档、二进制文件、脚本、安装程序、电子邮件数据库和普通电子邮件。

识别出潜在的恶意软件后,将生成可操作的安全调查结果,其中包含威胁和文件名、文件路径、EC2 实例 ID、资源标签以及(如果是容器)容器 ID 和使用的容器映像等信息。GuardDuty 支持在 EC2 上运行的容器工作负载,包括客户管理的 Kubernetes 集群或个别 Docker 容器。如果容器由 Amazon Elastic Kubernetes Service (EKS) or Amazon Elastic Container Service (Amazon ECS) 管理,则调查结果还包括集群名称和任务pod ID,因此应用程序安全团队可以快速找到受影响的容器资源。

与所有其他 GuardDuty 调查结果一样,恶意软件检测将发送到 GuardDuty 控制台,通过 Amazon EventBridge 推送,路由到 AWS Security Hub,然后在 Amazon Detective 中提供以开展事件调查。

++GuardDuty 恶意软件保护的工作原理++

启用恶意软件保护后,您将设置一个 Amazon Identity and Access Management (IAM) 服务相关角色,该角色授予 GuardDuty 执行恶意软件扫描的权限。对 EC2 实例启动恶意软件扫描时,GuardDuty 恶意软件保护使用这些权限拍摄小于 1 TB 的附加 Amazon Elastic Block Store (EBS) 卷快照,然后在同一 Amazon 区域内的 Amazon 服务账户中恢复 EBS 卷,以对它们进行恶意软件扫描。您可以使用标记,从这些权限和扫描中包括或排除 EC2 实例。这样,您无需部署安全软件或代理来监控恶意软件,扫描卷的操作也不会影响正在运行的工作负载。扫描完成后,将删除服务账户中的 EBS 卷和您账户中的快照。或者,您可以在检测到恶意软件时保留快照。

服务相关角色授予 GuardDuty 访问用于加密 EBS 卷的 Amazon Key Management Service (Amazon KMS) 密钥的权限。如果对附加到可能遭到入侵的 EC2 实例的 EBS 卷使用客户托管式密钥进行加密,则 GuardDuty 恶意软件保护也会使用相同的密钥来加密副本 EBS 卷。如果这些卷未加密,GuardDuty 将使用自己的密钥来加密副本 EBS 卷并确保隐私。不支持使用 EBS 托管式密钥加密的卷。

云中的安全是您与 Amazon 共同承担的责任。作为防护机制,GuardDuty 恶意软件保护使用的服务相关角色如果具有 GuardDutyExcluded 标签,则无法对您的资源(例如 EBS 快照和卷、EC2 实例和 KMS 密钥)执行任何操作。在将 GuardDutyExcluded设置为 true 的情况下标记快照后,GuardDuty 服务将无法访问这些快照。GuardDutyExclud 标签将取代任何包含标记。权限还会限制 GuardDuty 修改快照的方式,以便在与 GuardDuty 服务账户共享时无法将其公开。

由 GuardDuty 创建的 EBS 卷始终是加密的。GuardDuty 只能在具有 GuardDuty 扫描 ID 标签的 EBS 快照上使用 KMS 密钥。在获得 EC2 检测结果后创建快照时,GuardDuty 会添加扫描 ID 标签。无法从除 Amazon EBS 服务之外的任何其他上下文调用与 GuardDuty 服务账户共享的 KMS 密钥。扫描成功完成后,将撤销 KMS 密钥授予并删除 GuardDuty 服务账户中的卷副本,从而确保 GuardDuty 服务在完成扫描操作后无法访问您的数据。

++为 Amazon 账户启用恶意软件保护++

如果您尚未使用 GuardDuty,则在为自己的账户激活 GuardDuty 时,默认情况下会启用恶意软件保护。我已经在使用 GuardDuty,因此需要从控制台启用恶意软件保护。如果您正在使用 Amazon Organizations,您的代理管理员账户可以为现有成员账户启用此功能,并配置是否应自动注册组织中的新 Amazon 账户。

在 GuardDuty 控制台中,我选择导航窗格中 Settings(设置)下的 Malware Protection(恶意软件保护)。在其中,我选择 Enable(启用),然后选择 Enable Malware Protection(启用恶意软件保护)。

屏幕截图在扫描后会自动删除。在 General settings(常规设置)中,我可以选择将检测到恶意软件的屏幕截图保留在我的 Amazon 账户中,并将其用于进一步分析。

Scan options(扫描选项)中,我可以配置包含标签的列表,以便只扫描带有这些标签的 EC2 实例;或者排除标签,以便跳过列表中包含标签的 EC2 实例。

++测试恶意软件保护 GuardDuty 检测结果++

为了生成几个 Amazon GuardDuty 检测结果,包括新的恶意软件保护检测结果,我克隆了 Amazon GuardDuty Tester 存储库:

$ git clone https://github.com/awslabs/amazon-guardduty-tester

首先,我使用 guardduty-tester.template 文件创建一个 Amazon CloudFormation 堆栈。堆栈准备就绪后,我会按照说明将 SSH 客户端配置为通过堡垒主机登录到测试器实例。然后,我连接到测试器实例:

$ ssh tester

从测试器实例中,我启动guardduty_tester.sh 脚本来生成检测结果:

$ ./guardduty_tester.sh 

*********************************************************************
* Test #1 - Internal port scanning                                    *
* This simulates internal reconaissance by an internal actor or an   *
* external actor after an initial compromise.This is considered a    *
* low priority finding for GuardDuty because its not a clear indicator*
* of malicious intent on its own.                                     *
*********************************************************************


Starting Nmap 6.40 ( http://nmap.org ) at 2022-05-19 09:36 UTC
Nmap scan report for ip-172-16-0-20.us-west-2.compute.internal (172.16.0.20)
Host is up (0.00032s latency).
Not shown: 997 filtered ports
PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   closed http
5050/tcp closed mmcc
MAC Address: 06:25:CB:F4:E0:51 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 4.96 seconds

-----------------------------------------------------------------------

*********************************************************************
* Test #2 - SSH Brute Force with Compromised Keys                     *
* This simulates an SSH brute force attack on an SSH port that we    *
* can access from this instance.It uses (phony) compromised keys in  *
* many subsequent attempts to see if one works.This is a common      *
* techique where the bad actors will harvest keys from the web in     *
* places like source code repositories where people accidentally leave*
* keys and credentials (This attempt will not actually succeed in     *
* obtaining access to the target linux instance in this subnet)       *
*********************************************************************

2022-05-19 09:36:29 START
2022-05-19 09:36:29 Crowbar v0.4.3-dev
2022-05-19 09:36:29 Trying 172.16.0.20:22
2022-05-19 09:36:33 STOP
2022-05-19 09:36:33 No results found...
2022-05-19 09:36:33 START
2022-05-19 09:36:33 Crowbar v0.4.3-dev
2022-05-19 09:36:33 Trying 172.16.0.20:22
2022-05-19 09:36:37 STOP
2022-05-19 09:36:37 No results found...
2022-05-19 09:36:37 START
2022-05-19 09:36:37 Crowbar v0.4.3-dev
2022-05-19 09:36:37 Trying 172.16.0.20:22
2022-05-19 09:36:41 STOP
2022-05-19 09:36:41 No results found...
2022-05-19 09:36:41 START
2022-05-19 09:36:41 Crowbar v0.4.3-dev
2022-05-19 09:36:41 Trying 172.16.0.20:22
2022-05-19 09:36:45 STOP
2022-05-19 09:36:45 No results found...
2022-05-19 09:36:45 START
2022-05-19 09:36:45 Crowbar v0.4.3-dev
2022-05-19 09:36:45 Trying 172.16.0.20:22
2022-05-19 09:36:48 STOP
2022-05-19 09:36:48 No results found...
2022-05-19 09:36:49 START
2022-05-19 09:36:49 Crowbar v0.4.3-dev
2022-05-19 09:36:49 Trying 172.16.0.20:22
2022-05-19 09:36:52 STOP
2022-05-19 09:36:52 No results found...
2022-05-19 09:36:52 START
2022-05-19 09:36:52 Crowbar v0.4.3-dev
2022-05-19 09:36:52 Trying 172.16.0.20:22
2022-05-19 09:36:56 STOP
2022-05-19 09:36:56 No results found...
2022-05-19 09:36:56 START
2022-05-19 09:36:56 Crowbar v0.4.3-dev
2022-05-19 09:36:56 Trying 172.16.0.20:22
2022-05-19 09:37:00 STOP
2022-05-19 09:37:00 No results found...
2022-05-19 09:37:00 START
2022-05-19 09:37:00 Crowbar v0.4.3-dev
2022-05-19 09:37:00 Trying 172.16.0.20:22
2022-05-19 09:37:04 STOP
2022-05-19 09:37:04 No results found...
2022-05-19 09:37:04 START
2022-05-19 09:37:04 Crowbar v0.4.3-dev
2022-05-19 09:37:04 Trying 172.16.0.20:22
2022-05-19 09:37:08 STOP
2022-05-19 09:37:08 No results found...
2022-05-19 09:37:08 START
2022-05-19 09:37:08 Crowbar v0.4.3-dev
2022-05-19 09:37:08 Trying 172.16.0.20:22
2022-05-19 09:37:12 STOP
2022-05-19 09:37:12 No results found...
2022-05-19 09:37:12 START
2022-05-19 09:37:12 Crowbar v0.4.3-dev
2022-05-19 09:37:12 Trying 172.16.0.20:22
2022-05-19 09:37:16 STOP
2022-05-19 09:37:16 No results found...
2022-05-19 09:37:16 START
2022-05-19 09:37:16 Crowbar v0.4.3-dev
2022-05-19 09:37:16 Trying 172.16.0.20:22
2022-05-19 09:37:20 STOP
2022-05-19 09:37:20 No results found...
2022-05-19 09:37:20 START
2022-05-19 09:37:20 Crowbar v0.4.3-dev
2022-05-19 09:37:20 Trying 172.16.0.20:22
2022-05-19 09:37:23 STOP
2022-05-19 09:37:23 No results found...
2022-05-19 09:37:23 START
2022-05-19 09:37:23 Crowbar v0.4.3-dev
2022-05-19 09:37:23 Trying 172.16.0.20:22
2022-05-19 09:37:27 STOP
2022-05-19 09:37:27 No results found...
2022-05-19 09:37:27 START
2022-05-19 09:37:27 Crowbar v0.4.3-dev
2022-05-19 09:37:27 Trying 172.16.0.20:22
2022-05-19 09:37:31 STOP
2022-05-19 09:37:31 No results found...
2022-05-19 09:37:31 START
2022-05-19 09:37:31 Crowbar v0.4.3-dev
2022-05-19 09:37:31 Trying 172.16.0.20:22
2022-05-19 09:37:34 STOP
2022-05-19 09:37:34 No results found...
2022-05-19 09:37:35 START
2022-05-19 09:37:35 Crowbar v0.4.3-dev
2022-05-19 09:37:35 Trying 172.16.0.20:22
2022-05-19 09:37:38 STOP
2022-05-19 09:37:38 No results found...
2022-05-19 09:37:38 START
2022-05-19 09:37:38 Crowbar v0.4.3-dev
2022-05-19 09:37:38 Trying 172.16.0.20:22
2022-05-19 09:37:42 STOP
2022-05-19 09:37:42 No results found...
2022-05-19 09:37:42 START
2022-05-19 09:37:42 Crowbar v0.4.3-dev
2022-05-19 09:37:42 Trying 172.16.0.20:22
2022-05-19 09:37:46 STOP
2022-05-19 09:37:46 No results found...

-----------------------------------------------------------------------

*********************************************************************
* Test #3 - RDP Brute Force with Password List                        *
* This simulates an RDP brute force attack on the internal RDP port  *
* of the windows server that we installed in the environment. It uses*
* a list of common passwords that can be found on the web.This test  *
* will trigger a detection, but will fail to get into the target      *
* windows instance.                                                   *
*********************************************************************

Sending 250 password attempts at the windows server...
Hydra v9.4-dev (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-05-19 09:37:46
[WARNING] rdp servers often don't like many connections, use -t 1 or -t 4 to reduce the number of parallel connections and -W 1 or -W 3 to wait between connection to allow the server to recover
[INFO] Reduced number of tasks to 4 (rdp does not like many parallel connections)
[WARNING] the rdp module is experimental.Please test, report - and if possible, fix.
[DATA] max 4 tasks per 1 server, overall 4 tasks, 1792 login tries (l:7/p:256), ~448 tries per task
[DATA] attacking rdp://172.16.0.24:3389/
[STATUS] 1099.00 tries/min, 1099 tries in 00:01h, 693 to do in 00:01h, 4 active
1 of 1 target completed, 0 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-05-19 09:39:23

-----------------------------------------------------------------------

*********************************************************************
* Test #4 - CryptoCurrency Mining Activity                            *
* This simulates interaction with a cryptocurrency mining pool which *
* can be an indication of an instance compromise.In this case, we are*
* only interacting with the URL of the pool, but not downloading      *
* any files.This will trigger a threat intel based detection.        *
*********************************************************************

Calling bitcoin wallets to download mining toolkits

-----------------------------------------------------------------------

*********************************************************************
* Test #5 - DNS Exfiltration                                          *
* A common exfiltration technique is to tunnel data out over DNS      *
* to a fake domain. Its an effective technique because most hosts    *
* have outbound DNS ports open. This test wont exfiltrate any data,  *
* but it will generate enough unusual DNS activity to trigger the     *
* detection.                                                          *
*********************************************************************

Calling large numbers of large domains to simulate tunneling via DNS

*********************************************************************
* Test #6 - Fake domain to prove that GuardDuty is working            *
* This is a permanent fake domain that customers can use to prove that*
* GuardDuty is working. Calling this domain will always generate the *
* Backdoor:EC2/C&CActivity.B!DNS finding type                         *
*********************************************************************

Calling a well known fake domain that is used to generate a known finding

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> GuardDutyC2ActivityB.com any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11495
;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;GuardDutyC2ActivityB.com.    IN    ANY

;; ANSWER SECTION:
GuardDutyC2ActivityB.com.6943    IN    SOA    ns1.markmonitor.com. hostmaster.markmonitor.com.2018091906 86400 3600 2592000 172800
GuardDutyC2ActivityB.com.6943    IN    NS    ns3.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns5.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns7.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns2.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns4.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns6.markmonitor.com.
GuardDutyC2ActivityB.com.6943    IN    NS    ns1.markmonitor.com.

;; Query time: 27 msec
;; SERVER: 172.16.0.2#53(172.16.0.2)
;; WHEN: Thu May 19 09:39:23 UTC 2022
;; MSG SIZE  rcvd: 238


*****************************************************************************************************
预期的 GuardDuty 检测结果

测试 1:内部端口扫描
预期的检测结果:EC2 实例 i-011e73af27562827b 正在对远程主机执行出站端口扫描。172.16.0.20
检测结果类型:Recon:EC2/Portscan

测试 2:使用泄露密钥的 SSH 蛮力攻击
预期有两个检测结果 - 一个用于出站检测,另一个用于入站检测
出站:i-011e73af27562827b 正在对 172.16.0.20 进行 SSH 蛮力攻击
入站:172.16.0.25 正在对 i-0bada13e0aa12d383 进行 SSH 蛮力攻击
检测结果类型:UnauthorizedAccess:EC2/SSHBruteForce

测试 3:使用密码列表的 RDP 蛮力攻击
预期有两个检测结果 - 一个用于出站检测,另一个用于入站检测
出站:i-011e73af27562827b 正在对 172.16.0.24 进行 RDP 蛮力攻击
入站:172.16.0.25 正在对 i-0191573dec3b66924 进行 RDP 蛮力攻击
检测结果类型:UnauthorizedAccess:EC2/RDPBruteForce

测试 4:加密货币活动
预期的检测结果:EC2 实例 i-011e73af27562827b 正在查询与比特币活动相关的域名
检测结果类型:CryptoCurrency:EC2/BitcoinTool.B!DNS

测试 5:DNS 渗透
预期的检测结果:EC2 实例 i-011e73af27562827b 正在尝试查询与泄露数据相似的域名
检测结果类型:Trojan:EC2/DNSDataExfiltration

测试 6:C&C 活动
预期检测结果:EC2 实例 i-011e73af27562827b 正在查询与已知命令与控制服务器关联的域名。
检测结果类型:Backdoor:EC2/C&CActivity.B!DNS

几分钟后,检测结果将显示在 GuardDuty 控制台中。在顶部,我看到了新的恶意软件保护功能发现的恶意文件。其中一个检测结果与 EC2 实例相关,另一个与 ECS 集群相关。

首先,我选择与 EC2 实例相关的检测结果。在面板中,我看到有关实例和恶意文件的信息,例如文件名和路径。在 Malware scan details(恶意软件扫描详细信息)部分中,Trigger finding ID(触发检测结果 ID)指向触发恶意软件扫描的原始 GuardDuty 检测结果。就我而言,最初的检测结果是此 EC2 实例正在对另一个 EC2 实例执行 RDP 蛮力攻击。

在此处,我选择 Investigate with Detective(使用 Detective 调查),然后直接从 GuardDuty 控制台转到 Detective 控制台,从中可视化 EC2 实例、Amazon 账户和受检测结果影响的 IP 地址的 Amazon CloudTrailAmazon Virtual Private Cloud (Amazon VPC) 流数据。使用 Detective,我可以分析、调查和确定 GuardDuty 发现的可疑活动的根本原因。

选择与 ECS 群集相关的检测结果时,我将获得有关受影响资源的更多信息,例如 ECS 集群、任务、容器和容器映像的详细信息。

使用 GuardDuty 测试器脚本可以更轻松地测试 GuardDuty 与您使用的其他安全框架的整体集成,以便在检测到真正的威胁时做好准备。

++将 GuardDuty 恶意软件防护保护与 Amazon Inspector 进行比较++

此时,您可能会问自己 GuardDuty 恶意软件保护与 Amazon Inspector 有何关系,Amazon Inspector 是一项扫描 AWS 工作负载的软件漏洞和意外网络暴露的服务。这两种服务相辅相成,提供不同的保护层:

  • Amazon Inspector 通过识别和修复已知软件和应用程序漏洞提供主动防护,这些漏洞是攻击者入侵资源和安装恶意软件的入口点。

  • GuardDuty 恶意软件保护可检测到活跃运行的工作负载中存在的恶意软件。此时,系统已经受损,但是 GuardDuty 可以限制感染的时间,并在系统受损导致影响业务的事件之前采取措施。

++可用性和定价++

Amazon GuardDuty 恶意软件保护现已在所有提供 GuardDuty 的 Amazon 区域推出,不包括 AWS 中国(北京)、Amazon 中国(宁夏)、Amazon GovCloud(美国东部)和 Amazon GovCloud(美国西部)区域。

在发布时,GuardDuty 恶意软件保护已与以下合作伙伴产品集成:

  • BitDefender

  • CloudHesive

  • Crowdstrike

  • Fortinet

  • Palo Alto Networks

  • Rapid7

  • Sophos

  • Sysdig

  • Trellix

使用 GuardDuty,您无需部署安全软件或代理来监控恶意软件。您只需为文件系统中扫描的 GB 量(而不是 EBS 卷的大小)和 EBS 快照保存在您账户中的时间付费。除非您在发现恶意软件时启用快照保留功能,否则 GuardDuty 创建的所有 EBS 快照都会在扫描后自动删除。有关更多信息,请参阅 GuardDuty 定价EBS 定价。请注意,GuardDuty 仅扫描小于 1 TB 的 EBS 卷。为了帮助您控制成本并避免重复警报,同一卷的扫描频率不会超过每 24 小时一次。

使用 Amazon GuardDuty 检测恶意活动并保护您的应用程序免受恶意软件侵害。

Danilo

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字符函数和字符串函数(详解)

前言&#xff1a;内容包括&#xff1a;strlen&#xff0c;长度不受限制的字符串函数&#xff08;strcpy&#xff0c;strcat&#xff0c;strcmp&#xff09; 长度受限制的字符串函数&#xff08;strncpy&#xff0c;strncat&#xff0c;strncmp&#xff09;&#xff0c;strstr …

Java笔记029-泛型

泛型泛型的理解和好处看一个需求请编写程序&#xff0c;在ArrayList中&#xff0c;添加3个Dog对象Dog对象含有name和age&#xff0c;并输出name和age(要求使用getXxx)先用传统的方法来解决->引出泛型package com15.generic;import java.util.ArrayList;/*** author 甲柒* ve…

Docker Remote API未授权访问

目录Docker简述Docker 2375端口安全风险Docker命令连接利用声明&#xff1a;本文仅供学习参考&#xff0c;其中涉及的一切资源均来源于网络&#xff0c;请勿用于任何非法行为&#xff0c;否则您将自行承担相应后果&#xff0c;本人不承担任何法律及连带责任。Docker简述 Docke…

[GXYCTF 2019]Ping Ping Ping

禁了空格&#xff0c;并且不能用${IFS},因为{也禁了 ;ls发现 flag也被禁了 看index.php的源码 ;cat$IFS$9index.php 可以base64编码绕过 ;echo$ISF$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh bash被禁了&#xff0c;所以用sh 可以内联执行绕过 ;cat$IFS$9ls 这个ls相当于看ind…

自组织( Self-organization),自组织临界性(Self-organized criticality)

文章目录1. 自组织概述原则历史按领域物理化学生物学2. 自组织临界性概述3. 自组织临界性的特征4. 自组织临界模型5. 自然界中的自组织临界6. 自组织临界性和优化7. 自组织临界性的控制7.1 方案7.2 应用1. 自组织 wiki: Self-organization 图 200 C 水热处理过程中微米级 Nb3O…

【游戏爆料】揭开“搬砖党”背后的秘密

在网络游戏行业繁荣的背后&#xff0c;存在着庞大的黑产链条&#xff0c;它严重威胁着游戏厂商的业务安全&#xff0c;破坏游戏属性的平衡&#xff0c;给玩家带来不好的游戏体验。有些玩家可能有疑惑&#xff0c;黑产是什么&#xff1f;分成哪些种类&#xff1f;其实&#xff0…

Windows系统下基于开源软件的多物理场仿真

Windows系统下基于开源软件的多物理场仿真实践技术应用随着计算机技术的发展&#xff0c;计算机仿真技术日益成为继实验和理论之后的第三种重要研究和设计手段。真实世界中遇到的问题往往是固体力学&#xff0c;流体力学&#xff0c;热&#xff0c;电磁等多种现象耦合而成&…

设计模式之不变模式

在并行软件开发过程中&#xff0c;同步操作是必不可少的。当多线程对同一个对象进行读写操作时&#xff0c;为了保证对象数据的一致性和正确性&#xff0c;有必要对对象进行同步操作&#xff0c;但同步操作对系统性能有损耗。不变模式可以去除这些同步操作&#xff0c;提高并行…

奇舞周刊第485期:3 个容易混淆的前端框架概念

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■3 个容易混淆的前端框架概念大家好&#xff0c;我卡颂。有 3 个容易混淆的前端框架概念&#xff1a;响应式更新 单向数据流 双向数据绑定 在继续阅读本文前&#xff0c;读者可以思考下…

Golang并发编程

Golang并发编程 文章目录Golang并发编程1. 协程2. channel2.1 channel的创建2.2 使用waitGroup实现同步3. 并发编程3.1 并发编程之runtime包3.2 mutex互斥锁3.3 channel遍历3.3.1 for if遍历3.3.2 for range3.4 select switch3.5 Timer3.5.1 time.NewTimer()3.5.2 Stop、reset…

分布式架构-可靠通讯-服务安全

系列目录 分布式架构-可靠通讯-零信任网络 分布式架构-可靠通讯-服务安全 引子 上一节“分布式架构-可靠通讯-零信任网络”里&#xff0c;我们探讨了与微服务运作特点相适应的零信任安全模型。本节&#xff0c;我们将从实践和编码的角度出发&#xff0c;介绍在前微服务时代(以 …

Lambda表达式与函数式接口

目录 自定义函数式接口 常用的内置函数式接口 1.Supplier接口 2.Consumer接口 3.Predicate接口 4.Function接口 自定义函数式接口 需求&#xff1a;实现两数的加减乘除 接口&#xff0c;函数式接口只能有一个抽象方法&#xff0c;且需要用注释FunctionInterface。 Func…

JUC高级一: CompletableFuture

JUC高级: CompletableFuture 1. 线程基础知识复习 1.1 JUC四大口诀 高内聚低耦合前提下&#xff0c;封装思想 线程—>操作---->资源类 判断、干活、通知 防止虚假唤醒,wait方法要注意使用while判断 注意标志位flag&#xff0c;可能是volatile的 1.2 为什么多线程及…

Webpack打包———处理样式资源

基本使用 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 bundles&a…

2.JVM常识之 jvm常见配置参数

1.常见的配置参数说明 常见配置 -Xms3072M -Xmx3072M -Xss1M -Xmn2048M -XX:MetaspaceSize256M -XX:MaxMetaspaceSize256M -XX:SurvivorRatio8 **-Xss&#xff1a;**每个线程的栈内存大小 默认是1M 说明一个线程栈里能分配的栈帧越少&#xff0c;但是对JVM整体来说能开启…

文档团队怎样使用GIT做版本管理

有不少小型文档团队想转结构化写作和发布&#xff0c;但是因为有限的IT技能和IT资源而受阻。本文为这样的小型文档团队而准备&#xff0c;描述怎样使用Git做内容的版本管理。 - 1 - 为什么需要版本管理 当一个团队进行协同创作内容时&#xff0c;有以下需要&#xff1a; 在对…

【C++】图

本文包含了图的基本概念 1.相关概念 1.1 无/有向 无向图&#xff1a;每一个顶点之间的连线没有方向 有向图&#xff1a;连线有方向&#xff08;类似离散数学的二元关系 <A,B>代表从A到B的边&#xff0c;有方向&#xff09; <A,B>中A为始点&#xff0c;B为终点在…

JDBC的API详解

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; 目录 一、DriverManager 驱动管理类 1.注册驱动 2.获取数据库连接 二、Connection 数据库连接对象 1.获取执行对象 2.事务管理 三、Statement 1.执行DDL、DML语句 2.执行DQL语句 四、ResultSet 以JDBC快速…

【漏洞复现】Grafana任意文件读取(CVE-2021-43798)

docker环境搭建 #进入环境 cd vulhub/grafana/CVE-2021-43798#启动环境&#xff0c;这个过程可能会有点慢&#xff0c;保持网络通畅 docker-compose up -d#查看环境 docker-compose ps直接访问虚拟机 IP地址:3000 目录遍历原理 目录遍历原理&#xff1a;攻击者可以通过将包含…

CNCF x Alibaba云原生技术公开课 第七章 应用编排与管理:Job和DaemonSet

1、Job&#xff1a;管理任务的控制器 概念 首先 kubernetes 的 Job 是一个管理任务的控制器&#xff0c;它可以创建一个或多个 Pod 来指定 Pod 的数量&#xff0c;并可以监控它是否成功地运行或终止&#xff1b;可以根据 Pod 的状态来给 Job 设置重置的方式及重试的次数&…