Pull to refresh

Comments 156

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

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

Тогда это видимо gzip-бомба будет? В HTTP content-encoding? :)
Вот и я не понял, за что минусы. Речь была про zip-архив изначально, как я понял, а тут плавно начали уже компрессию трафика обсуждать.
Думаю, минусы за то, что вы не знаете что такое zip-бомба, и как она работает. Ели не ошибаюсь, суть в том что сам архив весит крайне мало, но содержит в себе заархивированный файл на несколько гигабайт\терабайт, забитый нулями(за счёт чего и достигается компрессия). Правда, если никто этот файл не попытается разахивировать, непонятно — как будет причиняться вред)
UFO just landed and posted this here
Я так понимаю разница gzip и zip в данном случае существенна.
Я так понимаю, что вы полтора часа продолжаете демонстрировать свое невежество, вместо того, чтобы прочитать что такое zip-бомбы, и успокоиться уже.
Вы не понимаете разницы между zip-бомбой и gzip-бомбой.

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

Посему получается что невежество демонстрируете вы лично.
Вообще, любой боеприпас (и бомба в том числе) сначала доставляется до нужного места, только потом срабатывает, а не наоборот.
При том, чтобы сделать zip-бомбу, не обязательно пережимать те самые терабайты.
Если это именно zip, а не gzip, как выше заметили, как вы без пережатия zip сделаете? Нулями забьёте?
UFO just landed and posted this here
Ну если руками, оно понятно. Я имею ввиду, автоматизированное что-нибудь есть для этого?

Раньше гуглил на эту тему, кругом одна теория была.
UFO just landed and posted this here
Можно не делать ручную а скачать готовый файл, и подложить его вместо wp_admin или phpmyadmin, или куда там эти сканеры ломятся. В итоге у них может быть один из дочерних процессов упрется в ограничения памяти и упадет. А если бот-сканер ОЧЕНЬ кривой — может вообще всё подвиснет.
Как уже было верно замечено в комментариях, бот-сканер скорее всего ничего не запрашивает и не скачивает. Поэтому все эти беседы о zip-бомбах это лишь теоретизирование.
UFO just landed and posted this here
UFO just landed and posted this here
У них там интернет хреновый

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

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

Еще один настроил web сервер. Добро пожаловать
UFO just landed and posted this here
угу, пришлось, как непрофессионалу, роутер промежуточный ставить, а то специфический сервак в сочетании с мускулом 5.1 (и только на нем, я не знаю почему перенос на последнюю версию мускула не работает) работает только на вин хп и должен торчать наружу белым айпишником. А иначе шелов накидывали в страшных количествах.
Не первый уж. Но всегда поражало насколько быстро начинают прилетать сканы.
Я тут на днях завел себе VPS-ку поиграться, включил авторизацию в ssh только по ключу и дай думаю загляну в auth.log. А там 2 проваленных авторизации для пользователя admin (которого очевидно там сроду не было), это на сервере которому от роду не прошло 5 минут, вот повезло на бота нарваться :D
По поводу методов как минимум можно настроить дфолтный хост у нжинкса с запретом доступа т.к. часто эти боты сканируют сеть по ip а не по доменному имени. Второй можно установить фильтр для ботов т.к. опять же в большинстве это простые боты которые не поддерживают яваскрипт и куки
Не надо паники.
257 уникальных IP адресов, это подписчики бывшего владельца IP + парочка ботов на удачу.
Это был чистый эксперимент. Вот с появлением статьи количество источников скана выросло изрядно. Теперь карта показывает просто распределение быстрого Интернета по земному шару.
Возможно это еще более криминально чем сканить.
С чего бы? Это ваш сервер. Файл не нарушает никаких авторских прав. Ссылку на файл вы никому не давали, но ктото по ней качает ваш файл без вашего ведома. А это уже хищение… Наверное…
В общем — тут к вам притензий быть не должно, а вот к сканерам можно придумать довольно много :)
К сканерам тоже нет вопросов — раз сервер предоставляет доступ к файлам, значит они доступны, если не предоставляет, то недоступны и их прямым способом не получить. Логично, а вот если пошёл взлом, то есть пошли какие-то определённые действия, направленные на дестабилизацию системы или кражу данных, то это уже да.

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

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

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

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

