sfw
nsfw

Результаты поиска по запросу "Загруженность трафика"

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.
То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».
К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.
И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.


Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.

Всё началось с гипотезы


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

Таким образом меня посетила идея проверить гипотезу: «Есть ли жизнь за прокси»?

Я запустил nmap по диапазону адресов по порту 8080. Далее из полученного результата прошёлся прокси-чеккером в поисках публичного прокси без авторизации и из положительных результатов выбрал самый близкий ко мне по пингу.

Запустил сканер через него по адресам 172.16.0.0/12 порт 8291 (mikrotik winbox). И! Я его нашёл! Без пароля!



То есть за роутером с прокси есть ещё один — Mikrotik без пароля. Гипотеза подтверждена: за прокси могут быть целые незащищённые сети.

Только на тот момент я недооценивал масштаб «незащищённости», который я случайно нашёл.

В поисках Немо владельца системы


Так как я придерживаюсь принципов Grey hat (Обо мне mysterious Russian-speaking grey-hat hacker Alexey и статья на Хабре) и «съел собаку» на безопасности Mikrotik, то я принялся искать владельца системы, чтобы связаться с ним.

Кстати, заходите в Телеграм чат «RouterOS Security» t.me/router_os

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

За интерфейсами ether1 и bridge ничего интересного не обнаружил. Найденные камеры были абсолютно не информативными.



А вот сканирование vpn, отмеченные красным на скрине выше, выдало более 20 000 устройств…
Причём более 1000 штук — микротики. Огромное количество устройств с заводскими паролями.

Вот некоторые из найденных сервисов с паролями по умолчанию:

1. Камеры наружного наблюдения — подавляющее большинство.




Даже офисы внутри

192.
60/view/index.shtml
AX IS-	AXIS 216FD Network Camera	Live View I Set
		
Video format		
| Motion JPEG v,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и мемы,мопед не мой,информационная небезопасность


Камер, по скромным ощущениям, не менее 10 000 штук. Производители разные: beward, axis, panasonic и т.д.

2. Ip-телефоны и FreePBX сервера также большое количество.


4r O A HG3ammuGHo | 10.
3/index.html
•••
IRMATIKA
onfiguration Settings
Network Print Log Settings
retwcrk Applications
'hone Settings
IP NAT Settings
>ial Plan Settings
peed Dial Settings
rovisionmg Settings
IP Accounts
Account 1
Account 2
'all Settings
Account 1
Account 2
Ludio


3. IPMI серверов:

Asus
4r O A HG3ammuGHO 192
51/indGx.html
ASMB8,kvm
6 American Megatrends Ina
Dashboard FRU Information Server Health Configuration Remc
Dashboard
Dashboard gives the overall information about the status of the device and remote serve
Device Information
Firmware Revision: 1.13
Firmware Build
Dell (их подавляющее большинство)
Supermicro
G A Hg 3amnmeHO | 10	i/url_rGdirGct.cgi?url_namG=mainmenu
System	Server Health	Configuration	Remote Control Virtual Media	Maintenance
© System
© FRU Reading
© Hardware Information
© System
Firmware Revision: 03.65 Firmware Build Time : 12/16/2017 BIOS Version: 3.1 BIOS Build Time: 06/06/2018
Из серверов виртуализации встречаются ESXi, Proxmox и oVirt

Много узлов кластера Proxmox (по поднятым сервисам и трафиком между ними.)

4. Преобразователи ethernet во 'что угодно' (Moxa UniPing etc)
5. Системы управления ИБП

6. Внутренние сервисы





Что-то похожее на мониторинг состояния систем обеспечения здания.

Система управления кондиционированием и вентиляцией

Различные системы управления табло на перронах :-)

Эта самая красивая

Некий терминал, но внутри модифицированный дебиан.

Таких нашёл около 20

Кстати, аптайм у него почти год:




6. Сетевое оборудование



