Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

Gli attacchi denial-of-service distribuiti, o DDoS in breve, sono diventati un evento comune e un serio mal di testa per i proprietari di risorse Internet in tutto il mondo. Ecco perché la protezione contro gli attacchi DDoS sul sito non è oggi opzione aggiuntiva, ma un must per chi vuole evitare tempi di inattività, enormi perdite e una reputazione danneggiata.

Ti diciamo più in dettaglio cos'è questa malattia e come proteggerti da essa.

Cos'è il DDoS

Distributed Denial of Service o "Distributed Denial of Service" - un attacco a sistema informativo in modo che non fosse in grado di elaborare le richieste degli utenti. In termini semplici, DDoS consiste nel sopprimere una risorsa Web o un server con traffico proveniente da un numero enorme di fonti, rendendolo inaccessibile. Spesso un tale attacco viene effettuato per provocare interruzioni nel funzionamento delle risorse di rete in una grande azienda o organizzazione governativa.

Un attacco DDoS è simile a un'altra comune minaccia web, Denial of Service (DoS). L'unica differenza è che un normale attacco distribuito proviene da un punto, mentre un attacco DDos è più diffuso e proviene da fonti diverse.

L'obiettivo principale di un attacco DDoS è rendere un sito Web inaccessibile ai visitatori bloccandone il funzionamento. Ma ci sono momenti in cui tali attacchi vengono effettuati per distogliere l'attenzione da altre influenze dannose. Un attacco DDoS può, ad esempio, essere eseguito quando un sistema di sicurezza viene compromesso per impossessarsi del database di un'organizzazione.

Gli attacchi DDoS sono venuti all'attenzione del pubblico nel 1999, quando si sono verificati una serie di attacchi ai siti Web di grandi aziende (Yahoo, eBay, Amazon, CNN). Da allora, questo tipo di crimine informatico si è evoluto in una minaccia globale. Secondo gli esperti, negli ultimi anni la loro frequenza è aumentata di 2,5 volte e la potenza massima ha iniziato a superare 1 Tbps. Una società russa su sei è stata vittima di un attacco DDoS almeno una volta. Entro il 2020, il loro numero totale raggiungerà i 17 milioni.

Una piattaforma di hosting con protezione 24 ore su 24 contro i più sofisticati attacchi DDoS.

Motivi degli attacchi DDoS

  1. Animosità personale. Spesso incoraggia gli aggressori ad attaccare società o società governative. Ad esempio, nel 1999, i siti Web dell'FBI sono stati attaccati, causando la loro inattività per diverse settimane. Ciò è accaduto a causa del fatto che l'FBI ha lanciato un raid su larga scala contro gli hacker.
  2. protesta politica. In genere, tali attacchi vengono eseguiti da hacktivisti, specialisti IT con opinioni radicali sulla protesta civile. Un esempio ben noto è una serie di attacchi informatici alle istituzioni governative estoni nel 2007. La loro probabile ragione era la possibilità di demolire il Monumento al Soldato Liberatore a Tallinn.
  3. Divertimento. Oggi, sempre più persone sono dipendenti da DDoS e vogliono cimentarsi. Non è raro che gli hacker principianti organizzino attacchi per divertimento.
  4. Estorsione e ricatto. Prima di lanciare un attacco, l'hacker contatta il proprietario della risorsa e chiede un riscatto.
  5. Concorrenza. Gli attacchi DDoS possono essere ordinati da un'azienda senza scrupoli per influenzare i suoi concorrenti.

Chi sono le potenziali vittime

DDoS può distruggere siti di qualsiasi dimensione, dai normali blog a più grandi corporazioni, banche e altri istituti finanziari.

Secondo una ricerca condotta da Kaspersky Lab, un attacco potrebbe costare a un'azienda fino a 1,6 milioni di dollari. Questo è un grave danno, perché la risorsa Web attaccata non può essere riparata per un po' di tempo, il che causa tempi di inattività.

Molto spesso, siti e server subiscono attacchi DDoS:

  • grandi aziende e agenzie governative;
  • istituzioni finanziarie (banche, società di gestione);
  • servizi di coupon;
  • istituzioni mediche;
  • sistemi di pagamento;
  • media e aggregatori di informazioni;
  • negozi online e imprese di e-commerce;
  • giochi on-line e servizi di giochi di denaro;
  • scambi di criptovalute.

Non molto tempo fa, le apparecchiature connesse a Internet, chiamate collettivamente Internet of Things (IoT), sono state aggiunte alla triste lista delle frequenti vittime di attacchi DDoS. maggior parte grande slancio la crescita in questo settore è dimostrata dagli attacchi informatici volti a interrompere il lavoro dei registratori di cassa online grandi magazzini o centri commerciali.

Meccanismo funzionante

Tutti i server Web hanno i propri limiti sul numero di richieste che possono elaborare contemporaneamente. Inoltre, c'è un limite alla larghezza di banda del canale che collega la rete e il server. Per aggirare queste restrizioni, gli aggressori creano rete di computer con software dannoso, chiamato "botnet" o "rete di zombi".

Per creare una botnet, i criminali informatici distribuiscono un trojan tramite e-mail, social network o siti web. I computer che fanno parte di una botnet non hanno una connessione fisica tra loro. Sono uniti solo dal "servire" gli obiettivi del proprietario-hacker.

Durante un attacco DDoS, un hacker invia comandi ai computer zombi "infetti" e questi iniziano ad attaccare. Le botnet generano un'enorme quantità di traffico che può sovraccaricare qualsiasi sistema. I principali "oggetti" per DDoS sono solitamente la larghezza di banda del server, il server DNS e la stessa connessione Internet.

Segni di un attacco DDoS

Quando le azioni degli intrusi raggiungono il loro obiettivo, questo può essere immediatamente determinato da errori nel funzionamento del server o della risorsa ospitata lì. Ma ci sono una serie di segnali indiretti attraverso i quali è possibile scoprire un attacco DDoS anche all'inizio.

  • Il software del server e il sistema operativo si avviano frequentemente e chiaramente fallire- blocco, spegnimento errato, ecc.
  • capacità hardware server, che differisce nettamente dagli indicatori giornalieri medi.
  • Rapido aumento in arrivotraffico in una o più porte.
  • molte volte duplicare azioni dello stesso tipo client su una risorsa (accesso al sito, download di un file).
  • Quando si analizzano i registri (registri delle azioni dell'utente) di un server, firewall o dispositivi di rete rivelato tante richieste dello stesso tipo da fonti diverse a uno porto o servizio. Dovresti essere particolarmente cauto se il pubblico delle richieste differisce nettamente dal target del sito o del servizio.

Classificazione dei tipi di attacchi DDoS

Protocollo offensivo (livello di trasporto)

Un attacco DDoS è diretto al livello di rete di un server o di una risorsa Web, motivo per cui viene spesso definito attacco a livello di rete o di trasporto. Il suo scopo è causare un sovraccarico del tablespace su un firewall con un registro di sicurezza integrato (firewall), su una rete centrale o su un sistema di bilanciamento del carico.

Il metodo DDoS più comune a livello di trasporto è alluvione della rete, la creazione di un enorme flusso di richieste vuote a diversi livelli, che il nodo ricevente non può gestire fisicamente.

Generalmente servizio di rete applica la regola FIFO, secondo la quale il computer non procede al servizio della seconda richiesta finché non ha elaborato la prima. Ma durante un attacco, il numero di richieste aumenta così tanto che il dispositivo non dispone di risorse sufficienti per completare la prima richiesta. Di conseguenza, l'alluvione satura il più possibile la larghezza di banda e ostruisce strettamente tutti i canali di comunicazione.

Tipi comuni di inondazioni di rete

  • Inondazione HTTP- una massa di messaggi HTTP regolari o crittografati viene inviata al server attaccato, intasando i nodi di comunicazione.
  • Inondazione dell'ICMP- la botnet dell'attaccante sovraccarica la macchina host della vittima con richieste di servizio, alle quali è obbligata a dare eco risposte. Un esempio particolare di questo tipo di attacco è Pinondazione o un attacco Smurf, quando i canali di comunicazione sono pieni di richieste ping utilizzate per verificare la disponibilità di un nodo di rete. È proprio a causa della minaccia di ICMP flooding che gli amministratori di sistema spesso bloccano completamente la possibilità di effettuare richieste ICMP utilizzando un firewall.
  • SYN alluvione- l'attacco colpisce uno dei meccanismi fondamentali del protocollo TCP, noto come principio del "triplo handshake" (l'algoritmo di "richiesta-risposta": pacchetto SYN - pacchetto SYN-ACK - pacchetto ACK). La vittima è bombardata da false richieste SYN senza risposta. Il canale utente è intasato da una coda di connessioni TCP provenienti da connessioni in uscita in attesa di un pacchetto ACK di risposta.
  • Inondazione UDP- porte casuali sulla macchina host della vittima sono inondate di pacchetti UDP, le cui risposte sono sovraccaricate risorse di rete. Viene chiamata una forma di UDP flooding che prende di mira un server DNS Inondazione DNS.
  • MAC alluvione- l'obiettivo è l'apparecchiatura di rete, le cui porte sono intasate da flussi di pacchetti "vuoti" con indirizzi MAC diversi. Per proteggersi da questo tipo di attacco DDoS, gli switch di rete sono configurati con la convalida e il filtraggio degli indirizzi MAC.

