СуперБан - что за зверь, и как с ним бороться.

В статье рассматривается так называемый "супербан", в отличии от обычных методов бана, таких как бан по IP-адресу, по нику или по кукам, "супербан" блокирует пользователя по индивидуальным характеристикам его машины.

Система блокировки по индивидуальным харакетристикам машины в последнее время приобретает все больше популярности в интерактивных web-системах - в чатах, форумах, гостевых книгах и т.п. Рост популярности объясняется недостатками традиционных методов бана. Блокировка по IP адресу легко обходится использованием прокси-серверов. Блокировка по кукам или нику снимается удалением куков или созданием нового аккаунта. В то же время, обойти супербан не так легко, поскольку большинство пользователей даже не знают на каком принципе он основан.

В качестве примера супербана, рассмотрим систему бана, применяемую в форумах FastBB ( http://fastbb.ru ).

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

Вот этот скрипт:

Сначала создается объект oClientCaps. Он необходим для доступа к параметрам машины. Далее вычисляются такие параметры как разрешение экрана и глубина цвета, которые также используются в составе ключа. Затем следует самая интересная часть. Строке random_line присваивается зашифрованный скрипт, который затем расшифровывается и выполняется в строке eval(fin);. При расшифровке используется переменная random = location.pathname;, которая в форуме fastBB принимает значение /re.pl.

Шифрование скрипта было, видимо, сделано для скрытия от пользователя принципа составления ключа.

Расшифровав содержимое строки random_line, мы получим следующий скрипт:

Как видим, в скрипте перебираются установленные компоненты системы (около 30 штук) и определяется их версия. Числовые значения версий складываются, и вычисляется величина RandomNumber, которая затем используется как часть составного ключа.

Составной ключ передается серверу в поле Statistic формы отправки постингов:

<form name=countform action="/re.pl" method=POST onsubmit="return Test(this)">
....
<SCRIPT Language="JavaScript">document.write("<input type=\"Hidden\" name=\"Statistic\" value=\""+AllData+IeData+"\">");</SCRIPT>
....
</form>

Результирующий ключ имеет такой вид (для условной машины):
-20/1024/768/32/modem/ru/ru/uk/13753804173137646
и включает в себя следующие элементы:

  • код региона (-20)
  • разрешение экрана (1024/768)
  • глубина цвета (32)
  • тип соединения (modem)
  • языки, установленные в системе (ru/ru/uk)
  • уникальный ключ версий компонент системы (13753804173137646)

    Итак, алгоритм работы бана форума следующий: При возникновении ситуации бана (например постинг более 10 сообщений в минуту), система добавляет IP адрес и уникальный ключ в список бана.

    Далее, если от пользователя поступает запрос, в котором присутствует либо забаненый IP, либо забаненый уникальный ключ, то система не разрешает доступ к форуму, а IP и ключ снова заносятся в бан-лист (если один из них изменился). Кроме того, уникальный ключ передается как через поле Statistic формы, так и запоминается и пересылается серверу в куках. Таким образом, происходит защита от возможного изменения пользователем параметров своей машины (например изменения разрешения экрана).

    Для разблокировки супербана, необходимо выполнить следующие действия: Изменить свой IP-адрес, удалить куки форума, поменять свой ник, и выполнить какие-либо действия, меняющие уникальный ключ (например изменить разрешения экрана). После рефреша страницы сайта, система сгенерирует новый уникальный ключ, запрос поступит с нового IP-адреса и система не сможет "узнать" забаненного пользователя.

    Для упрощения снятия бана, была разработана программа AntiBan. Эта программа позволяет разблокировать бан на форумах fastBB, в чатах chat.php.spb.ru и в других системах, основанных на "супербане".

  • Автор: Algol, прислал: RmX

    Программа Антибан: Скачать с Античата

    Обсудить на форуме | Рекомендовать другу