Разумеется, много различных роутеров. Как уже сказано выше, мне больше интересны Микротики. Подавляющее большинство с последней прошивкой и пароли не пустые. Но есть без паролей и с устаревшими прошивками.

Туннели наружу подымаются легко. То есть фильтрации исходящих коннектов практически нет.
Более того огромное количество микротиков со включенным прокси, аналогично тому, при помощи которого я и попал в эту сеть… Кстати, туннели через них тоже замечательно подымаются.

Не полный кусок лога по прокси.

Mikrotik HttpProxy (proxy server) Mikrotik HttpProxy (proxy server) Mikrotik HttpProxy (proxy server) Mikrotik HttpProxy (proxy server) Mikrotik HttpProxy (proxy server) < HttpProxy (proxy server) Jotik HttpProxy (proxy server) □Proxy (proxy server) Ikrotik НщЯ^^ргоху server) Mikrotik


Такое ощущение, что интегратор, который строил сеть, специально оставил этот доступ.

И все же кто же хозяин?


Думаю, что уже все и так догадались.

Это я пробежался по верхушкам в рандомном порядке. Потратил я на это чуть больше 20 минут, чем автор статьи про Сапсан.

Это здец. Сеть просто в решето.

Причём это устройства по всей РФ.

Например, вот это вокзал Уфы
Антропово Костромской области

Развёрнута профессиональная система видеонаблюдения.

Нашёл презентацию по вокзалам.

macroscop
1С
100:8080
тасгоБсор
\УеЬ-Клиент Масгозсор
Название конфигурации: Анапа. Текущее состояние: Сервер активен.. Время запуска: 04.11.2020 12:36:25. Версия сервера: 2.0.94,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и

Находил Кемерово, Новосибирск, Омск и т.д. По внешнему виду вокзалы сложно определить. К тому же я поездом уже лет 5 не ездил.

Как же так получилось?


Я всегда считал, что уязвимости в корпоративных сетях появляются из-за ошибок или специальных действий безграмотных сотрудников. Первое что пришло мне в голову — это некий сотрудник по разрешению СБ поднял у себя из дома VPN до рабочей сети на микротике в своей домашней сети. Но в данном случае эта моя гипотеза разбилась как только я увидел обратный резолв адреса через который я попал на этот Микротик.

root@debian3:~# nslookup 8 1	0.in-addr.arpa,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и мемы,мопед не мой,информационная небезопасность


То есть это один из шлюзов в мир из сети РЖД. Ну и в сеть РЖД тоже…

Получилась вот такая картина:

Вероятно, что это один из офисов РЖД, который прилинкован к основой сети через l2tp. Я попадаю в сеть где межсетевые экраны отсутствуют как класс. Запускаю интенсивное сканирование хостов — у меня соединение не рвётся. Значит о системах обнаружения вторжения (IDS/IPS) РЖД тоже ничего не слышал. Микротик может замечательно интегрироваться, например
Обнаружил кучу устройств без защиты. Это говорит, что службы сетевой безопасности в РЖД так же нет.Много устройств с дефолтными паролями. То есть политики паролей тоже нет.С Микротиков внутри сети я легко поднял туннели. То есть исходящий трафик не контролируется. Я вижу все интерфейсы управления в одной сети с клиентскими сервисами. Админы РЖД ничего не знают о Management VLAN
«Российские железные дороги» провели проверку после взлома мультимедийной системы поезда «Сапсан» одним из пассажиров, критических уязвимостей не обнаружено.
Так дайте ответ, Евгений Игоревич, какой «Юный натуралист» проводил расследование и не заметил гнездо со слонами?



У меня лично есть всего три варианта ответа на этот вопрос:

1. У Вас исходно плохая команда.

Проверку проводил тот же отдел, который и проектировал/обслуживает систему. Отрицая проблему, они или сохраняют свою работу, или преследуют иные цели.

,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и мемы,мопед не мой,информационная небезопасность


2. Вы доверились не тому специалисту. Аудит проводил некомпетентный сотрудник.

