如何检测加密挖掘?

如何检测加密挖掘?

我想制作一个可以检测加密矿工的 Nagios 插件。

问题是,如果矿工是单线程的并且在多核主机上运行,​​那么负载平均值将低于 1,这在定义上不是一个问题。

我还希望插件能够处理具有不同编号或 CPU 的主机。

问题

如果主机正在运行矿工(单线程或多线程),那么如果我说:如果 3 个负载平均值uptime几乎相同,则检测到加密矿工,那么我是否总能检测到它?

这样我就不必担心数量或 CPU。对吗?

答案1

如果你的挖矿软件在单核上的使用率达到 100%,那么你可以使用

mpstat -P ALL

并检查 %user 列是否

mpstat -P ALL | awk ' { print $3 " " $4 } ' | grep -E "^[0-9]"

存在一个连续接近 100% 的单核,我认为这可以用一行 awk 来实现

答案2

我知道这个线程用于编程和其他我完全不了解的高级操作

可是T;

作为一个有在公司硬件上运行加密矿工经验的人(例如,我在一家家族企业工作,并且被半允许运行加密矿工),我只能提供我自己所掌握的知识。

IDS 阻止不了我。我们正在运行带有 AMP 和 IDS/IPS 的 Cisco Meraki MX67,我测试了所有被阻止的网站类别、完整列表(不是热门网站),但我仍然能够通过。

公共端口 (80、443 等) 上的 TLS 和 SSL

我的另一个选择是使用 VPN,但可能性很小,因为它非常显眼。即使使用拆分隧道,也会在本地设备上找到设置。

最好的办法是记录流量并寻找异常值;加密矿工将始终联系其配置中列出的服务器。

另外,CPU 上的加密挖掘会给 L2/L3 缓存带来压力。

重新阅读 OP,基于网络的攻击很难,我不确定它们是如何工作的;但会与静态服务器建立一致的连接。

以下是链接一种基于矿池的网络挖掘脚本,旨在在网页上实施;当用户访问网站时,在用户计算机上运行。它已经过时了,但它可能有助于您深入了解它们的工作原理。

答案3

这里有一些不错的答案,在某些情况下可能会起作用,但它们都假设同一件事:你想在矿工运行后检测到它的存在。

通常,最好使用启发式扫描器和用于检测已知应用程序的哈希库来实现这一点。我不知道是否存在这样的项目,但它可能是某种安全套件/恶意软件扫描器中的集成功能。但是,如果任何类型的恶意应用程序已经在运行,那么您就太迟了。

除此之外,一个更合理(也更简单)的方法是完全阻止矿工进入您的机器。根据您预计这些矿工会通过什么途径进入以及这些系统的作用,您应该锁定对系统的访问以防止这种情况发生。通常,不应允许用户以任何方式安装并随后执行任何类型的功能程序,除非这正是他们应该对给定资源执行的操作。

虽然上面描述了一种方法,但并没有准确描述如何缓解这种情况。对此有答案,但它们将完全取决于您的实施,而不仅仅是最通用的建议。

例如,audit守护进程或rkhunter可以很好地确定是否有任何“外来”的东西正在运行以及是谁/什么把它放在那里。selinux提供了一种可靠的方法来防止未经批准的文件在它们不应该的上下文中执行。一个好的成像/部署系统可以帮助允许优雅的“从轨道上核打击”并为始终“干净”的系统建立保证。良好的安全实践和粗糙的部署模型使大多数关于检测威胁的担忧变得无关紧要。

答案4

这主要取决于您对基础设施的认识,而 95% 的公司都不具备这一认识。

首先,我要建立一个监控系统,监控 CPU 使用率和进程数,为正常情况、年度峰值等创建基线。

监控活动进程。结合我的文档和基线,我将确定哪些是正常的,哪些是不正常的。例如,如果服务器是 Tomcat 服务器,我希望看到处理 Tomcat 服务本身、Java、HTTP 请求、备份等的进程。但如果突然出现一个我以前从未见过的恶意进程,或者活动进程数突然增加 16、32 或类似的东西,超出峰值并保持不变,我可以确定它不是服务器操作的正常进程,我可以进行调查。

部署入侵检测系统也很重要,进程要启动,需要以某种方式请求 CPU 时间。IDS 系统可以监控并记录此过程,如果我发现任何异常情况,我可以进行调查。

根据加密“服务”,它可能不会在服务器上过高地占用 CPU,因为您可以限制进程或将其分散到 32 个内核或您的服务器能够处理的任何内核上。因此,我会监控多个事物,然后据此确定发生了什么。

在这方面,我想说没有直接的方法来确定这一点,除非你针对特定的加密矿工。

相关内容