Текущее законодательство не может покрыть все случаи, возможные в информационном мире. Оно старается привязать все эти вещи к уже готовым понятиям таким как «интеллектуальная собственность», «материальные средства» и так далее. Вот только фактически единственным материальным средством, которое подлежит законообложению — сервер да комп юзера. Остальное уже идёт как интеллектуальная собственность и авторские права, на которые в интернете всем глубоко насрать.
в ворде будет какой-то договор не сохранённый
Да ничего с ним не случится, просто одна из вкладок в браузере немного потупит, а потом скажет «ой всё».
Спасибо. Хорошая идея на 404 поставить
Плохая идея, на 404 и живые люди приходят. И вы сами.
Бывают и экзотические таргеты, которым уж точно неоткуда взяться у меня:

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

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

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

Firewall же.

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

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

«Это интернет, детка :D»
А по делу — закрыть порт, вместо блокировки IP. Если нужен телнет извне, сделать в правилах исключение для себя.
В общем то ни как. Хотя статический ip подразумевает что вы понимаете что делаете.
Я лично воткнул cisco 1841 и настроил по документации.
Общая рекомендация: 5 неудачных логинов бан логина на 1 минуту, более 100 неудачных логинов с одного IP бан IP на 1 минуту. И лимиты на соединение с одного IP (хотя это спорно)
UFO just landed and posted this here
Это сугубо эмперические правила. Против брутфорса. У меня наружу торчит только «дырочки» до rdp и ssh. Пусть себе перебирают. Впрочем по rdp отлупов от клиентов обычно нет, мы сессию поднимаем когда общаемся, а дальше сохранение сеанса.
Можно ещё тук-тук метод повесить для пущей паранойи. :3
то есть зная ваш логин можно забанить вам вход на сервер просто постоянно посылая на него запросы логина?
DOS чистой воды. Хотя можно использовать токены или капчу или клиентский сертификат.
Кастомный порт уменьшит практически до нуля. В 22 порт тоже постоянно стучат, а поменяешь его на другой и всё, тишина.
Симптомы лечите. Я вообще не понимаю как можно телнетом светить. Для телнета как мнимум белый список в фаерволе.
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
не, насканивают довольно быстро и ssh, и rdp
а зачем вам снаружи телнет и днс? выключите, в правила реджект безусловный на эти порты
Меня в свое время гораздо больше удивили UDP пакеты, падающие на GSM модемы по серым IP адресам за NAT сотового оператора. Интенсивность доходила до одного пакета в секунду в течении от десятков минут до нескольких часов.
Эффект замечен только на МТС, на Мегафоне не наблюдался ни разу (прошу не считать рекламой, у последнего, применительно к m2m, ряд других неудобств). Такого массового прихода «чужих пакетов» не было давно, единичные случаи наблюдаются постоянно, но у нас имеется тенденция по уменьшению количества оборудования на нижнем уровне, постоянно держащего открытый порт, и работающего на МТС на публичном АПН, а некоторое время назад его было существенно больше, так что за достоверность статистики не поручусь.
а потом счёт за трафик. gsm в основном безлимитка, а вот m2m тарифы — днс амплификейшн атака может наделать делов.
Речь именно об m2m. На общем счете за трафик с более 100 модемов это сказывается не сильно. Больше беспокоит возможное влияние этого на устойчивость связи, правда пока явной корреляции со сбоями не замечено.
Если в ваш адрес раньше натился кто-то другой, может быть это его пакеты.
По идее это не должно продолжаться дольше нескольких дней после смены адреса, но все может быть.
Если нет, то похоже на криво настроенный NAT.
А что за пакеты-то?
Маршрут внутрь NAT у сотовых операторов сохраняется порядка минуты, я это проверял, т.к. сервер отправляет на контроллер нижнего уровня ответные пакеты подтверждения и управления и знать это время мне было важно. Что за пакеты, сказать сложно — в контроллере нет ресурсов для их хранения, он может только подсчитать их количество в единицу времени. Когда удавалось поймать их на оборудовании на стенде с записью логов, то видел 2 или 3 типа с одинаковым содержимым. Размер пакета — порядка сотни байт, содержимое как текст не читабельно, выловленных образцов сейчас сходу не нашел, возможно, их уже и не осталось. А что, у Вас есть какие-то мысли на этот счет?
Ну а выводы какие? То, что в этих точках есть прокси? )
Еще более интересно становится, если вы открываете порт 23 (telnet) перенаправляя его на honeypot.

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


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