СЫН МАМИНОЙ ПОДРУГИ,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и мемы,мопед не мой,информационная небезопасность


3. Вы и так знаете о проблеме, но по каким-то неведомым причинам не можете ее публично признать и решить.



Стоимость уязвимости


«Что есть защищенная система? Защищенная система — это та система, взлом которой стоит дороже, чем ценность информации, которая там есть. Вот и все», — подытожил директор по информационным технологиям ОАО «РЖД».
Предлагаю применить Вашу систему оценки в теории на примере системы видеонаблюдения РЖД.

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

Рандомно выбранная из списка установленных модель стоит ~13к рублей.

Ве\л/агс1 В2710РМР
Производитель: BEWARD
Макс, разрешение видеокамеры: 1920x1080
ИК-подсветка: Да
12 900 Р
Бесплатная доставка, 1 -3 дня Есть самовывоз
Оплата наличными курьеру
Арсенал-СБ ★★★★★ 408отзывов
В магазин,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная


А закупки по 44-ФЗ отличаются, как непредсказуемой конечной стоимостью, так и временем проведения самой процедуры и получения продукта. Я потратил 8 часов для сбора информации для этой статьи. Найдено ~10к камер. Производителей камер, которые установлены, немного — максимум штук 10.

Гипотетическому злоумышленнику потребуется:

Модифицировать прошивки, заблокировав сетевой порт на 10 прошивках. Думаю, что на это у специалиста уйдёт три рабочих дня;Написать сканер, который будет анализировать устройство и заливать соответствующую прошивку. Заложим ещё 2 дня;Запустить этот сканер-прошивальщик, чтобы не смогли найти источник и заблокировать — часа два.
Таким образом за неделю работы специалиста по взлому РЖД потеряет минимум 130 миллионов рублей. Отсюда стоимость одного часа работы злоумышленника будет равна ~2,5 млн. рублей.

Двигаемся дальше.

Быстро заменить камеры на работающие РЖД не сможет. В резерве столько нет. Купить новые из-за обязанности объявления торгов так же не получится. Таким образом вся железная дорога будет без видеонаблюдения не меньше месяца.

А вот это уже опасность террористической угрозы. Чтобы её хоть как-то снизить потребуется на 10 тысячах объектов существенно усилить охрану. То есть даже на маленькую ж.д. станцию потребуется дополнительно 6 человек охраны…

Кажется счёт уже уходит за миллиарды…

Что нужно изменить, чтобы снизить вероятность возможных последствий?
Далее чисто мой взгляд на решение данной ситуации. Он ничего общего не имеет с мировыми best practices.

Так же, сразу оговорюсь, что проблема касается только обнаруженной мною сети видеонаблюдения. В других сегментах сети РЖД, очень надеюсь, всё намного лучше.

1. Нанять сетевых аудиторов, которые помогут найти и закрыть самые «зияющие» дыры.

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

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

2.2. разработать новую полноценную инфраструктуру, отвечающую всем требованиям безопасности и план поэтапной миграции.

3. Нанять подрядчика, который будет реализовывать в жизни данные проекты и передавать на эксплуатацию сетевикам РЖД.

4. После сдачи проектов провести аудит безопасности инфраструктуры.

5. По окончанию пентестов своими силами объявить Bug Bounty

Чтобы мотивировать аудиторов и внутренних специалистов работать качественно, надо объявить лимит на количество и серьёзность уязвимостей, которые могу найти участники программы Bug Bounty. Если внешние специалисты найдут багов меньше лимита, то свои аудиторы получают премии. Если багов будет больше лимита, то штрафовать.

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

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

Заключение
Я не единственный кто нашёл данные уязвимости. Очень много признаков, что в этой сети кто-то «живёт».

Например, вот эти линки я уже встречал не раз на роутерах, никак не относящихся к РЖД.

