我运行这个 Web 服务器,它为几个应用程序提供数据。在过去的几天里,我注意到一些请求比平时花费的时间更长,所以我做了一个 top 命令来找出正在运行的内容,我得到了以下结果:
15335 redis 20 0 300564 265304 864 S 45.4 12.9 92:10.87 ksoftirqd_1
22747 wsgi-da+ 20 0 1356280 152532 7512 S 43.1 7.4 218:11.78 apache2
32228 redis 20 0 9152 7512 4 S 1.0 0.4 0:01.65 zmap
32266 redis 20 0 9088 7368 4 S 1.0 0.4 0:01.55 zmap
32267 redis 20 0 222312 23528 440 S 1.0 1.1 0:06.66 zgrab
8 root 20 0 0 0 0 R 0.7 0.0 25:00.24 rcuos/0
31981 www-data 20 0 424756 13448 2688 S 0.7 0.7 0:00.21 apache2
这个 ksoftirqd_1 占用了近一半的 CPU 使用率,它由 redis 用户运行。请注意,还有几个其他进程由 redis 用户运行。
现在,我在互联网上搜索后发现,实际上有 ksoftirqd 进程似乎有助于管理 IRQ(或类似的东西)。问题是,它们应该显示为 ksoftirqd/* 而不是 ksoftirqd_*(注意下划线而不是斜线)。事实上,我确实有由 root 用户运行的 ksoftirqd/* 进程:
3 root 20 0 0 0 0 S 0.0 0.0 1:10.40 ksoftirqd/0
所以这让我怀疑这个进程(以及 redis 用户运行的其他进程)是否合法。我记得几年前我曾经在这台机器上运行过一个 redis 服务器,用于我从事的一个项目。当我检查这个问题时,服务器仍在运行 (...)。但在停止它之后,所有这些 redis 进程仍在使用系统资源。
我还做了 ps aux | grep redis ,这是我得到的:
redis 324 0.5 0.3 9088 6712 ? Sl 17:03 0:00 zmap 443 x.x.x.x/19
redis 325 1.4 0.9 350212 18696 ? Sl 17:03 0:02 zgrab --senders 100 --port 443 --tls --http=/ --http-max-redirects 2 --output-file=-
redis 326 0.0 0.0 9020 912 ? S 17:03 0:00 grep -Ei x_jenkins|mongo-express|drupal|confluence|vbulletin
redis 327 0.1 0.0 4028 1736 ? S 17:03 0:00 jq -r .ip
redis 361 0.6 0.3 9024 6176 ? Sl 17:03 0:00 zmap 443 y.y.y.y/19
redis 362 2.3 0.9 284676 19068 ? Sl 17:03 0:02 zgrab --senders 100 --port 443 --tls --http=/ --http-max-redirects 2 --output-file=-
redis 363 0.0 0.0 9212 1052 ? S 17:03 0:00 grep -Ei x_jenkins|mongo-express|drupal|confluence|vbulletin
redis 364 0.2 0.0 4028 1736 ? S 17:03 0:00 jq -r .ip
redis 377 0.8 0.3 9088 6676 ? Sl 17:03 0:00 zmap 443 z.z.z.z/19
redis 378 5.6 1.2 289960 25068 ? Sl 17:03 0:05 zgrab --senders 100 --port 443 --tls --http=/ --http-max-redirects 2 --output-file=-
redis 379 0.0 0.0 9472 1188 ? S 17:03 0:00 grep -Ei x_jenkins|mongo-express|drupal|confluence|vbulletin
redis 380 0.2 0.0 4028 1736 ? S 17:03 0:00 jq -r .ip
redis 15332 0.0 0.1 5484 3580 ? S 14:06 0:00 bb50c48a591f3bfe9a993dcb0d790d0bi
redis 15335 54.3 12.9 300564 265304 ? Sl 14:06 97:20
redis 29700 0.0 0.0 4444 644 ? S 16:30 0:00 sh /var/lib/redis/a
redis 29702 0.0 0.0 4444 712 ? S 16:30 0:00 sh
redis 30309 0.0 0.0 4444 648 ? S 16:30 0:00 sh /var/lib/redis/a
redis 30311 0.0 0.0 4444 716 ? S 16:30 0:00 sh
redis 30886 0.0 0.0 4444 644 ? S 16:30 0:00 sh /var/lib/redis/a
redis 30888 0.0 0.0 4444 712 ? S 16:30 0:00 sh
答案1
仅供参考,是的,这些进程是恶意的。显然,它们是一些利用 redis 漏洞安装在系统中的加密挖掘程序,使用我忘记禁用的服务器实例……正如 @yoonix 所说,它们试图看起来像系统进程。
如果有人偶然发现这次攻击,你可以在这里阅读相关内容(中文内容,不过谷歌翻译相当不错):