Come posso oscurare ciò che sto usando per gestire il mio sito?


72

C'è qualcosa che posso fare per impedire a qualcuno di sapere che il mio sito sta usando Drupal guardando il codice sorgente della prima pagina? Mi riferisco alle persone che scansionano i siti utilizzando software che rileva il software utilizzato per eseguire il sito Web per poterlo attaccare utilizzando qualsiasi punto debole noto.

Se non è possibile nascondere completamente il fatto che il sito utilizza Drupal, è almeno possibile confonderli (ad esempio, aliasando le pagine del nodo con URL simili http://example.com/servlets/<node-id>.jsp)?


76
Non vuoi nascondere Drupal. Drupal è fantastico.
Damien Tournoud,

4
Che ne dici di cancellare il file CHANGELOG.txt dalla directory principale per iniziare! No, ma seriamente, mi sembra una completa perdita di tempo. Tieniti aggiornato con gli aggiornamenti di sicurezza e non è necessario nascondere il fatto che è Drupal. The Whitehouse nasconde il fatto che stanno usando Drupal? No, lo gridano dai tetti :)
Tom Kirkpatrick,

10
In questo caso la sicurezza attraverso l'oscurità non offre più sicurezza.
Bryan Casler,

3
Potresti voler leggere Cacking Drupal: una goccia nel secchio , che è un eccellente trattato per proteggere il tuo sito Drupal.
Mawg,

2
Se non ritieni che il caso d'uso della sicurezza si sommi, ecco un'alternativa: la riservatezza commerciale. Un'azienda potrebbe non voler che i suoi concorrenti siano in grado di capire facilmente da cosa è costruito il suo sito. Oppure, un'agenzia o una società di consulenza potrebbe voler tenere al buio i suoi concorrenti riguardo all'attuale gamma di strumenti che sta utilizzando.
user56reinstatemonica8

Risposte:


53

Questa è una vecchia domanda a cui è già stata data una risposta, ma recentemente mi sono sforzato di scrivere una descrizione di tutte le cose che dovresti cambiare:

  • Rimuovi il meta generatore per Drupal 7
  • Rimuovi il testo da raccontare come CHANGELOG.txt
  • Controlla l'intestazione Scadenza
  • Directory a piedi per i codici di stato HTTP 200/404/403
  • Cerca i messaggi di testo predefiniti: modifica tutti i messaggi rivolti all'utente
  • Guarda l'HTML - html predefinito dal core e dai moduli è un segno rivelatore

Fondamentalmente: tecnicamente potrebbe essere possibile nascondere il fatto che il tuo sito esegue Drupal, ma ci passeresti così tanto tempo da non valerne la pena. Dovresti invece concentrarti su come renderlo sicuro e su operazioni sicure (ad esempio la possibilità di distribuire rapidamente gli aggiornamenti, monitorare i registri, ecc.).


Hai dimenticato l' Drupaloggetto JavaScript che deve essere rinominato.
Mołot,

@Molot buon punto. È possibile? Qualche puntatore su come farlo? Il mio punto è che farlo non vale la pena, quindi aggiungere ulteriori consigli su come farlo è utile solo se promuove quel punto. Spero sia davvero difficile fare quello che dici :)
cavoli il

Bene, l'ho testato con la sostituzione regex di massa su una directory di Drupal e ha funzionato ... ma non credo che sia davvero buono. E ovviamente * * # su con ogni aggiornamento del modulo, ovviamente.
Mołot,

Corretta. Non vale la pena. Concentrati su cose più importanti :)
Greggles,

101

Non puoi nasconderlo completamente. Gran parte di ciò che è necessario per farlo, richiederebbe core di hacking. Il più grande indizio, è la Drupalvariabile JavaScript che è leggibile dalla prima pagina, o qualsiasi pagina per quella materia.

Se vuoi migliorare la sicurezza dei tuoi siti nascondendo che si tratta di un sito Drupal, i tuoi sforzi sono meglio spesi per le revisioni del codice piuttosto che per cercare di nascondere il fatto che il sito è realizzato con Drupal.