Attacchi a livello di applicazione (livello di infrastruttura)

Questa variazione viene utilizzata quando è necessario sequestrare o disabilitare le risorse hardware. L'obiettivo dei "predoni" può essere sia fisico che RAM o tempo del processore.

Non è necessario sovraccaricare la larghezza di banda. È sufficiente sovraccaricare il processore della vittima o, in altre parole, occupare l'intero tempo di elaborazione.

Tipi di attacchi DDoS a livello di applicazione

  • Invio "pesanteX"Pacchetti arrivando direttamente al processore. Il dispositivo non è in grado di gestire calcoli complessi e inizia a bloccarsi, impedendo così ai visitatori di accedere al sito.
  • Usando lo script, il server è pieno contenuto spazzatura- file di registro, "commenti degli utenti", ecc. Se Amministratore di sistema non ha impostato un limite sul server, un hacker può creare enormi quantità di file che riempiono l'intero disco rigido.
  • Problemi con sistema di quote. Alcuni server utilizzano un'interfaccia CGI (Common Gateway Interface) per comunicare con programmi esterni. Quando ottiene l'accesso a CGI, un utente malintenzionato può scrivere il proprio script, che utilizzerà parte delle risorse, ad esempio il tempo del processore, nei suoi interessi.
  • Controllo incompleto dati dei visitatori. Porta anche a un uso continuo o addirittura infinito delle risorse del processore fino al loro esaurimento.
  • Attacco del secondo tipo. Provoca un falso allarme nel sistema di protezione, che può chiudere automaticamente la risorsa dal mondo esterno.

Attacchi a livello di applicazione

Un attacco DDoS a livello di applicazione sfrutta un difetto di programmazione che crea una vulnerabilità del software ad un attacco esterno. A questa specie può essere attribuito a un attacco così comune come "Ping of death" (Ping of death) - invio di massa al computer della vittima di pacchetti ICMP di maggiore lunghezza, causando un overflow del buffer.

Ma gli hacker professionisti raramente ricorrono a un metodo così semplice come il sovraccarico della larghezza di banda. Per attaccare i sistemi complessi delle grandi aziende, cercano di comprendere appieno la struttura di sistema del server e scrivono un exploit: un programma, una catena di comandi o parte del codice del programma che tenga conto della vulnerabilità del software della vittima e sia utilizzato per attaccare il computer.

Attacchi DNS

  1. Il primo gruppo è rivolto a vulnerabilitàe dentroDI Server DNS. Questi includono tipi comuni di criminalità informatica come attacchi zero-day e Fast Flux DNS.
    Uno dei tipi più comuni di attacchi DNS è chiamato DNS-Spoofing ("DNS-spoofing"). Durante questo, gli aggressori sostituiscono l'indirizzo IP nella cache del server, reindirizzando l'utente a una pagina falsa. Al momento della transizione, il criminale ottiene l'accesso ai dati personali dell'utente e può utilizzarli nel proprio interesse. Ad esempio, nel 2009, a causa dello spoofing del DNS, gli utenti non hanno potuto accedere a Twitter per un'ora. Questo attacco era di natura politica. Gli aggressori installati pagina iniziale rete sociale Gli avvertimenti degli hacker iraniani relativi all'aggressione americana
  2. Il secondo gruppo sono gli attacchi DDoS che portano a Tempo di inattività del DNS-server. Se falliscono, l'utente non sarà in grado di accedere alla pagina desiderata, poiché il browser non troverà l'indirizzo IP inerente a un determinato sito.

Prevenzione e protezione dagli attacchi DDoS

Secondo Corero Network Security, più di ⅔ di tutte le aziende del mondo sono colpite ogni mese da attacchi di "negazione dell'accesso". E il loro numero raggiunge i 50.

I proprietari di siti che non forniscono protezione del server dagli attacchi DDoS possono non solo subire enormi perdite, ma anche ridurre la fiducia dei clienti e la competitività sul mercato.

Il modo più efficace per proteggersi dagli attacchi DDoS è attraverso i filtri installati dal provider sui canali Internet ad alta larghezza di banda. Eseguono un'analisi sequenziale di tutto il traffico e identificano attività o errori di rete sospetti. I filtri possono essere installati sia a livello di router che con l'ausilio di dispositivi hardware speciali.

Metodi di protezione

  1. Anche nella fase di scrittura del software, devi pensare alla sicurezza del sito. Completamente controllare il software per bug e vulnerabilità.
  2. Regolarmente aggiornare il software, e fornire anche l'opportunità di tornare a vecchia versione quando si verificano problemi.
  3. Seguire restrizione di accesso. I servizi relativi all'amministrazione dovrebbero essere completamente chiusi dall'accesso di terze parti. Proteggi il tuo account amministratore con password complesse e cambiale frequentemente. Eliminare tempestivamente gli account dei dipendenti che si licenziano.
  4. Accesso a interfaccia di amministrazione deve essere condotto esclusivamente dalla rete interna o tramite VPN.
  5. Scansiona il sistema per presenza di vulnerabilità. Le vulnerabilità più pericolose vengono regolarmente pubblicate dall'autorevole rating OWASP Top 10.
  6. Fare domanda a firewall dell'applicazione- WAF (Web Application Firewall). Esamina il traffico trasmesso e monitora la legittimità delle richieste.
  7. Utilizzo CDN(Rete per la distribuzione di contenuti). Questa è una rete di distribuzione di contenuti che opera utilizzando una rete distribuita. Il traffico viene ordinato su più server, il che riduce la latenza di accesso dei visitatori.
  8. Controlla il traffico in entrata con liste di controllo degli accessi (ACL), dove verrà specificato l'elenco delle persone che hanno accesso all'oggetto (programma, processo o file) e i relativi ruoli.
  9. Potere bloccare il traffico, che proviene da dispositivi di attacco. Questo viene fatto in due modi: utilizzando firewall o ACL. Nel primo caso viene bloccato un determinato flusso, ma allo stesso tempo gli schermi non riescono a separare il traffico “positivo” da quello “negativo”. E nel secondo vengono filtrati i protocolli minori. Pertanto, non sarà utile se l'hacker utilizza richieste di primaria importanza.
  10. Per proteggersi dallo spoofing DNS, è necessario farlo periodicamente svuota la cache DNS.
  11. Utilizzo protezione dai bot spam- captcha (captcha), intervalli di tempo "umani" per la compilazione di moduli, reCaptcha (casella di controllo "Non sono un robot"), ecc.
  12. Attacco inverso. Tutto il traffico dannoso viene reindirizzato all'aggressore. Aiuterà non solo a respingere l'attacco, ma anche a distruggere il server dell'attaccante.
  13. Posizionamento delle risorse su più server indipendenti. Quando un server si guasta, i restanti forniranno operabilità.
  14. Utilizzo comprovato protezione dell'hardware dagli attacchi DDoS. Ad esempio, Impletec iCore o DefensePro.
  15. Scegli un provider di hosting con cui collabori fornitore affidabile servizi di sicurezza informatica. Tra i criteri di affidabilità, gli esperti distinguono: la disponibilità della garanzia della qualità, la protezione contro la gamma più ampia possibile di minacce, il supporto tecnico 24 ore su 24, la trasparenza (accesso del cliente a statistiche e analisi), nonché l'assenza di addebiti per il traffico dannoso .

Conclusione

In questo articolo, abbiamo esaminato cosa significa un attacco DDoS e come proteggere il tuo sito dagli attacchi. È importante ricordare che tali azioni dannose possono disabilitare anche le risorse Web più sicure e più grandi. Ciò comporterà gravi conseguenze sotto forma di enormi perdite e perdita di clienti. Ecco perché proteggere la tua risorsa dagli attacchi DDoS è un compito urgente per tutte le strutture commerciali e le agenzie governative.

Se desideri un livello professionale di protezione contro gli attacchi DDoS, scegli! Monitoraggio costante e supporto tecnico 24 ore su 24.

L'attacco DoS e DDoS è un impatto esterno aggressivo sulle risorse informatiche di un server o postazione di lavoro effettuato con lo scopo di portare quest'ultimo al fallimento. Per guasto, non intendiamo il guasto fisico della macchina, ma l'indisponibilità delle sue risorse per gli utenti coscienziosi: il fallimento del sistema nel servirle ( D eniale o F S servizio, da cui si forma la sigla DoS).

