Jak mogę ukryć to, czego używam do prowadzenia mojej witryny?

72

Czy jest coś, co mogę zrobić, aby ktoś nie wiedział, że moja witryna korzysta z Drupala, patrząc na kod źródłowy strony głównej? Mam na myśli osoby, które skanują witryny za pomocą oprogramowania wykrywającego oprogramowanie używane do uruchamiania witryny, aby móc zaatakować ją przy użyciu dowolnego znanego słabego punktu.

Jeśli nie jest możliwe całkowite ukrycie faktu, że strona korzysta z Drupala, czy przynajmniej można je pomylić (np. Poprzez aliasing stron węzłów za pomocą takich adresów URL http://example.com/servlets/<node-id>.jsp)?

kiamlaluno
źródło
76
Nie chcesz ukryć Drupala. Drupal jest niesamowity.
Damien Tournoud,
4
Co powiesz na usunięcie pliku CHANGELOG.txt z katalogu głównego na początek! Nie, ale poważnie - brzmi dla mnie jak całkowita strata czasu. Bądź na bieżąco z aktualizacjami zabezpieczeń i nie musisz ukrywać faktu, że jest to Drupal. Czy w Białym Domu ukrywa się fakt, że używają Drupala? Nie, krzyczą z dachów :)
Tom Kirkpatrick
10
W tym przypadku bezpieczeństwo poprzez zaciemnienie nie zapewnia większego bezpieczeństwa.
Bryan Casler
3
Możesz przeczytać Cacking Drupal: kropla w wiadrze , która jest doskonałym traktatem o zabezpieczaniu witryny Drupal.
Mawg
2
Jeśli nie uważasz, że przypadek użycia zabezpieczeń się sumuje, oto alternatywa: tajemnica handlowa. Firma może nie chcieć, aby konkurenci mogli z łatwością dowiedzieć się, z czego zbudowana jest strona. Albo agencja lub firma konsultingowa mogą chcieć ukrywać swoich konkurentów w ciemności na temat aktualnego zakresu narzędzi, których używa.
user568458,

Odpowiedzi:

53

To stare pytanie, na które już udzielono odpowiedzi, ale ostatnio postarałem się napisać opis wszystkich rzeczy, które należy zmienić:

  • Usuń metaenerator dla Drupala 7
  • Usuń tekst ostrzegawczy, taki jak CHANGELOG.txt
  • Sprawdź nagłówek Wygasa
  • Przechodzące katalogi dla kodów statusu HTTP 200/404/403
  • Poszukaj domyślnych wiadomości tekstowych - popraw wszystkie wiadomości skierowane do użytkownika
  • Spójrz na HTML - domyślny HTML z rdzenia i modułów to znak rozpoznawczy

Zasadniczo: technicznie może być możliwe ukrycie faktu, że Twoja witryna obsługuje Drupal, ale poświęciłbyś na to tyle czasu, że nie warto. Zamiast tego powinieneś skupić się na zapewnieniu bezpieczeństwa i bezpiecznych operacji (np. Możliwość szybkiego wdrażania aktualizacji, monitorowanie dzienników itp.).

Greggles
źródło
Zapomniałeś Drupalobiektu JavaScript, którego nazwę należy zmienić.
Mołot
@Molot dobry punkt. Czy to jest możliwe? Jakiś wskaźnik, jak to zrobić? Chodzi mi o to, że robienie tego nie jest warte czasu, więc dodanie większej ilości porad na temat tego, jak to zrobić, jest pomocne tylko wtedy, gdy popiera ten punkt. Mam nadzieję, że naprawdę ciężko jest robić to, o czym wspominasz :)
greggles
Cóż, przetestowałem to z masowym wyrażeniem regularnym w katalogu Drupal i zadziałało ... ale nie sądzę, żeby było naprawdę dobre. I oczywiście do * aktualizacji # przy każdej aktualizacji modułu.
Mołot
Poprawny. To nie jest warte twojego czasu. Skoncentruj się na ważniejszych rzeczach :)
greggles
101

Nie możesz tego całkowicie ukryć. Większość tego, co trzeba zrobić, wymagałaby hakowania rdzenia. Największe znaczenie ma Drupalzmienna JavaScript, którą można odczytać ze strony głównej lub dowolnej innej strony.

Jeśli chcesz poprawić bezpieczeństwo swoich stron, ukrywając, że jest to witryna Drupal, lepiej jest poświęcić na recenzje kodu, niż na próbę ukrycia faktu, że strona została stworzona za pomocą Drupala.

