Admin Secure ( versione 1.7 )

by Darsch

Admin Secure: così docile, così pericoloso...
Proprio così, come qualcuno già saprà, Admin Secure è un buon addon sulla sicurezza in PHP-Nuke.
Potremmo paragonarlo a un cane.
Il cane lo compri (e non lo abbandoni...), lo fai tuo e lo addestri a "giocare" con te.
Così Admin Secure. Ci vuole ben poco ad installarlo, ma la configurazione, è una cosa che richiede molta pazienza e precisione. Precisione perchè un settaggio sbagliato per il proprio sito o per quello che si vuole ottenere e rischiamo di dare il via libera a qualche attacco hacker, o peggio ancora, bloccare molti nostri utenti abituali.
Let's go!

Il Pannello d'amministrazione
NB: Per comodità e velocità, abbrevierò in Asec (Admin Secure) o Asap (Admin Secure Administration Panel) a seconda dei casi.

1. Approvazione Profili



Qui vediamo gli Amministratori del sito, primo fra tutti il Super User God che è e rimane immortalmente incancellabile!
A seguire possiamo avere più o meno una fila di altri amministratori.
Nel blocco di destra troveremo degli amministratori in attesa di conferma. Potrebbe darsi che non siate stati voi a crearne uno e quindi questo vi verrà piazzato in suddetto blocco. Se così è, si tratta sicuramente di un tentavivo di corruzione d'account: ovvero un hacker avrebbe voluto crearsi un profilo per amministrare a vostra insaputa il sito.
E quindi potremo decidere se accettare o meno di attivare quell'amministratore.



2. Sistema di Ban



Questa sezione ci permette di cercare, controllare e aggiungere IP da bannare (escludere dal sito).
Il primo dei 4 riquadri ci avvisa se abbiamo o se sono state create da Asec delle liste di ban di potenziali utenti pericolosi.
Il secondo riquadro ci fa aggiungere manualmente un indirizzo Ip.
Il terzo li carica da un file in locale.
L'ultimo ci permette di cercare e risalire ad alcune informazioni dell'IP, ovvero provenienza e connessione (simile al tracert effettuato in Ms-Dos). Possiamo o meno dire di non cercare negli IP in memoria.


ATTENZIONE!
Gli IP permessi in Asec, sono solo di questo tipo:

  • 12.34.56.78
  • 127.0.0.1-127.0.0.50
  • 0.0.0.0-255.255.255.255

Se invece inseriamo una esclusione di raggio tipo il secondo esempio, e subito dopo ne inseriamo una 127.0.0.80-127.0.0.255, verrà riconosciuta proprio l'ultima e non la prima. Quindi sarà meglio fare 127.0.0.1-127.0.0.255
Non è consentito scrivere IP parziali con sole terzine o meno ma solo a gruppi di quattro terzine come negli esempi.
Non sono accettati IP con numeri superiori al 255 (anche perchè non esistono) e nemmeno doppie esclusioni separate da un "-" con spazi => 127.0.0.01 - 127.0.0.80 ma solo tutto attaccato.


3. Informazioni Blocking
Non ancora visionato.


4. Modalità di Ban