Se un tale attacco viene eseguito da un singolo computer, viene classificato come DoS (DoS), se da più - DDoS (DDoS o DDoS), il che significa "D rilasciato D eniale o F S service" - denial of service distribuito. Successivamente, parleremo del motivo per cui gli aggressori eseguono tali azioni, cosa sono, quali danni causano agli attaccati e come questi ultimi proteggono le loro risorse.

Chi può essere colpito da attacchi DoS e DDoS

I server aziendali di aziende e siti Web sono esposti ad attacchi, molto meno spesso: personal computer individui. Lo scopo di tali azioni, di regola, è lo stesso: infliggere danni economici alla persona attaccata e allo stesso tempo rimanere nell'ombra. IN singoli casi Gli attacchi DoS e DDoS sono una delle fasi dell'hacking del server e mirano a rubare o distruggere informazioni. In effetti, un'azienda o un sito Web appartenente a chiunque può diventare vittima di aggressori.

Un diagramma che illustra l'essenza di un attacco DDoS:

Gli attacchi DoS e DDoS vengono spesso eseguiti su suggerimento di concorrenti disonesti. Quindi, "riempiendo" il sito web di un negozio online che offre un prodotto simile, puoi diventare temporaneamente un "monopolista" e prendere per te i suoi clienti. "Mettendo giù" un server aziendale, puoi interrompere il lavoro di un'azienda concorrente e quindi ridurre la sua posizione sul mercato.

Gli attacchi su larga scala che possono causare danni significativi vengono solitamente eseguiti da criminali informatici professionisti per molto denaro. Ma non sempre. Gli hacker dilettanti nostrani possono attaccare le tue risorse - per interesse e vendicatori tra i dipendenti licenziati e semplicemente quelli che non condividono le tue opinioni sulla vita.

A volte l'impatto viene effettuato a scopo di estorsione, mentre l'attaccante chiede apertamente denaro al proprietario della risorsa per fermare l'attacco.

I server di società statali e organizzazioni note vengono spesso attaccati da gruppi anonimi di hacker altamente qualificati per influenzare i funzionari o provocare proteste pubbliche.

Come vengono eseguiti gli attacchi

Il principio di funzionamento degli attacchi DoS e DDoS è inviare un grande flusso di informazioni al server, che, al massimo (per quanto consentito dalle capacità dell'hacker), carica le risorse di calcolo del processore, memoria ad accesso casuale, intasa i canali di comunicazione o riempie lo spazio su disco. La macchina attaccata non è in grado di far fronte all'elaborazione dei dati in entrata e smette di rispondere alle richieste degli utenti.

Ecco come si presenta il normale funzionamento del server, visualizzato nel programma Logstalgia:

L'efficacia dei singoli attacchi DOS non è molto elevata. Inoltre, un attacco da un personal computer espone l'aggressore al rischio di essere identificato e catturato. Gli attacchi distribuiti (DDoS) effettuati dalle cosiddette reti zombie o botnet forniscono molti più profitti.

Ecco come il sito Norse-corp.com mostra l'attività della botnet:

Una rete zombie (botnet) è un gruppo di computer che non hanno alcun collegamento fisico tra loro. Sono uniti dal fatto che sono tutti sotto il controllo di un aggressore. Il controllo è esercitato attraverso Troiano, che per il momento potrebbe non manifestarsi in alcun modo. Quando esegue un attacco, un hacker ordina ai computer infetti di inviare richieste al sito Web o al server della vittima. E lui, incapace di resistere all'assalto, smette di rispondere.

Ecco come Logstalgia mostra un attacco DDoS:

Qualsiasi computer può unirsi alla botnet. E anche uno smartphone. È sufficiente catturare un Trojan e non rilevarlo in tempo. A proposito, la più grande botnet contava quasi 2 milioni di macchine in tutto il mondo e i loro proprietari non avevano idea di cosa dovessero fare.

Metodi di attacco e difesa

Prima di lanciare un attacco, l'hacker capisce come eseguirlo con il massimo effetto. Se il nodo attaccato presenta diverse vulnerabilità, l'impatto può essere effettuato in direzioni diverse, il che complicherà notevolmente le contromisure. Pertanto, è importante che ogni amministratore di server studi tutti i suoi "colli di bottiglia" e, se possibile, li rafforzi.

alluvione

Flud, dicendo linguaggio semplice, si tratta di informazioni che non portano un carico semantico. Nel contesto degli attacchi DoS / DDoS, un'inondazione è una valanga di richieste vuote e prive di significato di un livello o di un altro che il nodo ricevente è costretto a elaborare.

Lo scopo principale dell'utilizzo del flooding è quello di ostruire completamente i canali di comunicazione, per saturare al massimo la larghezza di banda.

Tipi di fluidi:

  • MAC flood: impatto sui comunicatori di rete (blocco delle porte da parte dei flussi di dati).
  • Inondazione ICMP: inondare la vittima con richieste di eco di servizio utilizzando una rete di zombi o inviando richieste "per conto" dell'host attaccato in modo che tutti i membri della botnet le inviino contemporaneamente una risposta di eco (attacco Smurf). Un caso speciale di ICMP flooding è il ping flooding (l'invio di richieste ping al server).
  • SYN flood: invio di numerose richieste SYN alla vittima, superando la coda di connessione TCP creando un gran numero di connessioni semiaperte (in attesa di conferma da parte del client).
  • UDP flood: funziona secondo lo schema di attacco Smurf, in cui vengono inviati datagrammi UDP anziché pacchetti ICMP.
  • HTTP flood - inondando il server con numerosi messaggi HTTP. Un'opzione più sofisticata è un flusso HTTPS, in cui i dati trasmessi sono pre-crittografati e prima che il nodo attaccato li elabori, deve decrittografarli.


Come proteggersi dalle inondazioni

  • Configura gli switch di rete per convalidare e filtrare gli indirizzi MAC.
  • Limitare o disabilitare l'elaborazione delle richieste echo ICMP.
  • Blocca i pacchetti provenienti da un indirizzo o dominio specifico, il che dà motivo di sospettarlo di inaffidabilità.
  • Imposta un limite al numero di connessioni semiaperte con un indirizzo, riduci il loro tempo di conservazione, allunga la coda delle connessioni TCP.
  • Impedisci ai servizi UDP di ricevere traffico dall'esterno o limita il numero di connessioni UDP.
  • Utilizza CAPTCHA, ritardi e altre tecniche di protezione dai bot.
  • Aumenta il numero massimo di connessioni HTTP, configura la cache delle richieste con nginx.
  • Espandere portata canale di rete.
  • Se possibile, allocare un server separato per l'elaborazione della crittografia (se utilizzata).
  • Creare un canale di backup per l'accesso amministrativo al server in situazioni di emergenza.

Sovraccarico delle risorse hardware

Esistono tipi di flood che influiscono non sul canale di comunicazione, ma sulle risorse hardware del computer attaccato, caricandole al massimo e provocando un blocco o un arresto anomalo. Per esempio:

  • Creazione di uno script che verrà pubblicato su un forum o sito Web in cui gli utenti hanno l'opportunità di lasciare commenti, un'enorme quantità di informazioni testuali prive di significato fino a riempire tutto lo spazio su disco.
  • Allo stesso modo, solo i registri del server riempiranno l'unità.
  • Caricamento di un sito in cui viene eseguita una sorta di trasformazione dei dati inseriti mediante elaborazione continua di questi dati (invio dei cosiddetti pacchetti "pesanti").
  • Caricare il processore o la memoria eseguendo il codice tramite l'interfaccia CGI (il supporto CGI consente di eseguire qualche tipo di programma esterno).
  • Attivazione di un sistema di sicurezza che rende il server inaccessibile dall'esterno, ecc.


Come proteggersi dal sovraccarico delle risorse hardware

  • Aumentare la produttività e il volume delle attrezzature spazio sul disco. Quando il server è in esecuzione in modalità normale, almeno il 25-30% delle risorse dovrebbe rimanere libero.
  • Abilita i sistemi di analisi e filtraggio del traffico prima di inviarlo al server.
  • Limitare l'uso delle risorse hardware da parte dei componenti di sistema (impostare le quote).
  • Memorizza i file di registro del server su un'unità separata.
  • Distribuisci le risorse su più server indipendenti. In modo che se una parte fallisce, le altre rimangono operative.

Vulnerabilità nei sistemi operativi, nel software, nel firmware del dispositivo

Ci sono incommensurabilmente più opzioni per eseguire tali attacchi che con l'uso delle inondazioni. La loro implementazione dipende dall'abilità e dall'esperienza dell'attaccante, dalla sua capacità di trovare errori nel codice del programma e di utilizzarli a proprio vantaggio ea scapito del proprietario della risorsa.