General Dial Out Status Traffic
Connect To: vpn .mythtime .xyz
User: u: 1 Password Profile
Keepalive Timeout Use Peer DNS
u^M37
default-encryption
60
□	Dial On Demand
□	Add Default Route
Default Route Distance: 1
Allow: 0 mschap2 0 mschapl 0 chap 0 pap
OK
Cancel
Apply
Enable
Comment


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

В случае с Сапасаном, чтобы через полученный VPN доступ можно было увидеть только один сервис — с которым взаимодействует пользователь системы, а не всю сеть РЖД…

Я старался достаточно жирно намекнуть на узкие места не раскрывая деталей и надеюсь, что специалисты РЖД их всё же увидят.

Связаться со мной можно через телеграм t.me/monoceros
Обсудить данную статью приглашаю в профильный чат по Микротикам в Телеграм «RouterOS Security»: t.me/router_os

Кстати, Евгений Игоревич, с повышением!

14.12.2020 14:20:00 ЖД Транспорт / Новости
Заместителем генерального директора РЖД стал Евгений Чаркин
Решением совета директоров Евгений Чаркин, ранее занимавший должность директора по информационным технологиям ОАО «РЖД», назначен заместителем генерального директора компании. Об этом сегодня


Источник

А ВОТ И Я
«notivat on.mi,РЖД,дыра,уязвимость,новости,habrahabr,habr,длинопост,информационная безопасность,it,политика,политические новости, шутки и мемы,мопед не мой,информационная небезопасность

Отличный комментарий!

Сама статья: https://habr.com/ru/post/536750/
https://habr.com/ru/users/LMonoceros/ - UPD: связались со мной специалисты РЖД и совместно закрыли уязвимости.
Премию дадут?
Аванс: его жизнь.
Оплата: его не посадят.
Купив дом я понял что интернета мне ни видать так что пришлось фантазировать и вот что из этого вышло)))) 
TP-LINK TL-MR3020 и модем zte 830ft и прямые руки всё что нужно )))


но я не остановился на достигнутом  и пошёл дальше

,поделки,маршрутизатор,роутер,своими руками,tp-link,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,песочница



,поделки,маршрутизатор,роутер,своими руками,tp-link,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,песочница

RuTraсker 20 лет

Отличный комментарий!

,RuTracker,нейронные сети

Отличный комментарий!

Юганский»
Поиск
	X
Тобольск	Поиск вашего дома или места
о	работы
Тюмень
о

Ялуторовск
о
Заводоуковск
Тара
о
1етропавловск
тькуль
Черлак
Кокшегау
Боровое
1ровое
Ишим
Курган
о
Тюк;
Тюкалинск
Куйбышев
/// Омск.Спасения.Нет
Омск
оКалачинск
Карасук
о
Щучинск

*
4

Как я блокировщик рекламы блокировал. Часть 1.

0. Введение.

В данной статье я хочу рассказать о том, как боролся с блокировщиками рекламы (далее адблок). Как и все посты в админских историях, он рассчитан на технически подкованную аудиторию. Так же не хотелось бы слушать нытьё "Ах вы фошисты! У меня деды воевали против рекламы! У меня брат от попандера умер!". Для этого уже существует другой пост - http://joyreactor.cc/post/2493637


1. Моральное обоснование

Моральный вопрос борьбы с адблоком для меня хорошо сформулировал amarao в комменте https://geektimes.ru/post/271638/comments/#comment_9049910 :

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

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

Многие придерживаются таких же ценностей технофашизма даже не осознавая это. Никто не жалуется на производителей фильмов, что они используют более сильное шифрование. Жалуются, когда после взлома этого шифрования и проигрыша в технической сфере, они переходят в сферу политическую и начинают вводить всякие драконовские законы и требования. Так же я ни разу не слышал, чтобы жаловались на последнюю систему защиты игр (Denuvo), которую уже полгода не могут взломать. Понятно, что если они сделали такую систему, значит они умнее и лучше. Не согласен - садись сам за дизассемблер и ломай.


2. Экономическое обоснование борьбы

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

