2013-02-07 4 views
10

Sono in procinto di scrivere un server di chat web altamente scalabile basato su browser utilizzando nodejs. Il concetto in questione è semplice: prima controlla il browser per il supporto websocket. Se non supportato o altrimenti non è compatibile con le specifiche del server, si limita semplicemente a eseguire il downgrade con garbo al tradizionale polling lungo.server nodejs contro gli attacchi DOS

Approfittando della sua altamente evented modello di I/O, non ho potuto trovare qualsiasi altro quadro là fuori finora tutto bene e in forma come nodejs per questo tipo di lavoro. Tuttavia, ho un problema relativo agli attacchi DOS per i quali ho deciso di trovare una soluzione semplice. Tuttavia, non sono così sicuro se sarebbe il modo più ideale per combattere contro quei massicci attacchi di inondazioni.

quello che ho intenzione fare è - se 50 richieste o approfondimenti, provenienti da un unico indirizzo IP, colpisce i server all'interno di un determinato periodo di tempo (diciamo 1 secondo), poi negare ogni ulteriore richiesta di tale IP fino a quella specifica l'intervallo di tempo si interrompe e così via.

Sta andando tutto bene?

+0

+1 - Forse non ho guardato ma nessuno sembra aver toccato molto il problema degli attacchi Node DoS. – Bojangles

+0

Una cosa che ho scoperto è molto utile è utilizzare la funzione setTimeout per ridurre i timeout su tutte le connessioni in entrata e in uscita. Il valore predefinito è due minuti. Se qualcosa va storto, sono due minuti che devi mantenere le risorse di connessione quando devi semplicemente buttarle via. 10-20 secondi funziona molto meglio. – download

risposta

5

Questo non riguarda l'attacco DDOS - Distributed Denial of Service - dove vengono utilizzati molti IP e quando è necessario continuare a servire alcune macchine che si trovano nello stesso firewall delle macchine coinvolte nell'attacco.

Spesso macchine utilizzate in DDOS sono macchine zombie che sono stati presi in consegna. Quando inizia un DDOS contro un target di grandi dimensioni, la limitazione per IP può mettere al bando tutte le macchine dalla stessa LAN con firewall. Ciò può causare PR davvero pessime per le grandi aziende quando i computer, ad esempio, il New York Times sono infettati e utilizzati nel DDOS, e i giornalisti di Times controllano se il sito Web dell'azienda è inattivo e vengono bloccati, per segnalare che l'attacco ha avuto molto più successo di quanto non fosse in realtà.

di continuare a fornire il servizio a fronte di un DDOS, si ha realmente bisogno per bloccare le richieste sulla base di elementi comuni della richiesta stessa, non solo IP. security.se potrebbe essere il miglior forum per consigli specifici su come farlo.

+0

In realtà, il server è specifico dell'origine, cioè qualsiasi richiesta proveniente da un dominio diverso da quello che è già specificato nel server, sarà completamente negata. Se questo significasse qualcosa! – spaceman12

+0

@ spaceman12, Potresti ampliare ciò che intendi per "specifico dell'origine"? Vuoi dire che il server rifiuta già le richieste non da IP autorizzati di gruppo e sei preoccupato per la sovversione o il malfunzionamento di quelle macchine? –

+0

di 'origine specifica', ciò che intendo in realtà è poiché si tratta di un'applicazione web basata su browser, il server è scritto con l'intento di servire solo alla richiesta proveniente da un dominio particolare (origine nell'intestazione). Ad esempio, potrei scegliere di servire solo a quelle richieste provenienti da stackoverflow.com e ignorarne altre. – spaceman12