Технический анализ детекции протоколов WireGuard и AmneziaWG

Технический анализ детекции протоколов WireGuard и AmneziaWG на узлах ТСПУ и методы минимизации рисков блокировок

В насто­я­щее вре­мя на тер­ри­то­рии Рос­сий­ской Феде­ра­ции завер­ше­но пол­но­мас­штаб­ное раз­вер­ты­ва­ние Тех­ни­че­ских средств про­ти­во­дей­ствия угро­зам (ТСПУ) под управ­ле­ни­ем ГРЧЦ/Роскомнадзора. Обо­ру­до­ва­ние инте­гри­ро­ва­но непо­сред­ствен­но в раз­рез (режим Inline) маги­страль­ных кана­лов свя­зи всех клю­че­вых опе­ра­то­ров и про­вай­де­ров неза­ви­си­мо от региона.

Систе­мы глу­бо­ко­го ана­ли­за паке­тов (DPI) посте­пен­но пере­во­дят­ся из режи­ма пилот­но­го тести­ро­ва­ния и локаль­ной филь­тра­ции (в Мос­ков­ском хабе) в режим пер­ма­нент­но­го все­рос­сий­ско­го кон­тро­ля транс­гра­нич­но­го тра­фи­ка. Филь­тра­ция крип­то­гра­фи­че­ских про­то­ко­лов осу­ществ­ля­ет­ся на сете­вом и транс­порт­ном уров­нях без необ­хо­ди­мо­сти дешиф­ра­ции содер­жи­мо­го паке­тов (Payload) – на осно­ве струк­тур­но­го, ста­ти­сти­че­ско­го и эври­сти­че­ско­го ана­ли­за сессий.


1. Механизм детекции базового протокола WireGuard (WG)

Про­то­кол WireGuard име­ет жест­ко детер­ми­ни­ро­ван­ную струк­ту­ру слу­жеб­ных сооб­ще­ний. Отсут­ствие фазы дина­ми­че­ско­го согла­со­ва­ния набо­ра шиф­ров (Cipher Suite Negotiation) и фик­си­ро­ван­ные пара­мет­ры паке­тов ини­ци­а­ли­за­ции сес­сии дела­ют его лег­ко иден­ти­фи­ци­ру­е­мым для DPI-систем опе­ра­тор­ско­го класса.

Бло­ки­ров­ка сес­сии осу­ществ­ля­ет­ся на эта­пе выпол­не­ния про­це­ду­ры руко­по­жа­тия (Handshake) по сле­ду­ю­щим критериям:

  1. Сиг­на­тур­ный ана­лиз L4/L7: пакет ини­ци­а­ции соеди­не­ния (Handshake Initiation) отправ­ля­ет­ся по про­то­ко­лу UDP. Пер­вый байт Payload все­гда равен 0x01 (Message Type), сле­ду­ю­щие три бай­та име­ют фик­си­ро­ван­ное нуле­вое зна­че­ние (0x00 0x00 0x00).
  2. Фик­са­ция дли­ны кад­ра: транс­порт­ный раз­мер паке­та Handshake Initiation стро­го равен 148 байтам.
  3. Ана­лиз ответ­но­го пат­тер­на: ответ­ный пакет со сто­ро­ны сер­ве­ра (Handshake Response) име­ет раз­мер 92 бай­та и струк­ту­ру стар­то­вых байт 0x02 0x00 0x00 0x00.

Схема обработки трафика WireGuard на ТСПУ

Про­цес­со­ры обра­бот­ки паке­тов (NP/FPGA) на узлах ТСПУ све­ря­ют про­хо­дя­щие UDP-пото­ки с сиг­на­тур­ны­ми хэш-таб­ли­ца­ми в режи­ме реаль­но­го времени:

$$ ext{Признак бло­ки­ров­ки} = ( ext{Size} = 148) land ( ext{Header} = exttt{0x01000000}) land ( ext{DstIP}
otin ext{GeoIP}_{ ext{RU}})$$

