Как защитить форум на vBulletin

W

Wmboard

#1
Данные меры обязательны для всех, кто заботится о безопасности своего ресурса, не только при установленном vbSEO, но и без него!

Возвращаясь к теме vbSEO https://lumtu.com/vbulletin/2530-naidena-uyazvimost-vbseo.html и к серии взломов форумов на vBulletin с установленным данным модулем можно констатитровать тот факт, что заплатка которая была выложена на vbsupport не спасает от взлома. В этом мы убедились как на собственном форуме, так и на форумах наших друзей и партнеров, которые пострадали уже после обновления vbSEO.

Можно долго дискутировать о реальной пользе vbSEO как такового, так как есть как противники данного модуля, так и поклонники, к числу которых отношу себя и я. Но в настоящий момент фактом является то, что с установленным модулем vbSEO повышается релевантность страниц в поисковых системах, и как следствие повышается трафик. Что как вы понимаете, является несомненным плюсом, в частности для молодых, развивающихся форумов необъятной сети.

Но, вернемся к нашей проблеме защиты форума на vBulletin. Серия взломов, описанная выше по ссылке заставила искать варианты решения проблемы. Тк снять vbSEO с форумов на котором работал данный модуль равносильно катастрофе. Вариант решения проблемы был найден.

К сожалению не могу сказать где как и что работает после инъекции, хотя метод взлома известен, но после проведения комплекса мер по защите движка данная уязвимость больше не работает. Поэтому в этой статье я расскажу о полном комплексе мер, которые защищают ваш форум на vBulletin.

Как защитить форум на vBulletin?

1. После установки форума на хостинг удаляем папку install, наличие которой может инициировать новую установку форума, а также файлы в корневой системе вашего форума под именами validator.php и checksum.md5 (они могут быть, а могут и не быть)

2. Пепеименовываем папку администратора и модератора (admincp и modcp). В конфиг форума прописываем новые имена ваших папок:

Код:
 // ****** PATH TO ADMIN & MODERATOR CONTROL PANELS ******
$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';

3. В конфиге прописываем ID админа в той строке, где указывается неизменяемый и неудаляемый пользователь.

4. В корневой .htaccess дописываем строку, запрещающую изменение конфига из вне:

Код:
<Files config.php>
deny from all
</Files>

5. Пароли в админку, на хостинг, в базу данных должны быть сложные для подбора: перебор цифр, букв, символов в разном регистре и в случайном порядке.

6. Если вложения форума хранятся в файловой системе это дополнительно ослабляет форум для злоумышленников. Но на самом деле во многих форумах вложения хранятся не в базе данных, а в файловой системе. Это связано с тем, что вложения хранящиеся в базе данных на больших старых форумах начинают тормозить его работу, и значительно повышают нагрузку на хостинг, поэтому приходится облегчать базу данных.

В папки: customavatars, customgroupicons, images/customprofilepics, images, signaturepics, cpstyles а также во все папки в которые осуществляются загрузки (как правило папки хаков специализирующихся на этом) заливаем .htaccess следующего содержания:

Код:
RemoveHandler .phtml
RemoveHandler .php
RemoveHandler .php3
RemoveHandler .php4
RemoveHandler .php5
RemoveHandler .cgi
RemoveHandler .exe
RemoveHandler .pl
RemoveHandler .asp
RemoveHandler .aspx
RemoveHandler .shtml
<Files ~ "\.php|\.phtml|\.cgi|\.exe|\.pl|\.asp|\.aspx|\.sht ml">
Order allow,deny
Deny from all
</Files>

7. В папку includes заливаем .htaccess следующего содержания:

Код:
Order allow,deny
Deny from all

8. В папку вашей переименованной админки заливаем .htaccess ограничения по IP. В случае если ваш IP статический:

Код:
Order Deny,Allow
Deny from all
Allow from 195.168.56.56

Где 195.168.56.56 – ваш IP адрес. На некоторых хостингах подобный номер не пройдет, может не пускать админку. Есть вариант замены хаком защиты админки. На статических IP работает, на динамическом работоспособности я не добился…

