Очередной пример, как легко прострелить себе ногу, на этот раз «переусердствовав» при защите сайта.
Имён как всегда не называю, однако история показательна как-таковая, т.е. в качестве примера, как не надо «защищать» свои сервера. Эх говоришь им, говоришь — а все без толку.

Пришлось тут намедни делать «аудит» одного коммерческого проекта… ну очень просили.
Упала посещаемость сайта, не совсем чтобы совсем, но довольно заметно. Смотрели логи, аналитику поисковиков и т.д. и т.п. Все вроде нормально, и кто приходит, тот даже не уходит сразу.
Но не буду ходить вокруг, да около — проанализировав логи банов по IP выяснилась одна закономерность — за короткое время в бан попадало огромное количество IP-адресов. Все поголовно по одной причине — якобы как botsearch. Отротированные логи за последний месяц тоже ужасали своими размерами и даже заглядывать туда не нужно было, и так все ясно. Т.е. случилось следующее: куча клиентов просто не могла попасть на сайт.
На вопрос «что-то меняли где-то с месяц назад?» был получен отрицательный ответ.

Не буду утомлять здесь детективным чтивом, после недолгих поисков — картина маслом. Некий прямой конкурент этого сайта поспособствовал «утечке» клиентов, или вернее и организовал эту «странную непосещаемость».

Описание сценария «атаки»:
  • есть популярный сайт «mysite», где включили блокировку сканирующих ботов по access;
  • другой, возможно сопоставимо популярный, сайт «othersite» (например, прямой конкурент «mysite» с той же целевой аудиторией), делает каким-то образом на своей странице скрытый include (например в скрытом фрейме), где вызывает например 3-и URL-адреса «mysite», соответствующих искомым для фильтра этой блокировки.
  • любой визит потенциальных клиентов сначала на страницу «othersite», практически гарантирует им невозможность затем попасть на сайт «mysite». Т.е. N раз нажав где-то на странице «othersite» — браузер пользователя делает N*3 «неудачных» вызова для сайта «mysite», что приводит к блокировке IP этого пользователя (по достижения maxretry).
  • как результат, для этого клиента сайт «mysite» будет недоступен (его IP-адрес был забанен)

Кстати блокировка здесь осуществлялась не по access_log, а из-за высокой загруженности серверов, напрямую из веб-сервера. Выражаясь языком nginx, в локейшен, отрабатывающей 404 и иже с ними ошибки, был воткнут постпроцессор, фоново оповещающий сервис блокировки по IP-адресу, после фильтрации определенными регулярными выражениями по урл. Ну типа nginx-botsearch фильтра fail2ban, но без утомительного распарзивания логов (что часто очень накладно).

Однако тем же самым образом можно выстрелить себе в ногу, например просто активировав в fail2ban некоторые jail, использующие такие фильтры как "nginx-botsearch", "apache-botsearch" или множество других фильтров, натравливаемых на access-log веб-сервера, в огромном количестве курсирующих в интернете для «защиты» от ботов. Вот например, очередной такой фильтр, ожидающий пул-реквестом в fail2ban. И таких сотни и описаний к ним еще больше.

Но вернемся к самой атаке. Что примечательно, скорее всего эти нехорошие люди наняли кого-то из blackhat-ов (ну не сами же они до этого дошли) вероятно для взлома сайта конкурентов. Возможно нужна была база клиентов, или искали способ для лучшего ддоса, да мало ли чего еще. Ну а те, обнаружив такую «защиту» от дурака, уже вероятно продали им несколько URL или же сам include, как простую возможность «устранить конкурента». В любом случае, вероятность, что такая практика уже массово не взята на вооружение, отлична от нуля.

Домыслы — домыслами, однако факт «атаки» и какой-никакой урон налицо.
Поэтому будьте бдительны и включайте уже голову. Ну или зовите знакомого ресерчера…

