Як я можу затемнити, що я використовую для запуску свого сайту?


72

Чи можу я щось зробити, щоб хтось не міг знати, що мій сайт використовує Drupal, дивлячись на вихідний код головної сторінки? Я маю на увазі людей, які сканують сайти, використовуючи програмне забезпечення, яке виявляє програмне забезпечення, яке використовується для запуску веб-сайту, щоб мати змогу атакувати його за допомогою будь-якої відомої слабкої точки.

Якщо неможливо повністю приховати той факт, що на веб-сайті використовується Drupal, чи можна принаймні їх переплутати (наприклад, шляхом вивільнення сторінок вузла з такими URL-адресами http://example.com/servlets/<node-id>.jsp)?


76
Ви не хочете приховувати Drupal. Drupal - приголомшливий.
Дамієн Турноуд

4
Як щодо початку видалити файл CHANGELOG.txt з кореневого каталогу! Ні, але серйозно - це звучить як повна трата часу для мене. Будьте в курсі оновлень безпеки, і немає потреби приховувати той факт, що це Drupal. Чи Біла хата приховує той факт, що вони використовують Drupal? Ні, вони кричать з дахів :)
Том Кіркпатрік

10
У цьому випадку безпека через невідомість не забезпечує більшої безпеки.
Брайан Каслер

3
Ви можете прочитати Cacking Drupal: крапля у відрі , що є прекрасним трактатом щодо забезпечення вашого сайту Drupal.
Mawg

2
Якщо ви не вважаєте, що випадок використання безпеки додається, ось альтернатива: комерційна конфіденційність. Бізнес може не хотіти, щоб його конкуренти могли легко зрозуміти, з чого побудований його сайт. Або агентство чи консультанти можуть захотіти тримати своїх конкурентів у темряві про поточний спектр інструментів, якими він користується.
user568458

Відповіді:


53

Це старе і вже відповів на запитання, але нещодавно я доклав певних зусиль, щоб написати опис усіх речей, які вам знадобиться змінити:

  • Видаліть метагенератор для Drupal 7
  • Видаліть текст розповіді, як-от CHANGELOG.txt
  • Перевірте заголовок Expires
  • Провідні каталоги для кодів статусу HTTP 200/404/403
  • Шукайте текстові повідомлення за замовчуванням - налаштуйте всі повідомлення, орієнтовані на користувача
  • Подивіться на HTML - HTML за замовчуванням з ядра та модулів є знаковим знаком

В основному: технічно можливо вдасться приховати той факт, що на вашому сайті працює Drupal, але ви витратили б на нього стільки часу, що цього не варто. Натомість слід зосередитись на безпеці та безпечних операціях (наприклад, можливість швидко розгортати оновлення, моніторинг журналів тощо).


Ви забули Drupalоб’єкт JavaScript, який потрібно перейменувати.
Молот

@Молот хороший момент. Це можливо? Будь-який вказівник про те, як це зробити? Моя думка полягає в тому, що робити це не варто часу, тому додавання додаткових порад щодо того, як це зробити, корисно лише в тому випадку, якщо це сприятиме цьому. Я сподіваюсь, що дійсно важко зробити те, що ви згадуєте :)
greggles

Ну, я протестував це з масовою заміною регулярних виразів у каталозі Drupal, і це спрацювало ... але я не вірю, що це дійсно добре. І це, звичайно, f * @ # з кожним оновленням модуля.
Молот

Правильно. Це не варто вашого часу. Зосередьтеся на більш важливих речах :)
greggles

101

Ви не можете його повністю приховати. Більшість того, що потрібно для цього, потребує злому ядра. Найголовніше - це Drupalзмінна JavaScript, яку можна прочитати з головної сторінки, або будь-яку сторінку з цього приводу.

Якщо ви хочете покращити безпеку своїх сайтів, сховавши, що це сайт Drupal, ваші зусилля краще витратити на огляд кодів, ніж на намагання приховати той факт, що сайт створений за допомогою Drupal.