8.1 Защищаем админку .htaccess если у вас динамический IP

Код:
Order Deny,Allow
Deny from all
Allow from 195.168.

Где 195.168. первые две группы цифр вашей подсети.
В данном случае мы разрешаем вход в админку вашей подсети. Конечно рисков больше, чем если у вас был бы статический IP, но вероятность того что злоумышленник будет из вашей подсети ничтожно мала.

9. Устанавливаем хак «Инспектор файлов», который будет сообщать вам об изменении файлов в файловой системе. К сожалению файлы, добавляемые пользователями по ходу работы форума он не отслеживает.

Кроме всего вышесказанного есть возможность защиты админки двойным паролем. Об этом способе я расскажу немного позднее.

Кроме того на vBulletin 3.8.4 & 3.8.5 существует небольшая уязвимость благодаря которой злоумышленник может зарегистрироваться под админским ником и читать почту админа. Фикс: админ панель - регистрация пользователей - запрещённые имена пользователей - добавляем & # @ ' и сохраняем изменение

После всех вышеперечисленных мер защиты форума уязвимость vbSEO перестает работать!

Наличие дыр в vbSEO это еще не повод отказываться от поисковой оптимизации, и я надеюсь мы и дальше будем успешно бороться со злоумышленниками. Для тех, кто все же опасается ставить этот модуль, существует , хоть и неполноценная, но замена: хак ЧПУ и хак alt и title картинок, которые также в ближайшее время будут выложены для свободного скачивания и установки.
 
B

Boss3

#2
Вот эта статья нужная :good:
 
Н

Ночная странница

#3
Нужная. Вспомнился один вопрос, который хотела задать, когда впервые прочитала тему.
Если переименовывать админку, это же во всех хаках что-то менять? Они же (почти все) что-то в неё добавляют? (настройки и пр.) Или нет?
 
W

Wmboard

#4
Нет только конфиг. У меня ни разу не было необходимости переустановки хаков после смены названия админки.
 
Н

Ночная странница

#5
Veter, тогда ещё вопрос. Читала рассказ Льюви о том, что поисковики прекрасно находят ссылки на переименованные админки. Так и не решила этого ребуса. Как? Что откуда убрать?
 
W

Wmboard

#6
Возможно без vbSEO и находят. У меня нет форумов без vbSEO. С установленным данным модулем ссылок в поиске на переименованную админку нет.
 
Н

Ночная странница

#7
Ещё один момент безопасности, с которым столкнулась совершенно случайно:
проверьте, включена ли на вашем сервере функция register_globals.
Как это можно сделать?
Идём в админку, самый нижний левый блок "Обслуживание" и самая нижняя строка "Показать информацию о PHP". Вы увидите много всяких таблиц, ищем Configuration
PHP Core
, а в ней пункт register_globals. Если там в строке напротив register_globals стоит "On", значит, эта функция включена. Это плохо.
Решение: добавить в файл .htaccess строчку следующего содержания:
php_flag register_globals off и проверить изменения в вышеуказанной таблице. В певой графе Local значение должно измениться, это значит, что вы всё сделали правильно.
 
Н

Ночная странница

#9
Написать тикет хостеру чтоб отключил

Так написала же. Хостер и предложил утопающим спасаться своими силами. Видимо, в масштабах всего сервера кому-то эта опция там нужна... ?
 
А

Аркадий 10

#10
PHP Core[/B], а в ней пункт register_globals. Если там в строке напротив register_globals стоит "On", значит, эта функция включена. Это плохо.
Решение: добавить в файл .htaccess строчку следующего содержания:
php_flag register_globals off и проверить изменения в вышеуказанной таблице. В певой графе Local значение должно измениться, это значит, что вы всё сделали правильно.
А как добавлять то и где, для чайнеГов поясните, пжл. И вообще почему это надо добавить?
 
Н

Ночная странница

#11
Аркадий 10, а ты проверил - у тебя тоже включено?
 
Н

Ночная странница