ZmEu – румынский бот, ZmEu – имя мифического румынского существа, которое держит в страхе всех румынов, по сути это бот который ищет уязвимости в веб-серверах, пытается взломать сервер через PHPMyAdmin, как вы уже заметили и подобрать пароль от ssh. Получается у него это не очень успешно, но он не сдается.
Это настолько шутка, что корни её вовсе не шуточны. :)
Хорошо, что боты довольно примитивные и их немного.
Ко мне тоже стучали.
Спасибо за материал.
Стоило появиться статье как резко увеличилось количество источников скана. Правда не по словарю, сканируют один таргет.
Цель, я так понимаю заспамить карту.
Но:
1. (-) Австралии так и нет.
2. (+) Теперь известно больше возможных адресов-сканеров.
3. (+) Отфильтруем сканеров с одним таргетом.
UFO just landed and posted this here

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

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

а) выборка малавата
б) в Австралии плохо с интернетом, как минимум below global average; там всё оч плохо
В Австралии не читают Хабр?
Если читают то скоро появится метка — раз набрать какую-нибудь ерунду в URL не сложно.
Вот и посмотрим.

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

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

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

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

UFO just landed and posted this here

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

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

Еще достаточно оперативно стучатся на предмет наличия АТС (Freepbx и т.п.) c целью звонков на платные номера, лечится настройкой Fail2Ban, сменой портов и т.п.
Очень интересное открытие. Мне кажется эти боты пытаются сломать популярные CMS/DB пока те ещё не сконфигурированы безопасно. Т.е. к тому времени как вы смените пароль/всё настроете, вас сайт уже будет инфицирован.
Что-то мне подсказывает, что даже если код счётчика запилить на эти страницы — врядли будет какое-либо повшение посещаемости, ибо счётчики умеют бота от человека отличать, а скан врядли руками делают.
Чтобы счётчикам от бота отличать нужно, чтобы бот счётчик запросил, а такие сканы это почти без исключений чисто хэд/гет/пост ресурса, а не разбор dom с подключением статики.
Два года назад подключал VPS-ку на пару месяцев поиграться — картина была примерно такая-же.

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

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

Ну почему вы решили что бот будет выполнять 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. Народ обычно не парится даже с этим.

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

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

Но давайте проведем эксперимент? Если вам конечно не лениво. Скажем, на топ25 ссылок выше написать rewrite правило которое бы отдавало страничку с JS кодом который бы дергал скажем картинку с рандомным URLом на этом сайте. По обращениям к картинке можно будет оценить, сколько народа зайдя на /var/www/html/mysqladmin реально её исполнило.
Создал счетчик специально для тех кто приходит по IP адресу. Поместил в 2 файла: phpmyadmin и phpMyAdmin (самые частые таргеты). Тестируйте.
Не совсем Вас понял. Вот что отдает Ваш счетчик
<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>

Редкий бот пойдет дальше получения этого кода и будет обращаться к картинке. Как будут наращиваться счетчики ботом?
Для получения хитов достаточно выполнить этот код.
Если это Ваш адрес — х.х.216.62 то хит состоялся и счетчик посещаемости++. Но с этого адреса заходили по имени, а для чистоты эксперимента лучше идти по IP адресу.
image
Ну я же смотрел его дополнительно и несколько раз через веб-браузер. Конечно, хит состоялся, хотя не уверен конкретно этот адрес мой. Если я запускаю самым простым парсером то он мне отдает текст и все хиты на этом заканчиваются. Кажется, это ни у кого не вызывает вопросов. И это не только мое скромное мнение. Это просто так работает веб.

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