7
Домовились. Ще одне мертве подарунка - структура шляхів CSS / JS / зображення.
Fuzzy76

2
Ви також можете відвідати /node/1та подивитися, що з’являється або перевірити заголовки HTTP .
Пол Джонс

39
Якщо ви спробуєте приховати свій сайт безпекою через неясність, ви просто збираєтесь витрачати свій час.
Дейв Рейд

6
Погодився з усім вищесказаним. Крім того, людям, які роблять порівняння CMS, було б складніше побачити, на скільки дивовижних сайтів працює Drupal ;-)
geerlingguy

Відповідно до того, про що говорить ґерлінггуй, було обговорення, яке ми мали тут: groups.drupal.org/node/113024#comments
coderintherye

42

Це занадто просто зробити, кіаме!

  • Використовуйте зворотний проксі-сервер або налаштуйте свій http-демон, щоб відфільтрувати надокучливий заголовок Drupal http
  • Заборонити доступ http до будь-яких папок за замовчуванням Drupal
  • Використовуйте буферизацію вихідних даних PHP, щоб переписати та затемнити джерело HTML, видалити непотрібні дані
  • Використовуйте псевдонім URL-адреси або custom_url_rewrite_in / outbound, щоб внести ваші URL у безлад
  • Змініть помилку 404 за замовчуванням, видаліть / змініть update.php
  • Внесіть будь-які інші зміни, якщо хтось дізнається

І останнє, але не менш важливо, переконайтеся, що ваш сайт настільки простий, що не вимагає JS або CSS для нормальної поведінки (не використовуйте Views або Ctools ...), не підтримує автентифікацію користувачів тощо. Це означає, що ваш сайт повинен бути таким же простим, як статичний html-сайт.

Гаразд, все, щоб змусити людей повірити, що на вашому сайті не працює Drupal. У будь-якому разі, безпека через незрозумілість марна.


@jcisio "У будь-якому випадку безпека від неясності марна.", ви повинні додати це зверху до свого коментаря: P.
арпітр

@arpitr Всі інші так роблять, тож я думаю, мені це не потрібно;)
jcisio

34

Є офіційна стаття та дискусія щодо того ж .

Ви не можете. Не намагайся

  • Автоматизовані атаки (на сьогоднішній день найпоширеніші атаки) навіть не перевіряють сервер перед тим, як спробувати їхні подвиги .
    Огляд журналів будь-якого гучного сайту покаже тисячі безрезультатних запитів на /AspBB/db/betaboard.mdb _private/cmd.asp /scripts/../../winnt/system32/cmd.exe /wp-login/ /administrator/components/com_wmtgallery/admin.wmtgal, /cgi-bin/ip.cgi... та будь-яку кількість спроб історичних подвигів у будь-якій незв’язаній системі.
    Напади на подвиги трапляються, навіть якщо подвиги не існують у вашій ОС або CMS. Що б ви зробили, щоб неправильно визначити свій сайт, хакерські любителі все одно будуть ігноруватися.
  • Що б ви думали, що можете приховати, є інші підказки для будь-якої системи.
    Просто видалення деяких рядків, що містять "drupal", не маскує ваш сайт до розумного снупера. Є десятки способів, які можна використовувати, щоб здогадатися, що обслуговує ваші сторінки, навіть спеціалізовані сервіси, щоб сказати, чи є на цьому веб-сайті Drupal. Просто ключові слова, які ви визнаєте та вважаєте загрозою, є незначним набором реальних показників.
    Запитайте в index.php /? Q = користувача. Потім спробуйте вимкнути цю відповідь, не калічивши свій сайт.
  • Безпека від неясності - це не безпека. Це створює помилкове враження, що ви є "безпечними", коли ви ховаєте лише вразливості за димовим екраном, через які зможе побачити будь-який зловмисник, який створював реальну загрозу.
  • Хоча зламати код не до того, що більшість слідів Drupal приховано від джерела HTML, (це все-таки з відкритим кодом) необхідні кроки обов'язково зламають ядро ​​настільки сильно, що ваша зламана гілка коду було б несумісне з реальними оновленнями безпеки, які ви не зможете виправити, і справді було б відкрито до будь-яких реальних майбутніх загроз, визначених командою безпеки. Це вірний шлях до вразливості системи.
  • Більшість значущих чи корисних модулів мають власний код «підпису», який важко приховати без значних переписувань. Якщо ви використовуєте 'views', 'cck', 'ad', 'imagecache', 'jquery', css-агрегація, внесені теми або що-небудь корисне на вашому сайті - хтось може розповісти . Приховування того, що цілком вимагає повного перетворення тематичних функцій - принаймні. Вже тоді затемнення, мабуть, не спрацює .
  • Щоб видалити ідентифікацію багатьох вдосконалених функцій, як-от навіть проста установка Google Analytics, яка може використовувати Drupal-бібліотеки для роботи, потрібно обов'язково або відмовитися від цих функцій, або переписати їх таким чином, щоб не скористатися інфраструктурою Drupal. . Іноді це можливо, але у всіх випадках це контрпродуктивно.

