Так чи безпечні «топові» сайти: досліджуємо рейтинг Alexa

Якщо подивитися на Top-1000 сайтів рейтингу Alexa в зоні .ru, то в перших трьох сотнях будуть сайти Яндекса, Google, Mail.ru та інших великих проектів і компаній, а далі підуть, в основному, розважальні, ігрові ресурси, торренти і профільні ЗМІ (а ще часом будуть зустрічатися домени тізерних партнерських мереж).



У сайтів, які займають не самі топові позиції з першої тисячі, відвідуваність буває порядку 10 000 – 80 000 унікальних хостів на добу, а іноді і вище. Для хакерів подібні ресурси привабливі тим, що, з одного боку, сайти мають високу відвідуваність, а з іншого – низький рівень захисту (зазвичай, взагалі ніякого), оскільки власники таких сайтів часто не приділяють належної уваги питанням безпеки (не знають, не вміють, не хочуть). Наприклад, ресурс з відвідуваністю 85000 унікальних хостів на добу може працювати на Wordpress з уразливими версіями плагінів. Виходить, що співвідношення витрат на злам до «профіту» від нього для даної категорії сайтів максимально, і це ласий шматок, яким, як мінімум, один зловмисник так скористається. В теорії все начебто логічно, але хотілося б у цьому переконатися на практиці, тому я вирішив просканувати великий масив топових ресурсів (наприклад, перші 50 000 сайтів Alexa в зоні .ru) на предмет злому/зараження, редиректів та інших проблем безпеки. Що з цього вийшло – нижче в статті.

Щоб заощадити час читачів, відразу наведу результати: приблизно 2% сайтів (якщо бути точним, 971 сайт) виявилися «хворі». Серед проблем був повний набір: редиректи на завантаження заражених апк і exe файлів, приховані мобільні редиректи на wap-click партнерки, фішинг і навіть два дефейса. Незважаючи на те, що відсоток проблемних сайтів начебто невеликий, небезпека виявилася суттєвою, так як приховані редиректи виявилися на популярних сайтах з відвідуваністю 60K хостів на добу.

Для більш ефективного виявлення шкідливого коду я використав кілька індикаторів зараження, оскільки ушкодження не завжди можливо визначити тільки по сигнатурах або тільки за допомогою поведінкового аналізу. Для аналізу в сукупності враховувалися:
  • редиректи при відкритті сторінок з різними параметрами User Agent+Referer,
  • сигнатури шкідливих скриптів (регулярними виразами),
  • присутність домену або фрагмента URL в базах небезпечних, підозрілих або шкідливих,
  • наявність сайту в «чорних списках» пошукових систем (safe browsing) і антивірусних сервісів (на базі virus total)
Для мінімізації числа помилкових спрацьовувань застосовувалися «білі списки» доменів і фрагментів URL. Наприклад, не враховувалися редиректи при кліці з банерів і банерних плагінів, редиректи на мобільні версії сайтів і т. п. При перевірці кожного сайту відправлялася серія запитів до стартовій сторінці, проводилася навігація мають посилання на сторінки, на яких виконувалися деякі дії, як якщо б на сайт заходили реальні відвідувачі з різними параметрами (браузер, реферер, платформа тощо). Після чого результат по всіх сторінок об'єднувався і формувався загальний звіт. І так для кожного з 50 000 перевіряються ресурсів. Стандартний phantomjs для такого завдання не підійшов з-за обмежень на деякі readonly об'єкти DOM, які мені потрібно було перекрити, тому довелося їх разом з WebKit'ом гарненько «допілівать».

Аналіз великого масиву сайтів виявив деякі загальні патерни зараження і типові способи впровадження зловредів код скриптів і веб-сторінок (наприклад, часте використання сервісу скорочення посилань, на зразок goo.gl, vk.cc для приховування адреси скриптів, додавання коду в початок або кінець jquery*.js файлів, сімейство недобросовісних тізерних/рекламних партнерських мереж тощо).

Деталі покажу на парі прикладів. Першим буде ресурс, що знаходиться на 750 позиції рейтингу ua сайтів Alexa. Це досить популярний торрент. У нього закономірно висока відвідуваність – трохи більше 60 000 унікальних відвідувачів на добу (згідно лічильника liveinternet).



Спробуємо відкрити сайт з мобільного: вбиваємо адресу сайту в пошуковому рядку Google, переходимо в підрозділ і клікаємо по кнопці завантаження в тексті сторінки. Замість завантаження .torrent файлу нас починає редірект на сторонні сайти, і в підсумку нам пропонують завантажити і встановити .apk файл по імені download.апк.



Щоб оперативно перевірити файл на «шкідливий», завантажуєм його на Virustotal і отримуємо цілком очікуваний результат – SMS.Agent (тобто смс шпигун):



Якщо повторити експеримент ще кілька разів, то іноді з'являється пропозиція завантажити прискорювач завантаження, який, як ви вже, напевно, здогадалися, прискорює хіба що перехоплення ваших смс:



Щоб шкідливий код виявили як можна пізніше, хакер всіляко прагне його замаскувати: впроваджує код динамічно і використовують багатоступеневу перевірку в рантайме. З цієї причини зловити редирект, не знаючи всіх нюансів, автоматизованими сканерами надзвичайно складно. В даному випадку редирект володів наступними властивостями:
  • шкідливий інжект перебував у подгружаемом скрипті scrolltop.js
  • код відпрацьовував у відвідувача 1 раз в 4,5 місяці (ставилися куки)
  • код впроваджувався динамічно тільки якщо відвідувач прийшов з пошукової системи
  • сам редирект спрацьовував тільки при кліці по певним посиланнями
  • завантаження .apk стартувала, якщо відвідувач зайшов з android пристрою (перевірялося в ланцюжку редиректів на шкідливий ресурс)


Нижче наведено фрагмент коду, який впроваджував завантажувач:



Якщо не виконується хоча б одна з перерахованих умов, то перенаправлення не відбудеться. Незважаючи на складне умова виникнення редиректа, сканером вдалося обчислити шкідливий за характерною сигнатурі і инжекту скрипта з підозрілого домену:



Можна приблизно оцінити масштаб лиха» для цього сайту. При зломі та зараженні ресурсу з відвідуваністю близько 50-60K в середньому приходить десь 400-500 відвідувачів з мобільних пристроїв. На вскиду, сотня відвідувачів може завантажити заражений .apk файл.

Розглянемо ще один «топовий» приклад зі списку заражених. На цей раз це фітнес-портал, що займає приблизно 450 місце (тобто ще більш відвідуваний). Цей «пацієнт» перекидав по черзі то на сервіс платних підписок, то на софт, пропонує прискорення android.



При черговому редірект заради цікавості натиснув кнопку «Продовжити перегляд» і тут трапилася магія: мене автоматично підписали на платний контент, про що негайно прийшло повідомлення по смс. Ніяких питань або підтверджень, що я хочу це зробити, ніяких додаткових дій не потрібно.



Перевірив в списку підключених послуг у особистому кабінеті МТС – дійсно з'явилася платна підписка за 20 руб. Відписався.

Що цікаво, на момент генерації сторінки з кнопкою «продовжити перегляд» скрипт вже знає ваш номер телефону, оскільки смс-підписка робиться з благословення самого мобільного оператора, який надає необхідний інтерфейс і інформацію про абонента.



Так що процес підписки до не можна автоматизовано. І якщо не стежити за смс-повідомленнями, можна потрапити на кілька десятків рублів в день просто відвідуючи різні портали (це без урахування clickjacking'а, де ви самі того не відаючи кликніть в потрібне місце і схвалите підписку або завантажити вредоноса).

Механіка впровадження на цьому сайті простіше: один javascript файлів хакер додав наступний фрагмент:



Цей код завантажував скрипт з домену yadro24.ru, а той, у свою чергу, перенаправляв користувачів на wap-click портал за умови, що відвідувач був підключений через 3G/LTE інтернету (на javascript-коду видно, які можливі редиректи).



Якщо ж мобільний-який відвідувач сайту прийшов через WI-FI, ніяких редиректів на wap-click партнерки не відбувалося. Це, до речі, велика проблема для визначення wap-click редиректів онлайн-сервісами, оскільки всі запити слід надсилати через 3G/LTE певних стільникових операторів.

Аналогічні варіанти зараження були виявлені й на інших сайтах з топа Alexa. Іноді впроваджують код на початок скриптів, іноді в кінець.



Розглянуті приклади – це явний цільової злом сайтів і впровадження коду хакерами. Але серед перевірених сайтів часто зустрічався і інший варіант: добровільне розміщення віджета з прихованими редиректами або тизерної партнерської мережі, яка виконує перенаправлення мобільних користувачів на шкідливі сайти або wap-click партнерки. При цьому власники сайтів або не в курсі того, що відбувається, або, в гонитві за високим заробітком, закривають на це очі.

Зведена статистика по різним категоріям зараження вийшла такою:



Цікавий факт: більшість ресурсів, які потрапили до списку «проблемних» (ті, які виконують завантаження шкідливих файлів або перенаправляють користувачів на шкідливі сайти і wap-click партнерки) не відзначені в Yandex/Google Safe Browsing як «malware» або навіть «unwanted». То пошуковики не встигають їх перевіряти, чи не виявляє, хоча останнє навряд чи. Правда, деякі сайти все ж вилучені з результатів пошукової видачі мобільного пошуку.

Ну а наостанок хотів би порадити дві речі:

  1. Якщо ви відвідувач таких популярних ресурсів – не варто сподіватися, що всі вони безпечні. Навіть якщо у вас встановлений антивірус, він не врятує від таких проблем, як wap-click редиректи на смс-підписки, тому що це не вірус (вас просто непомітно підписують на платну послугу і знімають щодня по 20 руб) та й, відверто кажучи, від drive-by атак антивіруси захищають далеко не у 100% випадків, особливо на е. На Тому хороша практика — самостійно перевіряти подібні сайти спеціалізованими сервісами, якщо виникає якась підозра.
  2. Якщо ви власник подібних ресурсів і ще не замислювалися про безпеку сайту, або вам здається, що вас не зламають – саме час провести повну діагностику сайту: просканувати файли на хостингу на предмет хакерських веб-шелл, бекдорів (для цього є утиліти AI-BOLIT, ClamAv, Maldet), можливо навіть зробити пентест проекту, а також перевірити доступними сервісами проблеми безпеки (наприклад, з допомогою rescan.pro, quttera.com, sitecheck.sucuri.net). А ще, не полінуйтеся перейти з результатів пошукової видачі на свій сайт з мобільного пристрою через 3G/LTE підключення, прокликайте вибірково посилання сайту, загляньте в код, перевірте, чи немає якихось аномалій.


Варто відзначити, що деякі ресурси до моменту написання статті вже впоралися із зараженням і зараз не несуть загрози, але залишається досить велика частина відвідуваних сайтів, у яких навіть через 10 днів ситуація не змінилася:


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.