Увы этого не может быть. Хит увеличивает выполнение кода JavaScript, который формирует документ HTML посл чего клипент (браузер или продвинутый бот) обращается на адрес src='//counter.yadro.ru/hit?t14.6;r", загружая картинку с сайта counter.yadro.ru. Ничего из этого не делал, не делает и не может сделать простой парсер. Или даже продвинутый парсер который выполнит JavaScript но совсем не обязательно будет грузить картинку по с сайта counter.yadro.ru.
Отлично, значит по наличию хитов в счетчике можно классифицировать сканеров: тупой бот, продвинутый бот или браузер.Уточню в статье. Спасибо.
Кстати, заход по ip адресу лучше просто закрыть. Тогда 99.9% ботов, которые сканируют всю сеть (а они как правило стучаться по адресу) уйдут с 403 статусом.
Удивляет, что с белыми 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

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

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

После установки эта штука работает как демон и мониторит логи. Вы должны зайти в /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

Там где океан — Сейшелы)
Или речь про какую-то другую точку на карте?
Была точка неопределенная. Сейчас сканеры отфильтрованы по количеству таргетов. Показаны только те, кто сканил не один таргет.
Прошу прощения.Не нашел как отредактировать комментарий. Полный текст ниже.
В Австралии интернет очень дорогой. Причем не только пользовательский, но и для серверов. Мне тут недавно прилетел мусорный трафик из Китая, а в конце месяца я увидел счет, выходящий за рамки обычного. Потом глянул — у одного очень популярного облачного провайдера для Китая и Австралии трафик тарифицируется отдельно, погигабайтно. Хорошо хоть не терабайт прилетел…
Уверен, если оставить какой-нибудь из well-known портов наружу (RDP, SSH, FTP, SMTP, SQL) географический результат будет тот-же.
Абсолютно согласен. Только записей в логах будет гораздо больше т.к. словари на логины и пароли больше чем словарь для проверки веб-сервера.
Для начала — всю админку хорошо бы вынести на отдельный виртуальный сайт (Apache давно умеет), доступный по нестандартному порту или хотя бы требующий нестандартртного доменного имени (name based virtual site). Кому надо — сообщить порт; а остальным ничего такого не давать.
На другой порт надо переносить Telnet, SSh и прочие сервисы, предназначенные для своих — для тех, кому выдают пароль.

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

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

Кстати, хорошо было бы отправить эти логи в РосКомНадзор — может, хоть кто-то там делом займётся.
UFO just landed and posted this here
Есть мнение, что все халявные прокси сервера, vpn, tor exit node etc. контролируются государством. Отчасти это подтверждается выступлениями Сноудена и скандалами с Касперским и МаилРу
Security through obscurity (tm)

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

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

Основная проблема — логи распухают :-)
На мелкой вдс, чьё дело запускать openvpn может быть чревато переполнением диска.
Несколько Гб логов неудачных авторизаций за сутки мне уже попадалось. fail2ban тут поможет от странных китайцев, пытающихся подобрать пароль для доступа с именем Administrator на линуксовый хост.
А это всё не омжет быть широкоизвестный всем Router Scan?
У меня с этим отлично справляется fail2ban. Анализирует логи — можно любой в принципе, я анализирую auth.log и логи ошибок апача и nginx. 5 ошибок в логе с одного IP — добавляем IP в бан на iptables на час. После того как настроил — перестали распухать логи (особенно auth.log). В общем, удобная штука. Кстати, был забавный случай — сменили провайдера однажды и резко увеличилось число попыток входа по ssh. В логах было весьма забавно — через каждые 10 попыток зайти с пользователем root была 1 попытка с другими именами. Встречались такие даже перлы как hitler :) И это все с китайскими IP.
Логи будут распухать меньше, но боты вернутся. Кому вообще кроме админа нужен SSH из Интернет? Я решил эту проблему проще: Закрыл все кроме HTTP, но сделал страничку с аутентификацией. Кто проходит тому нужный порт открывается на сутки.
Ну по опыту, после запуска fail2ban боты через некоторое время прекратили свои попытки. Кстати, 22-й порт был закрыт, ssh был открыт но через нестандартный порт, а вот в логе были такие записи
Failed password for invalid user hitler from 101.44.1.136 port 62833 ssh2, порты пробовали разные, много. Честно говоря, почему это вообще попадает в лог я не разбирался. Как говориться — лучше выстрелить, перезарядить и еще раз выстрелить чем спрашивать «Кто там?»
UFO just landed and posted this here
Есть у меня в обслуживании один сайт на вордпрессе. Повадились его ломать. Некоторое время это даже удавалось. В логах давно замечал подобную активность, а взлом сайта вычислил по зашкаливающей нагрузке на проц впски. В основном рассылкой спама занимались при удачном взломе. Думаю еще другие сервера пытались ломать через мой.

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

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

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