#13
Подробно, что это такое, сможет рассказать кто-нибудь из админов, а я тебе просто поясню про .htaccess. Это скрытый файл, я о нем писала в теме установки vbSEO, а Veter - в первом сообщении этой темы.

Если ранее ты .htaccess не добавлял и SEO не ставил:

Создаешь в блокноте обычный текстовый документ с названием htaccess, добавляешь в него эту строчку и заливаешь в корневую папку форума, там переименовываешь в .htaccess и файл становится скрытым.

Если ставил SEO и выполнял инструкции, данные в начале этой темы, то добавляешь эту строчку во все имеющиеся .htaccess, так как они действуют только в "своих" директориях, и если в какой-то директории стоит другой .htaccess - их действие на ту директорию не распространяется.
 
А

Аркадий 10

#14
Создаешь в блокноте обычный текстовый документ с названием htaccess, добавляешь в него эту строчку и заливаешь в корневую папку форума, там переименовываешь в .htaccess и файл становится скрытым.

Расширение не надо указывать при создании? Или оно по умолчанию .txt ?
 
А

Аркадий 10

#16
Решение: добавить в файл .htaccess строчку следующего содержания:
php_flag register_globals off и проверить изменения в вышеуказанной таблице. В певой графе Local значение должно измениться, это значит, что вы всё сделали правильно.

Сделал, но не изменилось ничего. Как было On, так и осталось.

Если ранее ты .htaccess не добавлял и SEO не ставил:
SEO ставил. А .htaccess не добавлял.
Создаешь в блокноте обычный текстовый документ с названием htaccess, добавляешь в него эту строчку и заливаешь в корневую папку форума, там переименовываешь в .htaccess и файл становится скрытым.
Сделал но ничего не изменилось.
 
W

Wmboard

#17
Попробуйте закиньте в корень. Файл во вложении.
Распакуйте, вытащите его из папки, и этот файлик закиньте в корень форума. Папку не нужно заливать, только файл.
 
А

Аркадий 10

#18
Сразу же выдает потом:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@...............com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2 Server at .......................com Port 80

После удаления этого файлика - все нормально.
 
W

Wmboard

#19
Значит это особенности сервера. Перезалил файл в тот же пост. Попробуйте еще раз.
 
W

Wmboard

#21
Аркадий 10, напишите тикет хостеру через биллинг панель. У вас виртуальный хостинг, думаю они решат проблему.
 
V

vitos1

#22
подскажите как заблокировать попытки входа с конкретного айпи? сегодня кто то целый день пытается зайти под админским логином
приходят уведомления на почту что это происходит и блокируется страница на 15 минут

vbSEO не стоит
 
W

Wmboard

#23

Здесь vbSEO ни при чем. Уже всех собак начали на него вешать :)


сегодня кто то целый день пытается зайти под админским логином
приходят уведомления на почту что это происходит и блокируется страница на 15 минут

Уверены что только под админским? А остальные юзеры? Есть у них такое или нет? Сделайте пару клонов и проверьте. Также проверьте сможет ли юзер зайти на форум если с него разлогиниться. То есть нажать выход.

Если будет, такое как у вас, то пишите хостеру. Такое бывает при неправильной настройке ngnix.
 
Н

Ночная странница

#24
Раз уж тут темка по безопасности форума, задам вопрос именно тут.
В справке администратора написано:

Хранение изображений пользователя:
Форум поддерживает два вида хранения аватаров и фотографий: базу данных и файловую систему.

Оба метода имеют преимущества и недостатки. База данных позволяет быстро делать резервную копию индивидуальных файлов. Однако хранение изображений пользователя в базе данных дополнительно перегружает её, когда пользователи загружают изображения со страниц форума. Но с помощью базы данных вы сможете ограничить доступ к аватарам, без использования системы безопасности форума и прав директорий как htaccess.

Какие именно параметры htaccess имеются в виду для защиты директорий с изображениями?
 
Н

Ночная странница

