Проект Geneva развивает движок для автоматизации обхода цензурирования трафика |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-01-25 00:09 Исследователи из Мэрилендского университета в рамках проекта Geneva предприняли попытку создания движка для автоматизации определения методов, применяемых для цензурирования доступа к контенту. Вручную пытаться перебрать возможные бреши систем глубокого инспектирования пакетов (DPI) достаточно трудный и долгий процесс, в Geneva попытались использовать генетический алгоритм для оценки особенностей DPI, определения ошибок в реализации и выработки оптимальной стратегии обхода блокировки на стороне клиента. Код проекта написан на языке Python. Применяемое для блокировки DPI-оборудование имеет свои недоработки, позволяющие скрыть обращение к запрещённому ресурсу или избежать блокировки. Например, в простейшем случае при организации блокировки через подстановку фиктивного ответа достаточно на стороне клиента отбросить фиктивный ответ, отправленный DPI. В других ситуациях можно скрыть от DPI сам факт обращения к заблокированному сайту, немного видоизменив параметры HTTP-запроса (например, добавив лишний пробел после "GET"), разделив на несколько пакетов данные согласования TLS-соединения или выполнив атаки TCB Teardown и TCB Desync. Суть упомянутых атак в отправке клиентом вначале фиктивного пакета с данными или флагами RST/ACK, который не получит целевой хост, но поймает DPI, примет на его основе решение и не станет анализировать идущий следом пакет с реальным запросом (для скрытия первого пакета от целевого хоста можно выставить низкий TTL, а также некорректную контрольную сумму, флаги или номер последовательности TCP). Geneva пытается выработать рабочий метод обхода DPI, используя четыре базовые примитива для манипуляции с сетевыми пакетами - отбрасывание, изменение заголовков, дублирование и фрагментация. Для подбора оптимальной стратегии применяется генетический алгоритм, моделирующий процессы, сходные с естественным отбором, через случайное комбинирование различных вариантов манипуляций с пакетами. В конечном счёте, на выходе примитивы комбинируются в "дерево действий", определяющее алгоритм обхода DPI. Работа Geneva успешно опробована для обхода методов цензурирования, применяемых в Китае, Индии и Казахстане, в том числе при помощи Geneva было выявлено несколько новых брешей, о которых не было известно до этого. При этом Geneva эффективен только для обхода блокировок на основе DPI, при блокировании по IP-адресам он бесполезен и без VPN не обойтись. В ходе экспериментов выявлено несколько десятков типовых стратегий обхода DPI, которые можно протестировать сразу без проведения полного анализа, например: python3 engine.py --server-port 80 --strategy "[TCP:flags:PA]-duplicate(tamper{TCP:dataofs:replace:10} tamper{TCP:chksum:corrupt},),)-|" --log debug 2020-01-24 20:54:41 DEBUG:[ENGINE] Engine created with strategy / (ID bm3kdw3r) to port 80 2020-01-24 20:54:41 DEBUG:[ENGINE] Configuring iptables rules 2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p tcp --sport 80 -j NFQUEUE --queue-num 1 2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p tcp --dport 80 -j NFQUEUE --queue-num 2 2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A OUTPUT -p udp --sport 80 -j NFQUEUE --queue-num 1 2020-01-24 20:54:41 DEBUG:[ENGINE] iptables -A INPUT -p udp --dport 80 -j NFQUEUE --queue-num 2 Источник: www.opennet.ru Комментарии: |
|