Для начала я установил вордпресс начисто, перенес сайт с базой на новую, чистую установку, и создал из всей этой красоты git-репозиторий. После чего повесил в крон небольшой скрипт, который в случае обнаружения изменений (банальный git status) шлет мне моментально на почту уведомление. Через некоторое время такое уведомление я таки получил, и, имея git-репозиторий, моментально вычислил, куда внедряется зловред.

Уязвимыми оказались папки upload. Я стал складывать все нелегальные загрузки в отдельную папочку, недоступную для веб-сервера, с целью изучения. Выяснилось, что злоумышленники (возможно даже боты) заливают бэкдоры, через которые далее происходит проникновение.

Накопив некоторое количество экземпляров (взлом шел с нескольких направлений), мне это дело надоело, и я просто отключил права записи на все папки upload рекурсивно. Т.к. сайт обновляется чрезвычайно редко, никаких неудобств это не доставляет. Взломы закончились моментально, и вот уже несколько месяцев тишина. Даже немного скучно стало…
Я телефонный хулиган. У меня в списке 20 телефонных номеров на которые я звоню каждый вечер. Один номер всё время отвечает автоответчиком«номера не существует». И вот однажды этот номер ответил. Стало быть его выдали в пользование.
Человек на том конце провода: Ну надо же не успели номер включить, уже трезвонят тут всякие!
Ничего не напоминает?
Вот когда у вас в списке будет 4 млрд номеров то набор моего меня реально удивит. А 1 из 20 даже не обсуждается.
Не думал, что упрощение мысли может привести к непониманию. Прошу прощения. Расшифровываю- представьте в качестве «телефонного хулигана» некоего бота, на пк с огромными вычислительными возможностями. Ему и 4 млрд, как два пальца. Или сеть ботов.
UFO just landed and posted this here
А давайте посчитаем:
В нашем случае сканируется веб-сервер на наличие определенных путей.
По моим сведениям (из текущей статистики) в словаре обычно 5-10 таргетов. Примем — 5.
Задача бота получить ответ от сервера — есть такой таргет или нет. Значит одним запросом на таргет не ограничится (Протокол ТСР, установка соединения). Примем-5 запросов на таргет.
Таки на один словарик 25 запросов.
Задержка до разных IP будет разная( вот в Австралии, пишут, совсем плохо с этим).
ОК. Примем круговую — 10мс.
То есть на опрос одного таргета, с крошечным словариком и средней задержкой необходимо 25х10=250мс. Еще, если адрес недоступен, то наверняка срабатывает таймаут. Ну, допустим доступны все 4млрд.
Итак, 4млрд в наших, идеальных условиях будут опрошены одним ботом за 4млрд*250мс=31год
Чтобы опросить весь диапазон за 10 часов нужно использовать 27156 ботов, разделив между ними весь диапазон.
А теперь вопрос из жизни: Сколько существует ботов и какие диапазоны им нарезаны если ежедневно на одном адресе регистрируется 5 случаев сканирования, равномерно распределенных по времени суток.
Кстати, интересно было бы сравнить статистику скажем на 100 хостах.
UFO just landed and posted this here
Вы мешаете все в кучу. Ждать окончания TCP-соединения, как отметил sumanai, ботам не нужно — пускай оно длится хоть 10 минут, хоть час. Теоретически, вы можете запросить все 4 млрд адресов одновременно, и тогда время сканирования будет определяться самым медленным ответом, а не их суммой. Если вам кажется это не очевидным, то следует начать с изучения того, как работает пакетная передача данных вообще и TCP/IP в частности.

