Експеримент CacheBrowser: обхід китайського фаєрволу без проксі за допомогою кешування контенту

Експеримент CacheBrowser: обхід китайського фаєрволу без проксі за допомогою кешування контенту

зображення: Unsplash

Сьогодні значна частина контенту в інтернеті поширюється з використанням CDN-мереж. При цьому дослідження того, як різні цензори поширюють свій вплив на такі мережі. Вчені з університету Массачусетсу проаналізували можливі методи блокування CDN-контенту з прикладу практик влади Китаю, і навіть розробили інструмент обходу таких блокувань.

Ми підготували оглядовий матеріал з головними висновками та результатами цього експерименту.

Запровадження

Цензура – ​​глобальна загроза свободі слова в Інтернеті та вільному доступу до інформації. Багато в чому це можливо через те, що інтернет запозичив модель end-to-end комунікації з телефонних мереж 70-х років минулого століття. Це дозволяє заблокувати доступ до контенту або комунікацію користувачів без серйозних зусиль або витрат просто на основі IP-адреси. Тут кілька способів від блокування адреси із забороненим контентом до блокування можливості користувачам навіть дізнатися його за допомогою маніпуляції з DNS.

Однак розвиток інтернету призвело і до появи нових способів розповсюдження інформації. Один із них – використання кешованого контенту для покращення продуктивності та прискорення комунікацій. Сьогодні CDN-провайдери обробляють значний обсяг всього трафіку у світі - лише на частку лідирує в цьому сегменті Akamai припадає до 30% глобального статичного веб-трафіку.

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

Крім поліпшення якості обслуговування кінцевих користувачів, CDN-хостинг допомагає творцям контенту масштабувати свої проекти, знижуючи навантаження на інфраструктуру.

Цензурування CDN-контенту

Незважаючи на те, що CDN-трафік становить уже значну частку всієї інформації, що передається через інтернет, досі майже немає досліджень того, як цензори в реальному світі підходять до його контролю.

Автори дослідження почали з дослідження технік цензурування, які можуть застосовуватись до CDN. Потім вони вивчили реальні механізми, які застосовують влада Китаю.

Спочатку поговоримо про можливі методи цензурування та можливість їх застосування для контролю CDN.

Фільтрування по IP

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

Блокування на основі IP – один із найпоширеніших методів цензурування інтернету. Більшість комерційних мережевих пристроїв оснащуються функціями здійснення таких блокувань без серйозних обчислювальних витрат.

Однак, цей метод не дуже підходить для блокування CDN-трафіку через деякі властивості самої технології:

  • Розподілене кешування – для забезпечення найкращої доступності контентат та оптимізації продуктивності, CDN-мережі кешують користувальницький контент на великій кількості edge-серверів, розташованих у географічно розподілених локаціях. Щоб фільтрувати такий контент на основі IP, цензору потрібно буде дізнатися адреси всіх edge-серверів та внести їх до чорного списку. Це вдарить по головним властивостям методу, адже головний його плюс у тому, що у звичайній схемі блокування одного сервера дозволяє «обрубати» доступ до забороненого контенту одразу для великої кількості людей.
  • Розділяються IP – комерційні CDN-провайдери поділяють свою інфраструктуру (тобто edge-сервери, систему мапінгу тощо) між безліччю клієнтів. У результаті заборонений CDN-контент завантажується з тих же IP-адрес, як і не заборонений контент. У результаті будь-яка спроба IP-фільтрації призведе до того, що під блокуванням виявиться і безліч сайтів і контенту, які не цікавлять цензорів.
  • Високодинамічний присвоєння IP – для оптимізації балансування навантаження та підвищення якості сервісу, мапінг edge-серверів та кінцевих користувачів виконується дуже швидко та динамічно. Наприклад, Akamai оновлює повертаються IP-адреси щохвилини. Це унеможливить процес зв'язку адрес із забороненим контентом.

DNS-інтерференція

