处理/阻止潜在的恶意请求(AWS,Node.js)

我有一个运行在aws上的服务器,它负责平衡运行node.js服务器的一些ec2实例。 安全组被设置为只有LB可以在HTTP端口上击中它们。

我正在拖拽一些日志文件,并看到一堆(每次50个左右,看起来有点周期性)请求/manager/html – AFAIK这看起来像试图揭露我的应用程序中的漏洞或获得访问数据库某种经理。

我的问题是:

  • 我是被定位的还是这些随机爬虫? 这是一个甚至还没有推出的服务,所以它是绝对晦涩的。 关于这项服务有一些新闻,所以一个人知道我们的域名是可行的,但是这个子域名并没有公布。

  • 有没有共同的惯例不允许这些types的请求打我的实例? 最好是,我可以在我的LB中configuration某种频率或黑名单,而不会有这些types的请求碰到一个实例。 不知道如何检测恶意vs正常stream量。

  • 我应该在我的ec2实例上运行本地代理来避免这种types的事情? 是否有任何现有的node.js解决scheme可以拒绝在应用程序级别的请求? 这是一个坏主意吗?

  • 奖励:如果我要logging这些请求的来源,那么这些信息是否有用? 我应该尝试去stream氓,追捕起源,并发送一些伤害他们的方式? 如果是单一来源的,我应该使用机器杀死原始IP吗? (我意识到这很愚蠢,但可能会启发一些有趣的答案)。

目前这些要求并不影响我,他们得到401或404,而且对其他客户几乎没有影响。 但是,如果这是规模上升,我有什么select?

过去我们也面临类似的问题,我们采取了一些预防措施来制止这种攻击,虽然不能保证完全阻止,但是在减less这种攻击方面却performance出了很大的措施。

  1. http://uksysadmin.wordpress.com/2011/03/21/protecting-ssh-against-brute-force-attacks/
  2. http://www.prolexic.com/knowledge-center-white-paper-ddos-mitigation-incident-response-plan-playbook.html
  3. https://serverfault.com/questions/340307/how-can-i-prevent-a-ddos-attack-on-amazon-ec2

希望这可以帮助。

有太多的随机自动化请求正在制作中,即使我托pipe了一个nodejs服务器,他们也尝试使用cgi和phpmyadmin / wordpressconfiguration。 您可以对NodeJS服务器和ssh fail2ban使用基本的限速技术(redis-throttle)[https://npmjs.org/package/redis-throttle]来保护自己免受简单的DoS攻击。

自动请求不能造成伤害,除非NodeJS或者库有你所知的缺陷,所以你应该总是在整个服务器上进行input和安全检查。 如果你编码好,你不应该担心。 (不要将错误转储给用户,清理input等)

你可以login你的401和404一个星期,并通过你的LB过滤最常见的。 如果你不是一个好莱坞制片人或打击恐怖分子,狩猎知识产权和来源不会帮助你,因为你的问题并不那么重要,而且最重要的是这些请求主要来自僵尸networking。

考虑在应用程序服务器前运行像Varnish这样的代理caching。 使用它的VCL来允许只访问你定义的URI并拒绝其他的东西,允许GET但阻止PUT和POST等等。也可以用来过滤你返回的http响应头。 这将让你掩盖你的node.js服务器为Apache例如。 许多人在networking上实现这一点。