Arresta richieste di grandi dimensioni al mio server (TOR)

19

In questo momento sono stato attaccato dai nodi Tor che stanno facendo 404 richieste al mio server HTTP. È da un IP, ma quando uso la regola di iptables DROP, ricomincia da un altro IP in pochi secondi.

Ha iniziato a chiedere richieste alla cartella cgi-bin, ma ora sta facendo richieste nella mia cartella immagini. Quindi, in base alla mia indagine, è uno strumento collegato al TOR in cerca di qualcosa e in questo momento mi fa impazzire.

Ho provato fail2ban, mod_evasive e mod_security, ma quei programmi si attivano quando l'altra parte cerca una cosa o sbatte contro la porta di una porta. Ma questo strumento sta esaminando ogni richiesta per un file diverso.

45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgsupport.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppexg.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppantivirussoft.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgwin95.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgnws.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgroundcorner.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppcdl.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/yellowbuy3.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgvirusinfo.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/escan4.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgredline.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgonlinescan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/ram1.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgmanualscan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/userdefine.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/betterinterface.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"

Si vede che sta cercando nelle immagini delle cartelle uno specifico file .php, ma ad ogni richiesta sta cercando un diverso file php. Allora, cosa diavolo sta facendo questa cosa?

Anche questo mangia la mia larghezza di banda, quindi sono davvero disperato di ciò che devo fare ora. Qualcuno ha un'idea su come posso bloccarlo?

Configurazione del server: CentOS 7 (OpenVZ, quindi sono bloccato con un kernel in cui ipset non funziona) con Apache.

    
posta Alex 26.12.2016 - 03:32
fonte

5 risposte

17

Potresti eliminare i pacchetti dai nodi tor tutti insieme se ti piace con le tabelle ip. L'elenco dei nodi tor può essere trovato su:

Rif 1: link
Rif. 2: link

Ecco una bash one liner per bloccare tutto il traffico da tor al tuo server web. Attualmente ci sono circa 2000 nodi tor online che supportano la porta 80. Quindi inserirai un bel po 'di iptable che non si tratta di una soluzione a lungo termine, ma dovrebbe fermare l'attacco.

wget "https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8&port=" -O /tmp/ip.lst && sed -i -e '1,3d' /tmp/ip.lst && for i in $(cat /tmp/ip.lst); do iptables -A INPUT -p tcp -s $i --match multiport --dports 80,443 -j DROP; done
    
risposta data 26.12.2016 - 06:02
fonte
6

Puoi eliminare pacchetti contenenti string specifiche e tutte le richieste contengono: "HEAD // images / 'string.

Suggerisco la seguente regola per ora e dopo è possibile rimuoverlo:

iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string 'HEAD //images/' -j DROP

    
risposta data 26.12.2016 - 05:26
fonte
3

Se il tuo modello di sicurezza consente il passaggio del traffico a terzi, la soluzione più semplice e più efficace potrebbe essere quella di far fronte all'applicazione con Cloudflare . Al momento della stesura di questo, Cloudflare blocca praticamente tutte le connessioni Tor a meno che non risolvano una pagina CAPTCHA e dispongano anche di Web Application Firewall che è possibile configurare per filtrare ulteriormente il traffico prima di raggiungere il server in modo che l'utente malintenzionato non consumi la larghezza di banda del server.

Altrimenti potresti avere un po 'di fortuna configurando fail2ban . fail2ban è un software che mette il blocco IP temporaneo modificando la politica del firewall del sistema operativo quando qualcuno fallisce l'autenticazione troppe volte. Nel tuo caso, l'autenticazione fallita sarebbe qualcuno che mantiene 404-ing.

    
risposta data 26.12.2016 - 07:39
fonte
3

Il mio server web lo ha sempre, e dopo mesi di esami, vedo che ci sono centinaia di cose diverse che alla fine chiederanno.

Una delle migliaia di bot network sta mappando il tuo apache per i componenti vulnerabili. Sperando di essere fortunato, con una componente comune che sa come sfruttare. Ottengo sempre bot che cercano phpmyadmin. Insieme a dozzine di altre cose.

Poi, naturalmente, se si diventa fortunati, alla fine distribuiranno ulteriori cose cattive in modo che possano usare il computer per le loro nefande imprese.

Virtualizza con qualcosa che puoi installare un kernel moderno, così puoi usare ipset. Forse KVM, la finestra mobile usa il kernel integrato, quindi non va bene.

