最近老王的一台腾讯云上海云服务器一直收到腾讯云的告警短信,说检测到了待处理的恶意文件,在 /tmp 目录下,文件名称是 php + 6 个随机字符,威胁等级:严重,服务器疑似被黑客入侵。本文分享下这个问题的解决方法。
一、问题描述
某台腾讯云服务器一直收到腾讯云发来的告警提示:检测到存在待处理的恶意文件:/tmp/phpV6EPns,服务器疑似被黑客入侵,如下图:
登录到这台腾讯云轻量应用服务器,发现在 /tmp 目录下确实有这个文件,并且还有好几个 php 开头,后面跟着 6 个随机字符的文件。
二、问题原因和解决方法
老王先问了下 ChatGPT 这是什么问题,回答如下:
/tmp 文件夹中的这些文件通常是 PHP 运行时生成的临时文件。PHP 在处理上传文件、会话数据或其他临时数据时,会在 /tmp 目录中创建临时文件。这些文件名通常是随机生成的,以确保唯一性和安全性。
老王又在网上搜了下相关博文,有博主分享说是当 PHP 接收到上传的数据包时,即使没有处理 \_FILES$ 的逻辑,PHP 也会将上传的数据保存到一个临时文件中。这个临时文件通常位于系统临时目录(默认是 /tmp),文件名格式为 php 开头,后面跟随 6 个随机字符,以下是一些关键点总结:
-
临时文件的生成:
- 当 PHP 接收到上传的数据包时,会在临时目录中创建一个临时文件,即使没有处理上传的逻辑。
- 临时文件的命名格式为 php[6个随机字符],例如 phpMs6VB9。
-
临时文件的清理:
- 如果 PHP 脚本正常执行完毕,临时文件会被自动删除。
- 如果 PHP 脚本非正常结束(例如崩溃),临时文件可能会被保留。
-
高并发恶意请求:
- 恶意攻击者可以通过高并发的 POST 请求,构造异常的请求,导致服务器生成大量的 PHP 临时文件。
- 这些异常请求可能会让 PHP 崩溃,从而临时文件无法被自动清理,导致临时文件堆积。
-
安全告警:
- 腾讯云检测到大量异常的 PHP 临时文件,可能会认为服务器存在潜在的安全威胁,从而发出告警。
为了防止这种情况发生,你可以采取以下措施:
-
限制上传文件大小:
- 在 php.ini 文件中设置
upload_max_filesize
和post_max_size
参数,限制上传文件的大小。
- 在 php.ini 文件中设置
-
配置上传目录:
- 在 php.ini 文件中设置
upload_tmp_dir
参数,将临时文件存储在一个专门的目录中,便于管理和监控。
- 在 php.ini 文件中设置
-
使用防火墙和安全工具:
- 配置防火墙规则,限制不必要的 POST 请求。
- 使用 Web 应用防火墙(WAF)来检测和阻止恶意请求。
-
监控和清理临时文件:
- 定期监控 /tmp 目录中的临时文件,发现异常情况及时处理。
- 编写脚本定期清理 /tmp 目录中的过期临时文件。
-
优化 PHP 配置:
- 增加 PHP 的内存限制和执行时间限制,防止高并发请求导致 PHP 崩溃。
- 在 php.ini 中设置
max_execution_time
和memory_limit
参数。
通过以上措施,可以有效减少 PHP 临时文件的堆积,降低服务器被恶意请求攻击的风险。
总结:收到这个提示问题也不大,并不是说你的服务器被黑客黑了,只是可能确实被攻击者盯上了,还没有黑下来,无需过分担心。