#26
Спасибки опять на нуле :(
Спасибо! Даже и не вспомнила про ту тему - вроде как "уязвимость закрывала", а то что это и для этой цели подойдет... не догадалась. Буду знать теперь.
 
K

Ksenia2

#27
Veter, здравствуйте!

Посоветуйте, пожалуйста.

В том случае, если vbSeo не установлено на форум, то перечисленные Вами в этом посте меры безопасности тоже лучше предпринять? Или же это разумно сделать только, если на форум установлено vbSeo?

Заранее спасибо Вам за ответ.
 
W

Wmboard

#28
Ksenia, лучше защищать. Поверьте, приняв меры по защите вашего форума сейчас, завтра будет меньше проблем :)
 
K

Ksenia2

#29
Veter, так и сделаю!

Огромное Вам спасибо за советы и рекомендации!
 
W

Wmboard

#30
Не проблема, обращайтесь :)
 
K

Ksenia2

#31
Veter, непременно!))

Ой, хорошо вспомнила! А вот Вы говорили, что админку можно защитить дополнительным паролем. Не могли бы Вы как-нибудь рассказать поподробнее как такую штуку грамотно реализовать?

Заранее спасибо!
 
W

Wmboard

#32
Если у вас статический IP то есть хороший хак для дополнительной защиты админки. А с динамикой придется поизвращаться...
 
K

Ksenia2

#33
Veter, поняла.

Благодарю!)
 
W

Wmboard

#34
Ksenia, так вам нужно или вы уже передумали? :)
 
M

Megaman

#35
В общем нашел в инете точную копию своего форума (версия движка отличается) : пользователи, сообщения, темы все точ в точ, только мой профиль там в заблокирован. И внизу этого форума ссылки на другой схожий ресурс. Не подскажите что за фигня? И как с этим бороться. Спасибо.
 
Н

Ночная странница

#36
Не подскажите что за фигня?

Никогда с таким не сталкивалась, но... может, бекап БД попал в нехорошие руки? Других вариантов не вижу. Не думаю, что кто-то будет заморачиваться и вручную копировать чужой форум. А даты и время сообщений - то же самое? Если да, то скорее всего БД слили...

И внизу этого форума ссылки на другой схожий ресурс

Схожий? То есть еще одну копию? Чем же ваш форум так уникален, что его копируют точь в точь?

И как с этим бороться.

Я бы для начала постаралсь выяснить, кто это делает, и понять, зачем. Если форум точь-в точь совпадает по времени, то будет трудно доказать, что это ваш - оригинал, а не наоборот...
 
M

Megaman

#37
А даты и время сообщений - то же самое? Если да, то скорее всего БД слили...

Да время совпадает.


Да, ссылки на ресурс такой же тематики как и мой.

То есть еще одну копию?

Нет это уже не копия.

Я бы для начала постаралсь выяснить, кто это делает, и понять, зачем.

Кто это делает, я догадываюсь, но зачем? Не знаю.
 
W

Wmboard

#38
Не подскажите что за фигня?

Подскажем :) Ваш форум спарсили.
И как с этим бороться.
Бороться... бороться сложно.

Можно написать хостеру. Нормальный хостер примет меры и заблокирует аккаунт, но это не панацея. Нужно писать абузу регистратору домена, ну а он может отреагировать, а может и нет.

Дайте ссылку на воришку посмотреть в личку. Интересно :)
Я бы для начала постаралсь выяснить, кто это делает, и понять, зачем.

Кто это делает не имеет значения. А зачем? Ссылки продавать в sape :) Для этого все и делают.
 
M

Megaman

#39
Дайте ссылку на воришку посмотреть в личку. Интересно

ОК!

Да, кстати заметил что последние время этот форум не обновлялся, а мне на почту пришла куча таких сообщений:

vBulletin Database Error!
От кого:
Кому:
Сегодня, 17:26
Ошибка базы данных в vBulletin 3.8.7:

Invalid SQL:

INSERT INTO cronlog
(varname, dateline, description, type)
VALUES
('vbseo_sitemap_task',
1340371557,
'Google Sitemap Created',
0);

