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