Бот в Интернете не один. На примере McARIS74 представьте, что он не единственный хулиган на свете. Кроме него есть еще как минимум volnov, у которого под подушкой припрятаны свои списки номеров, старательно выписанные им в блокнотик. Пока первый звонит по своим 20, второй звонит по своим. А если учесть, что таких негодяев в мире много, кто-нибудь из них, да и позвонит на ваш домашний номер.
Вопрос в том много это сколько? Наверняка ведь конечное число.
Еще вопрос в том, какое оптимальное количество агентов и где нужно разместить в Сети чтобы вычислить всех ботов?
Я уже ниже ответил, что теоретически все возможно, но есть реальность -ограничения ресурсов сервера и толщины канала в Сеть.
Вот у меня пока 2 агента в одном диапазоне адресов и я пока не вижу одновременности в действиях ботов.
Вопрос как правильно построить антибот-сеть и сколько минимально агентов нужно разместить и где чтобы вычислить всех ботов?
А теория она и есть теория — нужна конечно, но на практике все немного иначе всегда.
Еще вопрос в том, какое оптимальное количество агентов и где нужно разместить в Сети чтобы вычислить всех ботов?
Вопрос как правильно построить антибот-сеть и сколько минимально агентов нужно разместить и где чтобы вычислить всех ботов?
Первое правило инженера — если долго не можешь решить задачу, остановись и подумай: а ту ли проблему я вообще решаю? Одно дело, когда на ваш сервер идет DDoS-атака, другое дело, когда вас мирно сканируют какие-то школьники. Делают они это, скорее всего, через купленные шеллы либо из облаков типа AWS. Пытаясь вычислить «их всех», вы рано или поздно забаните свой сервер от всего Интернета, как это недавно уже попытался сделать Роскомнадзор. Запросы, конечно, прекратятся, не спорю, но тогда и от перхоти можно избавиться гильотиной.

Я уже ниже ответил, что теоретически все возможно, но есть реальность -ограничения ресурсов сервера и толщины канала в Сеть.
HEAD-запрос занимает, грубо, байт 100 (хотя обычно меньше). Докиньте 20 байтов TCP, 20 байтов IP, 24 байта Ethernet, итого 164. Возьмем сервер с каналом 10 Гб/с, что равно 10737418240 Бт/с, и поделим на размер одного пакета: 10737418240 / 164 = 65472062. Даже если предположить, что все 232 IP-адресов используются в Интернет (что неправда), то получим 232 / 65472062 + 1 = 66 с или чуть больше минуты. Таким же образом можете посчитать необходимое количество памяти. Число выйдет довольно большое, но для современного сервера абсолютно реальное. Учитывая, что, как вы сказали,
А теория она и есть теория — нужна конечно, но на практике все немного иначе всегда.
можете домножить мои числа на 1000, все-равно выйдет меньше суток.
1. Сканирование подразумевает сбор данных. Данных о наличие уязвимостей в системе. Для чего это нужно? Для использования этих уязвимостей.
Как защититься? Кто-то знает. Кто-то нет.
Я предлагаю решить проблему глобально — иметь актуальный бан-лист ботов. Актуальный значит чт он может меняться постоянно в зависимости от статистики. А современные NG Firewall разве не так работают? Ведь практически все перешли на централизованное обновление сигнатур. Хоть возьмите Wildfire от Palo Alto…
Но это защита от нападения.
А я предлагаю пойти дальше — не дать злоумышленникам прощупать вашу систему. Пусть бан-лист получает сервер или железка СЗП. не суть. Это касается не только сканирования HTTP конечно, но и ssh и телнет и других уязвимых сервисов. Но основа — статистика. И чем ее больше тем точнее определяется источник угрозы.

2. HEAD это какой уровень? Сессия ТСР должна быть установлена (ACK! SEQ!). Это значит что на один адрес нужно отправить не один пакет с HEAD. Иначе ничего не придет боту. Тогда зачем он нужен?.. 100 байт это очень оптимистично. Теперь. сервер должен также переварить все оветы чтобы найти код 200. Много ли серверов VDS/VPS предлагают 10G интернет? Сколько это стоит? Доступно ли это школьникам? И т.д. вопросы, вопросы.
Банить ботов? Я сейчас выполню curl — банить всех кто на моем IP адресе. Если бы я захотел скажем недобросовестно оброться с конкурентами у которых стоит такая защита — я бы поступил примерно так. Отыскал ближайшее публичное событие которое проводит владелец такого сайта и в середине презентации включил бы скрипт который делал бы запросы на сайт типа бота. Все присутсвующие разом бали бы забанены и как тут некоторые предлагали получили бы в качестве бонуса Z-бомбы.

И какой смысл. Если бот попал в черный список значит он уже успел постучаться кому-то на сайт (не обязательно успешно).

Весь этот список ботов и еще сотни и тысячи которые еще никому не известны но которые могут постучаться на сайт (99%) — выпиливаются несколькими строчками конфигов nginx, а еще 0,999999999% — выпиливаются простым скриптом на Lua который проверяет агента на установку cookie, ввыполнение JavaScript и редиректы. И остаются только единичные продвинутые парсеры которые запускаются на браузерных движках и которые н то что весь интернет а Ваш сайт будут парсить не намного быстрее чем простой пользователь.

Что касается таких портов как ssh то оптимально бло бы установить по маске доуступ с доверенных компьютеров если это так критично.

В что касается баз с IP я например все боты которые ко мне стучались проверял на сайте abuseip и они там практиченски все присутсвовали и уже не один год. Эти IP — все что угодно. И что с ними делать?
Привет!
Что касается «банить всех кто на моем адресе» не совсем понял о чем вы. Но рассмотрим этот случай. Допустим я тот конкурент. Вот мой веб-сервер. А между ним и Сетью некая железка которая прозрачно пропускает трафик, но мониторит его на адрес источника и может фильтровать.
Эта же железка время от времени получает некий список адресов из Центра и тупо отфильтровывает весь трафик с них.
Она же время от времени получает логи с моего веб-сервера и парсит их на предмет сканирования. Результаты парсинга отправляет в Центр.
Вы посканили веб-сервер. Сканирование это не атака. К тому же вашего адреса нет в списке из Центра.
После этого происходят следующие события:
1. в Центр улетает отчет о сканировании. Центр сверяет по разным признакам и решает на основе статистики бот это или одиночное сканирование. В первом случае адрес источника добывляется в лист фильтрации и лист обновляется на всех устройствах подключенных к Центру. Во втором адрес источника попадает в лист только для Моего устройства фильтрации но информация о сканировании сохраняется в Центре.
2. Мне(админу, в СБ)на почту приходит уведомление от Центра с информацией об атаке — когда, откуда, что сканировали и какие результаты(куда достучались куда нет). Так же по результатам — рекомендации что нужно сделать чтобы устранить существующие уязвимости.
3. Центр по мере возможности проводит работу по локализации сканера. Выходит на провайдеров. Вычисляет устройство с которого сканировали. В конце концов просто предупреждает владельца ресурса о нездоровой активности с его адреса.

Результаты:
1.никто кроме источника сканирования ничего не заметит. в лист фильтрации попадет только ваш адрес(точнее адрес сканера). И то временно(до выяснения).
2. Я получаю информацию о состоянии безопасности моего веб-сервера. Админ получает волшебного пенделя и принимает меры к устранению дыр. СБ возбуждается и проводит орг. мероприятия.

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

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

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

В вашем плане есть несколько проблем:
1. Динамичность большинства ip-адресов, большинство провайдеров не дают адреса статически, то же самое характерно для облаков и т.п. То есть час назад это был бот, через час уже клиент, который принес бы тысячи $.
2. Сканируют не только вредные боты, но и вполне полезные, например, поисковых систем. Легко можете заблокировать яндекс-бота или похожих ботов мелких поисковых систем, а это большие деньги.
3. Такой проект уже есть, называется гугл рекапча. Ставите невидимую кнопку “я не робот” и она как раз будет отсеивать подозрительные ип (но все равно с возможностью вести капчу и пройти реальному клиенту), ну и просто боты без javascript никуда не пройдут,
4. Параноикам просто стоит блокировать все разделы не предназначенные паролем и следить за своими логами. Многое уже решено на уровне серверных скриптов и т.п.,

P.S. Вообще идея ставит железку, которая будет фильтровать трафик по чужим правилам, смотрится ненадежно и странно. Намного лучше заботиться о безопасности сайта, чтобы там не было дыр, чем рисковать заблокировать своих собственных клиентов (которые даже на сайт зайти не сумеют).
Спасибо за информацию. Чем больше ее тем лучше.
1.Да, динамика похоже может частично поставить крест на идее перманентной блокировки сканеров по адресу. Опять же нужно подкопить статистики чтобы понять как быстро бот проходит свой диапазон. Если, допустим, один из агентов увидел сканирование и передал инфу в Центр, а Центр сразу разослал адрес сканера клиентам для бана скажем на сутки, то сколько клиентов успеют закрыться? Спасибо, что обратили внимание. Надо курить…
2. поисковые боты пусть ходят согласно robots.txt. Неумеете сами? Покупайте опцию — настроим, проследим чтобы поисковики были как дома. Не в ущерб безопасности. Потом они как правило сильно не прячутся и думаю их легко добавить в доверенные.
3. Мне кажется немного не по теме. Капча любая это уже защита на более высоком уровне. Это когда первый бот определит что у вас на сервере WordPress посредством сканирования таргета wp-login. вот тогда туда полезет другой гадить рекламой в комменты.
Тут то капча и пригодится. Однако к этому времени вы уже получите уведомление от Центра о том, что вас просканировали и нашли вашу уязвимость. Защищайтесь господа, вы предупреждены. Или покупайте опцию, мы с радостью вам установим капчу которая сама не бот.
4.Зачем надеяться на админа? Факт сканирования, тем более с успешным результатом это уже повод готовиться. Пусть логи смотрит железка — она всегда на месте, а грамотные люди помогут. За соответствующую плату конечно.
Немного зная психологию руководителе, они с радостью снимут с админа, который человек, тяжкий груз парсинга логов.
P.S. Эта железка будет стоять у клиента. Это значит, что клиент может в любое время физически исключить ее из схемы. Конечно об этом сразу станет известно Центру и обслуживание на это время будет приостановлено. В общем, включаете новенький сервер через железку и ждете уведомления о сканировании с результатами. И Центру напрягаться не надо — предугадывать уязвимости. Как новые появятся сканеры придут за ними сами.
Может наверное. В теории. В идеальном мире где одни сервера. Им еще SSH сканить и телнет. И анонимность наверное не повредит.
Есть ответ на задачку?
UFO just landed and posted this here
Вы конечно правы, но я хочу увидеть что это так. Это подтвердится как только на двух агентах совпадут(до секунды) время, источник сканирования и словарь. Пока не вижу такого совпадения. Может быть диапазоны ботам нарезаны не сплошные или каждый запрос отдельно проксируется. Не могу точно сказать. Мало статистики. Хорошо бы побольше агентов. Вот как лучше размещать агентов чтобы увидеть всех ботов? Территориально? Неизвестно сканит ли бот всегда один диапазон или перебирает их. Потом большая часть сканов — единичные, один таргерт. Иногда какая-то ерунда в запросе. Это что? Случайность? Или тоже проверка?
В общем пока одни вопросы. Но, думаю, чем больше статистика тем точнее результат. Ждем-с.
Sign up to leave a comment.

Articles