При сов­па­де­нии усло­вий систе­ма при­ме­ня­ет дей­ствие DROP к пер­во­му паке­ту. Руко­по­жа­тие не завер­ша­ет­ся, сес­сия тер­ми­ни­ру­ет­ся до момен­та уста­нов­ле­ния туннеля.


2. Эволюция эвристического анализа и детекция AmneziaWG (AWG)

Моди­фи­ка­ция AmneziaWG (AWG), исполь­зу­ю­щая обфус­ка­цию заго­лов­ков (изме­не­ние стар­то­вых байт) и добав­ле­ние слу­чай­но­го запол­не­ния (Padding/Junk) для ран­до­ми­за­ции раз­ме­ра паке­тов, на теку­щий момент так­же успеш­но детек­ти­ру­ет­ся ТСПУ на тер­ри­то­рии всей РФ. Сме­на ста­ти­че­ских сиг­на­тур была ниве­ли­ро­ва­на внед­ре­ни­ем эври­сти­че­ских и ста­ти­сти­че­ских моду­лей ана­ли­за (Statistical DPI):

  • Ана­лиз про­фи­ля рас­пре­де­ле­ния тра­фи­ка (Burst Analysis): леги­тим­ный UDP-тра­фик (WebRTC, DNS-запро­сы, QUIC/HTTP-3, игро­вой тра­фик) харак­те­ри­зу­ет­ся пакет­ны­ми импуль­са­ми (Bursts) высо­кой плот­но­сти. Ини­ци­а­ция сес­сии AWG пред­став­ля­ет собой пат­терн «оди­ноч­но­го UDP-запро­са» и «оди­ноч­но­го UDP-отве­та» опре­де­лен­ной вре­мен­ной задерж­ки, что клас­си­фи­ци­ру­ет­ся эври­сти­че­ским моду­лем как аномалия.
  • Рас­чет энтро­пии дан­ных (Entropy Estimation): ТСПУ про­из­во­дит оцен­ку инфор­ма­ци­он­ной энтро­пии Payload неиз­вест­ных UDP-паке­тов. Отсут­ствие струк­тур­ных мар­ке­ров откры­тых про­то­ко­лов (STUN, DTLS) при высо­ком пока­за­те­ле энтро­пии (близ­ком к тео­ре­ти­че­ско­му мак­си­му­му для чисто­го крип­то­гра­фи­че­ско­го шума) поз­во­ля­ет систе­ме одно­знач­но иден­ти­фи­ци­ро­вать инкап­су­ли­ро­ван­ный туннель.
  • Кор­ре­ля­ция с мета­дан­ны­ми (ASN/GeoIP): сес­сии с высо­кой энтро­пи­ей, направ­лен­ные к диа­па­зо­нам IP-адре­сов зару­беж­ных хостинг-про­вай­де­ров и VPS/VDS-опе­ра­то­ров (Hetzner, DigitalOcean, AWS, OVH и др.), полу­ча­ют мак­си­маль­ный индекс подо­зри­тель­но­сти и пре­вен­тив­но бло­ки­ру­ют­ся алго­рит­ма­ми ТСПУ.

3. Архитектурное решение: перевод инфраструктуры на протокол VLESS

В усло­ви­ях тоталь­ной бло­ки­ров­ки нестан­дар­ти­зи­ро­ван­но­го UDP-тра­фи­ка един­ствен­ным отка­зо­устой­чи­вым реше­ни­ем для сохра­не­ния связ­но­сти сете­вой инфра­струк­ту­ры явля­ет­ся пере­ход на архи­тек­ту­ру, пол­но­стью мимик­ри­ру­ю­щую под леги­тим­ный веб-тра­фик (TCP/HTTPS).

Основ­ным стан­дар­том для обхо­да систем DPI опе­ра­тор­ско­го уров­ня ста­но­вит­ся про­то­кол VLESS в связ­ке с транс­пор­том XTLS-Reality.

