来自 localhost 的这些 .env GET 请求是不是表明存在攻击? [关闭]

Posted

技术标签:

【中文标题】来自 localhost 的这些 .env GET 请求是不是表明存在攻击? [关闭]【英文标题】:Do these .env GET requests from localhost indicate an attack? [closed]来自 localhost 的这些 .env GET 请求是否表明存在攻击? [关闭] 【发布时间】:2021-01-14 10:32:13 【问题描述】:

在 Heroku 托管站点上遇到一些间歇性的 5xx 错误后,我只是在查看我们的日志,在那里我发现了许多来自 localhost 的错误,并且是对隐藏文件的请求,通常是 .env 以及类似的东西“.well-known/assetlinks.json”,偶尔会出现在不存在的子文件夹中的 .env。

请求并不频繁(每天 15 到 30 个),但似乎已经持续了一周。他们还遇到了“规则禁止访问”,据我所知是 nginx

请求类似于:

2020/09/28 14:37:44 [错误] 160#0: *1928 访问被规则禁止,客户端:10.45.153.152,服务器:localhost,请求:“GET /.env HTTP/1.1”,主机: 已移除

我的服务器上没有任何ENV文件,而且nginx似乎阻塞了请求,所以感觉没有任何伤害。重新启动所有测功机似乎已经杀死了活动(基于几个小时过去了),但让我担心的是这些似乎“来自房子内部”。这里有什么我应该关心的吗?这是机器人利用具有本地访问权限的系统中的错误的案例吗?

【问题讨论】:

我认为Information Security 或Webmasters 会是更好的提问地点。 【参考方案1】:

/.env 的请求无论如何都是恶意的。

许多应用程序(例如基于 Laravel)使用 .env 文件来保存数据库密码等非常敏感的数据。黑客/他们的自动化脚本尝试检查 .env 是否可以公开访问。

如果他们一开始就可以红.env文件,这表明服务器配置不正确,服务器管理员设置服务器的方式如此糟糕,应该承担后果......

后果通常是一回事。黑客一旦获得了.env 数据,就拥有了数据库凭据,并且几乎没有嗅探,就找到了 phpMyAdmin 的 URL。因为通常,“错误配置”包括可公开访问的 PhpMyAdmin。

接下来你知道,他们会通过电子邮件告诉你你的数据库已经不见了,但他们已经拥有了。除非您有备份,否则找回它的唯一方法是支付一些加密货币。

做什么

首先确保.env 不在可公开访问的目录中。 即使它们是,让 NGINX 拒绝访问它们,例如拒绝访问所有隐藏文件:

location ~ /\. 
    deny all;

无论您的系统上是否有任何.env 文件,您都可以确定与在网络上请求它们相关的流量是恶意的。要减少任何 CPU 负载并防止他们进一步尝试查找网站漏洞,您可以使用 honeypot approach,例如:

location ~ /\.env$ 
    include includes/honeypot.conf;

... 将触发 立即 防火墙禁止试图读取 .env 文件的 IP。 这被证明是有用的,因为.env 利用可能只是许多其他可能的攻击之一,并且由于相关 IP 被阻止,它不能再尝试了。

【讨论】:

我更担心的是 localhost 方面,该机器人似乎在本地运行,这意味着服务器上存在漏洞。重新启动测功机似乎会杀死它,因此如果授予访问权限,则不是磁盘访问。不是很好,但不是最坏的情况。您指出的蜜罐方法对我来说是新的,看起来可能非常有用,所以感谢您指出我的方向。 从您的日志条目来看,10.45.153.152 似乎是一个内网(LAN 区域)IP 地址,而server: localhost 不保证客户端在同一台机器上。你可能有一个serverserver_name localhost,但可以从外部访问,因为它要么是默认服务器(因此任何人访问服务器 IP,最终都会“请求”该服务器块)或远程客户端在通话时发送 Host: localhost到您的服务器 IP。【参考方案2】:

我有一个用于 404 的 CGI 脚本,每当我收到对 .env 的请求时,它就会发送一个二进制文件。我认为黑客会尝试解析 .env,我希望他的解析器不会喜欢二进制文件。然后我将发起请求的 IP 黑洞。

【讨论】:

欢迎来到 Stack Overflow。请拨打tour。这是一个问答网站,不是论坛。本部分仅用于解答。通过提问和回答获得 50 点声望点后,您将能够comment on other users' questions and answers。 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review

以上是关于来自 localhost 的这些 .env GET 请求是不是表明存在攻击? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 phpunit 与黄昏测试 Env App_Url

Dockerfile 覆盖 ENV 变量

laravel 中 .env 文件中的 localhost vs 127.0.0.1

如何在dev env中更改角度4的localhost名称以进行ssl测试?

Laravel .env DB_HOST 127.0.0.1 与 localhost

Angular 代理 HTTPs