Однажды порнотизерка, которая стоит на порнреакторе, предложили протестировать их анти-адблок код. Мы попробывали и с удивлением обнаружили увеличение дохода в 2 раза. Оплата там по кликам. То есть все те адблокеры, которые кричат "я не хочу смотреть рекламу! я никогда на неё не кликаю!" тоже замечательно её смотрели и кликали. Количество показов выросло немного более, чем в 2 раза - всё же процент кликающих уменьшился, но очень немного.

А увеличение доходов в 2 раза - это очень круто. Это бы решило все проблемы из-за падения курса. Поэтому я занялся разработкой анти адблока.


3. Детектирование адблока - первые победы

Первое, что надо сделать - это понять, есть ли адблок у человека. Для этого (да и вообще для будущего) скачиваем самый популярный список правил в рунете - ruadlist - https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt . Есть и другие, о них я ещё напишу.

Для начала пошёл простым путём: создаём <div id="adv"></div>, добавляем его вниз страницы и провряем, виден ли он. Если адблок не установлен, то будет виден. Если установлен, то он будет блокироваться и не виден. Но дальше начинается интересное - если адблок установлен, но сайт добавлен в белый список, то див всё равно виден не будет! И лишь через некоторе время он появляется. То есть, адблок вначале всё блокирует, а позже смотрит а не в белом ли списке сайт - может блокировать и не надо? Решается оно просто - добавлением таймера и проверкой через некоторе время, но осадочек остался.

Реакция модераторов списка ruadlist была достаточно быстрой и простой - они разрешили div#adv на сайтах реактора. Таким образом они попытались показать, что адблока у человека не стоит. Думаю с моралфажеской точки зрения, пытаться наебать меня с тем, есть у человека адблок или нет - неправильно. И именно поэтому моралфаги идут нафиг. С позиции технофашизма всё понятно и логично. Поэтому и вновь продолжается бой.

Я достаточно оперативно отслеживал их изменения в списке. И зная, что обновление листа у пользователя по-умолчанию происходит раз в 4 дня не спешил с ответными обновлениями. Если я обновлю свой детектор через 2 дня, то половина пользователей даже не узнает, что они вносили изменения.

Дальше изменения с моей стороны тоже понятные - я меняю id=adv на какой-нибудь другой заблокированный (их там сотни). Через 3 таких итерации (я меняю, они вносят этот id в белый список для реактора), они сдаются и ставят правило:

@@||joyreactor.cc^$generichide

(здесь и далее, правило возможно не точное, мне вломы искать какое было именно оно, но идею я передаю). По этому правилу на joyreactor.cc не срабатывают никакие правила скрытия. Но реклама всё равно не показывается - они просто блокируют запросы на получение рекламы. И определить адблок тоже не получается - все дивы видны.


4. Детектирование адблока - патовая ситуация

Переходим к следующему уровню - надо понять, не блокируются ли запросы. Тут проблема в том, что из-за cross-domain policy это сделать не легко. Загрузить скрипты через ajax запрещает это полиси, а при загрузке просто через <script> нельзя узнать что загрузилось и загрузилось ли что-то. И тут мне помогает ctrmanager.

Ctrmanager.com - это наш сайт. С помощью него ставится и снимается реклама. Если реклама напрямую от рекламодателей, то там же и хранятся картинки. Если от других сетей, то оттуда идёт js-код, подгружающий рекламу с их серверов. Функционал вроде простой, но когда мы искали сторонние решения для наших объёмов, то цена в несколько раз превышала доходы с этой рекламы.

На ctrmanager при выдаче рекламы я добавил дополнительный хидер "Access-Control-Allow-Origin: *". Это позволило делать обычный ajax-запрос на этот домен. И соответственно получать результат и ошибки. Модераторы ruadlist спокойно добавили ctramanger в белый список. Этим они меня озадачили. С одной стороны, теперь можно спокойно показывать прямую рекламу. Но с другой стороны, никакой прямой рекламы у нас не было из-за кризиса и не предвиделось. Единственное что было - это вшивая тизерка внизу страницы. Сейчас лишь иногда появляется что-то другое. Соснули все - адблокерам будет показываться прямая реклама, но мы денег не получили так как её нет. Это, конечно, хорошо когда все соснули - но как-то неинтересно.