Dopo che un hacker scopre una vulnerabilità (un errore in Software, che può essere utilizzato per interrompere il sistema), dovrà solo creare ed eseguire un exploit, un programma che sfrutti questa vulnerabilità.

Lo sfruttamento delle vulnerabilità non è sempre inteso a causare solo un denial of service. Se l'hacker è fortunato, potrà ottenere il controllo della risorsa e disporre a sua discrezione di questo "dono del destino". Ad esempio, utilizzare per distribuire malware, rubare e distruggere informazioni, ecc.

Metodi per contrastare lo sfruttamento delle vulnerabilità nel software

  • Aggiornamenti tempestivi per l'installazione che chiudono le vulnerabilità dei sistemi operativi e delle applicazioni.
  • Isola dall'accesso di terze parti tutti i servizi progettati per risolvere compiti amministrativi.
  • Utilizzare strumenti per il monitoraggio continuo del funzionamento del sistema operativo del server e dei programmi (analisi comportamentale, ecc.).
  • Rifiuta i programmi potenzialmente vulnerabili (gratuiti, scritti da te, aggiornati raramente) a favore di quelli comprovati e ben protetti.
  • Utilizzare mezzi già pronti per proteggere i sistemi dagli attacchi DoS e DDoS, che esistono sia sotto forma di sistemi hardware che software.

Come determinare se una risorsa è stata attaccata da un hacker

Se l'attaccante è riuscito a raggiungere l'obiettivo, è impossibile non notare l'attacco, ma in alcuni casi l'amministratore non può determinare esattamente quando è iniziato. Cioè, dall'inizio di un attacco a sintomi evidenti, a volte passano diverse ore. Tuttavia, durante l'impatto latente (fino a quando il servitore non si "sdraia"), sono presenti anche alcuni segni. Per esempio:

  • Comportamento innaturale delle applicazioni server o sistema operativo(si blocca, si blocca, ecc.).
  • Il carico su processore, RAM e memoria aumenta notevolmente rispetto al livello iniziale.
  • Il volume di traffico su uno o più porti aumenta notevolmente.
  • Ci sono ripetute richieste dei clienti alle stesse risorse (apertura di una pagina del sito, download dello stesso file).
  • Spettacoli di analisi dei registri del server, firewall e dispositivi di rete un gran numero di richieste monotone da vari indirizzi, spesso dirette a un porto o servizio specifico. Soprattutto se il sito è focalizzato su un pubblico ristretto (ad esempio di lingua russa) e le richieste provengono da tutto il mondo. Allo stesso tempo, un'analisi qualitativa del traffico mostra che le richieste non hanno senso pratico per i clienti.

Tutto quanto sopra non è un segno al 100% di un attacco, ma è sempre un motivo per prestare attenzione al problema e adottare adeguate misure protettive.

Si parla molto di attacchi al sito, di hacking, ma non si è parlato dell'argomento DDOS. Oggi correggiamo questa situazione e vi offriamo recensione completa tecnologie per l'organizzazione di attacchi DDoS e strumenti ben noti per eseguire attacchi di hacker.


Puoi visualizzare l'elenco degli strumenti disponibili per gli attacchi DDOS in KALI eseguendo il comando:

kali > /usr/share/exploitdb/platforms/windows/dos


Questo comando mostra il database degli exploit per attaccare i sistemi Windows.

Per visualizzare gli strumenti di attacco DDoS Linux disponibili, immetti il ​​comando:

/usr/share/exploitdb/platforms/Linux/dos.

2.LOIC

Il cannone a ioni ad orbita bassa (LOIC) Forse il programma DDOS più popolare. Può inviare richieste di massa tramite ICMP, protocolli UDP, bloccando così il canale verso il server della vittima. L'attacco LOIC più noto è stato effettuato da Anonymous nel 2009 contro PayPal, Visa, MasterCard come rappresaglia per l'esclusione di WikiLeaks dal sistema di raccolta fondi.

Gli attacchi organizzati utilizzando LOIC possono essere sfruttati bloccando i pacchetti UDP e ICMP apparecchiature di rete fornitori di Internet. È possibile scaricare gratuitamente il programma LOIC stesso sul sito web. Questo strumento per Basamento Windows e lavorare con esso è molto semplice, specifica i siti della vittima e premi un solo pulsante.

2.HOIC

HOIC è stato sviluppato come parte dell'operazione Payback da Praetox dallo stesso team che ha creato LOIC. La differenza fondamentale è che HOIC utilizza il protocollo HTTP e invia un flusso di GET HTTP casuali e Richieste POST. È in grado di attaccare contemporaneamente 256 domini. Puoi scaricarlo da .


3.XOIC

XOIC è un altro strumento DDOS molto semplice. L'utente deve solo impostare l'indirizzo IP della vittima, selezionare il protocollo (HTTP, UDP, ICMP o TCP) e premere il grilletto! Puoi scaricarlo da

5. HULK

6. UDP Flooder

UDP Flooder è all'altezza del suo nome: uno strumento progettato per inviare più pacchetti UDP a un obiettivo. UDP Flooder viene spesso utilizzato negli attacchi DDOS a server di gioco, per disconnettere i giocatori dal server. Il programma è disponibile per il download all'indirizzo .

7. RUDI

8. Il martello di ToR

Il martello di ToR è stato progettato per funzionare rete, al fine di ottenere un maggiore anonimato dell'aggressore. Il problema con questo strumento è che la rete TOR è piuttosto lenta e quindi riduce l'efficacia di un attacco DDoS. Scarica questo Programma DDOS puoi dai siti Packet Storm o .

9. Pilori

Pyloris è un altro strumento DDoS che utilizza nuovo approccio. Consente a un utente malintenzionato di creare la propria richiesta HTTP univoca. Il programma proverà quindi a tenere Connessione TCP aprire con tali richieste, riducendo così il numero di connessioni disponibili sul server. Quando viene raggiunto il limite di connessione del server, il server non può più servire le connessioni e il sito diventa non disponibile. Questo strumento è disponibile per il download gratuito dal sito web.

10.OWASP Coltello a serramanico

Open Web Application Security Project (OWASP) e ProactiveRISK hanno sviluppato uno strumento Strumento DoS Switchblade per il test Applicazioni WEB resistenza agli attacchi DDoS e ha tre modalità di funzionamento: 1. SSL Half-Open, 2. HTTP Post e 3. Slowloris. Puoi scaricarlo per la revisione dal sito web di OWASP.

11.DAVOSET

12. Strumento DoS GoldenEye HTTP

13.THC-SSL-DOS

Questo strumento DDOS (incluso con Kali) differisce dalla maggior parte degli strumenti DDOS in quanto non utilizza la larghezza di banda Internet e può essere utilizzato da un singolo computer. Vulnerabilità degli exploit THC-SSL-DOS Protocollo SSL ed è in grado di "mettere" il server di destinazione. A meno che, ovviamente, non esista questa vulnerabilità. Puoi scaricare il programma dal sito Web di THC o utilizzarlo kali-linux dove questo strumento è già installato.

14. DDOSIM - Emulatore DDoS di livello 7

Qui finisce la nostra recensione, ma in futuro torneremo sull'argomento degli attacchi DDoS sulle pagine del nostro blog.

Combattere gli attacchi DDoS non è solo un lavoro difficile, ma anche entusiasmante. Non sorprende che ogni amministratore di sistema cerchi prima di tutto di organizzare la difesa da solo, soprattutto perché ciò è ancora possibile.

Abbiamo deciso di aiutarti in questo difficile compito e pubblicare alcuni consigli brevi, banali e non universali per proteggere il tuo sito dagli attacchi. Queste ricette non ti aiuteranno ad affrontare alcun attacco, ma ti salveranno dalla maggior parte dei pericoli.

Gli ingredienti giusti

La dura verità è che molti siti possono essere abbattuti da chiunque utilizzi l'attacco Slowloris, che uccide Apache, o organizzando un cosiddetto SYN flood utilizzando una farm Server virtuali raccolti al minuto nel cloud di Amazon EC2. Tutti i nostri ulteriori consigli per proteggersi autonomamente dagli attacchi DDoS si basano sulle seguenti importanti condizioni.

1. Sbarazzati di Windows Server

La pratica suggerisce che un sito che gira su Windows (2003 o 2008 - non importa) è condannato in caso di DDoS. Il motivo dell'errore risiede nello stack di rete di Windows: quando ci sono molte connessioni, il server inizierà sicuramente a rispondere male. Non sappiamo perché Server Windows in tali situazioni, funziona in modo così disgustoso, ma ci siamo imbattuti in questo più di una o due volte. Per questo motivo, questo articolo si concentrerà sui mezzi di protezione contro gli attacchi DDoS nel caso in cui il server sia in esecuzione su Linux. Se sei un felice possessore di un kernel relativamente moderno (a partire dalla 2.6), gli strumenti principali saranno le utilità iptables e ipset (per aggiungere rapidamente indirizzi IP), con le quali puoi vietare rapidamente i bot. Un'altra chiave del successo è uno stack di rete ben preparato, di cui parleremo anche in seguito.

