Любой, кто поднимал сайты знает, что стоит запустить веб-сервер, как на него начинают приходить запросы. Еще и DNS про него толком не знает, а в лог-файле ошибок httpd уже полно записей вроде таких:

image

Вот мне стало интересно, и я решил изучить этот вопрос поглубже. Как только появилось время, я написал парсер логов веб-сервера. Поскольку люблю наглядность, результаты поместил на карту.
И вот какая картина получилась:

image

На карте маркерами отмечены местоположения, определенные по IP адресам источников сканирования. Для получения информации использовалась бесплатная оффлайновая библиотека SxGeo, а для отображения — 2GIS API. Конечно, в силу бесплатности библиотека SxGeo не обладает высокой точностью, а некоторые адреса попадают в океан. Однако со временем(на текущий момент у меня накопилась статистика за 2 месяца) картина приобретает вполне ясные очертания.

Наверняка какая-то часть из адресов это прокси. В то же время источники сканирования практически равномерно покрывают наиболее развитые в смысле ИТ регионы мира.

Однако, как сказал бы наш любимый Михаил Сергеевич Боярский — «Тысяча чертей», что не так с Австралией?

Кроме распределения источников сканирования мне также было интересно собрать целевые пути, которые проверяют сканеры. Таковых оказалось довольно много. Ниже приведу лишь малую часть таргетов для примера:
var/www/html/RPC2
/var/www/html/SQLite
/var/www/html/SQLiteManager
/var/www/html/SQLiteManager-1.2.4
/var/www/html/SQlite
/var/www/html/Snom
/var/www/html/Version.html
/var/www/html/Yealink
/var/www/html/\xd1\x86\xd1\x80\xd1\x89\xd1\x8b\xd1\x81\xd1\x84\xd1\x82\xd1\x8c\xd1\x83
/var/www/html/_PHPMYADMIN
/var/www/html/_pHpMyAdMiN
/var/www/html/_phpMyAdmin
/var/www/html/_phpmyadmin
/var/www/html/_query.php
/var/www/html/_whatsnew.html
/var/www/html/adm
/var/www/html/admin
/var/www/html/admin.php
/var/www/html/admin888
/var/www/html/admin_area
/var/www/html/admin_manage
/var/www/html/admin_manage_access
/var/www/html/admindb
/var/www/html/administrator
/var/www/html/administrator.php
/var/www/html/adminzone
Часто встречается игра с регистром:
/var/www/html/_PHPMYADMIN
/var/www/html/_pHpMyAdMiN
/var/www/html/_phpMyAdmin
/var/www/html/_phpmyadmin
Бывают и экзотические таргеты, которым уж точно неоткуда взяться у меня:
/var/www/html/w00tw00t.at.blackhats.romanian.anti-sec
/var/www/html/nmaplowercheck1523152976
/var/www/html/elastix_warning_authentication.php
Полный список таргетов вы можете забрать по ссылке в подвале. Система отлова сейчас работает в автоматическом режиме и значит постоянно пополняется.

Хорошо, но что с этим делать? Полученная нами информация, как и любая другая, может быть использована по-разному.

Например:

  1. При создании сайтов, особенно на основе стандартных CMS и с применением стандартных СУБД, желательно изменять стандартные имена каталогов и файлов. Не оставлять установочные директории после окончания установки. Не размещать конфигурационные файлы в корневой директории или папке с именем «configuration», «config» и т. п.
  2. Может быть блокировать на уровне iptables адреса, с которых ведется сканирование. Конечно это крайний случай, но возможность такая есть и она может быть автоматизирована.
  3. Используя словарь отловленных таргетов можно проверить структуру сайта на совпадения. для этого используется простейший скрипт.

И еще один способ использования «крутых хакеров» в своих целях это подъем посещаемости сайта. Это и шутка и нет.

Это действительно работает, если на основе словаря отловленных таргетов создать файлы на своем сайте, а внутри разместить произвольный текст и код счетчика. Это сработает конечно только при условии, что сканер может выполнять JS(дополнение от apapacy).

И это шутка, потому что реально уникальных IP адресов сканеров не так и много. У меня за 2 месяца их наловилось 275. Сколько среди них «умных» ботов и браузеров не считал. Может и нет вовсе.

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

Вопрос: нужно ли обращать внимание на сканирование и что нужно делать чтобы не стать добычей сканеров?

P.S.
Явление сканирования хоть и рукотворное, но похоже уже стало естественным процессом для Интернет. Оно было есть и будет пока существует Сеть. Это вредный фактор, от которого можно защититься как очками от солнечного ультрафиолета.