Комментарии (25)


  1. Blumfontein
    18.06.2015 20:42
    -4

    X-Frame-Options «SAMEORIGIN»?


    1. sebres Автор
      18.06.2015 20:46
      +3

      И как оно должно спасти против бана? Вы возможно не поняли — это не JavaScript и иже с ним. Например, это просто img с урлом, который «способствует» бану.


  1. Pravo
    18.06.2015 21:32
    +7

    HTTP 401 Unauthorized по Referer запроса способно доставить злодею-конкуренту волнительные переживания


    1. sebres Автор
      18.06.2015 22:42
      +3

      Ну как нашли, ему такая «грязная бомба» (по referrer) прилетала, что они сами даже без требований все убрали…


      1. nskforward
        19.06.2015 00:43
        +1

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


        1. nskforward
          19.06.2015 00:49
          +1

          Из самого простого в голову приходит послать им инклуды на их же собственный сайт, только в несколько раз больше. Или послать javascript, который у них будет без паузы колбасить асинхронные запросы на свой же сайт


          1. sebres Автор
            19.06.2015 01:12

            «грязная» — от слова рекурсия )) а в несколько раз больше оно уже само сделает…


        1. sebres Автор
          19.06.2015 01:06
          +5

          Да много чего можно: представьте простенький редирект на не быструю и ресурсозатратную динамику на их стороне, да с теми же инклюдами внутри. Тут или браузер клиента повесится, или… ишак сдохнет…


  1. vorphalack
    19.06.2015 04:22
    +1

    я наблюдал еще более смешное.
    сайт провайдера, который мало того что судя по резольву висит на домашнем адресе онлайма, так и если ты более-менее синхронно ткнешь его с 2 компов с одного адреса (в моем случае — решил открыть на десктопе после ноута), то улетаешь в бан на заметное время. такое ощущение что в порыве стрельбы себе в ногу, там отдачей попали еще и в лоб.


  1. vedenin1980
    19.06.2015 07:59
    +1

    однако факт «атаки» и какой-никакой урон налицо

    Мне кажется стоило сходить к нотариусу, зафиксировать исходный код страниц сайта конкурента нотариально (так можно сделать), а потом уже убрать блокировку по ip и пойти прямиком в суд. Тут практически 100% выигрышное гражданское дело и весьма возможное уголовное для руководства конкурентов. Ну или заберут и опечатают их сервера на время процесса, тоже компенсация.


    1. sebres Автор
      19.06.2015 09:40
      +2

      Ну насчёт 100% — сомнительно, к слову например на аргумент защиты «мой мандант просто разместил у себя 3 ссылки», контраргументы поискать бы пришлось. Согласитесь, если бы не бан, такое и атакой-то назвать трудно… А за бан они не отвечают — самострел же.


      1. vedenin1980
        19.06.2015 09:57

        Ну, обычно суд в таких случаях привлекает экспертов по безопасности, а эксперту, мне кажется, тут будет сразу понятно, что это не просто пара невидимых ссылок (просто так добавленных на сайт конкурента...).

        Согласитесь, если бы не бан, такое и атакой-то назвать трудно… А за бан они не отвечают — самострел же.

        Ну они отправляли запросы на сайт конкурента на заведомо запретные адреса, которые вызывали недоступность сервиса. Да, конечно можно сказать в суде что я не делал SQL injection, а просто в поле имя ввел свое имя вида «vasja;select * from admin;» ну вот такое у меня странное имя, но среди экспертов идиотов мало.

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


        1. sebres Автор
          19.06.2015 10:28

          Ну, обычно суд в таких случаях привлекает экспертов по безопасности, а эксперту, мне кажется, тут будет сразу понятно, что это не просто пара невидимых ссылок...
          Да ну? И часто вы на таких судебных заседаниях бывали?

          Вот как эксперт — эксперту, прокомментируйте мне для примера пожалуйста весь ужас следующего url, только плз аргументировано:
          //mysite/phpMyAdmin/
          
          SQL injection… в поле ввел свое имя вида «vasja;select * from admin;»...
          Это все ваши домыслы… Я про это в статье ни слова сказал, речь шла про bootsearch-фильтры.


          1. vedenin1980
            19.06.2015 11:41
            -4

            прокомментируйте мне для примера пожалуйста весь ужас следующего url, только плз аргументировано:
            //mysite/phpMyAdmin/

            Ок:
            Статья 272. Неправомерный доступ к компьютерной информации

            1. Неправомерный доступ к охраняемой законом компьютерной информации, то есть информации на машинном носителе, в электронно-вычислительной машине (ЭВМ), системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети, -

            При обращении скрытом обращении к url — //mysite/phpMyAdmin/ от лица пользователей сайта otherSite были допущены следующие нарушения:
            1) Неправомерный доступ к серверу (ЭВМ) mysite, так как данный url не является публично доступным и более того является строго служебным и на него никак нельзя было попасть обычным для пользователей сети путем,
            2) Произошло сознательное нарушение работы сервера (ЭВМ) mysite, так как злоумышленникам было заранее известно, что Неправомерный доступ от лица пользователя приведет к невозможности дальнейшей работы данного пользователя с сервером (ЭВМ) mysite,

            Мы видим, что налицо, необходимое и достаточное условие причисления данного деяния к нарушению по Статья 272. Неправомерный доступ к компьютерной информации, так как в результате данных действий есть оба пункта указанных в законе: «Неправомерный доступ» и «нарушение нормальной работы ЭВМ». В результате, несомненно данные деяние должно наказываться по всей строгости закона, предусмотренного cтатьей 272.

            Наличие фильтров блокировки «неправомерного доступа к компьютерной информации» на сайте mysite не может рассматриваться как смягчающее обстоятельство для лиц, допустивших данное нарушение, так как является стандартным методом защиты от «Неправомерного доступа к компьютерной информации» (см. приложение по использованию так называемых bootsearch фильтров), более того то лица совершившие данные деяния, действовали из корыстных побуждений, так как их сайт othersite является конкурентом mysite и получает прямую выгоду от нарушения работы ЭВМ mysite, и они действовали сознательно и злонамеренно, так как не существует никакой необходимости делать эту скрытую ссылку на сайт mysite, кроме как сознательного причинения ущерба конкурентом из-за «неправомерного доступа к компьютерной информации и нарушению работы сайта mysite» и им несомненно было известно о наличии подобного фильтра на сайте mysite.


            1. sebres Автор
              19.06.2015 12:13
              +2

              OK, вот вам по пунктам контраргументы:

              Неправомерный доступ к серверу… так как данный url не является публично доступным
              Так url возвращает 404… И как вы докажете, что это был злой умысел, что это не пострадавший сам этот url сделал недоступным (увидев что мой мандант сделал ссылку) и что «самострел» вообще не специально организован, чтобы подать на конкурента в суд?

              Произошло сознательное нарушение работы сервера (ЭВМ) mysite…
              … приведет к невозможности дальнейшей работы данного пользователя с сервером
              Во первых нарушения работы сайта по видимому не было. Да и нарушение при вызове несуществующего url (404) — это нонсенс. А может url там все-таки раньше был (просто мой мандант хотел типа SEO сделать — накрутить себе рейтинг в поисковиках).
              Во вторых очевидно, что «невозможность дальнейшей работы» с сайтом возникла в следствии по видимому некомпетентных действий администраторов самого истца. (Опять аргументы за самострел...) Или вообще это был злой умысел с его стороны, чтобы очернить ответчика.

              Статья 272. Неправомерный доступ к компьютерной информации
              На территории нашей страны, эта статья (вероятно из кодекса УК РФ) не действует. Адвокат истца совсем берега попутал…

              Нда… я конечно жутко извиняюсь, но с таким адвокатом впору «мировое», да на любых условиях, подписывать…
              Вы поймите я то как раз на стороне «истца», но экспертную оценку уже много раз делал, поэтому как раз сложность сего действа в этом конкретном случае себе очень хорошо представляю…


              1. vedenin1980
                19.06.2015 12:28

                На территории нашей страны, эта статья (вероятно из кодекса УК РФ) не действует. Адвокат истца совсем берега попутал…

                А кто у нас муж… волшебник… предупреждать надо. :) Ну, откуда я могу знать, что вы говорите о судебной практике в Германии? :)

                И как вы докажете, что это был злой умысел, что это не пострадавший сам этот url сделал недоступным

                И засунул url на админку своего сайта на сайт конкурента? Какой может быть умысел кроме злого для обращения к такому url'у конкурента?


                1. sebres Автор
                  19.06.2015 12:29

                  Так вы адвокат или прогулятся вышли ...))


                1. vedenin1980
                  19.06.2015 12:40
                  -1

                  возникла в следствии по видимому некомпетентных действий администраторов самого истца

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

                  Или вообще это был злой умысел с его стороны, чтобы очернить ответчика

                  Добавление скрытой ссылки на сайт конкурентов? Как это возможно?

                  А может url там все-таки раньше был (просто мой мандант хотел типа SEO сделать — накрутить себе рейтинг в поисковиках).

                  Ну, может или нет, доказывать конкурентам, как и причину зачем они добавили скрытый url на свои страницы. У вас будет объяснение зачем, а у них?

                  Но вообще, если бы сразу написали что дело в Германии, я бы вообще ничего писать не стал, ибо практику в Германии не представляю даже близко. Удачи.


                  1. sebres Автор
                    19.06.2015 12:54
                    -1

                    Ну, может или нет, доказывать конкурентам, как и причину зачем они добавили скрытый url на свои страницы.
                    Вам действительно лучше не «адвокадствовать»… Вы про понятие презумпции невиновности что-нибудь слышали?
                    У вас будет объяснение зачем, а у них?
                    Я жеж написал ужо, SEO например…


                    1. ARSolog
                      19.06.2015 12:57

                      Вы так рьяно защищаете своих конкурентов.
                      Вызывает изумление просто.


                      1. sebres Автор
                        19.06.2015 13:29
                        +1

                        Ну они не мои конкуренты (я делал «аудит» почти по дружбе, для друзей очень хорошего знакомого). И я их вовсе не защищаю, я просто пытался донести опоненту всю сложность такого рода судебных разбирательств.
                        А так то да — редиски они конечно — тут вроде и злой умысел налицо, и мотив и т.д.
                        Но вот что касается доказательной базы… По крайней мере юристы компании очень сумлевались, а как выразился один мой знакомец «в суде как в открытом море — никогда не знаешь откуда ветер подует».


              1. msuhanov
                19.06.2015 13:08
                -1

                На территории нашей страны, эта статья (вероятно из кодекса УК РФ) не действует. Адвокат истца совсем берега попутал…


                Статья 12. Действие уголовного закона в отношении лиц, совершивших преступление вне пределов Российской Федерации
                1. Граждане Российской Федерации и постоянно проживающие в Российской Федерации лица без гражданства, совершившие вне пределов Российской Федерации преступление против интересов, охраняемых настоящим Кодексом, подлежат уголовной ответственности в соответствии с настоящим Кодексом, если в отношении этих лиц по данному преступлению не имеется решения суда иностранного государства.
                2. Военнослужащие воинских частей Российской Федерации, дислоцирующихся за пределами Российской Федерации, за преступления, совершенные на территории иностранного государства, несут уголовную ответственность по настоящему Кодексу, если иное не предусмотрено международным договором Российской Федерации.
                3. Иностранные граждане и лица без гражданства, не проживающие постоянно в Российской Федерации, совершившие преступление вне пределов Российской Федерации, подлежат уголовной ответственности по настоящему Кодексу в случаях, если преступление направлено против интересов Российской Федерации либо гражданина Российской Федерации или постоянно проживающего в Российской Федерации лица без гражданства, а также в случаях, предусмотренных международным договором Российской Федерации, если иностранные граждане и лица без гражданства, не проживающие постоянно в Российской Федерации, не были осуждены в иностранном государстве и привлекаются к уголовной ответственности на территории Российской Федерации.


                1. sebres Автор
                  19.06.2015 13:45
                  +2

                  Ну вот это-то здесь каким местом… Или вы подозреваете, что они (конкуренты) были русские граждане? Опять все на русских валите? Вы что же это, разжигаете межнациональную вражду? ))
                  А по делу: давайте сюда, в эту статью, вообще весь уголовный кодекс свалим… Ребята, ну харош уже холиварить.


                  1. msuhanov
                    19.06.2015 14:33

                    Я просто хотел опровергнуть распространенное заблуждение, что преступление, совершенное на территории одного государства, не может быть расследовано и передано в суд исключительно на территории другого государства.

                    Или вы подозреваете, что они (конкуренты) были русские граждане?

                    Если Вы – гражданин РФ, то правоохранительные органы РФ могут расследовать преступление против Вас, совершенное иностранным гражданином на территории иностранного государства (ч. 3 ст. 12 УК РФ).

                    Вы что же это, разжигаете межнациональную вражду? ))

                    Ребята, ну харош уже холиварить.


                    Какая-то у Вас не совсем адекватная реакция на единичный комментарий.


                    1. sebres Автор
                      19.06.2015 18:34
                      -1

                      Чё это?.. Первый абзац — то как-бы в шутку было. Ну а второй, ну вы ветку то просмотрите… Сплошной конструктив.
                      ПС. а для простыней люди давно изобрели уже спойлер.