Come posso difendermi da richieste GET dannose?

5

Il mio server viene colpito da una varietà se richieste come le seguenti:

Started GET "/key/values"
ActionController::RoutingError (No route matches [GET] "/key/values")

Started GET "/loaded"
ActionController::RoutingError (No route matches [GET] "/loaded")

Started GET "/top/left"
ActionController::RoutingError (No route matches [GET] "/top/left")

Come dovrei difendermi da tali attacchi? Queste richieste rallenteranno il mio sito anche se non ricevono una risposta?

    
posta MicFin 28.07.2015 - 07:24
fonte

3 risposte

10

How can I defend against malicious GET requests?

Queste richieste non sembrano davvero dannose. Almeno in base alla descrizione, non causano alcun danno, ad esempio l'esecuzione di codice indesiderato, l'iniezione SQL o attacchi simili. Hanno solo bisogno di risorse da elaborare. Quello che vedi è ciò che ogni operatore di un server Web può vedere nei file di log: molte richieste che non corrispondono a nulla esistente sul server perché qualcuno sta eseguendo la scansione di Internet e sta cercando sistemi vulnerabili. Inoltre, queste richieste possono anche essere causate da modifiche al tuo sito in cui gli URL precedentemente validi non sono più validi, ma i robot ricordano ancora i vecchi URL e li controllano per gli aggiornamenti.

Se queste richieste ti infastidiscono, puoi cambiare la tua applicazione per ignorare tali richieste (e non registrarle come errori) o filtrare queste richieste da un server / reverse proxy davanti alla tua applicazione.

Sebbene il firewall per applicazioni Web suggerito (WAF) possa filtrare tali richieste, considererei eccessivo installarne uno solo per filtrare queste richieste innocue. Ma se usato correttamente (ossia adattato all'applicazione anziché solo installato e dimenticato come spesso accade) può essere un utile livello di protezione. E anche se il fail2ban suggerito può essere d'aiuto, è utile solo se queste richieste provengono solo da pochi singoli indirizzi IP, il che spesso non avviene. Inoltre un affidamento su fail2ban può bloccare utenti validi poiché i link non validi al tuo sito possono essere inclusi in mail o altri siti Web e quindi l'indirizzo IP di origine della richiesta non è l'autore dell'attacco ma un innocente che è stato indotto a visitare questo link. Ma fail2ban vede solo l'IP di origine e il messaggio di errore e quindi blocca l'utente innocente.

Quello che dovresti fare è assicurarti che la tua applicazione non sia vulnerabile e OWASP sia una buona risorsa per imparare a proteggere le applicazioni web. Se la tua applicazione è sicura, non ha problemi a gestire questo tipo di richieste. Tuttavia, per limitare l'utilizzo delle risorse da richieste non valide è necessario assicurarsi che tali richieste vengano rilevate e rifiutate il prima possibile nell'applicazione, vale a dire che sarebbe male se le richieste non valide attivassero anche query costose su un database.

    
risposta data 28.07.2015 - 09:34
fonte
5

In concomitanza con ciò che @SakamakiIzayoi ha suggerito:

Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs that show the malicious signs -- too many password failures, seeking for exploits, etc. Generally Fail2Ban is then used to update firewall rules to reject the IP addresses for a specified amount of time, although any arbitrary other action (e.g. sending an email) could also be configured. Out of the box Fail2Ban comes with filters for various services (apache, courier, ssh, etc).

Fonte .

    
risposta data 28.07.2015 - 08:39
fonte
3

La soluzione di difesa più semplice sarebbe installare un firewall per applicazioni Web.

Puoi trovare descrizioni dettagliate su di loro su OWASP e Wikipedia .

Dubito che le richieste rallenterebbero il tuo sito. Molto probabilmente gli aggressori chiederanno gli articoli esistenti in quanto sarebbe molto più efficace nello sprecare le risorse del tuo server web.

    
risposta data 28.07.2015 - 08:05
fonte

Leggi altre domande sui tag