Категория > Новости > Scan2ban. Защищаем периметр от сканеров и ботов - «Новости»

Scan2ban. Защищаем периметр от сканеров и ботов - «Новости»


15-08-2023, 00:00. Автор: Самуил
Ис­ходни­ки про­екта в моем репози­тории

 

Угрозы и нейтрализация


Ес­ли кому‑то кажет­ся, что ска­ниро­вание — это вещь прос­тая, и вари­антов тут нет, то он оши­бает­ся. За вре­мя наб­людения я выявил три раз­ных типа.


Ска­нер. Тут все понят­но: заряди­ли перебор пор­тов, не осо­бо скры­ваясь, и сидим ждем. Ска­ниро­вать могут на пос­тоян­ной осно­ве или одно­разо­во, но всег­да с одно­го адре­са. Это лег­ко выявить и заб­локиро­вать. Если нам прис­лали три пакета, и ни один не попал в откры­тый порт, то доб­ро пожало­вать в блок. На момент написа­ния статьи, пер­вая десят­ка самых активных источни­ков это­го клас­са за месяц выг­лядела так.


Ван­шотеры. Это менее замет­ные пер­сонажи. Их дей­ствия выг­лядят так: со слу­чай­ного адре­са при­лета­ет зап­рос на какой‑то кон­крет­ный порт и толь­ко на него. Бло­киро­вать такое ска­ниро­вание по счет­чику бес­полез­но, в сле­дующий раз ван­шотер появит­ся не ско­ро и точ­но так же опро­сит один порт. При этом пер­вое обра­щение все рав­но прой­дет (если у тебя есть соот­ветс­тву­ющая служ­ба). Таких зап­росов во вхо­дящем тра­фике абсо­лют­ное боль­шинс­тво, без малого 80%. Вот, как это выг­лядит на про­тяже­нии месяца.


Читайте также - Официальный сайт 1GO Сasino - это лицензионные игровые автоматы, слоты, ставки на спорт, а также выгодные предложения. Начинай играть в игровые автоматы на лучших официальных casino online с бонусом.

A/B/C — это мар­кер аген­та, куда зап­рос при­шёл. Здесь бло­киро­вать мож­но толь­ко пре­вен­тивно. Этим занима­ется модуль greyport, который пов­торя­ет идею серых спис­ков для поч­ты. По умол­чанию все пор­ты зак­рыты, и что­бы получить дос­туп, надо пов­торить зап­рос задан­ное чис­ло раз (чис­ло пов­торов, задер­жку отсче­та и кон­троль­ный интервал мож­но задать в нас­трой­ках модуля).


В общем слу­чае это не дос­тавля­ет неудобств, кро­ме замед­ленно­го пер­вого соеди­нения. Дос­туп для адре­са по умол­чанию откры­вает­ся на сут­ки, потом про­цеду­ра пов­торит­ся. Эффектив­ность не стоп­роцен­тная, но задав чис­ло пов­торов рав­ное одно­му, мож­но отбить те самые 80% про­ходим­цев, два отва­дят 90%, три — от 95%. Но три — это уже сов­сем пре­дел. Сетевой стек на сто­роне кли­ента боль­ше пяти зап­росов как пра­вило не отправ­ляет и отле­тать нач­нут уже нор­маль­ные кли­енты.


На качес­тво работы greyport вли­яет в том чис­ле номера пор­та. Выше я при­вел парамет­ры эффектив­ности для пор­тов 80 и 22, а для Elasticsearch (9200) задер­жка толь­ко одно­го пер­вого пакета отби­вает 99 зап­росов из 100.


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


Тре­тий тип ска­неров самый спо­кой­ный. Эти пери­оди­чес­ки пос­тукива­ют то тут, то там. Выг­лядит это сле­дующим обра­зом.


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


Для работы с подоб­ными кли­ента­ми пред­назна­чен модуль lazyscan, который про­веря­ет, сколь­ко событий с адре­са было зарегис­три­рова­но за доволь­но дли­тель­ный пери­од (по умол­чанию неделя, а иног­да и это­го мало). И если выяс­няет­ся, что источник занима­ется сво­им делом сис­темати­чес­ки, модуль так же нес­пешно (пока наберет­ся ста­тис­тика) но надол­го перево­дит его в спи­сок заб­локиро­ван­ных.


Та­ких субъ­ектов за три месяца наб­людений наб­ралось более 5000, тем­пы попол­нения упа­ли, но по 50–60 новых адре­сов в сут­ки про­дол­жает добав­лять­ся.


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


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


 

Горшок с нарисованным медом


Да­вай гля­нем на уро­вень выше и пос­мотрим, чем наши любите­ли ска­ниро­вать инте­ресу­ются в пла­не прик­ладных про­токо­лов, в час­тнос­ти HTTP. Столь любимые все­ми веб‑админки, REST и про­чие чудеса — это удобс­тво не толь­ко для вла­дель­ца сер­виса, но и для обла­дате­лю тай­ного зна­ния. Отпра­вив хит­рый зап­рос, он попол­нит ряды адми­нис­тра­торов устрой­ства без вся­ких там ROP, heap spraying и дру­гих страш­ных слов. Для кон­тро­ля за подоб­ной активностью есть модуль, раз­бира­ющий зап­росы к Nginx и посиль­но их клас­сифици­рующий.



Перейти обратно к новости