7
Concordato. Un altro regalo morto è la struttura dei percorsi CSS / JS / immagine.
Fuzzy76,

2
Puoi anche visitare /node/1e vedere cosa succede o controllare le intestazioni HTTP .
Paul Jones,

39
Se provi a nascondere il tuo sito con sicurezza attraverso l'oscurità, perderai semplicemente il tuo tempo.
Dave Reid,

6
Concordato con tutto quanto sopra. Inoltre, sarebbe più difficile per le persone che fanno confronti CMS vedere quanti fantastici siti eseguono Drupal ;-)
geerlingguy

Rilevante ciò che geerlingguy sta dicendo è stata la discussione che abbiamo avuto qui: groups.drupal.org/node/113024#comments
coderintherye

42

È troppo facile da fare, Kiam!

  • Usa un proxy inverso o personalizza il tuo demone http per filtrare la fastidiosa intestazione http Drupal
  • Negare l'accesso http a qualsiasi cartella predefinita di Drupal
  • Usa il buffering dell'output PHP per riscrivere e oscurare la tua sorgente HTML, rimuovere i dati non necessari
  • Usa l'URL alias o custom_url_rewrite_in / outbound per rendere i tuoi URL un casino
  • Modifica l'errore 404 predefinito, rimuovi / modifica update.php
  • Apporta altre modifiche se qualcuno lo scopre

E, ultimo ma non meno importante, assicurati che il tuo sito sia così semplice che non richiede JS o CSS per comportamenti normali (non utilizzare Views o Ctools ...), non supporta l'autenticazione dell'utente, ecc. Ciò significa che il tuo sito dovrebbe essere semplice come un sito html statico.

Ok, tutto ciò per far credere alle persone che il tuo sito non esegue Drupal. Ad ogni modo, la sicurezza per oscurità è inutile.


@jcisio "Ad ogni modo, la sicurezza per oscurità è inutile.", avresti dovuto aggiungere questo in cima al tuo commento: P.
arpitr,

@arpitr Lo fanno tutti gli altri, quindi penso di non averne bisogno;)
jcisio,

34

C'è un articolo ufficiale e una discussione riguardante lo stesso .

Non puoi. Non provare

  • Gli attacchi automatici (di gran lunga gli attacchi più comuni) non ispezionano nemmeno il server prima di provare i loro exploit .
    Ispezionare i registri di qualsiasi sito di alto profilo mostrerà migliaia di richieste infruttuose per /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal, /cgi-bin/ip.cgi... e qualsiasi numero di tentativi di exploit storici su qualsiasi sistema non correlato.
    Gli attacchi agli exploit si verificano anche se gli exploit non esistono sul tuo sistema operativo o CMS. Qualunque cosa tu faccia per identificare erroneamente il tuo sito verrà comunque ignorata dagli hacker dilettanti.
  • Qualunque cosa tu pensi di poter nascondere, ci sono altri indizi per qualsiasi sistema.
    Rimuovere semplicemente alcune di tutte le stringhe che contengono "drupal" non nasconde il tuo sito a nessuno snooper ragionevole. Ci sono dozzine di modi che possono essere utilizzati per indovinare ciò che sta servendo le tue pagine, anche servizi dedicati da dire È quel sito che esegue Drupal. Proprio le parole chiave che si riconoscono e pensi che sono una minaccia sono un sottoinsieme minore dei veri indicatori.
    Richiedi index.php /? Q = utente. Quindi prova a disabilitare quella risposta senza paralizzare il tuo sito.
  • La sicurezza per oscurità non è sicurezza. Dà una falsa impressione di essere "sicuri" quando si nascondono vulnerabilità dietro una cortina fumogena che qualsiasi aggressore che rappresenta una vera minaccia sarebbe in grado di vedere.
  • Anche se non è del tutto impossibile hackerare il codice al punto in cui la maggior parte delle tracce di Drupal sono nascoste dal codice HTML, (dopo tutto è il codice sorgente Open) i passaggi necessari per farlo spezzerebbero il core così gravemente che il tuo ramo hackerato del codice sarebbe incompatibile con i veri aggiornamenti di sicurezza che non è stato possibile correggere e sarebbe veramente aperto a qualsiasi vera minaccia futura identificata dal team di sicurezza. Questa è una vera strada verso la vulnerabilità del sistema.
  • I moduli più significativi o utili hanno una propria 'firma' di codice che è difficile da nascondere senza riscritture significative. Se stai usando 'viste', 'cck', 'annuncio', 'imagecache', 'jquery', aggregazione css, temi forniti o qualcosa di utile sul tuo sito - qualcuno può dirlo . Nasconderlo del tutto richiederebbe in genere una conversione totale delle funzioni del tema - almeno. Anche allora, l'oscuramento probabilmente non funzionerà .
  • Per rimuovere l'identificazione di molte delle funzionalità avanzate, come anche la semplice installazione di Google Analytics che può utilizzare Drupal Libraries per funzionare, devi necessariamente rinunciare completamente a tali funzionalità o riscriverle in modo da non sfruttare l'infrastruttura Drupal . A volte questo è possibile, ma in tutti i casi è controproducente.

