З моменту підписання указу Президента України про санкції щодо російських IT-компаній минуло 10 днів. За цей час тема обходу блокування Vkontakte, “Однокласники”, сервісів “Яндекс” і Mail.ru стала трендом. Ловити рибу в мутній воді завжди легше, тому шахраї та спецслужби країни-агресора не змарнували нагоди підсадити українських користувачів на голку своїх VPN-сервісів. Волонтери InformNapalm розібрали один приклад, який яскраво ілюструє факт ловів користувачів «на живця».

Аналіз VPN-наживки

Спільнота «Типовий Київ» розмістила рекламу сервісу для обходу блокування — vkunblock.com

Звісно, реклама подається під соусом «зробимо український інтернет вільним від заборон» і «безплатно». Безплатний сир буває тільки в мишоловці. Вивчимо цей сервіс детальніше.

Почнемо з вивчення групи у VK.

З опису групи бачимо, що у власників сервісу є щонайменше два сайти: vkunblock.com и vkonline.xyz . За інформацією whois vkunblock.com був зареєстрований учора (26.05.2017), а vkonline.xyz — 18.05.2017. Інформація про власника домену закрита, а сам сервіс використовує Cloudflare, що дає йому змогу приховати справжні IP-адреси своїх серверів (і, як наслідок, заважає встановити географічну належність сервісу).

Для подальшого аналізу доведеться встановити розширення з Chrome Web Store.

Розширення складається з чотирьох файлів JavaScript: analytics.js (скрипт схожий на Google Analytics), app.js, chrome.js і пустого proxy.js.

В app.js найцікавіше для нас — це URL: https://pac.safe-proxy.com/coahpcpgfnnaddeelpphpifmgfobflog.pac

PAC — Proxy Automatic Configuration — файл для автоматичних налаштувань проксі. Цей файл містить правила, які вказують, які проксі-сервери в яких випадках браузер має використовувати.

Розбір коду

На цей момент файл має такий вигляд:

×

function FindProxyForURL(url, host)

{

var cdnSrv = ‘hole.safe-proxy.com:1084; HTTPS uk.freevpn.pw:433; HTTPS uk1.freevpn.pw:433’;

var imSrv = ‘imhole.safe-proxy.com:1084; HTTPS uk.freevpn.pw:433; HTTPS uk1.freevpn.pw:433’;

var mainSrv = cdnSrv;if(shExpMatch(host, «*vk.com») || shExpMatch(host, «*vk-cdn.net»)

|| shExpMatch(host, «*vk-cdn.me»)

|| shExpMatch(host, «*userapi.com»)

|| shExpMatch(url, «*vk.com/audios*»)

|| shExpMatch(url, «*vk.com/al_audio*»))

return «PROXY «+cdnSrv;if(shExpMatch(host, «*vkontakte.ru»)

|| shExpMatch(host, «*.vk.com»)

|| shExpMatch(url, «*apivk.com*»))

return «PROXY «+imSrv;if(shExpMatch(url, «*vk.cc*») ||

shExpMatch(url, «*vk.me*») ||

shExpMatch(url, «*ok.com*») ||

shExpMatch(url, «*odnoklassniki.com.ua*») ||

shExpMatch(url, «*odnoklassniki.ru*») ||

shExpMatch(url, «*mycdn.me*») ||

shExpMatch(url, «*odnoklassniki.ua*») ||

shExpMatch(url, «*ok.ru*») ||

shExpMatch(url, «*mradx.net*») ||

shExpMatch(url, «*ok.me*») ||

shExpMatch(url, «*portal.mail.ru*») ||

shExpMatch(url, «*ad.mail.ru*») ||

shExpMatch(url, «*imgsmail.ru*») ||

shExpMatch(url, «*mail.ru*») ||

shExpMatch(url, «*ya.ru*») ||

shExpMatch(url, «*2ch.hk*») ||

shExpMatch(url, «*kinopoisk.ru*») ||

shExpMatch(url, «*drweb.com*») ||

shExpMatch(url, «*kaspersky.ua*») ||

shExpMatch(url, «*.kaspersky.*») ||

shExpMatch(url, «*yandex.st*») ||

shExpMatch(url, «*yastatic.net*») ||

shExpMatch(url, «*yandex.ru*») ||

shExpMatch(url, «*yadi.sk*») ||

shExpMatch(url, «*yandex.fr*») ||

shExpMatch(url, «*donationalerts.ru*») ||

shExpMatch(url, «*yandex.net*») ||

shExpMatch(url, «*yandex.com*») ||

shExpMatch(url, «*livejournal.ru*») ||

shExpMatch(url, «*yandex.ua*»))

return «PROXY «+mainSrv;return «DIRECT»;

} function FindProxyForURL(url, host)var cdnSrv = ‘hole.safe-proxy.com:1084; HTTPS uk.freevpn.pw:433; HTTPS uk1.freevpn.pw:433’;var imSrv = ‘imhole.safe-proxy.com:1084; HTTPS uk.freevpn.pw:433; HTTPS uk1.freevpn.pw:433’;var mainSrv = cdnSrv;if(shExpMatch(host, «*vk.com») || shExpMatch(host, «*vk-cdn.net»)|| shExpMatch(host, «*vk-cdn.me»)|| shExpMatch(host, «*userapi.com»)|| shExpMatch(url, «*vk.com/audios*»)|| shExpMatch(url, «*vk.com/al_audio*»))return «PROXY «+cdnSrv;if(shExpMatch(host, «*vkontakte.ru»)|| shExpMatch(host, «*.vk.com»)|| shExpMatch(url, «*apivk.com*»))return «PROXY «+imSrv;if(shExpMatch(url, «*vk.cc*») ||shExpMatch(url, «*vk.me*») ||shExpMatch(url, «*ok.com*») ||shExpMatch(url, «*odnoklassniki.com.ua*») ||shExpMatch(url, «*odnoklassniki.ru*») ||shExpMatch(url, «*mycdn.me*») ||shExpMatch(url, «*odnoklassniki.ua*») ||shExpMatch(url, «*ok.ru*») ||shExpMatch(url, «*mradx.net*») ||shExpMatch(url, «*ok.me*») ||shExpMatch(url, «*portal.mail.ru*») ||shExpMatch(url, «*ad.mail.ru*») ||shExpMatch(url, «*imgsmail.ru*») ||shExpMatch(url, «*mail.ru*») ||shExpMatch(url, «*ya.ru*») ||shExpMatch(url, «*2ch.hk*») ||shExpMatch(url, «*kinopoisk.ru*») ||shExpMatch(url, «*drweb.com*») ||shExpMatch(url, «*kaspersky.ua*») ||shExpMatch(url, «*.kaspersky.*») ||shExpMatch(url, «*yandex.st*») ||shExpMatch(url, «*yastatic.net*») ||shExpMatch(url, «*yandex.ru*») ||shExpMatch(url, «*yadi.sk*») ||shExpMatch(url, «*yandex.fr*») ||shExpMatch(url, «*donationalerts.ru*») ||shExpMatch(url, «*yandex.net*») ||shExpMatch(url, «*yandex.com*») ||shExpMatch(url, «*livejournal.ru*») ||shExpMatch(url, «*yandex.ua*»))return «PROXY «+mainSrv;return «DIRECT»;