googletorp
źródło
7
Zgoda. Innym martwym rozdaniem jest struktura ścieżek CSS / JS / image.
Fuzzy76,
2
Możesz także odwiedzić /node/1i zobaczyć, co się pojawi, lub sprawdzić nagłówki HTTP .
Paul Jones
39
Jeśli spróbujesz ukryć swoją witrynę z bezpieczeństwem poprzez niejasność, po prostu zmarnujesz swój czas.
Dave Reid
6
Zgadzam się ze wszystkimi powyższymi. Dodatkowo, osobom dokonującym porównań CMS byłoby trudniej zobaczyć, ile świetnych witryn obsługuje Drupal ;-)
geerlingguy
Istotna dla tego, co mówi geerlingguy, była dyskusja, którą tu mieliśmy: groups.drupal.org/node/113024#comments
coderintherye
42

To zbyt łatwe, Kiam!

  • Użyj odwrotnego proxy lub dostosuj demona http, aby filtrować irytujący nagłówek http Drupal
  • Odmawiaj dostępu http do domyślnych folderów Drupal
  • Użyj buforowania danych wyjściowych PHP, aby przepisać i zaciemnić źródło HTML, usunąć niepotrzebne dane
  • Użyj aliasu adresu URL lub custom_url_rewrite_in / outbound, aby sprawić, że twoje adresy URL będą bałaganem
  • Zmień domyślny błąd 404, usuń / zmień update.php
  • Wprowadź inne zmiany, jeśli ktoś się dowie

I na koniec, upewnij się, że twoja strona jest tak prosta, że ​​nie wymaga JS ani CSS do normalnych zachowań (nie używaj Widoków ani Narzędzi ...), nie obsługuje uwierzytelniania użytkowników itp., Co oznacza, że ​​Twoja witryna powinna być tak proste, jak statyczna witryna HTML.

Ok, wszystko po to, aby ludzie uwierzyli, że twoja strona nie obsługuje Drupala. W każdym razie bezpieczeństwo przez zaciemnienie jest bezużyteczne.

Jcisio
źródło
@ jcisio „W każdym razie bezpieczeństwo przez zaciemnienie jest bezużyteczne.”, powinieneś dodać to na górze komentarza: P.
arpitr
@arpitr Wszyscy to robią, więc myślę, że nie muszę;)
jcisio
34

Istnieje oficjalna artykuł i dyskusja dotycząca samo .

Nie możesz Nie próbuj

  • Zautomatyzowane ataki (zdecydowanie najczęstsze ataki) nawet nie sprawdzają serwera przed wypróbowaniem swoich exploitów .
    Sprawdzanie dzienników w dowolnym głośnym serwisie pokaże tysiące bezowocnych żądań /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal, /cgi-bin/ip.cgi... i dowolnej liczby prób historycznych exploitów w dowolnym niepowiązanym systemie.
    Ataki na exploity mają miejsce, nawet jeśli exploity nie istnieją w twoim systemie operacyjnym lub CMS. Cokolwiek zrobisz, aby źle zidentyfikować swoją witrynę, i tak zostaną zignorowani przez amatorskich hakerów.
  • Cokolwiek myślisz, że możesz ukryć, istnieją inne wskazówki dla każdego systemu.
    Samo usunięcie niektórych ciągów zawierających „drupal” nie ukrywa twojej witryny przed żadnym rozsądnym szpiegiem. Istnieje dziesiątki sposobów, aby zgadnąć, co obsługuje twoje strony, nawet dedykowane usługi, aby powiedzieć Czy to strona z Drupalem. Tylko słowa kluczowe, które rozpoznajesz i uważasz za zagrożenie, stanowią niewielki podzbiór rzeczywistych wskaźników.
    Zapytaj o index.php /? Q = użytkownik. Następnie spróbuj wyłączyć tę odpowiedź bez niszczenia witryny.
  • Bezpieczeństwo przez zaciemnienie nie jest zabezpieczeniem. Daje fałszywe wrażenie, że jest „bezpieczny”, gdy ukrywasz luki w zabezpieczeniach za zasłoną dymną, które każdy atakujący, który stanowiłby prawdziwe zagrożenie, byłby w stanie przejrzeć.
  • Chociaż nie jest całkowicie niemożliwe do zhakowania kodu do tego stopnia, że większość śladów Drupala jest ukryta w źródle HTML, (w końcu jest to Open Source) kroki wymagane do tego, by złamać rdzeń tak bardzo, że zhakowana gałąź kodu byłyby niezgodne z rzeczywistymi aktualizacjami zabezpieczeń , których nie można było załatać, i byłyby rzeczywiście otwarte na wszelkie rzeczywiste przyszłe zagrożenia zidentyfikowane przez zespół bezpieczeństwa. Jest to prawdziwa droga do podatności systemu.
  • Najbardziej znaczące lub przydatne moduły mają własną sygnaturę kodu, którą trudno ukryć bez znaczących przeróbek. Jeśli używasz „widoków”, „cck”, „reklamy”, „imagecache”, „jquery”, agregacji css, dodanych motywów lub czegoś przydatnego na swojej stronie - ktoś może to stwierdzić . Ukrywanie tego całkowicie wymagałoby zazwyczaj całkowitej konwersji funkcji motywu - przynajmniej. Nawet wtedy zaciemnienie prawdopodobnie nie zadziała .
  • Aby usunąć identyfikację wielu zaawansowanych funkcji, takich jak nawet prosta instalacja Google Analytics, która może wykorzystywać Biblioteki Drupal do pracy, musisz koniecznie albo całkowicie zrezygnować z tych funkcji, albo przepisać je w sposób, który nie wykorzystuje infrastruktury Drupal . Czasami jest to możliwe, ale we wszystkich przypadkach przynosi efekt przeciwny do zamierzonego.