2. Separarsi da Apache

La seconda condizione importante è il rifiuto di Apache. Se hai Apache, almeno mettigli davanti un proxy di memorizzazione nella cache: nginx o lighttpd. Apache "è estremamente difficile da regalare file e, peggio ancora, è fondamentalmente (cioè incorreggibilmente) vulnerabile al più pericoloso attacco Slowloris, che ti consente di riempire il server quasi da cellulare. Per combattere vari tipi di Slowloris, gli utenti di Apache hanno prima creato la patch Anti-slowloris.diff, poi mod_noloris, poi mod_antiloris, mod_limitipconn, mod_reqtimeout... Ma se vuoi dormire la notte, è più facile prendere un server HTTP che è invulnerabile a Slowloris al codice a livello di architettura. Pertanto, tutte le nostre ulteriori ricette si basano sul presupposto che nginx sia utilizzato sul frontend.

Combattere gli attacchi DDoS

Cosa fare se arriva DDoS? La tradizionale tecnica di autodifesa consiste nel leggere il file di log del server HTTP, scrivere un pattern grep (che cattura le richieste dei bot) e bandire chiunque vi rientri. Questa tecnica funzionerà... se sei fortunato. Esistono due tipi di botnet, entrambi pericolosi, ma in modi diversi. Uno arriva completamente al sito all'istante, l'altro - gradualmente. Il primo uccide tutto in una volta, ma l'intera cosa appare nei log, e se li grepaet e bandisci tutti gli indirizzi IP, allora sei il vincitore. La seconda botnet definisce il sito con delicatezza e attenzione, ma probabilmente dovrai vietarlo per un giorno. È importante che qualsiasi amministratore capisca: se prevedi di combattere con grep, devi essere pronto a dedicare un paio di giorni alla lotta contro l'attacco. Di seguito sono riportati suggerimenti su dove puoi mettere le cannucce in anticipo in modo che non sia così doloroso cadere.

3. Utilizzare il modulo testcookie

Forse la ricetta più importante, efficace e operativa di questo articolo. Se il tuo sito riceve DDoS, allora il massimo in modo efficiente il modulo testcookie-nginx, sviluppato dall'utente habra @kyprizel, può diventare un rifiuto. L'idea è semplice. Molto spesso, i bot che implementano il flooding HTTP sono piuttosto stupidi e non dispongono di cookie HTTP e meccanismi di reindirizzamento. A volte si incontrano quelli più avanzati: possono utilizzare cookie ed elaborare reindirizzamenti, ma quasi mai un bot DoS trasporta un motore JavaScript completo (sebbene questo stia diventando sempre più comune). Testcookie-nginx funge da filtro rapido tra i bot e il back-end durante un attacco DDoS L7, consentendo di filtrare le richieste spazzatura. Cosa è incluso in questi controlli? Il client sa come eseguire il reindirizzamento HTTP, supporta JavaScript, è il browser che afferma di essere (perché JavaScript è diverso ovunque e se il client dice che è, diciamo, Firefox, allora possiamo verificarlo). La verifica viene attuata utilizzando i cookie con diverse modalità:

  • "Set-Cookie" + reindirizzamento con posizione HTTP 301;
  • "Set-Cookie" + reindirizzamento con utilizzando l'HTML meta aggiornamento;
  • modello arbitrario e puoi utilizzare JavaScript.

Per evitare l'analisi automatica, il cookie di convalida può essere crittografato con AES-128 e successivamente decrittografato sul lato client JavaScript. IN nuova versione modulo, è diventato possibile impostare un cookie tramite Flash, che consente anche di eliminare efficacemente i bot (che Flash, di norma, non supporta), ma, tuttavia, blocca anche l'accesso a molti utenti legittimi (infatti, tutti dispositivi mobili). È interessante notare che è estremamente facile iniziare a utilizzare testcookie-nginx. Lo sviluppatore, in particolare, fornisce diversi chiari esempi di utilizzo (per diversi casi di attacco) con campioni di configurazione per nginx.

Oltre ai vantaggi, i testcookie presentano anche degli svantaggi:

  • taglia tutti i bot, incluso Googlebot. Se prevedi di lasciare il testcookie in modo permanente, assicurati di non scomparire dai risultati di ricerca;
  • crea problemi agli utenti con i browser Links, w3m e simili;
  • non salva da bot dotati di un motore browser completo con JavaScript.

In una parola, testcookie_module non è universale. Ma da una serie di cose, come, ad esempio, i toolkit primitivi in ​​\u200b\u200bJava e C #, aiuta. Quindi, hai tagliato parte della minaccia.

4. Codice 444

Gli attacchi DDoS spesso prendono di mira la parte di un sito Web che richiede più risorse. Un esempio tipico è una ricerca che esegue complesse query di database. Naturalmente, gli aggressori possono trarne vantaggio caricando contemporaneamente diverse decine di migliaia di richieste sul motore di ricerca. Ciò che possiamo fare? Disattiva temporaneamente la ricerca. Mentre i clienti non saranno in grado di cercare le informazioni di cui hanno bisogno con gli strumenti integrati, l'intero sito principale rimarrà attivo e funzionante fino a quando non troverai la radice di tutti i problemi. Nginx supporta il codice 444 non standard, che ti consente di chiudere semplicemente la connessione e non restituire nulla in risposta:

Località/ricerca ( return 444; )

Pertanto, è possibile, ad esempio, implementare rapidamente il filtraggio per URL. Se sei sicuro che le richieste di localizzazione /ricerca provengano solo da bot (ad esempio, la tua sicurezza si basa sul fatto che il tuo sito non ha affatto una sezione /ricerca), puoi installare il pacchetto ipset sul server e banna i bot con un semplice script di shell:

Ipset -N ban iphash tail -f access.log | mentre leggi LINEA; do echo "$LINEA" | \ cut -d""" -f3 | cut -d" " -f2 | grep -q 444 && ipset -A ban "$(L%% *)"; fatto

Se il formato dei file di registro non è standard (non combinato) o è necessario vietare per motivi diversi dallo stato della risposta, potrebbe essere necessario sostituire cut con un'espressione regolare.

5. Geobanim

Il codice di risposta non standard 444 può anche essere utile per vietare rapidamente i client in base alla georeferenziazione. Puoi limitare severamente i singoli paesi da cui ti senti a disagio. Ad esempio, è improbabile che un negozio di fotocamere online di Rostov sul Don abbia molti utenti in Egitto. Non è molto buon modo(francamente, disgustoso), perché i dati GeoIP sono imprecisi e i Rostoviti a volte volano in Egitto in vacanza. Ma se non hai nulla da perdere, segui le istruzioni:

  1. Connetti il ​​modulo GeoIP a nginx (wiki.nginx.org/HttpGeoipModule).
  2. Visualizza le informazioni di georeferenziazione nel registro degli accessi.
  3. Successivamente, dopo aver modificato lo script della shell di cui sopra, grep nginx's accesslog e aggiungere i client geograficamente esclusi al divieto.

Se, ad esempio, i robot provenissero principalmente dalla Cina, questo potrebbe aiutare.

6. Rete neurale (PoC)

Infine, puoi ripetere l'esperienza dell'utente @SaveTheRbtz, che ha preso la rete neurale PyBrain, vi ha inserito il log e analizzato le richieste (habrahabr.ru/post/136237). Il metodo funziona, anche se non universale :). Ma se conosci davvero l'interno del tuo sito - e tu, come amministratore di sistema, dovresti - allora è probabile che nelle situazioni più tragiche, un tale strumento basato su reti neurali, formazione e informazioni raccolte in anticipo ti aiuterà. In questo caso è molto utile avere un access.log prima dell'inizio del DDoS, in quanto descrive quasi il 100% dei client legittimi, e quindi un ottimo dataset per il training rete neurale. Soprattutto perché gli occhi nei log bot non sono sempre visibili.

Diagnosi del problema

Il sito non funziona - perché? È DDoSed o è un bug del motore non notato dal programmatore? Non importa. Non cercare una risposta a questa domanda. Se pensi che il tuo sito possa essere attaccato, contatta le aziende che forniscono protezione contro gli attacchi - numerosi servizi anti-DDoS offrono gratuitamente il primo giorno dopo la connessione - e non perdere altro tempo a cercare i sintomi. Concentrati sul problema. Se il sito funziona lentamente o non si apre affatto, allora c'è qualcosa che non va nelle sue prestazioni e, indipendentemente dal fatto che ci sia o meno un attacco DDoS, tu, come professionista, sei obbligato a capire cosa lo sta causando. Abbiamo più volte assistito a come un'azienda che ha avuto difficoltà con il funzionamento del proprio sito a causa di un attacco DDoS, invece di cercare punti deboli nel motore del sito, ha cercato di inviare richieste al Ministero degli affari interni per trovare e punire gli aggressori. Non commettere errori del genere. La ricerca dei criminali informatici è un processo lungo e difficile, complicato dalla struttura e dai principi stessi di Internet, e il problema con il funzionamento del sito deve essere risolto tempestivamente. Forza specialisti tecnici scopri qual è il motivo del calo delle prestazioni del sito e gli avvocati potranno scrivere una dichiarazione.

7. Utilizzare un profiler e un debugger

Per la piattaforma di creazione di siti Web più comune - PHP + MySQL - il collo di bottiglia può essere individuato utilizzando i seguenti strumenti:

  • il profiler di Xdebug mostrerà su quali chiamate l'applicazione impiega più tempo;
  • il debugger APD integrato e l'output di debug nel registro degli errori ti aiuteranno a scoprire esattamente quale codice effettua queste chiamate;
  • nella maggior parte dei casi, il cane è sepolto nella complessità e nella pesantezza delle query del database. La direttiva spiega SQL incorporata nel motore del database aiuterà qui.

Se il sito è sdraiato sulla schiena e non perdi nulla, disconnettiti dalla rete, guarda i log, prova a riprodurli. In caso contrario, sfoglia le pagine, guarda la base.

L'esempio è per PHP, ma l'idea è valida per qualsiasi piattaforma. Scrittura dello sviluppatore prodotti software in qualunque linguaggio di programmazione, deve essere in grado di utilizzare velocemente sia il debugger che il profiler. Esercitati in anticipo!

8. Analizza gli errori

Analizza la quantità di traffico, il tempo di risposta del server, il numero di errori. Vedi i log per questo. In nginx, il tempo di risposta del server viene registrato nel log da due variabili: request_time e upstream_response_time. Il primo è il tempo totale di esecuzione della richiesta, inclusi i ritardi di rete tra l'utente e il server; il secondo indica da quanto tempo il backend (Apache, php_fpm, uwsgi...) esegue la richiesta. Il valore upstream_response_time è estremamente importante per i siti con molti contenuti dinamici e comunicazione attiva tra il frontend e il database e non dovrebbe essere trascurato. È possibile utilizzare la seguente configurazione come formato del registro:

Log_format xakep_log "$remote_addr - $remote_user [$time_local] " ""$request" $status $body_bytes_sent " ""$http_referer" "$http_user_agent" $request_time \ $upstream_response_time";

Questo è un formato combinato con campi temporali aggiunti.

9. Tieni traccia delle richieste al secondo

Guarda anche il numero di richieste al secondo. Nel caso di nginx, puoi stimare approssimativamente questo valore con il seguente comando shell (la variabile ACCESS_LOG contiene il percorso del registro delle richieste nginx in formato combinato):

Echo $(($(fgrep -c "$(env LC_ALL=C date --date=@$(($(date \ +%s)-60)) +%d/%b/%Y:%H: %M)" "$ACCESS_LOG")/60))

Rispetto al livello normale per quest'ora del giorno, il numero di richieste al secondo può sia diminuire che aumentare. Crescono se arriva una botnet di grandi dimensioni e diminuiscono se la botnet in arrivo blocca il sito, rendendolo completamente inaccessibile agli utenti legittimi e, allo stesso tempo, la botnet non richiede statica, ma gli utenti legittimi sì. Il calo del numero di richieste si osserva proprio a causa della statica. Ma, in un modo o nell'altro, stiamo parlando di seri cambiamenti negli indicatori. Quando ciò accade all'improvviso, mentre stai cercando di risolvere il problema da solo e se non lo vedi subito nel registro, è meglio controllare rapidamente il motore e contattare gli specialisti in parallelo.

10. Non dimenticare tcpdump

Molte persone dimenticano che tcpdump è un fantastico strumento diagnostico. Farò un paio di esempi. Nel dicembre 2011 è stato scoperto un bug in Kernel Linux quando ha aperto una connessione TCP con i flag di segmento TCP SYN e RST impostati. La prima segnalazione di bug è stata inviata da un amministratore di sistema dalla Russia, la cui risorsa è stata attaccata con questo metodo: gli aggressori hanno scoperto la vulnerabilità prima del mondo intero. Ovviamente, una tale diagnosi lo ha aiutato. Un altro esempio: nginx ha una proprietà non molto carina: scrive nel registro solo dopo che la richiesta è stata completamente elaborata. Ci sono situazioni in cui il sito non funziona, niente funziona e non c'è niente nei log. Questo perché tutte le richieste che sono in questo momento caricare il server non è ancora stato eseguito. Tcpdump aiuterà anche qui.

È così buono che ho consigliato alle persone di non usare i protocolli binari fino a quando non sono sicuri che tutto sia in ordine, perché i protocolli di testo sono facili da eseguire il debug con tcpdump, ma i protocolli binari no.Tuttavia, lo sniffer è buono come strumento diagnostico - come mezzo per mantenere la produzione" ed è spaventoso. Può facilmente perdere più pacchetti contemporaneamente e rovinare la cronologia degli utenti. È conveniente osservarne l'output e sarà utile per la diagnostica manuale e un divieto, ma cerca di non basare nulla di critico su di esso. Un altro strumento preferito per le "richieste di riscaldamento" - ngrep - generalmente per impostazione predefinita tenta di richiedere circa due gigabyte di memoria non scambiabile e solo allora inizia a ridurre i propri requisiti.

11. Attacco o no?

Come distinguere un attacco DDoS, ad esempio, dall'effetto di una campagna pubblicitaria? Questa domanda può sembrare ridicola, ma questo argomento non è meno complesso. Ci sono alcuni casi piuttosto divertenti. Per alcuni bravi ragazzi, quando si sono irrigiditi e hanno rovinato completamente la memorizzazione nella cache, il sito si è ammalato per un paio di giorni. Si è scoperto che per diversi mesi questo sito era stato impercettibilmente dataminato da alcuni tedeschi, e prima di ottimizzare la memorizzazione nella cache della pagina del sito per questi tedeschi, con tutte le immagini, ci è voluto molto tempo per caricarsi. Quando la pagina ha iniziato a essere emessa istantaneamente dalla cache, anche il bot, che non aveva timeout, ha iniziato a raccoglierli all'istante. Era difficile. Il caso è particolarmente difficile perché se tu stesso hai cambiato l'impostazione (attivato la memorizzazione nella cache) e il sito ha smesso di funzionare, allora di chi è la colpa, secondo te e secondo il capo? Esattamente. Se vedi un forte aumento del numero di richieste, guarda, ad esempio, in Google Analytics, chi è arrivato a quali pagine.

Ottimizzazione del server web

Quali sono gli altri punti chiave? Certo, puoi impostare nginx "predefinito" e sperare che tutto vada bene per te. Tuttavia, le cose belle non accadono sempre. Pertanto, l'amministratore di qualsiasi server deve dedicare molto tempo alla messa a punto e all'ottimizzazione di nginx.

12. Limita le risorse (dimensioni del buffer) in nginx

Cosa bisogna ricordare prima di tutto? Ogni risorsa ha un limite. Prima di tutto, riguarda la RAM. Pertanto, le dimensioni delle intestazioni e di tutti i buffer utilizzati dovrebbero essere limitate a valori adeguati per client e per server nel suo insieme. Devono essere registrati nella configurazione di nginx.

  • client_header_buffer_size_ _ Imposta la dimensione del buffer per la lettura dell'intestazione della richiesta client. Se la stringa della richiesta o il campo dell'intestazione della richiesta non rientrano interamente in questo buffer, vengono allocati buffer più grandi, specificati dalla direttiva large_client_header_buffers.
  • large_client_header_buffers Specifica il numero massimo e la dimensione dei buffer per leggere l'intestazione della richiesta client di grandi dimensioni.
  • client_body_buffer_size Imposta la dimensione del buffer per la lettura del corpo della richiesta client. Se il corpo della richiesta è più grande del buffer specificato, l'intero corpo della richiesta o solo una parte di esso viene scritto in un file temporaneo.
  • client_max_body_size Imposta la dimensione massima consentita per il corpo di una richiesta client, specificata nel campo Content-Length dell'intestazione della richiesta. Se la dimensione è maggiore di quella specificata, il client restituisce l'errore 413 (Entità richiesta troppo grande).

13. Imposta i timeout in nginx

Anche il tempo è una risorsa. Pertanto, il prossimo passo importante dovrebbe essere quello di impostare tutti i timeout, che, ancora una volta, è molto importante registrare attentamente nelle impostazioni di nginx.

  • reset_timedout_connection attivo; Aiuta a gestire i socket bloccati nella fase FIN-WAIT.
  • client_header_timeout Specifica un timeout durante la lettura di un'intestazione della richiesta client.
  • client_body_timeout Specifica un timeout durante la lettura del corpo di una richiesta client.
  • keepalive_timeout Imposta il timeout durante il quale la connessione keep-alive con il client non verrà chiusa dal server. Molti hanno paura di fissare valori elevati qui, ma non siamo sicuri che questa paura sia giustificata. È facoltativamente possibile impostare un valore di timeout nell'intestazione HTTP Keep-Alive, ma Internet Explorer noto per aver ignorato questo valore
  • send_timeout Specifica un timeout durante l'invio di una risposta al client. Se il client non riceve nulla dopo questo tempo, la connessione verrà chiusa.

Immediatamente la domanda è: quali parametri di buffer e timeout sono corretti? Non esiste una ricetta universale qui, ogni situazione ha la sua. Ma c'è un approccio collaudato. È necessario impostare i valori minimi ai quali il sito rimane operativo (in tempo di pace), ovvero le pagine vengono restituite e le richieste vengono elaborate. Questo è determinato solo dai test, sia da desktop che da dispositivi mobili. L'algoritmo per trovare i valori di ciascun parametro (dimensione del buffer o timeout):

  1. Impostiamo il valore minimo matematico del parametro.
  2. Iniziamo a eseguire test sul sito.
  3. Se tutte le funzionalità del sito funzionano senza problemi, il parametro è definito. In caso contrario, aumentare il valore del parametro e andare al passaggio 2.
  4. Se il valore del parametro supera anche il valore predefinito, questo è motivo di discussione nel team di sviluppo.

In alcuni casi, la revisione di questi parametri dovrebbe portare al refactoring/redesign del sito. Ad esempio, se il sito non funziona senza richieste di polling lunghe AJAX di tre minuti, non è necessario aumentare il timeout, ma sostituire il polling lungo con qualcos'altro: una botnet di 20mila macchine, in attesa di richieste per tre minuti, ucciderà facilmente un server medio economico.

14. Limitare le connessioni in nginx (limit_conn e limit_req)

Nginx ha anche la capacità di limitare connessioni, richieste e così via. Se non sei sicuro di come si comporterà una certa parte del tuo sito, idealmente dovresti testarlo, capire quante richieste può gestire e scriverlo nella configurazione di nginx. Una cosa è quando il sito non funziona e puoi venire a ritirarlo. Ed è una questione completamente diversa: quando si è stabilizzato a tal punto che il server è andato in swap. In questo caso, spesso è più facile riavviare piuttosto che attendere il suo trionfante ritorno.

Supponiamo che il sito abbia delle sezioni con i nomi indicativi /download e /search. In tal modo, noi:

  • non vogliamo che i bot (o le persone con gestori di download ricorsivi troppo zelanti) riempiano la nostra tabella di connessione TCP con i loro download;
  • non vogliamo bot (o randagi crawler motori di ricerca) hanno esaurito le risorse di calcolo del DBMS con molte query di ricerca.

Per questi scopi, la seguente configurazione si adatterà:

Http ( limit_conn_zone $binary_remote_addr zone=download_c:10m; limit_req_zone $binary_remote_addr zone=search_r:10m \ rate=1r/s; server ( location /download/ ( limit_conn download_c 1; # Other configuration location ) location /search/ ( limit_req zone= search_r burst=5; # Altro percorso di configurazione ) ) )

Di solito ha senso impostare limiti limit_conn e limit_req per posizioni in cui si trovano script costosi da eseguire (la ricerca è indicata nell'esempio, e questo non è un caso). I vincoli devono essere scelti in base ai risultati dei test di carico e di regressione, nonché al buon senso.

Notare il parametro 10m nell'esempio. Significa che per il calcolo di questo limite verrà allocato un dizionario con un buffer di 10 megabyte e non un megabyte in più. In questa configurazione, ciò consentirà di monitorare 320.000 sessioni TCP. Per ottimizzare l'utilizzo della memoria, la variabile $binary_remote_addr viene utilizzata come chiave nel dizionario, che contiene l'indirizzo IP dell'utente in forma binaria e occupa meno memoria della normale variabile di stringa $remote_addr. Va notato che il secondo parametro della direttiva limit_req_zone può essere non solo IP, ma anche qualsiasi altra variabile nginx disponibile in questo contesto, ad esempio nel caso in cui non si desideri fornire una modalità più tollerante per il proxy, puoi usare $binary_remote_addr$http_user_agent o $binary_remote_addr$http_cookie_myc00kiez - ma tali costruzioni dovrebbero essere usate con cautela, perché, a differenza del $binary_remote_addr a 32 bit, queste variabili possono essere molto più lunghe e i "10m" che hai dichiarato potrebbero finire improvvisamente.

Tendenze in DDoS

  1. La potenza degli attacchi a livello di rete e di trasporto è in costante crescita. Il potenziale di un attacco SYN flood medio ha già raggiunto i 10 milioni di pacchetti al secondo.
  2. Gli attacchi al DNS sono stati particolarmente richiesti ultimamente. UDP flooding con richieste DNS valide con indirizzi IP di origine contraffatti è uno degli attacchi più facili da implementare e difficile da contrastare. Molte grandi aziende russe (comprese le società di hosting) hanno recentemente riscontrato problemi a seguito di attacchi ai loro server DNS. Più lontano, più tali attacchi saranno e il loro potere crescerà.
  3. A giudicare dai segni esterni, la maggior parte delle botnet non è controllata centralmente, ma attraverso una rete peer-to-peer. Ciò offre agli aggressori l'opportunità di sincronizzare le azioni della botnet in tempo: se i comandi di controllo precedenti venivano distribuiti su una botnet di 5.000 macchine in decine di minuti, ora i secondi contano e il tuo sito potrebbe improvvisamente subire un aumento istantaneo di cento volte nel numero di richieste.
  4. La quota di bot dotati di un motore browser completo con JavaScript è ancora piccola, ma è in costante crescita. Un tale attacco è più difficile da respingere con mezzi improvvisati incorporati, quindi i fai-da-te dovrebbero osservare con cautela questa tendenza.

preparazione del sistema operativo

A parte ritocchi nginx, devi occuparti delle impostazioni stack di rete sistemi. Come minimo, includi immediatamente net.ipv4.tcp_syncookies in sysctl per proteggerti subito da un piccolo attacco SYN flood.

15. Accorda il nucleo

Prestare attenzione alle impostazioni più avanzate della parte di rete (kernel), sempre in termini di timeout e memoria. Ce ne sono di più importanti e di meno importanti. Prima di tutto, devi prestare attenzione a:

  • net.ipv4.tcp_fin_timeout Il tempo che il socket trascorrerà nella fase TCP FIN-WAIT-2 (in attesa di un segmento FIN/ACK).
  • net.ipv4.tcp_(,r,w)mem Il socket TCP riceve la dimensione del buffer. Tre valori: minimo, valore predefinito e massimo.
  • net.core.(r,w)mem_max Lo stesso per i buffer non TCP.

Con un collegamento di 100 Mbps, i valori predefiniti sono ancora in qualche modo adatti; ma se hai a disposizione almeno gigabit al secondo, allora è meglio usare qualcosa del tipo:

sysctl -w net.core.rmem_max=8388608 sysctl -w net.core.wmem_max=8388608 sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608" sysctl -w net.ipv4.tcp_wmem="4096 65536 838860 8 " sysctl - w net.ipv4.tcp_fin_timeout=10

16. Revisione /proc/sys/net/**

È ideale per studiare tutti i parametri /proc/sys/net/**. Dobbiamo vedere come differiscono da quelli predefiniti e capire quanto adeguatamente sono esposti. Uno sviluppatore Linux (o amministratore di sistema) che comprende il funzionamento del servizio Internet sotto il suo controllo e vuole ottimizzarlo dovrebbe leggere con interesse la documentazione di tutti i parametri dello stack di rete del kernel. Forse troverà lì variabili specifiche per il suo sito che aiuteranno non solo a proteggere il sito dagli intrusi, ma anche ad accelerarne il lavoro.

Non avere paura!

Gli attacchi DDoS riusciti giorno dopo giorno estinguono l'e-commerce, scuotono i media, mettono fuori combattimento i più grandi sistemi di pagamento con un colpo solo. Milioni di utenti Internet stanno perdendo l'accesso a informazioni critiche. La minaccia è urgente, quindi devi affrontarla completamente armato. Fai i compiti, non aver paura e mantieni la calma. Non sei il primo né l'ultimo ad affrontare un attacco DDoS al tuo sito, e sta a te, guidato dalla tua conoscenza e buon senso, ridurre al minimo le conseguenze dell'attacco.

Attacco DDOS. Spiegazione ed esempio.

Ciao a tutti. Questo è il blog di Computer76, e ora un altro articolo sulle basi dell'hacker art. Oggi parleremo di cos'è un attacco DDOS. in parole povere ed esempi. Prima di entrare in termini tecnici, ci sarà un'introduzione che tutti possono capire.

Perché viene utilizzato un attacco DDOS?

L'hacking WiFi viene utilizzato per raccogliere la password rete senza fili. Gli attacchi sotto forma di " " ti permetteranno di ascoltare il traffico Internet. L'analisi della vulnerabilità con il successivo caricamento di uno specifico consente di catturare il computer di destinazione. Cosa fa un attacco DDOS? In definitiva, il suo obiettivo è assumere la proprietà della risorsa dal suo legittimo proprietario. Non intendo dire che il sito o il blog non ti appartengono. Questo nel senso che in caso di attacco riuscito al tuo sito, tu perderne il controllo. Almeno per un po.

Tuttavia, nella moderna interpretazione di DDOS, un attacco viene spesso utilizzato per interrompere il normale funzionamento di qualsiasi servizio. I gruppi di hacker, i cui nomi vengono costantemente ascoltati, attaccano i principali siti governativi o governativi per attirare l'attenzione su determinati problemi. Ma quasi sempre dietro tali attacchi c'è un interesse puramente mercantile: il lavoro di concorrenti o semplici scherzi con siti completamente indecentemente non protetti. Il concetto principale di DDOS è che un numero enorme di utenti, o meglio richieste da computer bot, accede al sito contemporaneamente, il che rende insopportabile il carico sul server. Sentiamo spesso l'espressione “il sito non è disponibile”, ma pochi pensano a cosa si nasconda effettivamente dietro questa dicitura. Bene, ora lo sai.

Attacco DDOS - opzioni

Opzione 1.

giocatori affollati all'ingresso

Immagina di giocare a un gioco multiplayer online. Migliaia di giocatori stanno giocando con te. E conosci la maggior parte di loro. Negozia i dettagli e fa quanto segue all'ora X. Andate tutti sul sito contemporaneamente e create un personaggio con lo stesso insieme di caratteristiche. Raggruppa in un unico posto, bloccando l'accesso agli oggetti nel gioco in base al numero di personaggi creati contemporaneamente per altri utenti coscienziosi che non sospettano nulla della tua collusione.

Opzione 2.


Immagina che qualcuno decida di interrompere il servizio di autobus in città lungo un determinato percorso per impedire ai passeggeri coscienziosi di utilizzare i servizi di trasporto pubblico. Migliaia di tuoi amici contemporaneamente vanno alle fermate all'inizio del percorso specificato e viaggiano senza meta su tutte le auto da un capo all'altro finché i soldi non finiscono. Il viaggio è pagato, ma nessuno scende a nessuna fermata se non nelle destinazioni finali. E altri passeggeri, in piedi alle fermate intermedie, guardano con tristezza i minibus che si allontanano, incapaci di farsi strada tra gli autobus affollati. Tutto è in esaurimento: sia i proprietari di taxi che i potenziali passeggeri.

In realtà, queste opzioni non possono essere implementate fisicamente. Tuttavia, nel mondo virtuale, i tuoi amici possono essere sostituiti da computer di utenti senza scrupoli che non si preoccupano di proteggere in qualche modo il proprio computer o laptop. E la stragrande maggioranza lo è. Esistono molti programmi per eseguire un attacco DDOS. Inutile dire che tali azioni sono illegali. E un attacco DDOS preparato in modo ridicolo, non importa quanto successo abbia, viene rilevato e punito.

Come si svolge un attacco DDOS?

Facendo clic su un collegamento a un sito Web, il browser invia una richiesta al server per visualizzare la pagina che stai cercando. Questa richiesta è espressa come un pacchetto di dati. E nemmeno uno, ma un intero pacchetto di pacchetti! In ogni caso, la quantità di dati trasmessi per canale è sempre limitata a una certa larghezza. E la quantità di dati restituiti dal server è sproporzionatamente maggiore di quanto contenuto nella tua richiesta. Richiede lo sforzo e le risorse del server. Più potente è il server, più costoso è per il proprietario e più costosi sono i servizi che fornisce. I server moderni possono facilmente far fronte a un afflusso di visitatori notevolmente aumentato. Ma per qualsiasi server, c'è ancora un valore critico per gli utenti che vogliono conoscere il contenuto del sito. Più chiara è la situazione con il server che fornisce servizi di hosting di siti web. Basta poco e il sito vittima viene disconnesso dal servizio, per non sovraccaricare i processori che servono migliaia di altri siti situati sullo stesso hosting. Il lavoro del sito si interrompe fino al momento in cui l'attacco DDOS stesso si interrompe. Bene, immagina di iniziare a ricaricare una qualsiasi delle pagine del sito mille volte al secondo (DOS). E migliaia di tuoi amici stanno facendo la stessa cosa sui loro computer (DOS o DDOS distribuiti)... I server di grandi dimensioni hanno imparato a riconoscere che è iniziato un attacco DDOS e a contrastarlo. Tuttavia, anche gli hacker stanno migliorando i loro approcci. Quindi, nell'ambito di questo articolo, non posso spiegare in modo più dettagliato cos'è un attacco DDOS.

Che cos'è un attacco DDOS che puoi scoprire e provare subito.

ATTENZIONE. Se decidi di provare, tutti i dati non salvati andranno persi, avrai bisogno di un pulsante per riportare il computer a uno stato funzionante. RIPRISTINA. Ma sarai in grado di scoprire esattamente cosa "sente" il server che è stato attaccato. Un esempio dettagliato è un paragrafo seguente, e ora - semplici comandi per riavviare il sistema.

  • Per Linux, nel terminale digita il seguente comando:
:(){ :|:& };:

Il sistema si rifiuterà di funzionare.

  • Per Windows, suggerisco di creare un file bat in Blocco note con il codice:
:1 Inizia vai a 1

Denominare il tipo DDOS.bat

Per spiegare il significato di entrambi i comandi, penso, non ne vale la pena. Tutto è visibile ad occhio nudo. Entrambi i comandi forzano il sistema ad eseguire lo script ea ripeterlo immediatamente, mandandolo all'inizio dello script. Data la velocità di esecuzione, il sistema cade in uno stato di torpore dopo un paio di secondi. Gioco, come dicono, Sopra.

Attacco DDOS tramite software.

Per un esempio più visivo, usa il programma Low Orbit Ion Cannon (Ion cannon from low orbit). O LOIC. La distribuzione più scaricata si trova su (lavoriamo su Windows):

https://sourceforge.net/projects/loic/

ATTENZIONE! Il tuo antivirus dovrebbe reagire al file come dannoso. Va bene: sai già cosa stai scaricando. Nel database delle firme, è contrassegnato come un generatore di inondazioni: tradotto in russo, questo è l'obiettivo finale di chiamate infinite a un indirizzo di rete specifico. PERSONALMENTE non ho notato virus o trojan. Ma hai il diritto di esitare e posticipare il download.

Poiché gli utenti incuranti bombardano la risorsa con messaggi su file dannoso, Source Forge ti porterà alla pagina seguente con un collegamento diretto al file:

Di conseguenza, sono riuscito a scaricare l'utilità solo tramite .

La finestra del programma si presenta così:

Punto 1 Selezionare il bersaglio consentirà a un utente malintenzionato di concentrarsi su un obiettivo specifico (viene inserito un indirizzo IP o l'URL del sito), punto 3 Opzioni di attacco ti permetterà di selezionare la porta attaccata, il protocollo ( metodo) dei tre TCP, UDP e HTTP. Nel campo del messaggio TCP/UDP, puoi inserire un messaggio per la vittima. Al termine, l'attacco inizia con la semplice pressione di un pulsante IMMA CHARGIN MAH LAZER(questa è una frase sull'orlo di un fallo di un tempo popolare comicomeme; A proposito, ci sono molte parolacce americane nel programma). Tutto.

AVVERTIMENTO

Questa opzione è per il test solo per localhost. Ecco perché:

  • contro i siti di altre persone è illegale, e per questo sono già davvero seduti in Occidente (il che significa che presto verranno piantati anche qui)
  • l'indirizzo da cui proviene l'alluvione verrà calcolato rapidamente, si lamenteranno con il fornitore e lui ti avviserà e ti ricorderà il primo punto
  • nelle reti con un canale a basso throughput (ovvero in tutte le reti domestiche), la piccola cosa non funzionerà. Con la rete TOR, tutto è uguale.
  • se lo imposti correttamente, ostruirai rapidamente il TUO canale di comunicazione piuttosto che danneggiare qualcuno. Quindi questa è esattamente l'opzione quando la pera batte il pugile, e non viceversa. E l'opzione con un proxy seguirà lo stesso principio: a nessuno piacerà l'alluvione da parte tua.

Leggi: 9 326

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: