codeshield - Anti HTTP DDoS

Stato
Discussione chiusa ad ulteriori risposte.

Stefano Novelli

Fondatore
Amministratore
19 Novembre 2007
7,113
821
8,180
3,236
Ultima modifica da un moderatore:
logo.png
codeshield è un semplice ma efficace script realizzato in Javascript e PHP per prevenire gli attacchi HTTP Denial of Service.
Essendo costruito prevalentemente in PHP non ha bisogno di essere configurato con Apache, Nginx etc... ma basta semplicemente includerlo all'interno di ogni pagina del sito web; una volta effettuata l'installazione, lo script si eseguirà in automatico e in sordina.

Come funziona?
Molto semplice: in pratica viene effettuato un controllo di server load sulla macchina, se questa supera un valore preimpostato (a 7 ma è possibile cambiarlo nel config) lo script carica una pagina con errore 503. I browser di ultima generazione hanno incorporato al loro interno uno scripter Javascript e quindi non si accorgeranno di nulla mentre gli script Denial of Service che fanno uso di proxy o di semplici handler di connessione di richiesta ad una pagina non potranno nè creare cookie nè eseguire codice javascript, rendendo quindi loro la pagina di errore.

Questo è lo script ufficiale di Inforge.net per la difesa ad attacchi, riadattato per essere utilizzato e compreso da chiunque.

HOW-TO

  1. Scaricate lo script (Link Download)
  2. Estraetelo e uploadatelo in FTP nella root del vostro sito (es. www.tuosito.it/codeshield/)
  3. (Facoltativo) Create un account su Honeypot, quindi ottenete la chiave http:BL da questo link, aprite il file /codeshield/config.php e impostate $honeypot a 1 e su $honeypotapi scrivete la vostra API key (non divulgatela!)
  4. Ora dovete cercare un file che viene SEMPRE richiamato nel vostro sito e PRIMA di ogni stampa in output, solitamente un file di config o qualcosa del genere. All'inizio del file scrivete:
    PHP:
    <?php include('/codeshield/core.php'); ?>


Per testarne il funzionamento potete provare con B4ckself (potente script di attacchi HTTP DoS).
 
Nell'attesa che #Sak32009 impari ad usare il Github, rilascio la versione 0.3 che comprende:
- Deprecamento del metodo 1 di raccolta del server load
- Rafforzamento dello script di creazione del cookie da generazioni esterne
- Il Config.php ora viene chiamato config.php.new per evitare di riscriverlo ogni volta che si aggiorna lo script
 
La versione 0.2 è stata rilasciata.
Al suo interno contiene uno script in grado di creare un cookie proprietario generato da:
- antibot_ : il prefisso della stringa del cookie (no md5)
- saltcode, definito nel config
- l'ora attuale
- l'honeypot api
- l'ip address del navigante
ad eccezione del prefisso, tutti i valori sono crittati in md5, rendendo praticamente impossibile il decrypt del cookie senza conoscere il saltcode e l'honeypot.
@Sikh887 [MENTION=173423]B4ckdoor[/MENTION] abbiamo un vincitore? :asd:
 
Non l'ho tenuto in considerazione ma il pingback Wordpress ha teoricamente la stessa struttura di funzionamento del B4ckself: se XMLRPC tiene conto delle risposte di altri server, il B4ckself effettua le connessioni da proxy, entrambi però hanno il concetto di effettuare richieste alla pagina vittima e di buttarla giù.

Ergo, non è una protezione contro il B4ckself, ma contro TUTTI i Denial of Service che saturano il processo del web server (sia esso Apache che MySQL), chiaramente non annulla del tutto gli effetti, ma anzichè necessitare di 100 server per buttar giù IF ce ne vorranno 10.000.
 
Ottimo ;) Presto verrà fatta una guida su WoltLab Italia per integrarlo al meglio.

Con murdercode abbiamo fatto già i test e funziona perfettamente :)
 
  • Mi piace
Reazioni: deleted5917
Ok allora aspetto che ti assicuri che funzioni, in quel caso, ho già pronta la fix :3
Nella lotta tra "chi protegge le cose su internet" e "chi vuole rompere le cose su internet" nessuno sarà mai vincitore, ci sarà sempre un modo per aggirare l'altro e viceversa.
Questo in tutti gli altri ambiti, vedi cracker e sviluppatori.

