Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Если кому‑то кажется, что сканирование — это вещь простая, и вариантов тут нет, то он ошибается. За время наблюдения я выявил три разных типа.
Сканер. Тут все понятно: зарядили перебор портов, не особо скрываясь, и сидим ждем. Сканировать могут на постоянной основе или одноразово, но всегда с одного адреса. Это легко выявить и заблокировать. Если нам прислали три пакета, и ни один не попал в открытый порт, то добро пожаловать в блок. На момент написания статьи, первая десятка самых активных источников этого класса за месяц выглядела так.
Ваншотеры. Это менее заметные персонажи. Их действия выглядят так: со случайного адреса прилетает запрос на какой‑то конкретный порт и только на него. Блокировать такое сканирование по счетчику бесполезно, в следующий раз ваншотер появится не скоро и точно так же опросит один порт. При этом первое обращение все равно пройдет (если у тебя есть соответствующая служба). Таких запросов во входящем трафике абсолютное большинство, без малого 80%. Вот, как это выглядит на протяжении месяца.
A/B/C — это маркер агента, куда запрос пришёл. Здесь блокировать можно только превентивно. Этим занимается модуль greyport, который повторяет идею серых списков для почты. По умолчанию все порты закрыты, и чтобы получить доступ, надо повторить запрос заданное число раз (число повторов, задержку отсчета и контрольный интервал можно задать в настройках модуля).
В общем случае это не доставляет неудобств, кроме замедленного первого соединения. Доступ для адреса по умолчанию открывается на сутки, потом процедура повторится. Эффективность не стопроцентная, но задав число повторов равное одному, можно отбить те самые 80% проходимцев, два отвадят 90%, три — от 95%. Но три — это уже совсем предел. Сетевой стек на стороне клиента больше пяти запросов как правило не отправляет и отлетать начнут уже нормальные клиенты.
На качество работы greyport влияет в том числе номера порта. Выше я привел параметры эффективности для портов 80 и 22, а для Elasticsearch (9200) задержка только одного первого пакета отбивает 99 запросов из 100.
Также на примере сканеров этого класса можно оценить скорость работы «партнеров» по производственному процессу. Из таблицы видно, что задержка между пакетами варьируется от секунд (для соседних адресов) до часов, если сегменты разные. Однако тут есть существенный элемент случайности. Например во время подготовки выборки я нашел пример, когда адреса из разных (сильно разных) сетей были опрошены с разницей в две секунды, зато соседние — с разницей в две минуты.
Третий тип сканеров самый спокойный. Эти периодически постукивают то тут, то там. Выглядит это следующим образом.
Поисковики по интернету вещей — это третья категория. От них запросы приходят бессистемна, адреса опрашивают в разнобой. Бывает, опрашивают несколько раз с разных адресов. У них целые сетевые сегменты и «одобрямс» от провайдера, так что можно размазывать запросы по источникам и вообще никуда не спешить.
Для работы с подобными клиентами предназначен модуль lazyscan, который проверяет, сколько событий с адреса было зарегистрировано за довольно длительный период (по умолчанию неделя, а иногда и этого мало). И если выясняется, что источник занимается своим делом систематически, модуль так же неспешно (пока наберется статистика) но надолго переводит его в список заблокированных.
Таких субъектов за три месяца наблюдений набралось более 5000, темпы пополнения упали, но по 50–60 новых адресов в сутки продолжает добавляться.
Владельцы «легальных» сканеров предлагают писать им письма в случае, если их активность кому‑то не нравится. Теоретически, после того как ты докажешь, что являешься владельцем диапазона, который хочешь исключить из опросов, они больше не потревожат. Но такие действия больше напоминают замазывание кусков спутниковых карт — лучшего способа привлечь внимание не придумать.
Да и особого смысла слать письма нет, так как на одного добропорядочного, приходится пять менее отзывчивых, жаловаться на которых можно разве что в спортлото. Поэтому оптимальной тактикой выглядит молчаливый блок, что еще и экономит силы.
Давай глянем на уровень выше и посмотрим, чем наши любители сканировать интересуются в плане прикладных протоколов, в частности HTTP. Столь любимые всеми веб‑админки, REST и прочие чудеса — это удобство не только для владельца сервиса, но и для обладателю тайного знания. Отправив хитрый запрос, он пополнит ряды администраторов устройства без всяких там ROP, heap spraying и других страшных слов. Для контроля за подобной активностью есть модуль, разбирающий запросы к Nginx и посильно их классифицирующий.
|
|