Подведу некоторые итоги обсуждения:
1. Австралия таки существует но Интернет там дорог и его мало. То же и с НЗ. Зато есть океан, пляжи и кенгуру.

2. Сканирование веб ресурсов — частный случай сканирования реальных адресов в Интернет вообще. Таргетами служат практически все стандартные порты и стандартное ПО, а география источников сканирования совпадает с географией наличия «быстрого» доступа в Интернет.

3. Сканеры работают не просто так. Сканирование это первый этап взлома. Сканеры ведут поиск возможных уязвимостей. Наличие таких уязвимостей может быть использовано для заражения серверов вредоносным ПО или/и для получения доступа к личной информации.

4. В комментариях обсуждаются способы элементарной защиты от сканеров. Основные направления: изменение стандартных настроек ПО, определение и блокирование сканеров по бан-листу.

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

Спасибо всем.

Список источников:

  1. Библиотека SxGeo
  2. 2gis API
  3. Словарь отловленных таргетов
  4. Карта источников сканирования

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


  1. smer44
    01.05.2018 13:44

    спс, гениальная инфа.
    можно ли вставить скрипты чтобы исполнялись на сканере? ))


    1. Goodkat
      01.05.2018 18:29
      +2

      Zip-бомбу на два терабайта?


      1. Psychosynthesis
        01.05.2018 23:48

        Идея в целом неплохая, но надо бы как-то ещё тогда ограничить скорость отдачи по этому адресу, чтоб свой же канал не грузить таким объёмом.


        1. Goodkat
          02.05.2018 02:55

          Отдача там будет несколько килобайт, на то эта бомба и zip.


          1. Cenzo
            02.05.2018 04:30

            Тогда это видимо gzip-бомба будет? В HTTP content-encoding? :)


            1. Psychosynthesis
              02.05.2018 20:21

              Вот и я не понял, за что минусы. Речь была про zip-архив изначально, как я понял, а тут плавно начали уже компрессию трафика обсуждать.


              1. wladyspb
                03.05.2018 17:55

                Думаю, минусы за то, что вы не знаете что такое zip-бомба, и как она работает. Ели не ошибаюсь, суть в том что сам архив весит крайне мало, но содержит в себе заархивированный файл на несколько гигабайт\терабайт, забитый нулями(за счёт чего и достигается компрессия). Правда, если никто этот файл не попытается разахивировать, непонятно — как будет причиняться вред)


                1. sumanai
                  03.05.2018 19:28

                  Правда, если никто этот файл не попытается разахивировать, непонятно — как будет причиняться вред)

                  GZip автоматически распаковывается качальщиком, тут то и будет прикол.


                1. Psychosynthesis
                  04.05.2018 01:12

                  Я так понимаю разница gzip и zip в данном случае существенна.


        1. YaakovTooth
          02.05.2018 05:21

          Ой, да ладно, man nginx_gzip_static.

          image


          1. Psychosynthesis
            02.05.2018 20:18

            Что вы хотите этим сказать?


        1. ploop
          02.05.2018 10:52

          Вообще, любой боеприпас (и бомба в том числе) сначала доставляется до нужного места, только потом срабатывает, а не наоборот.
          При том, чтобы сделать zip-бомбу, не обязательно пережимать те самые терабайты.


          1. Psychosynthesis
            02.05.2018 20:20

            Если это именно zip, а не gzip, как выше заметили, как вы без пережатия zip сделаете? Нулями забьёте?


            1. sumanai
              02.05.2018 20:29

              Так же, как и бомбы на терабайты — редактируют заголовки. Структура ZIP известна, можно составить архив руками.


              1. Psychosynthesis
                02.05.2018 20:31

                Ну если руками, оно понятно. Я имею ввиду, автоматизированное что-нибудь есть для этого?

                Раньше гуглил на эту тему, кругом одна теория была.


                1. sumanai
                  02.05.2018 21:32

                  Один раз сделал, много раз используешь, зачем автоматизация?


                  1. Psychosynthesis
                    03.05.2018 00:35

                    Чтоб другим не переделывать.


  1. tvr
    01.05.2018 13:54
    +3

    «Тысяча чертей», что не так с Австралией?


    Полезные ископаемые нет есть. Вода нет есть. Растительность нет есть. Населена роботами людьми. Скрипт-кидди есть не обнаружены.


    1. Hile
      01.05.2018 16:02
      +4

      У них там интернет хреновый, вот если вы купите виртуалку внутри Австралии или НЗ — будут сканы, местные кидди, ничего удивительного. Им просто наружу сканить неудобно оттуда.


      1. vedenin1980
        01.05.2018 16:32
        +3

        У них там интернет хреновый

        Он не столько хреновый просто дорогой и с большим пингом из-за того что весь трафик идет по нескольким океанским кабелям с довольно ограниченным каналом. Поэтому для сканирования намного дешевле и быстрее завести сервер или VPS где-нибудь в Европе/США.


        1. shybovycha
          02.05.2018 02:34

          Он именно что хреновый — не в плане пинга, а в плане что на один шнур оптоволокна с каналом в пару гигабит подсаживают целый район первоклассного азиатского населения.


  1. awsswa59
    01.05.2018 14:00
    +19

    Еще один настроил web сервер. Добро пожаловать


    1. sumanai
      01.05.2018 17:05

      Тут настраивать не нужно, достаточно установить ОС с айпишником, торчащим наружу


      1. zxosa
        02.05.2018 21:43

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


    1. R_Voland Автор
      01.05.2018 17:47
      +2

      Не первый уж. Но всегда поражало насколько быстро начинают прилетать сканы.


      1. Aelliari
        02.05.2018 21:43

        Я тут на днях завел себе VPS-ку поиграться, включил авторизацию в ssh только по ключу и дай думаю загляну в auth.log. А там 2 проваленных авторизации для пользователя admin (которого очевидно там сроду не было), это на сервере которому от роду не прошло 5 минут, вот повезло на бота нарваться :D


  1. apapacy
    01.05.2018 14:02

    По поводу методов как минимум можно настроить дфолтный хост у нжинкса с запретом доступа т.к. часто эти боты сканируют сеть по ip а не по доменному имени. Второй можно установить фильтр для ботов т.к. опять же в большинстве это простые боты которые не поддерживают яваскрипт и куки


  1. dw9694
    01.05.2018 14:05

    Не надо паники.
    257 уникальных IP адресов, это подписчики бывшего владельца IP + парочка ботов на удачу.


    1. R_Voland Автор
      01.05.2018 17:28
      +1

      Это был чистый эксперимент. Вот с появлением статьи количество источников скана выросло изрядно. Теперь карта показывает просто распределение быстрого Интернета по земному шару.


  1. runalsh
    01.05.2018 14:06
    +3

    Ну скормите им gzip бомбу.


    1. algotrader2013
      01.05.2018 14:17

      да, на каждый таргет из файла по бомбе!


      1. R_Voland Автор
        01.05.2018 17:31

        Возможно это еще более криминально чем сканить.


        1. Fox_exe
          01.05.2018 18:54
          +3

          С чего бы? Это ваш сервер. Файл не нарушает никаких авторских прав. Ссылку на файл вы никому не давали, но ктото по ней качает ваш файл без вашего ведома. А это уже хищение… Наверное…
          В общем — тут к вам притензий быть не должно, а вот к сканерам можно придумать довольно много :)


          1. bano-notit
            01.05.2018 21:36

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

            Так что сканеры сами по себе — вещь безопасная, такая же как и браузер.


            1. R_Voland Автор
              01.05.2018 22:03

              А если я прямо в корне на индексе бомбу размещу, а потом куплю рекламу хорошую. Это тоже не криминал?
              Я думаю любое преднамеренное нанесение вреда это криминал.
              Просто беречься нужно.
              Сканеров должны глушить фаерволы — они же теперь NG.


              1. bano-notit
                01.05.2018 23:29

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

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

                Текущее законодательство не может покрыть все случаи, возможные в информационном мире. Оно старается привязать все эти вещи к уже готовым понятиям таким как «интеллектуальная собственность», «материальные средства» и так далее. Вот только фактически единственным материальным средством, которое подлежит законообложению — сервер да комп юзера. Остальное уже идёт как интеллектуальная собственность и авторские права, на которые в интернете всем глубоко насрать.


    1. evil_random
      01.05.2018 22:16

      Спасибо. Хорошая идея на 404 поставить


      1. legolegs
        02.05.2018 09:33

        Плохая идея, на 404 и живые люди приходят. И вы сами.


  1. extempl
    01.05.2018 14:28
    +3

    Бывают и экзотические таргеты, которым уж точно неоткуда взяться у меня:

    Ещё, как вариант, таргеты со странными (на первый взгляд) путями могут быть сканами сайта на предмет заражения своим же вирусом (или тем, который известно как использовать).


    1. Old_Chroft
      01.05.2018 23:16

      Это не «еще как вариант», а единственно верный вариант: на сайт заливается шелл (или не заливается, как повезет) а бот тупо бродит по сети и проверяет все подряд — есть оно там или нет. По первому же в приведенном списке «экзотических» w00tw00t.at.blackhats.romanian.anti-sec гугл выдает около 15.000 результатов — бот ZmEu, который судя по всему никого так и не сломал, а только загаживает логи.


      1. YaakovTooth
        02.05.2018 05:25

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


  1. petuhov_k
    01.05.2018 15:44

    Я тоже пожалуюсь на злой мир. С момента подключения услуги "белый ip" мой роутер без остановки долбят в telnet. Сервис днс тоже пришлось отключить. Кому и что от меня надо не знаю. Блеклист не резиновый. Может знает кто что это и как избавиться?


    1. achekalin
      01.05.2018 15:52
      +1

      Firewall же.

      А что в качестве роутера используете?


      1. Chupaka
        01.05.2018 23:50

        По описанию очень похоже на MikroTik с удалёнными дефолтными правилами файрвола.


    1. ogoNEKto
      01.05.2018 16:01
      +1

      «Это интернет, детка :D»
      А по делу — закрыть порт, вместо блокировки IP. Если нужен телнет извне, сделать в правилах исключение для себя.


    1. firedragon
      01.05.2018 18:38

      В общем то ни как. Хотя статический ip подразумевает что вы понимаете что делаете.
      Я лично воткнул cisco 1841 и настроил по документации.
      Общая рекомендация: 5 неудачных логинов бан логина на 1 минуту, более 100 неудачных логинов с одного IP бан IP на 1 минуту. И лимиты на соединение с одного IP (хотя это спорно)


      1. sumanai
        01.05.2018 19:12

        более 100 неудачных логинов с одного IP бан IP на 1 минуту

        Может на 1 час или день?


        1. firedragon
          01.05.2018 19:21

          Это сугубо эмперические правила. Против брутфорса. У меня наружу торчит только «дырочки» до rdp и ssh. Пусть себе перебирают. Впрочем по rdp отлупов от клиентов обычно нет, мы сессию поднимаем когда общаемся, а дальше сохранение сеанса.


          1. YaakovTooth
            02.05.2018 05:26

            Можно ещё тук-тук метод повесить для пущей паранойи. :3


      1. bogolt
        01.05.2018 23:22

        то есть зная ваш логин можно забанить вам вход на сервер просто постоянно посылая на него запросы логина?


        1. YaakovTooth
          02.05.2018 05:27

          Ога. :3


        1. firedragon
          02.05.2018 06:19

          DOS чистой воды. Хотя можно использовать токены или капчу или клиентский сертификат.


    1. dmitry_dvm
      01.05.2018 22:45

      Кастомный порт уменьшит практически до нуля. В 22 порт тоже постоянно стучат, а поменяешь его на другой и всё, тишина.


      1. willyd
        02.05.2018 12:13

        Симптомы лечите. Я вообще не понимаю как можно телнетом светить. Для телнета как мнимум белый список в фаерволе.


      1. shushu
        02.05.2018 13:06

        ssh висит на не стандартном порту, домашний NAS:
        лог с 22го по 28е Апреля.
        grep 'authentication failure' -c auth.log
        12079


        в срезе по IP
        6 212.237.41.130
        127 70-91-203-141-busname-washington.hfc.comcastbusiness.net
        278 185.143.223.136
        1746 222.186.57.149
        8670 125.19.211.202


  1. Serge78rus
    01.05.2018 16:03
    +1

    Меня в свое время гораздо больше удивили UDP пакеты, падающие на GSM модемы по серым IP адресам за NAT сотового оператора. Интенсивность доходила до одного пакета в секунду в течении от десятков минут до нескольких часов.


    1. SergeyMats
      01.05.2018 16:53

      Было ли продолжение этой истории?


      1. Serge78rus
        01.05.2018 18:32

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


    1. eri
      01.05.2018 17:12

      а потом счёт за трафик. gsm в основном безлимитка, а вот m2m тарифы — днс амплификейшн атака может наделать делов.


      1. Serge78rus
        01.05.2018 18:16

        Речь именно об m2m. На общем счете за трафик с более 100 модемов это сказывается не сильно. Больше беспокоит возможное влияние этого на устойчивость связи, правда пока явной корреляции со сбоями не замечено.


    1. catharsis
      02.05.2018 11:50

      Если в ваш адрес раньше натился кто-то другой, может быть это его пакеты.
      По идее это не должно продолжаться дольше нескольких дней после смены адреса, но все может быть.
      Если нет, то похоже на криво настроенный NAT.
      А что за пакеты-то?


      1. Serge78rus
        02.05.2018 13:07

        Маршрут внутрь NAT у сотовых операторов сохраняется порядка минуты, я это проверял, т.к. сервер отправляет на контроллер нижнего уровня ответные пакеты подтверждения и управления и знать это время мне было важно. Что за пакеты, сказать сложно — в контроллере нет ресурсов для их хранения, он может только подсчитать их количество в единицу времени. Когда удавалось поймать их на оборудовании на стенде с записью логов, то видел 2 или 3 типа с одинаковым содержимым. Размер пакета — порядка сотни байт, содержимое как текст не читабельно, выловленных образцов сейчас сходу не нашел, возможно, их уже и не осталось. А что, у Вас есть какие-то мысли на этот счет?


  1. Z55
    01.05.2018 17:12
    +1

    Ну а выводы какие? То, что в этих точках есть прокси? )


  1. foxb
    01.05.2018 17:12

    Еще более интересно становится, если вы открываете порт 23 (telnet) перенаправляя его на honeypot.


  1. JustPeople
    01.05.2018 17:12

    "/var/www/html/w00tw00t.at.blackhats.romanian.anti-sec"


    Данный запрос дело рук бота Zmeu. Далее цитирую инфу с другого сайта


    ZmEu – румынский бот, ZmEu – имя мифического румынского существа, которое держит в страхе всех румынов, по сути это бот который ищет уязвимости в веб-серверах, пытается взломать сервер через PHPMyAdmin, как вы уже заметили и подобрать пароль от ssh. Получается у него это не очень успешно, но он не сдается.


    1. tyomitch
      01.05.2018 19:17
      +1

      Напомнило баян про румынскиймолдавский вирус.


      1. YaakovTooth
        02.05.2018 05:29

        Это настолько шутка, что корни её вовсе не шуточны. :)


  1. Twissell
    01.05.2018 17:12

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


  1. R_Voland Автор
    01.05.2018 17:18

    Стоило появиться статье как резко увеличилось количество источников скана. Правда не по словарю, сканируют один таргет.
    Цель, я так понимаю заспамить карту.
    Но:
    1. (-) Австралии так и нет.
    2. (+) Теперь известно больше возможных адресов-сканеров.
    3. (+) Отфильтруем сканеров с одним таргетом.


    1. vlreshet
      01.05.2018 18:43

      Австралия таки уже появилась!

      Скрин


      1. R_Voland Автор
        01.05.2018 21:58

        Ну вот. Теперь карта мира IT выглядит более гармонично.
        Спасибо!


    1. Twissell
      02.05.2018 10:50

      Забрал Ваш список себе в банлист fail2ban.
      Тут выше высказывались по поводу zip-бомбы и прочего, ИМХО
      это перебор.


  1. rezdm
    01.05.2018 17:31

    >> что не так с Австралией

    а) выборка малавата
    б) в Австралии плохо с интернетом, как минимум below global average; там всё оч плохо


    1. R_Voland Автор
      01.05.2018 17:39

      В Австралии не читают Хабр?
      Если читают то скоро появится метка — раз набрать какую-нибудь ерунду в URL не сложно.
      Вот и посмотрим.


      1. Goodkat
        01.05.2018 18:34
        +1

        Вы недооцениваете человеческую лень, но так уж и быть.


      1. shushu
        03.05.2018 08:49

        Сложно :)


  1. nikitasius
    01.05.2018 19:11

    Я раньше внимание тоже обращал на них, а потом забил к чертям.


  1. tenhi_shadow
    01.05.2018 19:41

    я уже когда-то задавал вопросы по этому поводу и отчасти нашёл ответы.
    toster.ru/q/325039

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


  1. uwayit
    01.05.2018 22:00

    Вот бы ещё статистику в процентах — эдакий рейтинг таргетов по популярности.


    1. R_Voland Автор
      01.05.2018 22:09

      Это можно.
      Просто на текущий момент ресурс стал известен. Что называется дискредитирован. По сути можно специально бить по нему фальшивыми словарями. Австралия существует. Доказано. Отлов будет остановлен. Статистика и словврь будут за период с последней датой 30.04.18


      1. sumanai
        02.05.2018 06:47

        Никто не мешает поставить софт отлова на не запаленный сервер.


  1. R_Voland Автор
    01.05.2018 22:15

    Спасибо Австралии за отклик!
    А нет ли кого из Новой Зеландии?
    Про Африку и не спрашиваю.
    Кстати, а куда дели IP4 адреса, отданные Африке?


    1. Goodkat
      02.05.2018 02:54

      Есть, но ваша геопривязка барахлит.


  1. serafims
    01.05.2018 23:17

    Еще достаточно оперативно стучатся на предмет наличия АТС (Freepbx и т.п.) c целью звонков на платные номера, лечится настройкой Fail2Ban, сменой портов и т.п.


  1. zenkz
    01.05.2018 23:32

    Очень интересное открытие. Мне кажется эти боты пытаются сломать популярные CMS/DB пока те ещё не сконфигурированы безопасно. Т.е. к тому времени как вы смените пароль/всё настроете, вас сайт уже будет инфицирован.


  1. Psychosynthesis
    01.05.2018 23:51

    Что-то мне подсказывает, что даже если код счётчика запилить на эти страницы — врядли будет какое-либо повшение посещаемости, ибо счётчики умеют бота от человека отличать, а скан врядли руками делают.


    1. YaakovTooth
      02.05.2018 05:30

      Чтобы счётчикам от бота отличать нужно, чтобы бот счётчик запросил, а такие сканы это почти без исключений чисто хэд/гет/пост ресурса, а не разбор dom с подключением статики.


  1. Sly_tom_cat
    02.05.2018 00:16

    Два года назад подключал VPS-ку на пару месяцев поиграться — картина была примерно такая-же.

    80-й порт просто был завален запросами. Но никто не понял, что там у меня был openVPN в ssl-тунеле.
    А вот 443-й порт, который у меня шел на ssh — так это некоторые раскусили очень быстро и пытались брутфорсить пароль рута.


  1. ianzag
    02.05.2018 07:31

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

    Это, очевидно, не сработает т.к. в подавляющем большинстве случаев примитивный целевой бот не будет исполнять JS на скачанной страничке или бегать по её ссылкам/картинкам.


    1. R_Voland Автор
      02.05.2018 07:35

      Вообще-то работает. Если код таргета состоит из кода счетчика(а этот код есть скрипт) то он будет выполняться при любом запросе к таргету. Другое дело, что боту это не интересно. Ему важен результат ошибки запроса: 200 или 404. Вот если он получает 200 то что дальше? Стучит хозяину?


      1. ianzag
        02.05.2018 08:22

        Ну почему вы решили что бот будет выполнять JS код? То, что вы привели в наблюдаемой статистике — это не гуглбот. У наколеночных целевых поисковиков другие цели — они ищут конкретные точки для дальнейшей атаки.


        Простейший бот — это обычный скрипт "на PHP" бегающий по списку URLов. На каждый URL он выполняет GET запрос, ручками парсит полученный ответ regex-ом и если находит искомое совпадение (скажем признаки PHP админки) отдает URL в дальнейшую работу. Особо продвинутые могут сперва разложить HTML в DOM дерево но не более того. Грубо говоря:


        $urls = array(...);
        foreach ($urls as $url) {
            if (($body = file_get_contents($url)) && preg_match("/PhpMyAdmin/", $body)) {
                doSomethingBad($url);
            }
        }

        Для поиска открытых админок никто не будет запускать Selenium. В этом нет никакой необходимости.


        BTW посмотрите ради забавы на User-Agent запросов. Уверен, во многих вы увидите отсылку на curl или php. Народ обычно не парится даже с этим.


        1. R_Voland Автор
          02.05.2018 09:32

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


          1. ianzag
            02.05.2018 12:00
            +1

            > Он просто эмулирует посещение страницы

            Лично я сильно сомневаюсь, что основная масса ботов указанных выше полноценно эмулирует посещение страницы. Это достаточно муторное, дорогое а, главное, мало полезное в контексте рассматриваемых задач мероприятие.

            Но давайте проведем эксперимент? Если вам конечно не лениво. Скажем, на топ25 ссылок выше написать rewrite правило которое бы отдавало страничку с JS кодом который бы дергал скажем картинку с рандомным URLом на этом сайте. По обращениям к картинке можно будет оценить, сколько народа зайдя на /var/www/html/mysqladmin реально её исполнило.


            1. R_Voland Автор
              02.05.2018 16:25

              Создал счетчик специально для тех кто приходит по IP адресу. Поместил в 2 файла: phpmyadmin и phpMyAdmin (самые частые таргеты). Тестируйте.


              1. apapacy
                02.05.2018 19:19

                Не совсем Вас понял. Вот что отдает Ваш счетчик

                <html>
                <body>
                <!--LiveInternet counter--><script type="text/javascript">
                document.write("<a href='//www.liveinternet.ru/click' "+
                "target=_blank><img src='//counter.yadro.ru/hit?t14.6;r"+
                escape(document.referrer)+((typeof(screen)=="undefined")?"":
                ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
                screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
                ";h"+escape(document.title.substring(0,150))+";"+Math.random()+
                "' alt='' title='LiveInternet: number of pageviews for 24 hours,"+
                " of visitors for 24 hours and for today is shown' "+
                "border='0' width='88' height='31'><\/a>")
                </script><!--/LiveInternet-->
                 </body>
                 </html>
                

                Редкий бот пойдет дальше получения этого кода и будет обращаться к картинке. Как будут наращиваться счетчики ботом?


                1. R_Voland Автор
                  02.05.2018 21:38

                  Для получения хитов достаточно выполнить этот код.
                  Если это Ваш адрес — х.х.216.62 то хит состоялся и счетчик посещаемости++. Но с этого адреса заходили по имени, а для чистоты эксперимента лучше идти по IP адресу.
                  image


                  1. apapacy
                    02.05.2018 23:09
                    +1

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


                    1. R_Voland Автор
                      03.05.2018 00:21

                      Тут важно что при обращении сканера на эту страницу хит с уникальным адресом происходит и счетчик посещений увеличивается. Именно об этом и было сказано в статье. Одно плохо — если сканируют по адресу(а вероятно так и есть) то и посещаемость растет у сайта с адресом в URL. На посещаемости сайта с нормальным URL такое сканирование на отражается.


                      1. apapacy
                        03.05.2018 02:10

                        Увы этого не может быть. Хит увеличивает выполнение кода JavaScript, который формирует документ HTML посл чего клипент (браузер или продвинутый бот) обращается на адрес src='//counter.yadro.ru/hit?t14.6;r", загружая картинку с сайта counter.yadro.ru. Ничего из этого не делал, не делает и не может сделать простой парсер. Или даже продвинутый парсер который выполнит JavaScript но совсем не обязательно будет грузить картинку по с сайта counter.yadro.ru.


                        1. R_Voland Автор
                          03.05.2018 07:28

                          Отлично, значит по наличию хитов в счетчике можно классифицировать сканеров: тупой бот, продвинутый бот или браузер.Уточню в статье. Спасибо.


                  1. apapacy
                    02.05.2018 23:22

                    Кстати, заход по ip адресу лучше просто закрыть. Тогда 99.9% ботов, которые сканируют всю сеть (а они как правило стучаться по адресу) уйдут с 403 статусом.


  1. barbos6
    02.05.2018 07:31

    Удивляет, что с белыми ip, и в особенности на серверах почему-то до сих пор массово не используется нечто вроде
    -A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 20,25,80,135,139,2105,2107,4786,5900,8010,8080,8443 -j TARPIT --tarpit


    1. Dima_Sharihin
      02.05.2018 10:30

      Аудитория хабра будет благодарна за разъяснение логики этой строчки


      1. kafeman
        02.05.2018 11:52

        https://en.wikipedia.org/wiki/Tarpit_(networking), но я бы так не делал.


  1. erondondon
    02.05.2018 07:31

    Отличная статья, спасибо.


  1. atolia
    02.05.2018 09:32
    +1

    Первый шаг когда открываешь стандартные порты это apt get fail2ban. Прикольная штука. Сканирует логи sah, nginx etc и при подозрительной активности бан на день например средствами фаервола.


    1. scruff
      02.05.2018 13:32

      а можно пример внедрения?


      1. atolia
        02.05.2018 14:55
        +1

        После установки эта штука работает как демон и мониторит логи. Вы должны зайти в /etc/fail2ban и скопировать дефолтный файл jail.conf в jail.local
        Теперь в jail.local можно переопределять правила блокировок например добавить нужных местах enabled = true будет что то такое:


         [sshd] 
         enabled = true
         port    = ssh
         logpath = %(sshd_log)s

        Далее service fail2ban restart.


        посмотреть статус можно fail2ban-client status sshd а так же в iptables -nvL


        Еще можно переопределись каким методом банить. На Ubuntu можно использовать ufw. Для этого в jail.local нужно поменять banaction на ufw


        Вот статья еще про nginx https://www.digitalocean.com/community/tutorials/how-to-protect-an-nginx-server-with-fail2ban-on-ubuntu-14-04


  1. andriidenysenko
    02.05.2018 10:45

    Там где океан — Сейшелы)
    Или речь про какую-то другую точку на карте?


    1. R_Voland Автор
      02.05.2018 10:47

      Была точка неопределенная. Сейчас сканеры отфильтрованы по количеству таргетов. Показаны только те, кто сканил не один таргет.


  1. R_Voland Автор
    02.05.2018 10:48

    Как объясните вот это:

    /var/www/html/df


    1. Twissell
      02.05.2018 10:54

      Не оно — github.com/df-karuna/df-cms?
      P.S. Хотя ХЗ этих ботов, может, просто пробегал по распостранённым сокращениям, в которых юзеры прятали CMS.


      1. R_Voland Автор
        02.05.2018 10:58

        Прошу прощения.Не нашел как отредактировать комментарий. Полный текст ниже.


  1. R_Voland Автор
    02.05.2018 10:56

    Что вы думаете об этом:
    image


    1. kafeman
      02.05.2018 11:54

      Попытка XSS на 404.


  1. Areso
    02.05.2018 13:11

    В Австралии интернет очень дорогой. Причем не только пользовательский, но и для серверов. Мне тут недавно прилетел мусорный трафик из Китая, а в конце месяца я увидел счет, выходящий за рамки обычного. Потом глянул — у одного очень популярного облачного провайдера для Китая и Австралии трафик тарифицируется отдельно, погигабайтно. Хорошо хоть не терабайт прилетел…


  1. scruff
    02.05.2018 13:31

    Уверен, если оставить какой-нибудь из well-known портов наружу (RDP, SSH, FTP, SMTP, SQL) географический результат будет тот-же.


    1. R_Voland Автор
      02.05.2018 15:38

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


  1. Karpion
    02.05.2018 18:39
    +1

    Для начала — всю админку хорошо бы вынести на отдельный виртуальный сайт (Apache давно умеет), доступный по нестандартному порту или хотя бы требующий нестандартртного доменного имени (name based virtual site). Кому надо — сообщить порт; а остальным ничего такого не давать.
    На другой порт надо переносить Telnet, SSh и прочие сервисы, предназначенные для своих — для тех, кому выдают пароль.

    Затем хорошо бы при таких запросах отдавать что-то такое, что затруднит работу сканирующего скрипта. Про Zip-бомбу тут уже сказали.
    Это надо делать не ради себя, а ради спасения тех, кто не догадался закрыть уязвимости.

    PS: Интересно то, что все гос.органы, осуществляющие надзор за Интернетом, полностью игнорируют проблему сканирования, спама и прочие реальные опасности.
    Искренне Ваш, Капитан Очевидность.

    Кстати, хорошо было бы отправить эти логи в РосКомНадзор — может, хоть кто-то там делом займётся.


    1. sumanai
      02.05.2018 20:27

      PS: Интересно то, что все гос.органы, осуществляющие надзор за Интернетом, полностью игнорируют проблему сканирования, спама и прочие реальные опасности.

      Как игнорируют? Они все письма в спам отправляют, 100% защита от спама.


      1. firedragon
        03.05.2018 16:07

        Есть мнение, что все халявные прокси сервера, vpn, tor exit node etc. контролируются государством. Отчасти это подтверждается выступлениями Сноудена и скандалами с Касперским и МаилРу


  1. ianzag
    02.05.2018 18:52

    Security through obscurity (tm)

    А закрыть чувствительные ресурсы HTTPS с обязательным юзерским сертификатом и редиректом не прошедших в даль не вариант? И пусть «сканируют» сколько хотят.


  1. Loki3000
    03.05.2018 14:18
    +1

    Я всех этих роботов просто в бан отправлял… А оказывается надо было статью на хабр пилить!


  1. Zagrebelion
    03.05.2018 15:20
    +1

    А что плохого в этих сканированиях? Ну подолбились в ssh порт, а там авторизация по ключам. Поперебирали УРЛы каких-то админок и уязвимостей, которые не затрагивают ПО на сервере. Что такого страшного-то?


    1. Stanislavvv
      04.05.2018 13:12

      Основная проблема — логи распухают :-)
      На мелкой вдс, чьё дело запускать openvpn может быть чревато переполнением диска.
      Несколько Гб логов неудачных авторизаций за сутки мне уже попадалось. fail2ban тут поможет от странных китайцев, пытающихся подобрать пароль для доступа с именем Administrator на линуксовый хост.