Крім фільтрації IP ще одним популярним способом цензурування є інтерференція DNS. Цей підхід передбачає дії цензорів, спрямовані на те, щоб користувачі взагалі не впізнали IP-адреси ресурсів із забороненим контентом. Тобто втручання йде лише на рівні дозволу доменних імен. Існує кілька способів зробити це, включаючи взом DNS-з'єднань, використання техніки DNS poisoning, блокування DNS-запитів до заборонених сайтів.

Це дуже ефективний спосіб блокування, однак його можна обійти, якщо використовувати нестандартні способи дозволу DNS, наприклад, out-of-band канали. Тому цензори зазвичай комбінують блокування DNS з використанням IP-фільтрації. Але, як сказано вище, IP-фільтрація не є ефективною для цензурування CDN-контенту.

Фільтрування за URL/Ключовими словами за допомогою DPI

Сучасне обладнання для моніторингу мережної активності може бути використане для аналізу конкретних URL і ключових слів у пакетах даних, що передаються. Ця технологія отримала назву DPI (Deep Packet Inspection). Такі системи знаходять згадки заборонених слів та ресурсів, після чого відбувається втручання у онлайн-комунікацію. У результаті пакети просто скидаються.

Цей метод ефективний, але складніший і ресурсомісткіший, оскільки вимагає дефрагментації всіх пакетів даних, що надсилаються в рамках певних потоків.

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

Крім використання DPI для пошуку ключових слів або URL-адрес заборонених ресурсів, ці інструменти можуть бути використані для більш просунутого аналізу. До таких способів належать статистичний аналіз онлайн/офлайн-трафіку та аналіз протоколів ідентифікації. Ці способи вкрай ресурсомісткі і зараз доказів їх використання цензорами досить серйозному обсязі просто не існує.

Самоцензура CDN-провайдерів

Якщо цензор – це держава, то він має всі можливості заборонити роботу в країні тим CDN-провайдерам, які не підпорядковуються місцевим законам, що регулюють доступ до контенту. Протистояти самоцензурі не можна ніяк – тому якщо компанія-провайдер CDN зацікавлена ​​у роботі в якійсь країні, то вона буде змушена дотримуватися місцевих законів, навіть якщо вони обмежують свободу слова.

Як Китай цензурує CDN-контент

Великий китайський фаєрвол небезпідставно вважається найефективнішою та найпросунутішою системою для забезпечення інтернет-цензури.

Методологія дослідження

Вчені проводили експерименти за допомогою Linux-ноди, розташованої всередині Китаю. Також вони мали доступ до кількох комп'ютерів за кордоном країни. Спочатку дослідники перевірили, що з нода зазнає цензура, аналогічна тій, яка застосовується до інших китайських користувачів – для цього вони пробували відкривати з цієї машини різні заборонені сайти. Так, наявність того ж рівня цензури була підтверджена.

Список заблокованих у Китаї сайтів, які використовують CDN, було взято із сайту GreatFire.org. Потім здійснювався аналіз способу блокування у кожному випадку.

Згідно з відкритими даними, єдиним великим гравцем ринку CDN із власною інфраструктурою в Китаї є Akamai. Інші провайдери, які брали участь у дослідженні: CloudFlare, Amazon CloudFront, EdgeCast, Fastly та SoftLayer.

В ході експериментів дослідники з'ясували адреси edge-серверів Akamai всередині країни, а потім спробували отримати через них дозволений контент. Отримати доступ до забороненого контенту не вдалося (поверталася помилка HTTP 403 Forbidden) – очевидно, що компанія проводить самоцензуру, щоб зберегти можливість роботи в країні. При цьому поза країною доступ до цих ресурсів залишався відкритим.

Провайдери без інфраструктури Китаю не використовують самоцензуру для місцевих користувачів.

У випадку решти провайдерів найчастіше використовуваним способом блокування стала фільтрація DNS – запити до заблокованих сайтів дозволяються в невірні IP-адреси. При цьому фаєрвол не блокує самі edge-сервери CDN, оскільки вони зберігають як заборонену, так і дозволену інформацію.