Ci sono probabilmente 10 bot di migliaia di computer in modo da non essere in grado di bloccarlo efficacemente, specialmente non senza ipset.

Anche se utilizzi TOR, puoi accedere a un numero ancora maggiore di indirizzi IP da persone a caso.

Opzione # 2

Sostituisci il file HTTP_NOT_FOUND.html.var trovato, almeno sul mio sistema, / usr / share / apache2 / error

Potresti creare un file HTTP_NOT_FOUND.html.var.php quindi modificare il file apache, / etc / apache2 / errors.conf, in modo che punti a detto file.

Quindi il primo tentativo sarebbe l'ultimo.

    
risposta data 26.12.2016 - 05:15
fonte
0

Per prima cosa, non farti prendere dal panico e assicurati di avere un asciugamano con te!

Dalle informazioni che hai fornito, non penso che tu sia stato attaccato, ma solo scansionato. Al giorno d'oggi, questo è un comportamento "normale" e qualcosa che probabilmente vedrai regolarmente. Pensalo come qualcuno che ti incastra la giuntura, cercando una finestra aperta o una porta aperta. Stanno solo cercando di capire se c'è un modo semplice che possono usare per ottenere una voce.

Ci sono molti script e strumenti là fuori, come botnet che scansionano internet alla ricerca di sistemi potenzialmente vulnerabili. Se questo preludio a qualcosa di più serio è quasi impossibile da determinare (ancora). Molto dipenderà dal fatto che il tuo sito abbia un aspetto prezioso e fino a che punto il tuo sistema sia aggiornato.

  • Assicurati che il tuo software sia aggiornato e aggiornato
  • Assicurati di aver disabilitato tutti i servizi in esecuzione sul tuo server che non ti servono / usi
  • Assicurati che la configurazione del tuo server web sia corretta, ovvero che abbia solo le funzionalità abilitate che usi, abbia cose standard, come un robots.txt correttamente configurato, non ha abilitato nessun modulo che non ti serve ecc.

Hai detto che questo traffico sta uccidendo la tua larghezza di banda. Questo mi fa sospettare che tu stia eseguendo il server web su un sistema con una larghezza di banda ridotta, dal momento che queste richieste sono abbastanza leggere, ovvero solo richieste HEAD. Se questo è il caso, forse hai bisogno di ripensare se l'esecuzione del server è in realtà una buona idea.

Quando metti un server su Internet, stai pubblicando qualcosa che è pubblico, stai dicendo "Ehi, ho un server qui, vieni a dare un'occhiata" . Devi essere preparato per quando arriverà qualcuno, e non hai il controllo su chi lo fa. Cercare di bloccare questo tipo di traffico ti farà impazzire: se lo lasci, finirai per giocare a 'wak-a-mole'. Non preoccuparti nemmeno di cercare di bloccare questo livello di traffico perché, appena lo fai, probabilmente otterrai qualcosa di simile da un altro indirizzo IP. Finirai per far girare le ruote scrivendo filtri e regolando i firewall.

In questi giorni configurare un server e metterlo sul web è quasi un compito banale. Tuttavia la gestione di tali sistemi non è, e qualcosa che devi considerare attentamente. Metterlo su un server alla fine di un collegamento DSL domestico o di piccole imprese o simili è quasi sempre una cattiva idea. Probabilmente avrà un impatto sulla larghezza di banda, richiederà spesso più tempo per l'amministrazione di quanto ci si aspetti ed è improbabile che l'infrastruttura sottostante sia necessaria per fornire un servizio affidabile e affidabile.

Il mio suggerimento sarebbe quello di considerare l'hosting del tuo servizio web con uno dei numerosi servizi di hosting disponibili. Esiste una grande varietà di scelte e quasi sicuramente troverai qualcosa che soddisfi le tue esigenze da un'infrastruttura di livello basso come un servizio (IaaS), fino alla piattaforma come servizio (PaaS) e Software as a Service (SaaS). Ogni servizio offre diversi livelli di flessibilità e costi variabili tra cui è possibile scegliere. Sarai in grado di trovare qualcosa con il giusto equilibrio di costi e caratteristiche con una ricerca sufficiente.

Se non vuoi pagare per ospitare il tuo servizio, devi davvero prendere in considerazione ciò che stai facendo. Ci sono costi associati a tutte le forme di hosting. La differenza è il modo in cui tali costi vengono assorbiti: o si paga con denaro o si paga con il tempo e le proprie risorse.

    
risposta data 29.12.2016 - 22:21
fonte

Leggi altre domande sui tag