Технические преимущества VLESS + XTLS-Reality:

  1. Транс­порт­ный уро­вень TCP (Порт 443): тра­фик инкап­су­ли­ру­ет­ся в стан­дарт­ные TLS-сес­сии, неот­ли­чи­мые от посе­ще­ния защи­щен­ных веб-сай­тов. Бло­ки­ров­ка дан­но­го типа тра­фи­ка по сиг­на­тур­но­му прин­ци­пу невоз­мож­на без нару­ше­ния рабо­то­спо­соб­но­сти все­го сег­мен­та HTTPS в Рунете.
  2. Аутен­ти­фи­ка­ция без прок­си-заго­лов­ков: VLESS явля­ет­ся про­то­ко­лом без сохра­не­ния состо­я­ния (Stateless) и не пере­да­ет явных мар­ке­ров авто­ри­за­ции при уста­нов­ле­нии TLS-соединения.
  3. Тех­но­ло­гия Reality (Stealth TLS): исклю­ча­ет необ­хо­ди­мость покуп­ки и реги­стра­ции соб­ствен­ных TLS-сер­ти­фи­ка­тов, кото­рые могут быть ском­про­ме­ти­ро­ва­ны или забло­ки­ро­ва­ны по SNI. При вхо­дя­щем запро­се от ТСПУ (Active Probing / Актив­ное зон­ди­ро­ва­ние) сер­вер пере­на­прав­ля­ет запрос на реаль­ный, раз­ре­шен­ный зару­беж­ный веб-ресурс (напри­мер, apple.com или microsoft.com), пол­но­стью копи­руя его TLS-руко­по­жа­тие и пара­мет­ры шиф­ро­ва­ния. Для кон­тро­ли­ру­ю­ще­го узла ТСПУ сес­сия выгля­дит как штат­ное обра­ще­ние поль­зо­ва­те­ля к дове­рен­но­му CDN или ИТ-гиганту.

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

Про­то­кол / Технология Уро­вень OSI Метод иден­ти­фи­ка­ции ТСПУ Теку­щий ста­тус в РФ (Транс­гра­нич­ный трафик) Реко­мен­да­ции по использованию
WireGuard L4 (UDP) Ста­ти­че­ские сиг­на­ту­ры (0x01000000), фик­си­ро­ван­ная дли­на паке­та (148 байт). Пол­ная бло­ки­ров­ка во всех регионах. Непри­го­ден для транс­гра­нич­ных кана­лов. Воз­мож­но исполь­зо­ва­ние внут­ри РФ.
AmneziaWG L4 (UDP) Ста­ти­сти­че­ский ана­лиз энтро­пии, пове­ден­че­ский ана­лиз (оди­ноч­ные паке­ты), про­вер­ка ASN. Ста­биль­ная детек­ция и бло­ки­ров­ка эври­сти­че­ски­ми модулями. Не реко­мен­ду­ет­ся для кри­ти­че­ской инфра­струк­ту­ры. Высо­кий риск отказа.
VLESS + XTLS-Reality L7 (TCP/TLS) Не детек­ти­ру­ет­ся. При актив­ном зон­ди­ро­ва­нии мимик­ри­ру­ет под дове­рен­ные веб-ресурсы. Функ­ци­о­ни­ру­ет ста­биль­но без огра­ни­че­ний ско­ро­сти и связности. Реко­мен­до­ван­ный стан­дарт для пере­во­да кор­по­ра­тив­ной и част­ной инфраструктуры.
Hysteria 2 / TUIC L7 (UDP/QUIC) Ана­ли­зи­ру­ет­ся шумо­вой про­филь. Воз­мож­на детек­ция при некор­рект­ной настрой­ке мас­ки­ров­ки под HTTP/3. Функ­ци­о­ни­ру­ет частич­но (зави­сит от настро­ек обфус­ка­ции и оператора). Аль­тер­на­тив­ное реше­ние для неста­биль­ных кана­лов свя­зи с высо­ким уров­нем потерь (Lossy networks).