Node.js 为nodejs/hapi.js创建蜜罐

Node.js 为nodejs/hapi.js创建蜜罐,node.js,security,hapijs,honeypot,Node.js,Security,Hapijs,Honeypot,我有一个hapijs应用程序,在检查一些日志时,我发现了一些用于自动站点扫描的条目,并点击了/admin.php和类似的条目 我发现了这篇很棒的文章,我觉得它很棒 我正在寻找关于为hapijs/nodejs应用程序创建蜜罐的最佳策略的指导,以识别可疑请求,记录它们,并可能暂时禁止IPs 关于如何实施这一点,您是否有任何一般或具体的(针对节点和hapi)建议 我的想法包括: 使用不明显的名称创建蜜罐路由 添加robots.txt以禁止该路线上的搜索引擎 创建路线的内容(有关一些建议,请参阅文章和

我有一个hapijs应用程序,在检查一些日志时,我发现了一些用于自动站点扫描的条目,并点击了/admin.php和类似的条目

我发现了这篇很棒的文章,我觉得它很棒

我正在寻找关于为hapijs/nodejs应用程序创建蜜罐的最佳策略的指导,以识别可疑请求,记录它们,并可能暂时禁止IPs

关于如何实施这一点,您是否有任何一般或具体的(针对节点和hapi)建议

我的想法包括:

  • 使用不明显的名称创建蜜罐路由
  • 添加robots.txt以禁止该路线上的搜索引擎
  • 创建路线的内容(有关一些建议,请参阅文章和讨论)
  • 写入特殊日志或标记日志条目,以便于跟踪和后续分析
  • 可能会创建一些逻辑,如果来自此IP地址的流量收到的流量超过某个阈值(5次蜜罐路由访问将禁止IP X小时或永久)
我有几个问题:

  • 如何禁止使用hapi.js的IP地址
  • 是否有其他建议来识别自动扫描仪
  • 你对实现蜜罐有具体的建议吗

谢谢

让我先说这个主意听起来很酷,但我不确定它是否实用

首先,阻止合法机器人/用户的机会很小,但仍然存在。 即使你忽略了真正的错误,滥用和拒绝服务的可能性也很大。一旦我知道你的阻止用户谁进入这个路线,我可以尝试让合法用户触摸它(与iframe/img/重定向),并导致他们被禁止从网站

比它的有效性小。确定你要停止所有扫描你网站的自动机器人(我确定他们做的第一件事是检查不允许的信息,这是你在pentest中做的第一件事)。但只有简单的攻击才会被阻止,因为任何主动针对您的人都会将端点列入黑名单,并获得不同的IP

所以我不是说你不应该这么做,而是说你应该想想看这里的利大于弊

如何真正做到这一点其实很简单。而且你似乎在寻找一个非常独特的
限速案例
,我不会直接在你的hapi应用程序中这样做,因为你希望在实例之间共享禁令,并且你可能希望它们在重启时保持不变(你可以从你的应用程序中这样做,但对于已经解决的问题来说,这太过逻辑了)

你提到的那篇文章实际上建议使用它,这是限制利率的一个很好的解决方案。你需要确保你的应用程序登录到一个文件,它可以为你的应用程序读写一个
过滤器
监狱
配置文件,但它应该与hapi一起工作,不会出现任何问题

特别是对于hapi,我维护一个npm模块用于速率限制,称为它有一个hapi插件,但除非您需要一个适当的速率限制(您应该为登录、会话和其他令牌设置),否则fail2ban在这种情况下可能是一个更好的选择

一般来说,蜂蜜罐并不难实现,但与任何相关的解决方案一样,你应该考虑谁是你潜在的攻击者,你想保护什么。 一般来说,蜜罐主要用于通知现有违约或即将违约。虽然它们也可以用来触发锁定,但你从它们那里得到的主要好处是,一旦出现漏洞,但在攻击者有足够的时间滥用系统之前(你不想在两个月后发现漏洞,因为你的站点已被破坏,所有有价值的数据都已被获取)

关于蜜罐的一些想法可以-

  • 有一个“管理员”用户,密码相对平均(随机8个字符),但当该用户成功登录时,没有任何权限通知真正的管理员

    请注意,即使您知道攻击者做错了什么,您也不会在首次尝试登录时锁定他(他将获得不同的ip并使用另一个帐户)。但如果他真的登录了,也许你的登录逻辑有错误?也许密码重置被破坏了?也许利率限制不起作用?还有更多的信息需要跟进

    现在你知道你有一个半能干的攻击手,也许试着看看他想做什么,也许你会知道他是谁,或者他的最终目标是什么(非常有价值,因为他可能会再试一次)

  • 找到你不想让用户玩的敏感地方,并在其中植入一些。这可能只是一个文件,它与您在系统上的所有其他上载一起被站点访问,它可能是您的开发机器上的AWS creds,它可能是一个来自您的管理面板的链接,上面写着“技术文档”。这个想法是,普通用户不应该关心或访问此文件,但攻击者会发现它们太容易被忽略。一旦他们碰到一个,你就知道这个区域已经被破坏了,你需要开始封锁和调查

记住,在实施任何安全措施之前,试着想想你希望谁攻击你,蜂蜜罐可能是你应该考虑的最后一个安全方案之一,还有很多更常见和最基本的安全问题需要首先解决。(关于一般web应用程序安全的最佳实践和事实标准的列表不胜枚举)