Być może zainteresuje Cię także artykuł Zabezpieczanie swojej witryny .

Pamiętaj Nigdy nie rąbaj rdzenia

niksmac
źródło
Chociaż się z tym zgadzam, myślę, że nawet jako pierwsza linia obrony, dobrze jest usunąć nagłówki odnoszące się do PHP i Drupala, a także nie zezwalać na dostęp do nieindeksowych skryptów php. Nie, oczywiście ludzie zawsze znajdą sposób, aby dowiedzieć się, że prowadzisz Drupala, i myślenie, że możesz się ukryć, to głupie. Ale utrudnianie życia najmniej wymagającemu hakerowi nie jest szkodliwe.
Matt Fletcher
1

Nie ma sensu ukrywać, że na Twojej stronie działa Drupal. To zły sposób patrzenia na tworzenie stron internetowych. Powinieneś skupić się na bezpieczeństwie. Upewnij się, że wprowadziłeś wszystkie zabezpieczenia i wszystko będzie dobrze. Na świecie nie ma jednego powodu, aby ukrywać, że używasz określonego cms lub innego oprogramowania. Dzięki dodatkom FF, takim jak Wappalyzer, możesz od razu stwierdzić, czy strona korzysta z Drupala, więc pytanie jest dość dyskusyjne.

picxelplay
źródło
1

Dodatkową rzeczą, którą możesz zrobić, jest użycie modułu Aliasów plików do zmiany domyślnej struktury plików.

Moduł File Aliases pozwala używać dostosowywanych tokenów aliasów dla przesyłanych plików, dając ci możliwość utrzymywania porządku w twoim systemie plików, jak zwykle, zapewniając jednocześnie czyste ścieżki (tj. Nie więcej / sites / default / files /).

Jan
źródło
1
I? To naprawia jedną drobną część procesu, a może nawet nie najważniejszą.
greggles,
1
Nie chciałem powtarzać jeszcze raz poprawnych odpowiedzi osób powyżej. Dodam jeszcze jedną wskazówkę. I tak, ta wskazówka jest bardzo ważna, ponieważ do tej pory była najtrudniejsza i zazwyczaj jedynym sposobem na zrozumienie witryny jest drupal, ponieważ zwykle webmaster wykonuje zwykłe kroki oprócz tego. I tak, bardzo łatwo jest zrozumieć, że jest to witryna drupal tylko z powodu tej struktury plików / organizacji folderów.
John
1

Zgadzam się z innymi ludźmi, że nie można tego całkowicie ukryć. Jeśli spojrzysz na źródło HTML, zauważysz, że wiele razy pliki CSS i JavaScript nie były agregowane. Agregacja CSS i JavaScript powinna być włączona.

użytkownik140
źródło
0

W przeszłości zamieniłem czcionki na typowe czcionki projektu Ruby, takie jak Lucida Sans, zwiększając również rozmiary wejściowe, jak robią to wszystkie modne dzieciaki.

Kolejną zaletą jest grafika „pulsująca” dla pól autouzupełniania. Nie działa również, gdy zwiększysz rozmiar wejściowy. Oto jeden, który możesz ukraść: http://beta.seattlebedandbreakfast.com/misc/throbber.gif

doublejosh
źródło