In questa sezione possiamo bannare o il singolo IP o il singolo utente tramite nickname/username.
Proprio la prima riga permette di aggiungere un IP e scegliere il modulo al quale l'ip dell'utente associato non potrà accedere; a fianco decideremo il tempo di durata del ban (da 1 giorno a 1 anno, oppure un'esclusione a tempo indeterminato).
Analogamente la seconda riga ci permette di definire in nickname da bannare con lo stesso procedimento sopra descritto.
A mio avviso forse è la più sicura in quanto uno stesso IP potrebbe corrispondere a molte altre persone e di conseguenza anche esse verrebbero escluse da quel modulo.
Nelle altre due righe sotto troviamo invece, un riassunto sia degli IP sia degli Utenti bannati.


5. Sistema di Esclusione




Questa sezione è assolutamente da maneggiare con cura! Oltretutto è consigliato di averla disattiva qualora non si sappia usarla.
Nella prima riga definiremo (con le stesse modalità sopra riportate) gli IP che non verranno influenzati da eventuali misure di sicurezza adottate da Asec.
Nella seconda decideremo quali file PHP escludere (es: /index.php | /modules.php | admin.php | ecc.), mentre nella terza si stabilirà il modulo, sempre da escludere, da eventuali misure di sicurezza di Asec.
Le 5 check-box servono a questo:

  • B: l'oggetto selezionato/inserito verrà escluso dal sistema di Ban (quindi tutti potranno accedere);
  • M: esclusione dell'oggetto dai moduli bannati;
  • L: esclusione dell'oggetto dai login esclusi;
  • X: esclusione dell'oggetto da opzioni di Asec quali filtering e blocking;
  • R: esclusione dell'oggetto da azioni di filtering (ovvero invio di stringhe, le quali potrebbero essere dannose)

 

6. Tracciamento Utente

 

Qui abbiamo la visione dei movimenti di tutti gli utenti che si loggano nel sito.
In questo esempio sono io come Amministratore (versione utente) che ho girato per dimostrazione.
Abbiamo una data di accesso seguita dal nostro IP (in locale sarà sempre 127.0.0.1), lo username usato, il numero di accesso che abbiamo effettuato (tipo contatore), il tipico (non saprei, forse traduzione sbagliata...) e la storia.
Proprio cliccando su quest'ultima si entra in una pagina specifica:

La lettura della storia dell'utente si parte leggendola dal basso.
Si inizia dall'icona che indica un 6, o meglio l'azione del link che abbiamo richiesto, il metodo (GET o POST). In questo caso è GET. Viene visionata ancora una volta la cartella e la data.
Segue il nome del modulo, l'eventuale variabile passata (vedi "op" nella riga bassa), l'eventuale valore della variabile passata, l'eventuale username, la lingua impostata per l'utente, e la codifica alfanumerica identificativa dell'utente stesso nel sito.
Da tener presente che ogni riga può variare a seconda del modulo. In questo esempio si vedono le variabili per Your_Account.

 

7. Sessione Log

 

Qui sopra viene mostrato come saranno visualizzati i log degli utenti anonimi e non sul nostro sito.
La prima colonna indica data e ora.
La seconda l'indirizzo IP dell'utente.
La terza il metodo usato per richiamare la pagina (può essere GET o POST).
La quarta il percorso nella cartella che l'utente ha visionato in quel momento.
L'ultima il nome del modulo visionato. Nota che posizionando il mouse sopra quest'ultima colonna comparirà un'ulteriore informazione con le specifiche della pagina e delle eventuali variabili passate.

8. Configurazione
Decisamente la parte principale e più importante di Asec. E' divisa in 10 parti.

La prima parte prevede una configurazione standard di base per l'admin.


  • Controllo Automatico del Tempo: indica ogni quante ore Asec dovrà controllare il funzionamento del sito per poi farcelo sapere tramite e-mail (default 00:00);

  • Giorni del controllo automatico: ogni quanti giorni deve eseguire un controllo (default 1);

  • Webmaster E-mail: l'email dell'amministratore;

  • Notifica via E-mail: l'email alla quale verrà inviata una notifica sullo stato del sito;

  • Lingua: le voci di lettura di Asec;

  • Login d'Autentificazione: funzione non supportata da tutti i server. Permette di accedere al sito come amministratore usando un autentificazione HTTP. Se viene attivata e poi non riuscite più ad accedere, allora dovrete entrare nel sito come utenti normali, lanciare il file asec.php e digitare i famosi 2 codici di sicurezza che avete ricevuto all'inizio dell'installazione. Poi scegliete la voce 3. Questo è quanto... (default off);

  • Conferma Prompt: Vi verrà richiesta ogni volta una conferma di sicurezza sulle azioni che intendete intraprendere (quali cancellazioni, ban, unban, ecc.) (default off).


La seconda parte è rivolta principalmente al database.


  • Approvazione automatica del profilo: provvede ad approvare automaticamente le modifiche di un profilo durante in controllo di Asec. Non è consigliabile perchè potrebbero venir creati utenti che voi non avete creato (default off);

  • Controllo autonomo del Database: controlla il db e poi invia una mail di notifica (l'opzione di notifica deve essere attivata) (default off);

  • Ottimizzazione autonoma del Database: una sorta di ottimizzazione che fa PHP-Nuke, solo che controlla eventuali errori correggendoli per poi inviare una mail di conferma (l'opzione di notifica deve essere attivata) (default off);

  • Notifica del Controllo Automatico: invia una mail di notifica quando avviene un controllo automatico (default off);

  • Notifica del cambiamento del Profilo: viene inviata una mail di notifica quando un profilo amministratore viene modificato (default off).


La terza parte riguarda i sistemi di protezione da attivare.


  • Sessione Log: attiva il controllo dell'attività del sito e cancella i log più vecchi dall'ora indicata. Potrebbe rallentare il sito (default off);

  • Protezione Flood: protegge il sito da reload troppo veloci rispetto all'intervallo indicato (default off);

  • Sistema di Ban: attiva il sistema di ban per il blocco degli IP inseriti (default off);

  • Auto Ban: banna automaticamente un tentativo di attacco (deve essere attivato il Sistema di Ban) (default off);

  • Sistema di Ban nei moduli: blocca l'accesso agli IP bannati a certi moduli (deve essere attivato il Sistema di Ban) (default off);

  • Sistema di Esclusione: attiva il sistema di esclusione di determinati oggetti (vedi spiegazione sopra) (default off);

  • Dettaglio Blocking Info: fa un riepilogo dei blocking di Asec (default off);

  • Sistema di Tracciamento: traccia le attività di qualsiasi utente del sito (default off);

  • Scadenza Tracciamento: rimuove le informazioni tracciate per un utente dopo il tempo specificato (default 60);


Quarta parte:

  • Notifica del Whois Info: tramite una mail di notifica invia informazioni riguardo all'IP dal quale è partito il presunto attacco (default off);

  • Usa un Server Alternativo al Whois: se il server che ospita il vostro sito non supporta il sistema di Whois, Asec provvederà ad usare un server alternativo (default off);

  • Filtro Proofing: indica quale tipo di account (Nessuno | Amministratori+Membri | Tutti gli Amministratori | Solo God Admin) può accedere al sito quando Asec è inattivo. E' consigliato settare "Nessuno" o "Solo God Admin" (default God Amin);

  • Tipo di Messaggio del Blocking: quale pagina dev'essere mostrata quando un IP viene bloccato (400 Bad Request | 403 Forbidden | 404 Not Found | 410 Gone). Di default è settato "Common HTML Messagge" (Messaggio HTML comune) che lascia al server generare il tipo di visualizzazione tra una delle opzioni a disposizione;

  • Massimo Visitatori: setta un numero massimo (da 10 a 9999) di visitatori nello stesso momento per il sito. Se viene raggiunto il numero massimo Asec genera un messaggio che informa l'utente dell'elevato traffico d'utenza. In ogni caso, i tipi di account selezionati nella riga "Filtro Proofing" possono accedere anche se così facendo si supera il numero massimo (default 0 - illimitato);


Quinta parte dedicata alle stringhe e variabili passate nel sito:

  • Modalità Sicura delle Richieste: attivando questa opzione, Asec trasforma in html tutte le potenziali variabili che possono essere convertite in query SQL contenenti parole e/o simboli pericolosi. E' un'opzione da maneggiare con cura dato che potrebbe convertire anche delle stringhe passate dallo stesso PHP-Nuke. E' ideale per gli amministratori che vogliono avere il massimo della sicurezza rischiando però di compromettere il vero utilizzo del CMS (default off);
  • Stringhe HTML Sicure: sostituisce tutti i codici html passati dall'utente in semplice testo. Anche questa funzione previene molti dei tipici attacchi hacker compromettendo però sempre la parte dell'utilizzabilità di PHP-Nuke. Funziona solo se la precedente opzione è attivata (default off);


Sesta parte. Ci avviciniamo alla fine :) Qui si specificano i filtri di account e script:


  • Filtra SQL Query String: rifiuta le possibili variabili di SQL Injection (diverso dal blocco che viene attuato se attiviamo le opzioni della quinta parte) (default on);

  • Filtra il Profilo Admin: previene false creazioni di account amministratori (default on);

  • Filtra Profilo degli Utenti: blocca la creazione di profili d'utente creati tramite passaggio di stringhe (default on);

  • Filtra Link esterni: previene l'inclusione di file esterni nei propri file di index.php e in quelli dei moduli bloccando così attacchi XSS lanciati da richieste di input (default on);

  • Filtra Scripting illegali: blocca eventuali script passati tramite variabili (default on);

  • Filtra Tags HTML illegali: controlla e rifiuta tags html passati tramite variabili d'input (default on);


Nella settima parte si settano le scansioni alla ricerca di irregolarità nei codici di SQL e HTML:

  • Profondità di Scansione della Stringa Query SQL: controlla possibili stringhe Sql alla ricerca di quelle di tipo injection. Potrebbe dare falsi allarmi. Se la si attiva è consigliabile disattivare l'Auto Ban settato nella terza parte così da non rischiare che gli utenti vangano bannati da falsi allarmi (default off);

  • Profondità di Scansione dei Tags HTML illegali: controlla eventuali tags HTML pericolosi per inclusioni con attacchi di scripting. Analogo al settaggio precedente, può generare falsi allarmi ed è consigliato disattivare l'Auto Ban (default off);


Ottava parte relativa alle notifiche dove vengono inviate delle mail all'amministratore:


  • Notifica SQL Injection: quando vengono intercettati attacchi di SQL injection sospetti (default off);

  • Notifica di un falso account: quando viene creato un falso account tramite variabili d'input (default off);

  • Notifica di Linking esterni: quando ci sono tentativi di linking esterni e XSS (default off);

  • Notifica di Scripting illegale: quando ci sono codici di scripting illegale (default off);

  • Notifica di tags HTML illegali: quando ci sono tags html illegali passati tramite variabili d'input (default off);


Nona parte dedicata al tipo d'invio dell'e-mail:


  • MIME Mail: è un'e-mail di testo formattata in html con decodifica del messaggio multipart in base64. Questo tipo di e-mail sono quelle che possono contenere immagini. Settare questa opzione non è richiesto e quindi viene inviata una semplice e-mail di testo (default off);

  • IMAP Mail: questo tipo di e-mail viene inviata usando il servizio di IMAP del proprio server che però potrebbe non essere supportato. Se attivata, questa opzione, Asec utilizzerà un SMTP al posto dell'IMAP qualora questo non sia disponibile (default off);


Decima e ultima parte della configurazione! Arrivati a questo punto non potete mollare. Fatelo per me... ^_^ '

Qui viene contemplato ciò che Asec si divertirà a fare (e poi capirete perchè) ai Robots che arriveranno nel nostro sito.
Chiamateli Robots o spider, spiderbots o bots o come vi pare, rimangono sempre quegli aggeggini che si intrufolano nei siti per vari motivi, in genere consentono a siti come Google, Altavista, Virglio, Yahoo, ecc di indicizzarci nei loro database.
Grazie ad Asec ho scoperto che esistono quelli "falsi". Cosa fanno ancora non lo so, ma se sono pericolosi, perchè non divertirci? E allora badile in mano e via:
Sistema Robots: se attivo Asec migliorerà le richieste di tutti i robots che visitano il nostro sito gestendoli al meglio (default off);
Rifiuta i Robots Dannosi: ed è questo il bello...se Asec individua un robots dannoso, lo indirizza a delle pagine inesistenti...ma ve lo immaginate un robottino (io lo vedo come ragnetto) vagare alla ricerca di una pagina che non troverà mai? :-D ben ti sta! Poveretto ^_^ (default on);
Robots Log-Proof: vengono accettati solo gli spider che in un certo senso si identificano. Funziona solo se è attiva la prima voce e la funzione "Sessione Log" (default on);
Robots Flood-Proof: se attivato blocca gli spider non autorizzati con l'opzione di flood. Per funzionare dev'essere abilitato il Sistema Robots. Se "Sessione Log" non è attivo o se l'opzione Robot Log-Proof è attiva, questo servizio non funziona (default on);
Giunti alla fine, salviamo tutto e...continuiamo...


9. About



Niente di più semplice. Sono delle semplici note informative. Grazie!

10. Pannello Amministrazione PHP-Nuke
Si ritorna al pannello d'amministrazione di PHP-Nuke.

11. Chiudi Sito




E' tutto descritto sopra. Cliccando il pulsante comparirà questa pagina di conferma se avete attivato nella configurazione l'opzione "Conferma Prompt":



Con o senza la schermata qui sopra, tornerete alla pagina d'approvazione dei profili e sul pannello comparirà questo simbolo:


Ora, uscite come amministratori, anche facendo:

12. Admin Logout
Sempre se avete attivato l'opzione del prompt di conferma vi comparirà questa pagina:



Altrimenti verrete sconnessi ugualmente e ammessi come normali utenti.
In questo modo potremo vedere cosa sarà successo al nostro sito dopo averlo chiuso. Dopo esser usciti arriverete alla pagina di admin che vi dice che siete stati sconnessi. Cliccate un qualsiasi altro link del vostro sito che non sia quello di admin e vedrete questo:


Ora, se volete far rientrare o comunque decidete di fare delle modifiche al sito proprio perchè dovete farle, basta che entriate loggandovi come admin e per voi sarà come se non fosse successo niente.


Testo, immagini e loghi (esclusi quelli registrati) presenti in questa pagina sono proprietà intellettuale di Gennaro Cinquegrana ( ik0wmq@virgilio.it ) e ne è vietato l'utilizzo senza la preventiva autorizzazione dell'autore.
Tutti i diritti riservati a Gennaro Cinquegrana © 2004 www.phpnukefordonkeys.com





Questo Articolo proviene da PHP-Nukefordonkeys.com
http://www.phpnukefordonkeys.com

L'URL per questa storia è:
http://www.phpnukefordonkeys.com/modules.php?name=Sections&op=viewarticle&artid=166