5. Детектирование адблока - позиционная война

Экспериментируя с запросами я обнаружил странную работу с crossdomain ajax в фаерфоксе. Там получилось различить из-за чего заблокирован запрос - из-за адблока, или из-за crossdomain policy. Я залил этот детект понимая, что лучше что-то, чем ничего. На их форум посыпались жалобы на жёлтую табличку, но они у себя ничего не видели. Видели безобидный ajax-запрос http://yandex.ru/favicon.ico?ads-bla-bla, но он блокировался браузером из-за полиси. Как потом оказалось, это срабатывало только на английской версии ФФ (возможно в каких-то ещё случаях). Продолжалось это несколько дней в течении которых я смеялся и злорадствовал, а они не могли понять в чём проблема. Кстати так же я добавлял в белый список user-agent основного модератора списка - для него детект просто не запускался. Уже точно не помню, но вроде он полдня недоумевал, почему к нему приходят жалобы на реактор, хотя у него всё хорошо.

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


6. Детектирование адблока - пробитие бреши в обороне.

У элемента <script> есть атрибут onerror, который вызовется если скрипт не получилось загрузить. Отлично! Но для теста загрузить рекламный скрипт не получится - мы же не можем его остановить. Он сразу начнёт подтягивать остальную рекламу. Но после недолгих поисков обнаружился скрипт на сайте рекламодателя, который ничего не делал, однако блокировался общими правилами. Поэтому в код детекта добавлено:

var script = document.createElement('script');
script.onerror = function(e) {
  show_anti_ab();
};
script.src = "http://bad.ads/test.js";
document.head.appendChild(script);

Понятно, что на это модераторы добавили этот скрипт в белый список для моего домена. И у меня было 2 дня на то, чтобы найти новый такой пустой скрипт. Так как блокировалось там куча всего, то найти была не проблема (и у меня был один на примете), но я понимал что следующим правилом они внесут в белый список все домены (как generichide - есть genericblock) и для реактора просто отдельно заблокируют только рекламные запросы. Поэтому надо было двигаться дальше.


7. Детектирование адблока - победа.

Код рекламодателей выглядит обычно так:

var el = document.createElement('script');
el.src = "http://get.my.ads/ads.js?ua=" + user_agent + "&w=" + width + ....;
document.getElementsByTagName("head")[0].appendChild(el);

Было бы замечательно в этот код добавить el.onerror=.., но мало того, что изменение кода рекламодателя категорически запрещено, но ещё и загруженный скрипт часто тоже выглядит так же и подгружает какой-нибудь скрипт дальше по цепочке. И тут мы вспоминаем, что в javascript есть возможность перезаписывать любые функции. Поэтому добавляем такой код к детекту:

var _createElement = document.createElement;
document.createElement = function(nodeName){
   var el = _createElement.call(document, nodeName);
   if(nodeName.toLowerCase() == 'script'){
     el.onerror = function(){on_js_load_error(el)};
   }
   return el;
};

Тут просто автоматом добавляется onerror ко всем созданным скриптам. Теоретически их могут перезаписать, но рекламодатели обычно этим на заморачиваются. В функцию on_js_load_error передаётся элемент и получив у него атрибут src можно узнать какой именно скрипт не загрузился. Если это url нашего рекламодателя, значит или рекламодатель умер, или у пользователя адблок включён. 99.99% времени сайт рекламодателя работает.

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

Сражение коренным образом изменило ход войны. Теперь я мог для адблокеров показывать большой жирный хрен на полэкрана и модераторы ruadlist с этим ничего не могли бы сделать. Но мне нужно было больше. Мне нужно было показывать им рекламу, поэтому наступление продолжилось.

Продолжение следует...
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме Загруженность трафика (+1000 постов - Загруженность трафика)