- - - Updated - - -

Vince solo la perseveranza
 
  • Mi piace
Reazioni: B4ckdoor
Nella lotta tra "chi protegge le cose su internet" e "chi vuole rompere le cose su internet" nessuno sarà mai vincitore, ci sarà sempre un modo per aggirare l'altro e viceversa.
Questo in tutti gli altri ambiti, vedi cracker e sviluppatori.

- - - Updated - - -

Vince solo la perseveranza

Parole sagge, il problema è però che se da una parte ci sono 100 scassapalle che ti attaccano il forum perchè rosicano di un ban ricevuto onestamente, e dall'altra c'è una persona sola che deve difenderlo e si prende tutte le responsabilità dell'accaduto, capisci che non è uno scontro ad armi pari.
Se poi vogliamo parlare di ideali, capisco pure la ricerca di vulnerabilità, ma il denial of service... :\
 
  • Mi piace
Reazioni: deleted5917
ovviamente (se riesco a bypassarlo del tutto) non lo posto (posta(no)) perché sarebbe veramente "dare pane ai lamer".

No vabbè non è quello il problema (farò generare un cookie con algoritmo salt + time ogni 5 minuti) ma il fatto che ad oggi è fin troppo semplice effettuare attacchi.
Non dico di non farli, ma che almeno si abbia un minimo di coscienza su ciò che si fa, altrimenti anzichè fare le 4 di mattina faccio come fanno tutti e cioè dare i log alla postale e fra 3-4 anni mi faccio i processi :omfg:
 
  • Mi piace
Reazioni: Yukimura Sanada
Grazie murder! Lo userò in tutti i miei progetti! :)

Ps: c'è la possibilità che lo script rallenti il caricamento delle pagine? Non ne capisco molto è per questo che chiedo...

E' possibile si, ma per il momento non è andato in pappa quindi a meno che non escano fuori strani loop tutto dovrebbe andare bene. Nel dubbio, rilasceremo nuovi update ogni volta che ci sarà da ottimizzare qualcosa (sarà un semplice copia-incolla)
 
  • Mi piace
Reazioni: .Eternal.Coding.
Grazie murder! Lo userò in tutti i miei progetti! :)

Ps: c'è la possibilità che lo script rallenti il caricamento delle pagine? Non ne capisco molto è per questo che chiedo...

Solo quando il cookie è inesistente perché controlla il carico del server.(specialmente su windows)

fatto molto bene...:sisi:
Spero non sia una presa per il culo, comunque ti ringrazio :D

PS: Al prossimo update non sarà più possibile bypassare il cookie "simulando il browser", prendila come se fosse una sfida
 
  • Mi piace
Reazioni: .Eternal.Coding.
Solo quando il cookie è inesistente perché controlla il carico del server.(specialmente su windows)


Spero non sia una presa per il culo, comunque ti ringrazio :D

PS: Al prossimo update non sarà più possibile bypassare il cookie "simulando il browser", prendila come se fosse una sfida

non era una presa per il culo, sfida accettata.
 
  • Mi piace
Reazioni: EmmeFreeze
@murdercode scusami, ma lo fai in automatico su tutte le pagine del sito? Non si potrebbe creare una cosa automatica ??; no perché praticamente ho visto che lo devi fare in base a che pagina (es "www.example/index.php") ti fanno l'attacco.. o no ? D:

htaccess
Codice:
php_value auto_prepend_file "/codeshield.php"

Su codeshield.php basta aggiungere $codeshield = new codeshield(); in basso.


PS: Provato una sola volta e funzionava
 
  • Mi piace
Reazioni: murdercode
mi fai una mini-guida per nabbo su come farla funzionare, così da limitare gli http flood? grazie :)

Collaboravo con murdercode nel progetto, solo che io facevo le cose separatamente senza di lui. Da me c'è solo quel file perché basta solo quello e niente di più. Del resto: Qui

Tutto nella directory principale(/) :)
 
  • Mi piace
Reazioni: pacman94
Stato
Discussione chiusa ad ulteriori risposte.