Ошибка MySQL : MySQL server has gone away
Номер ошибки : 2006
Дата запроса : Friday, June 22nd 2012 @ 05:25:57 PM
Дата ошибки : Friday, June 22nd 2012 @ 05:26:21 PM
Скрипт :
Реферрер :
IP адрес : 93.151.13.232
Имя пользователя : Незарегистрированный
Имя класса : vB_Database
Версия MySQL :
 
W

Wmboard

#40
Я немного ошибся :) Это не саповские ссылки. Ройте в сторону того на кого ссылается ваш вор.

Что сделать?
1. Написать хостеру
2. Написать регистратору домена
2. Написать Яндексу через панель WM

Яндекс пока отреагировал правильно, то есть у вас 1000 страниц в индексе, а у вора всего 5. То есть скорее всего он под фильтрами. (Но не факт) Тк домен был куплен совсем недавно 12 июня. Но это не имеет для него никакого значения, так клон сделан для получения ТИЦ на форум акцептор, то есть на тот в зоне info.

Несмотря на то, что Яндекс отреагировал правильно (хотя и это спорно, тк слишком мало времени прошло для выводов), вы никогда не будете в ТОПе по среднечастотным и высокочастотным ключам в своей тематике, пока форум-клон не исчезнет.

Так как ваш форум тоже свежий, с апреля месяца, то у вас могут быть проблемы.
Также рекомендую тот форум в зоне info внести в черный список на саппорте, тк там удалены копирайты, а форум на версии vb 3.8.5, хотя они и версию потерли :)

Форум клон хостится на yutex, связаться с ними можно по ссылке
Домен в зоне RU, так что пишите в rucenter.

Что касается как раз истинного воришки, то есть форума вашей тематики в зоне info, с ним гораздо сложнее, хотя ноги растут оттуда :)

Что касается вашего форума, ищите. Проверяйте сторонние скрипты, дыры, и все остальное.

Это все бегло и вкратце
 
M

Megaman

#41
Яндекс пока отреагировал правильно, то есть у вас 1000 страниц в индексе, а у вора всего 5.

Написал Яндексу, и смотрю уже 0 страниц в индексе.

Форум клон хостится на yutex, связаться с ними можно по ссылке

Они дали email вора, написали что бы связался с ним. Если в течении 48 часов не будет никакой реакции, то нужно повторно им написать.

Что касается вашего форума, ищите. Проверяйте сторонние скрипты, дыры, и все остальное.

Постараюсь.
 
W

Wmboard

#42
Написал Яндексу, и смотрю уже 0 страниц в индексе.

Как было 5, так и есть :)


Если в течении 48 часов не будет никакой реакции, то нужно повторно им написать.

Хостинг это не панацея. Они могут съезжать, и в конце концов переехать на абузойстойчивый. Хотя есть ли смысл так извращаться с бесполезным парсеным форумом... :sorry: Если только убрать вас как потенциального конкурента :)
 
M

Megaman

#43
Как было 5, так и есть

Я смотрел статистику форума на одном популярном сайте. Там такие результаты:



Они могут съезжать, и в конце концов переехать на абузойстойчивый.

Это ж сколько мороки, плюс еще нужно найти такой хостинг.

Если только убрать вас как потенциального конкурента

Ну не знаю, украденому файлу БД было где то месяц, с тех пор на сайте много чего изменилось. Это играет какую то роль?


Также рекомендую тот форум в зоне info внести в черный список на саппорте

Я бы с радостью, но там уже закрыли эти темы.
 
M

Megaman

#45
Удалось войти под админским логином. Что делать?
 
W

Wmboard

#46
Куда удалось войти? :)
 
W

Wmboard

#48
На форуме воришке? :)
Ну снести его к черту :D
 
W

Wmboard

#50
Снес все темы полным удалением, что еще сделать?

Megaman, ну смотрите сами же :) Тут вам советовать что-то сами понимаете. За все свои действия вы отвечаете сами.

Если действительно собрались сносить, то уж нужно сносить все что можно. :) Хотя бэкапы данного форума все равно есть скорее всего. Да и в логах будет видно что там были вы :)
 
Get involved!

Here you can only see a limited number of comments. On СЕО Форум Вебмастеров you see all comments and all functions are available to you. To the thread