Un modo per prevenire attacchi DoS non distribuiti a livello di rete?

7

Ho una macchina DigitalOcean Ubuntu 16.04 con Bash come shell principale, Nginx, PHP-FPM e MySQL come ambiente server, Certbot per TLS e WordPress per applicazioni web.

  • Proteggo da MITM con TLS.
  • Proteggo da SSH e applicazione BFA con SSHGuard e WordFence.
  • Proteggo da Backdoors e da iniezioni DB (come Iniezioni SQL ) con varie politiche come l'utilizzo minimo di moduli, forme semplici e unificate (e captcha e honeypot se necessario) e aggiornamenti automatici tramite unattended-upgrades e WP-CLI per WordPress.
  • Se non sbaglio, WordFence protegge anche da uno o più tipi di attacchi DoS di livello applicazione .

Attualmente non vedo alcun motivo per cui i siti web che ospito debbano essere attaccati in un Distributed DoS (per Ad esempio, non considero un'organizzazione presa di mira da un'altra organizzazione).

E tuttavia, temo di DoS in generale; in particolare di un DoS a livello di rete da un singolo computer .

La mia domanda

Quale sarà il modo migliore per monitorare e respingere qualsiasi attacco semplice (per esempio una singola macchina) di un DoS a livello di rete?

Preferirei non utilizzare strumenti esterni come CloudFlare poiché le loro norme possono cambiare e possono improvvisamente costare denaro o cambiare i prezzi.

Idealmente, vorrei installare un'utilità Linux che funzioni automaticamente, "così com'è", monitorando e respingendo gli attaccanti da iptables (o nftables in futuro ) ma ho l'impressione che tale strumento non sia disponibile con la tecnologia attuale. AGGIORNAMENTO PER QUESTO PASSAGGIO: Sembra che tale strumento, se esistesse, non sarebbe comunque sufficiente perché ho bisogno di uno strumento a livello di rete al di fuori del sistema operativo (uno strumento che DigitalOcean o qualsiasi provider di hosting simile dovrebbe fornire , a mio parere, e che sarebbe controllabile dalla loro interfaccia / GUI).

    
posta user9303970 30.04.2018 - 17:44
fonte

3 risposte

4

Prima di tutto, user9600383 ha ragione: DDoS è economico e facile da eseguire e hai sbagliato a scartarlo.

Con un attacco a livello di rete, presumo tu intenda un attacco a Livello 3 o inferiore piuttosto che qualcosa che indirizza direttamente il tuo sito / applicazione.

Se proviene da un singolo indirizzo IP che non satura il tuo percorso di rete, puoi impostare Fail2Ban e limiti di velocità. Fail2Ban si prenderà cura dell'abuso del protocollo (come eccessivi tentativi SSL, che possono sprecare larghezza di banda e CPU), ei limiti di velocità ridurranno il traffico IP grezzo.

Tuttavia, se l'autore dell'attacco è in grado di saturare la connessione di rete, si ha un problema molto più grande. L'unico modo per fornire un servizio affidabile è quello di impedire al proprio gestore di rete di bloccare i pacchetti.

Per questo non esiste una soluzione standard e dovresti lavorare con il tuo fornitore di rete per determinare se è possibile persino una soluzione automatizzata . La risposta è spesso "No" in base alla mia esperienza, ma forse offrono un supporto migliore in questi giorni. Sono passati alcuni anni da quando ho lavorato direttamente con loro.

Per un attaccante DoS / DDoS competente, la maggior parte dei siti sono obiettivi facili. L'incapacità di un tipico host web di rispondere in modo significativo a livello di rete fornisce loro un metodo di attacco molto semplice e affidabile.

CloudFlare esiste perché è in grado di rilevare automaticamente un attacco ed eseguire contromisure non disponibili per l'amministratore di un singolo server. Il loro pane e burro è qualcosa che semplicemente non puoi duplicare.

Suggerisco Fail2Ban e / o rate rate come le migliori soluzioni autonome, ma saranno inadeguate contro qualsiasi attaccante decente a metà strada.

    
risposta data 08.05.2018 - 16:25
fonte
5

Un DoS è diverso dalle altre preoccupazioni che hai citato.

Con MiTM, zero è l'unico numero accettabile di attacchi riusciti. Zero è l'unico numero accettabile di iniezioni SQL riuscite. Zero è l'unico numero accettabile di password forzate brute - e perché anche sottoporsi a forzatura brute password, disabilitare completamente le password e whitelist IPs.

Con il DoS ... se si tratta di infrastrutture che supportano i clienti commerciali, quindi, la perdita di richieste transitoria di sicuro costa direttamente denaro. Questa è una metrica che può interessare.

Se il servizio è il migliore, c'è probabilmente un livello di DoS "di successo" che puoi ignorare. C'è una gradazione di accettabilità per il rischio.

Per avere un po 'di assicurazione, puoi applicare i limiti di velocità per-IP a livello di rete, ad es. link e puoi applicare limiti di velocità per-IP a livello di applicazione in nginx , per esempio link o con qualsiasi plug-in di limite di velocità per Wordpress.

Ma poiché è amorfo, distillate la preoccupazione in una metrica che esprime con precisione la distinzione tra prendersi cura e non prendersi cura di voi. Questa misurazione può essere solo un rapporto di un servizio di ping Web che fornisce un punteggio di disponibilità.

    
risposta data 08.05.2018 - 04:19
fonte
5

Non c'è motivo di credere che DDoS non succederà & solo DoS . Un singolo attaccante, in possesso di una botnet è sufficiente. O i motori di ricerca come Shodan aiuteranno un singolo aggressore infuriato a compromettere le macchine remote per lanciare DDoS.

Se non sei chiaro su questo, Google "DDoS utilizza Memcached servers". Potresti leggere gli attacchi Massive DDoS accaduti alcune settimane fa su siti web come Github.

Venendo alla soluzione:

  • Come è già stato suggerito, imporre un limite per IP è un must. Ad esempio, se esegui numerose ricerche Google in un breve periodo di tempo, Google chiederà di risolvere la sfida di ReCaptcha.

  • Non sono sicuro di come funzioni la protezione DDoS di Cloudflare. Ma spesso l'ho visto reindirizzare al sito dopo 5 secondi. Potrebbe essere possibile prevenire DDoS terminando le connessioni che inviano quantità arbitrariamente grandi di dati. [come nel caso dei server Memcached].

  • Valutare le misure di protezione con tutti gli strumenti disponibili. Almeno con strumenti open source come OWASP ZAP, w3af ecc., A volte uno script DoS semplice non distribuito come hulk.py (c'è anche una versione modificata su Sourceforge) potrebbe essere in grado di violare misure di sicurezza complete.

Tuttavia, penso che mentre si imposta un limite per IP sia inevitabile evitare gli script kiddies ecc., da solo non può fornire una protezione sufficiente poiché lo spoofing dell'indirizzo IP non è un lavoro molto grande e la probabilità di DDoS non può essere trascurato.

    
risposta data 08.05.2018 - 12:05
fonte

Leggi altre domande sui tag