Можливо, вам буде цікаво прочитати Захист вашого веб-сайту .

Пам'ятайте Ніколи не зламайте ядро


Хоча я з цим погоджуюся, я вважаю, що навіть як перша лінія захисту, це добре робити, видаляючи заголовки, що посилаються на PHP та Drupal, а також не допускати доступу до будь-яких неіндексованих PHP-скриптів. Ні, звичайно, люди завжди знайдуть спосіб дізнатися, що ви керуєте Drupal, і думаєте, що можете приховати це нерозумно. Але немає шкоди в тому, щоб зробити життя трохи важчим для найменш вимогливого хакера.
Метт Флетчер

1

Немає сенсу приховувати, що на вашому сайті працює Drupal. Це неправильний спосіб перегляду веб-сайтів, що розробляються. На що слід зосередити увагу, це безпека. Переконайтеся, що ви виконуєте всі заходи з цінних паперів, і все буде добре. У світі немає однієї причини приховувати, що ви використовуєте певний cms чи інший фрагмент програмного забезпечення. З FF-адресами, такими як Wappalyzer, ви можете вмить сказати, чи сайт використовує Drupal, тому питання є доволі спірним.


1

Додатково, що ви можете зробити, це також використовувати модуль File Aliases для зміни структури файлів за замовчуванням.

Модуль « Псевдоніми файлів» дозволяє використовувати налаштовані псевдоніми токена для завантажених файлів, що дає вам можливість організовувати свою файлову систему як завжди, надаючи чисті виглядаючі контури (тобто більше / сайти / за замовчуванням / файли /).


1
І? Це фіксує одну крихітну частину процесу і, можливо, навіть не найважливішу частину.
грегче

1
Я не хотів ще раз повторювати правильні відповіді людей вище. Я лише додаю ще одну пораду. І так, ця підказка дуже важлива, оскільки це було найскладніше зробити до цього часу, і зазвичай єдиний спосіб зрозуміти сайт - це drupal, оскільки зазвичай веб-майстри роблять звичайні кроки, крім цього. І так, зрозуміти, що це друпальний сайт, дуже просто завдяки цій структурі файлів / організації папок.
джон

1

Я погоджуюся з іншими людьми, що ти не можеш цього повністю приховати. Якщо ви подивитесь на джерело HTML, ви помітите, що багато разів файли CSS та JavaScript не були агреговані. Агрегація CSS та JavaScript повинна бути включена.


0

У тому минулому я поміняв свої шрифти на типові шрифти проекту Ruby, такі як Lucida Sans, також збільшуючи розміри вводу, як і всі хіп-діти.

Ще одна подарунка - графіка "пульсація" для полів автозаповнення. Він також не працює, коли ви збільшуєте розмір вводу. Ось один ви можете вкрасти: http://beta.seattlebedandbreakfast.com/misc/throbber.gif

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.