І якщо у випадку незашифрованого трафіку влада має можливість блокувати окремі сторінки сайтів за допомогою DPI, то при використанні HTTPS вони можуть лише заборонити доступ до всього домену в цілому. Це призводить навіть до блокування дозволеного контенту.

Крім того, у Китаї є й власні провайдери CDN, серед них такі мережі, як ChinaCache, ChinaNetCenter та CDNetworks. Усі ці компанії повністю виконують законодавство країни та блокують заборонений контент.

CacheBrowser: інструмент обходу блокувань за допомогою CDN

Як показав аналіз, цензорам досить важко блокувати CDN-контент. Тому дослідники вирішили піти далі та розробити інструмент обходу онлайн-блокувань, який не використовуватиме технологію проксі.

Основна ідея інструменту полягає в тому, що цензорам для блокування CDN доводиться втручатися в роботу DNS, проте для завантаження CDN-контенту насправді не обов'язковим є використання дозволу доменних імен. Таким чином, користувач може отримати потрібний контент, безпосередньо звернувшись до edge-серверу, на якому він вже закеширован.

На діаграмі нижче представлено пристрій системи.

Експеримент CacheBrowser: обхід китайського фаєрволу без проксі за допомогою кешування контенту

На комп'ютері користувача встановлюється клієнтський софт, для доступу до контенту використовується звичайний браузер.

При запиті URL або частини контенту, що вже запитувався, браузер відправляє запит до локальної системи DNS (LocalDNS), щоб отримати IP-адресу хостингу. Традиційний DNS запитується лише для доменів, які ще не містяться в базі LocalDNS. Модуль Scraper постійно проходить по запитаних URL-адресах і шукає в списку потенційно заблоковані доменні імена. Потім Scraper звертається до модуля Resolver, щоб дозволити знову виявлені заблоковані домени, цей модуль виконує завдання та додає запис LocalDNS. Потім DNS-кеш браузера очищається, щоб з нього видалилися існуючі записи DNS для заблокованого домену.

Якщо модуль Resolver не може зрозуміти, до якого CDN-провайдеру належить домен, він попросить допомоги у модуля Bootstrapper.

Як це працює на практиці

Клієнтський софт продукту було реалізовано для Linux, але його можна легко портувати навіть Windows. Як браузер використовується звичайний Mozilla
Firefox. Модулі Scraper та Resolver написані на Python, а бази даних Customer-to-CDN та CDN-toIP зберігаються у .txt-файлах. Як база даних LocalDNS виступає звичайний файл /etc/hosts в Linux.

У результаті для заблокованого URL виду blocked.com скрипт отримуватиме IP-адресу edge-сервера з файлу /etc/hosts і надсилатиме запит HTTP GET для доступу до BlockedURL.html з полями HTTP-заголовка Host:

blocked.com/ and User-Agent: Mozilla/5.0 (Windows
NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1

Модуль Bootstrapper реалізовано за допомогою безкоштовного інструменту digwebinterface.com. Цей DNS-резолвер не можна заблокувати і він відповідає на DNS-запити від безлічі географічно розподілених DNS-серверів у різних мережевих регіонах.

За допомогою цього інструменту дослідникам вдалося зі своєї китайської ноди отримати доступ до Facebook - хоча соцмережа давно заблокована в Китаї.

Експеримент CacheBrowser: обхід китайського фаєрволу без проксі за допомогою кешування контенту

Висновок

Експеримент показав, що використання проблем, які зазнають цензори при спробі блокувати CDN-контент, можна використовувати для створення системи обходу блокувань. Такий інструмент дозволяє обходити блокування навіть у Китаї, де діє одна із найпотужніших систем онлайн-цензури.

Інші статті на тему використання резидентних проксі для бізнесу:

Джерело: habr.com

Додати коментар або відгук