2013-12-15 15 views
6

Ho un server in esecuzione su aws - è carico bilanciato per alcune istanze di ec2 che eseguono i server node.js. I gruppi di sicurezza sono impostati in modo che solo il LB possa colpirli sulla porta HTTP.Gestione/prevenzione di richieste potenzialmente dannose (AWS, Node.js)

Stavo tagliando alcuni file di registro e ho visto un gruppo (circa 50 alla volta, apparentemente un po 'periodicamente) di richieste a /manager/html - AFAIK questo sembra un tentativo di esporre una vulnerabilità nella mia app o di accedere ad un gestore di database di qualche tipo.

Le mie domande sono:

  • Am I presi di mira o sono questi crawler casuali? Questo è su un servizio che non è ancora stato lanciato, quindi è decisamente oscuro. C'è stato un po 'di stampa sul servizio, quindi è possibile che una persona sia a conoscenza del nostro dominio, ma questo sottodominio non è stato reso pubblico.

  • Esistono convenzioni comuni per non consentire a questi tipi di richieste di colpire le mie istanze? Preferibilmente, sarei in grado di configurare una sorta di frequenza o lista nera nel mio LB, e mai questi tipi di richieste colpiscono un'istanza. Non so come rilevare il traffico malevolo rispetto al normale.

  • Devo eseguire un proxy locale sulle mie istanze ec2 per evitare questo tipo di cose? Esistono soluzioni node.js esistenti che possono semplicemente rifiutare le richieste a livello di app? È una cattiva idea?

  • Bonus: se dovessi registrare l'origine di queste richieste, tali informazioni sarebbero utili? Dovrei cercare di diventare un ladro e dare la caccia all'origine e mandare un po 'di dolore? Devo essere in grado di mandare in mega l'IP di origine se è una singola origine? (Capisco che è sciocco, ma può ispirare alcune risposte divertenti).

In questo momento queste richieste non hanno effetto su di me, ottengono 401 o 404 e non hanno praticamente alcun impatto sugli altri client. Ma se questo dovesse salire in scala, quali sono le mie opzioni?

risposta

1

Abbiamo avuto problemi simili in passato e abbiamo adottato alcune misure preventive per fermare tali attacchi, anche se non può garantire di fermarli completamente ma ha mostrato misure significative nella riduzione di tali attacchi.

  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

Spero che questo aiuti.

1

Considerare l'esecuzione di una cache proxy come Varnish davanti ai server delle app. Usa la sua VCL per consentire l'accesso solo all'URI che definisci e rifiuta tutto, permetti il ​​GET ma blocca PUT e POST, ecc ... Può anche essere usato per filtrare le intestazioni delle risposte http che si ritornano. Questo ti permetterebbe di mascherare il tuo server node.js come apache, per esempio. Molti tuts in rete per implementare questo.

Problemi correlati