Нас найбільше цікавлять рядки з cdnSrv і imSrv — в них адреси серверів, які використовуються. Автори сервісу розбили «санкційний список» на три частини, для кожної з цих частин використовується проксі-сервер, а для сайтів не зі списку — пряме з’єднання (без проксі).

Наш список для аналізу сайтів поповнився двома іменами: safe-proxy.com і freevpn.pw . Друге ім’я відкидаємо відразу: це проксі-сервер, який надає однойменний сервіс, що не має стосунку до VK Unblock. Їхні сервери використовують як резервні на випадок, якщо safe-proxy.com не зможе обробити запит.

Для safe-proxy.com дані whois показують, що домен створили 22.05.2017, дані про власника закриті, а як DNS-сервери використовуються ті самі сервери Cloudflare, що й для vkunblock.com и vkonline.xyz . Здавалося б, знову невдача. Але ні, річ у тім, що Cloudflare може приховувати IP-адреси тільки для звичайних сайтів, які використовують протокол http або https. А для проксі-сервера це не працює. Отже, IP-адреси для hole.safe-proxy.com і imhole.safe-proxy.com будуть справжніми.

Отже,

imhole.safe-proxy.com: 95.213.205.98

hole.safe-proxy.com: 213.196.53.28

hole.safe-proxy.com: 88.212.244.244

hole.safe-proxy.com: 213.196.53.36

95.213.205.98 (мережа 95.213.205.0/24) — це IP-адреса, яка належить російському хостинг-провайдеру «Селектел» (для довідки: VK також використовує дата-центр цього провайдера)



88.212.244.244, 213.196.53.28 і 213.196.53.36 — IP-адреси серверів, які надає ТОВ «Єдина мережа» (рос. – «Единая сеть», московська компанія, що має філіали в Далласі (США) та Амстердамі (Нідерланди).



Ще один цікавий момент: VK Unblock використовує HTTP-проксі, не HTTPS. Різниця між ними в тому, що в першому випадку використовують незахищене з’єднання (і провайдер, як захоче, може бачити спробу встановити з’єднання із «санкційним сайтом» через проксі), а в другому — захищене.

Чим поганий VK Unblock? По-перше, цей сервіс пропонує українцям країна-агресор. Після подій у Криму і на Донбасі в доброту і безкорисливість «братського народу» ми не віримо. По-друге, власник ресурсу може вести журнал доступу. Власне, доступ до проксі з якоїсь державної мережі буде запротокольовано, а сам факт спроби обходу блокування чиновником — черговий компромат. По-третє, немає гарантії, що власник ресурсу одного чудового дня не почне проксувати трафік не тільки для VK, а й, наприклад, для Facebook чи будь-яких урядових ресурсів (залежно від IP-адреси клієнта). Перетворивши HTTP-проксі в SOCKS, сервіс буде пропускати через себе і запити DNS з можливістю підміняти відповіді для конкретних користувачів сервісу. Можливості обмежуються тільки тим, до чого здатен власник ресурсу.

Будьте пильними. Шукаючи обхідний шлях, не потрапляйте у пастки, розставлені агресором і шахраями. Заборонений плід солодкий, але є дуже багато альтернатив поштових сервісів, пошуковиків і соціальних мереж поза зоною досяжності російських спецслужб. Подумайте, перш ніж поринати в каламутну воду, чи добре чи плаваєте?