Comments 156
можно ли вставить скрипты чтобы исполнялись на сканере? ))
Zip-бомбу на два терабайта?
Отдача там будет несколько килобайт, на то эта бомба и zip.
При том, чтобы сделать zip-бомбу, не обязательно пережимать те самые терабайты.
Раньше гуглил на эту тему, кругом одна теория была.
У них там интернет хреновый
Он не столько хреновый просто дорогой и с большим пингом из-за того что весь трафик идет по нескольким океанским кабелям с довольно ограниченным каналом. Поэтому для сканирования намного дешевле и быстрее завести сервер или VPS где-нибудь в Европе/США.
257 уникальных IP адресов, это подписчики бывшего владельца IP + парочка ботов на удачу.
В общем — тут к вам притензий быть не должно, а вот к сканерам можно придумать довольно много :)
Так что сканеры сами по себе — вещь безопасная, такая же как и браузер.
А если я прямо в корне на индексе бомбу размещу, а потом куплю рекламу хорошую. Это тоже не криминал?
Я думаю любое преднамеренное нанесение вреда это криминал.
Просто беречься нужно.
Сканеров должны глушить фаерволы — они же теперь NG.
Короче, прикол в том, что привлечь вас могут только за урон, но не за «оверюзанье» чужих мощностей. Поэтому и с майнерами в вебе проблема, их нельзя заблокировать, они фактически вреда не приносят, они просто используют мощности компа, а коли пользователь не уходит с сайта, то он либо этого не замечает, либо он с этим согласен. И в том, и в другом случае состава преступления нет. И привлечь админа сайта за установку этого майнера тоже не могут.
Текущее законодательство не может покрыть все случаи, возможные в информационном мире. Оно старается привязать все эти вещи к уже готовым понятиям таким как «интеллектуальная собственность», «материальные средства» и так далее. Вот только фактически единственным материальным средством, которое подлежит законообложению — сервер да комп юзера. Остальное уже идёт как интеллектуальная собственность и авторские права, на которые в интернете всем глубоко насрать.
Бывают и экзотические таргеты, которым уж точно неоткуда взяться у меня:
Ещё, как вариант, таргеты со странными (на первый взгляд) путями могут быть сканами сайта на предмет заражения своим же вирусом (или тем, который известно как использовать).
Я тоже пожалуюсь на злой мир. С момента подключения услуги "белый ip" мой роутер без остановки долбят в telnet. Сервис днс тоже пришлось отключить. Кому и что от меня надо не знаю. Блеклист не резиновый. Может знает кто что это и как избавиться?
А что в качестве роутера используете?
А по делу — закрыть порт, вместо блокировки IP. Если нужен телнет извне, сделать в правилах исключение для себя.
Я лично воткнул cisco 1841 и настроил по документации.
Общая рекомендация: 5 неудачных логинов бан логина на 1 минуту, более 100 неудачных логинов с одного IP бан IP на 1 минуту. И лимиты на соединение с одного IP (хотя это спорно)
лог с 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
Было ли продолжение этой истории?
По идее это не должно продолжаться дольше нескольких дней после смены адреса, но все может быть.
Если нет, то похоже на криво настроенный NAT.
А что за пакеты-то?
"/var/www/html/w00tw00t.at.blackhats.romanian.anti-sec"
Данный запрос дело рук бота Zmeu. Далее цитирую инфу с другого сайта
ZmEu – румынский бот, ZmEu – имя мифического румынского существа, которое держит в страхе всех румынов, по сути это бот который ищет уязвимости в веб-серверах, пытается взломать сервер через PHPMyAdmin, как вы уже заметили и подобрать пароль от ssh. Получается у него это не очень успешно, но он не сдается.
Ко мне тоже стучали.
Спасибо за материал.
Цель, я так понимаю заспамить карту.
Но:
1. (-) Австралии так и нет.
2. (+) Теперь известно больше возможных адресов-сканеров.
3. (+) Отфильтруем сканеров с одним таргетом.
а) выборка малавата
б) в Австралии плохо с интернетом, как минимум below global average; там всё оч плохо
Я раньше внимание тоже обращал на них, а потом забил к чертям.
toster.ru/q/325039
самым эффективным оказалось ограничение доступа по региону, для меня оно было возможным.
Спасибо Австралии за отклик!
А нет ли кого из Новой Зеландии?
Про Африку и не спрашиваю.
Кстати, а куда дели IP4 адреса, отданные Африке?
80-й порт просто был завален запросами. Но никто не понял, что там у меня был openVPN в ssl-тунеле.
А вот 443-й порт, который у меня шел на ssh — так это некоторые раскусили очень быстро и пытались брутфорсить пароль рута.
Это, очевидно, не сработает т.к. в подавляющем большинстве случаев примитивный целевой бот не будет исполнять JS на скачанной страничке или бегать по её ссылкам/картинкам.
Ну почему вы решили что бот будет выполнять 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 реально её исполнило.
<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 адресу.
Тут важно что при обращении сканера на эту страницу хит с уникальным адресом происходит и счетчик посещений увеличивается. Именно об этом и было сказано в статье. Одно плохо — если сканируют по адресу(а вероятно так и есть) то и посещаемость растет у сайта с адресом в URL. На посещаемости сайта с нормальным URL такое сканирование на отражается.
-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 restar
t.
посмотреть статус можно 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
Или речь про какую-то другую точку на карте?
/var/www/html/df
P.S. Хотя ХЗ этих ботов, может, просто пробегал по распостранённым сокращениям, в которых юзеры прятали CMS.
На другой порт надо переносить Telnet, SSh и прочие сервисы, предназначенные для своих — для тех, кому выдают пароль.
Затем хорошо бы при таких запросах отдавать что-то такое, что затруднит работу сканирующего скрипта. Про Zip-бомбу тут уже сказали.
Это надо делать не ради себя, а ради спасения тех, кто не догадался закрыть уязвимости.
PS: Интересно то, что все гос.органы, осуществляющие надзор за Интернетом, полностью игнорируют проблему сканирования, спама и прочие реальные опасности.
Искренне Ваш, Капитан Очевидность.
Кстати, хорошо было бы отправить эти логи в РосКомНадзор — может, хоть кто-то там делом займётся.
А закрыть чувствительные ресурсы HTTPS с обязательным юзерским сертификатом и редиректом не прошедших в даль не вариант? И пусть «сканируют» сколько хотят.
А что плохого в этих сканированиях? Ну подолбились в ssh порт, а там авторизация по ключам. Поперебирали УРЛы каких-то админок и уязвимостей, которые не затрагивают ПО на сервере. Что такого страшного-то?
На мелкой вдс, чьё дело запускать openvpn может быть чревато переполнением диска.
Несколько Гб логов неудачных авторизаций за сутки мне уже попадалось. fail2ban тут поможет от странных китайцев, пытающихся подобрать пароль для доступа с именем Administrator на линуксовый хост.
Failed password for invalid user hitler from 101.44.1.136 port 62833 ssh2, порты пробовали разные, много. Честно говоря, почему это вообще попадает в лог я не разбирался. Как говориться — лучше выстрелить, перезарядить и еще раз выстрелить чем спрашивать «Кто там?»
Стоило мне вычистить весь мусор, как он через несколько часов появлялся снова.
Однажды меня это достало, и я решил закрыть тему кардинально, раз и навсегда.
Выяснилось, что защитить вордпресс не так то и просто, слишком дырявое это ведро. Промучавшись некоторое время с установкой всевозможных «защитных» плагинов я на это дело плюнул, и пошел другим путем.
Для начала я установил вордпресс начисто, перенес сайт с базой на новую, чистую установку, и создал из всей этой красоты git-репозиторий. После чего повесил в крон небольшой скрипт, который в случае обнаружения изменений (банальный git status) шлет мне моментально на почту уведомление. Через некоторое время такое уведомление я таки получил, и, имея git-репозиторий, моментально вычислил, куда внедряется зловред.
Уязвимыми оказались папки upload. Я стал складывать все нелегальные загрузки в отдельную папочку, недоступную для веб-сервера, с целью изучения. Выяснилось, что злоумышленники (возможно даже боты) заливают бэкдоры, через которые далее происходит проникновение.
Накопив некоторое количество экземпляров (взлом шел с нескольких направлений), мне это дело надоело, и я просто отключил права записи на все папки upload рекурсивно. Т.к. сайт обновляется чрезвычайно редко, никаких неудобств это не доставляет. Взломы закончились моментально, и вот уже несколько месяцев тишина. Даже немного скучно стало…
Человек на том конце провода: Ну надо же не успели номер включить, уже трезвонят тут всякие!
Ничего не напоминает?
В нашем случае сканируется веб-сервер на наличие определенных путей.
По моим сведениям (из текущей статистики) в словаре обычно 5-10 таргетов. Примем — 5.
Задача бота получить ответ от сервера — есть такой таргет или нет. Значит одним запросом на таргет не ограничится (Протокол ТСР, установка соединения). Примем-5 запросов на таргет.
Таки на один словарик 25 запросов.
Задержка до разных IP будет разная( вот в Австралии, пишут, совсем плохо с этим).
ОК. Примем круговую — 10мс.
То есть на опрос одного таргета, с крошечным словариком и средней задержкой необходимо 25х10=250мс. Еще, если адрес недоступен, то наверняка срабатывает таймаут. Ну, допустим доступны все 4млрд.
Итак, 4млрд в наших, идеальных условиях будут опрошены одним ботом за 4млрд*250мс=31год
Чтобы опросить весь диапазон за 10 часов нужно использовать 27156 ботов, разделив между ними весь диапазон.
А теперь вопрос из жизни: Сколько существует ботов и какие диапазоны им нарезаны если ежедневно на одном адресе регистрируется 5 случаев сканирования, равномерно распределенных по времени суток.
Кстати, интересно было бы сравнить статистику скажем на 100 хостах.
Бот в Интернете не один. На примере 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, все-равно выйдет меньше суток.
Как защититься? Кто-то знает. Кто-то нет.
Я предлагаю решить проблему глобально — иметь актуальный бан-лист ботов. Актуальный значит чт он может меняться постоянно в зависимости от статистики. А современные NG Firewall разве не так работают? Ведь практически все перешли на централизованное обновление сигнатур. Хоть возьмите Wildfire от Palo Alto…
Но это защита от нападения.
А я предлагаю пойти дальше — не дать злоумышленникам прощупать вашу систему. Пусть бан-лист получает сервер или железка СЗП. не суть. Это касается не только сканирования HTTP конечно, но и ssh и телнет и других уязвимых сервисов. Но основа — статистика. И чем ее больше тем точнее определяется источник угрозы.
2. HEAD это какой уровень? Сессия ТСР должна быть установлена (ACK! SEQ!). Это значит что на один адрес нужно отправить не один пакет с HEAD. Иначе ничего не придет боту. Тогда зачем он нужен?.. 100 байт это очень оптимистично. Теперь. сервер должен также переварить все оветы чтобы найти код 200. Много ли серверов VDS/VPS предлагают 10G интернет? Сколько это стоит? Доступно ли это школьникам? И т.д. вопросы, вопросы.
И какой смысл. Если бот попал в черный список значит он уже успел постучаться кому-то на сайт (не обязательно успешно).
Весь этот список ботов и еще сотни и тысячи которые еще никому не известны но которые могут постучаться на сайт (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. Эта железка будет стоять у клиента. Это значит, что клиент может в любое время физически исключить ее из схемы. Конечно об этом сразу станет известно Центру и обслуживание на это время будет приостановлено. В общем, включаете новенький сервер через железку и ждете уведомления о сканировании с результатами. И Центру напрягаться не надо — предугадывать уязвимости. Как новые появятся сканеры придут за ними сами.
Есть ответ на задачку?
В общем пока одни вопросы. Но, думаю, чем больше статистика тем точнее результат. Ждем-с.
Кто сканирует Интернет и существует ли Австралия