我运行一个 Google App Engine 应用,该应用有一个蜜罐管理页面,用于转移人们对真实管理员登录页面的注意力。不久前,我开始收到重复的电子邮件,说有人试图登录蜜罐页面。我屏蔽了相关 IP,但后来我开始在新 IP 上看到它。
我后来也在 Google App Engine 的防火墙规则部分阻止了该程序:
我已经测试了防火墙规则中的 IP,它们被拒绝了。但是我仍然收到电子邮件,说这个 IP 正在尝试登录蜜罐管理员。要做到这一点,他们首先必须能够访问该页面,然后提交表单,但他们不应该这样做。
我还要注意什么并做些什么来解决这个问题?
更新:
我刚刚通过尝试自己登录虚假页面做了一些进一步的测试,看起来所有登录尝试都是以 172.17.0.6 的身份进行的,所以它一定是一个与基础设施相关的 IP。
我猜这就是 IP 没有被防火墙阻止的原因。我对蜜罐网站的代码做了一些深入研究(我不是它的作者),似乎 IP 地址是由 获得的ip_address=self.request.META.get('REMOTE_ADDR')
。
该如何纠正?
答案1
您需要获取正在使用的 IPHTTP_X_FORWARDED_FOR正如解释的那样这里。这是因为请求被转发到 App Engine 实例。我确实认为您正在拉取 App Engine 负载平衡器 IP 或另一个内部 IP(出于安全目的,某些标头在到达应用程序之前会由中间代理进行清理或修改),因此您无法阻止此 IP(客户端 IP -> 防火墙规则 -> IP 已清理(即您要阻止的 IP)-> 实例) 因为您在方法中获取的 IP 不是调用您的应用程序的真实 IP。
验证 IP 的另一种方法是在 Stackdriver Logging 中。搜索请求,IP 就在 IP 字段中 :) 我真的希望这些信息对您有所帮助。