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

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.895
113
Россия
null-prog.ru
Данные меры обязательны для всех, кто заботится о безопасности своего ресурса, не только при установленном vbSEO, но и без него!

Возвращаясь к серии взломов форумов на vBulletin с установленным данным модулем можно констатитровать тот факт, что заплатка которая была выложена на vbsupport не спасает от взлома. В этом мы убедились как на собственном форуме, так и на форумах наших друзей и партнеров, которые пострадали уже после обновления vbSEO.

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

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

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

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

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

2. Пепеименовываем папку администратора и модератора (admincp и modcp). В конфиг форума прописываем новые имена ваших папок:
Код:
 //    ****** PATH TO ADMIN & MODERATOR CONTROL PANELS ******
    //    This setting allows you to change the name of the folders that the admin and
    //    moderator control panels reside in. You may wish to do this for security purposes.
    //    Please note that if you change the name of the directory here, you will still need
    //    to manually change the name of the directory on the server.
$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';

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

4. В корневой .htaccess дописываем строку, запрещающую изменение конфига из вне:
Код:
<Files config.php>
deny from all
</Files>

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

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

В папки: customavatars, customgroupicons, 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 картинок, которые также в ближайшее время будут выложены для свободного скачивания и установки.