Potresti essere interessato a leggere anche Protezione del tuo sito .

Ricorda Mai incidere nucleo


Anche se sono d'accordo con questo, penso che anche solo come prima linea di difesa, rimuovere le intestazioni che si riferiscono a PHP e Drupal sia una buona cosa da fare, oltre a non consentire l'accesso a script php non indicizzati. No, ovviamente le persone troveranno sempre un modo per scoprire che stai gestendo Drupal e pensare che puoi nascondere che è sciocco. Ma non c'è nulla di male nel rendere la vita un po 'più difficile per l'hacker meno esigente.
Matt Fletcher,

1

Non ha senso nascondere che il tuo sito esegue Drupal. È il modo sbagliato di guardare lo sviluppo di siti Web. Ciò su cui dovresti concentrarti è la sicurezza. Assicurati di implementare tutte le misure sui titoli e tutto andrà bene. Non c'è un motivo al mondo per nascondere che stai usando un certo cms o un altro software. Con i componenti aggiuntivi di FF come Wappalyzer, puoi dire in un attimo se un sito utilizza Drupal, quindi la domanda è piuttosto controversa.


1

Un'ulteriore cosa che puoi fare è utilizzare anche il modulo Alias ​​file per modificare la struttura dei file predefinita.

Il modulo File Aliases ti consente di utilizzare token alias personalizzabili per i tuoi file caricati, dandoti la possibilità di mantenere il tuo file system organizzato come di consueto fornendo al contempo percorsi puliti (ovvero, niente più / siti / default / file /).


1
E? Ciò risolve una piccola parte del processo e forse nemmeno la parte più importante.
cavalca il

1
Non volevo ripetere ancora una volta le risposte corrette delle persone sopra. Aggiungo solo un altro suggerimento. E sì, questo suggerimento è molto importante, perché era il più difficile da fare fino ad ora, e di solito l'unico modo per capire un sito è drupal, poiché di solito i webmaster fanno i soliti passi tranne questo. E sì, è molto facile capire che si tratta di un sito drupal proprio per questa struttura di file / organizzazione di cartelle.
Giovanni,

1

Sono d'accordo con altre persone sul fatto che non puoi nasconderlo del tutto. Se guardi l'origine HTML, noterai che molte volte i file CSS e JavaScript non sono stati aggregati. L'aggregazione CSS e JavaScript dovrebbe essere abilitata.


0

In quel passato ho scambiato i miei caratteri con i caratteri tipici del progetto Ruby come Lucida Sans, aumentando anche le dimensioni di input come fanno tutti i bambini alla moda.

Un altro regalo è la grafica "palpitante" per i campi di completamento automatico. Inoltre non funziona quando si aumenta la dimensione di input. Eccone uno che puoi rubare: http://beta.seattlebedandbreakfast.com/misc/throbber.gif

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.