Друзья ! Мы с вами прошли больше половины пути : Тбилиси, Ереван, Вильнюс… на очереди – Берлин и Варшава. Меньше чем за месяц в нашем хакатоне Без Границ приняли участие более ста человек – айтишников и айтшниц, UX-дизайнеров и дата-аналитиков, активисток и журналистов, объединившихся чтобы найти новые технические решения, которые помогут преодолеть интернет-цензуру и цифровую слежку в условиях войны.
Другая особенность Хакатона Без Границ – это курируемые задачи, придуманные нами в партнёрстве с известнейшими техническими проектами работающими в сфере Интернет Свобод. Мы курируем задачи от восьми проектов : Torproject, OONI, CENO, AmneziaVPN, Goodbye DPI, Lantern, NewNode и Роскомсвобода.
А это значит что выбирая задачу от одного из партнёров, вы работаете над ней под чутким руководством разработчиков из этих организаций.
В отличие от классического хакатона, наше событие предполагает содействие и сотрудничество команд в разных городах. Проекты начатые одной командой могут быть доработаны другой. И, конечно же, в каждом городе мы даём возможность локальным проектам предложить свои задачи, актуальные для местного сообщества, ведь главная цель Хакатона Без Границ – объединить диаспоры и поддержать сообщества, которые были вынуждены покинуть свои страны в связи с войной и глобальным политическим кризисом.
Амбициозно ? Ещё бы ! Но опыт первых трёх городов показал, что формат работает!
Давайте коротко подведём промежуточный итог : что было сделано на первых трёх хакатонах и что ещё предстоит ? Надеемся, этот материал поможет командам Берлина и Варшавы найти для себя задачу по душе, а участники и участницы из Тбилиси, Еревана и Вильнюса узнают в тексте себя и свои успехи !
Команда Роскомсвободы
Роскомсвобода предложила для Хакатона Без Границ три задачи :
- визуализировать историю блокировок в России
- автоматизировать реестр запрещенной информации
- визуализировать карту камер видеонаблюдений в Москве
1. Визуализация истории блокировок в России
Участница из Вильнюса поработала над графиком блокировок сайтов в России, на основе данных блокировок с 2012 года, распределенных по ведомствам.
Что ещё можно сделать ?
- Проверить данные по оригинальному источнику, особенно до 2016 года на полноту. В 2016-2017 есть разблокировки сайтов при том что такой обьем не был заблокирован с 2010-тых (согласно графику). Возможно информация по какому-то ведомству отсутсвует.
2. Автоматизация реестра запрещенной информации
Команды в Тбилиси работали над задачей по автоматизации мониторинга реестра запрещенной информации по категориям и причинам блокировок. Цель инструмента – помочь редакторам сайта Роскомсвободы отслеживать статистику блокировок по различным категориям (аниме, музыкальная цензура, военная цензура и пр.). Сейчас это делается вручную и занимает много времени.
Команда предложила создать инструмент, который поможет быстро принять решение к какой тематики относится заблокированный ресурс (сайт, страница). Принцип работы — подсчет ключевых слов на заблокированном ресурсе, учет домена и ведомства, принявшего решение, что позволит автоматически определить, к какой категории относится блокировка. Редактору сайта останется принять решение, верно определена категория или нет.
Что было сделано:
- модель базы данных.
- скрипт загрузки файла от сайта Роскомсвободы.
- скрипт парсинга заблокированого сайта.
- выбор библиотеки для Парсинга сайта.
- макет главной страницы web приложения
- предварительную схему работы серверной части приложения.
Что ещё можно сделать ?
Разработать API серверной части. Улучшить предыдущие наработки, внести замечания и предложения.
Доработать:
- блок анализа сайтов.
- блок парсинга сайтов.
- блок загрузки данных в базу.
- клиентскую часть web приложения для редактора.
Если вы захотите доделать начатое, напишите организаторам в Телеграме и мы свяжем вас с командой из Тбилиси для предоставления доступа к их проекту.
3. Карта камер видеонаблюдений в Москве
Команда из Еревана создала сайт Prospectus, на котором представлен прототип карты камер и черновые рекомендации самых « бескамерных » районов.
Посмотреть можно тут : https://prospectus.surge.sh/
Код проекта тут : https://github.com/kilomeow/prospectus
Команда из Вильнюса доработала проект начатый в Ереване добавив тепловую карту : https://github.com/putnik/prospectus
https://cams.putnik.tech/
https://cams.putnik.tech/map.html
Что ещё можно сделать ?
- Добавить автоподгрузку данных для обновления информации, сейчас работает в режиме разовой выгрузки, которая скоро устареет.
- Допилить поиск района в веб-версии. Дальше можно по-разному: — упаковать в приложение для социальной mixed-reality игры, где ходишь по карте и отмечаешь камеры, которые победил — добавить слой, на котором юзер будет сам себе рисовать маршрут с минимумом камер — добавить слой с heatmap камер (типа много камер — красное место, мало камер — зелёное) — выделить слепые зоны — подвязать к карте камер стримы)
- Можно попробовать найти другие наборы данных (например, задействовать набор данных с камерами для фиксации нарушений ПДД: ). Камеры в парках, метро, на железнодорожных платформах не покрываются имеющимися наборами данных.
- Другой подход – попробовать вытащить из OpenStreetMap подъезды, привязать к ним домовые камеры (сейчас все камеры дома показываются в одной точке) и направить их в сторону от дома.
- Николай Овчинников, один из кураторов Хакатона Без Границ и директор студии социальных игр Noesis, предлагает подзадачу : разработать игру для популяризации полученной в ходе хакатонов информации о количестве камер и попытаться через игру донести до людей опасности слежки и возможности по её обходу.
Команда OONI
В Вильнюсе был начат проект по анализу данных о заблокированных веб-сайтах в выбранных странах на ежедневной основе используя API OONI для выявления новых блокировок. Создан прототип который собирает статистику по дням и генерирует HTML-таблицы с разницей подтвержденных недоступных веб-сайтов между днями. Нужно решить в какой момент решать является ли полученный сигнал новой блокировкой и отправлять уведомления в телегу.
Репозиторий решения
Что ещё можно сделать для OONI?
- актуализировать списки заблокированных ресурсов для того чтобы OONI могли продолжать замерять блокировки по самым актуальным данным (российские, украинские, беларуские и др — на ваш выбор)
- визуализировать данных о военной цензуре в России и Украине с помощью нового API OONI. Вот примеры визуализаций: https://explorer.ooni.org/chart/mat
- Разработать новый тест (например, для возможности отслеживать и измерять блокировки VPN-протоколов в России)
Команда CENO
В Тбилиси были начаты две подзадачи : карточки объясняющие работу браузера CENO для соцсетей, чтобы популяризировать этот инструмент среди участников и участниц антивоенного движения (а также несколько хороших и простых текстов объясняющих CENO для новичков). Также был доработан тест доступности Bit Torrent-протокола.
В Ереване и Вильнюсе участники продолжили доработку текстов о CENO для соцсетей.
Что ещё можно сделать для CENO?
- Вычитать тексты на опечатки и на случай фактических ошибок. Когда будет готово, можно планировать дистрибуцию.
- Остаются ещё подзадачи от CENO, для которых пока что не было предложено решений : https://internetborders.net/o-proekte-ceno/
Команда Tor
В Вильнюсе удалось сделать onion-сервис для организации Голос (golosinfo.org): http://golos4u7dbfyii5hhln2rehlmjphbkp2ucxh3mqvsspsl2p6wgbu5qyd.onion/
Нужно продолжать работу над ним или схожим сервисом.
Помимо этого, остаются интересные задачи от Tor:
- Визуализировать и проинтерпретировать данные об использовании Tor с начала войны
- Создать бот для распространения Torbrowser через iMessage, чтобы люди могли скачать браузер Tor в местах torproject.org заблокирован.
Команда Goodbye DPI
Команда в Тбилиси работала над разработкой модуля, который подменяет ответ на заведомо доступный адрес, если в DNS-ответе обнаружены адреса из заданных диапазонов CDN-провайдера. Задача была полностью реализована! Код можно посмотреть тут: https://github.com/CZ-NIC/knot-resolver/pull/77
В Ереване был доделан модуль renumber для DNS-резолвера knot-resolver: реализована возможность переназначения сетей любых размеров, а не только фиксированных /24, /16, /8, как было до изменения. Задача также была полностью реализована.
Код : https://gitlab.nic.cz/knot/knot-resolver/-/tree/master/modules/renumber
Оставшиеся задачи от GoodbyeDPI
Команда Lantern
Команда из Еревана трудилась над разработкой инструмент для обнаружения блокировки DNS, инъекций DNS, блокировки HTTP и блокировки SNI
Что ещё можно сделать ?
- Изи: спроектировать форвард прокси, который будет выполнять поиск DNS по заданной таблице, эффективно обходя блокировку DNS.
- Медиум: разработать инструмент для обнаружения блокировки DNS, инъекций DNS, блокировки HTTP и блокировки SNI.
- Хард: разработать прокси-систему HTTP CONNECT (клиентский и серверный компоненты), которая использует протокол QUIC в качестве механизма дозвона.
Команда Amnezia VPN
В Ереване удалось подготовить all-in-one образ Docker для запуска ресурса Tor hidden service на базе WordPress. : подготовлен Dockerfile для сборки образа, включающего в себя apache2, PHP, WordPress, Tor и MariaDB. Код : https://github.com/wietmann/torpress
Что остаётся сделать ?
Починить (доделать) инициализацию БД при первом запуске контейнера и последующую генерацию конфига WordPress с реквизитами для подключения к БД.
Также остались и другие интересные задачи от AmneziaVPN
Команда New Node
На данный момент проблема всех мессенджеров, а, точнее, проблема, к примеру российских, беларусских пользователей мессенджеров — отсутствие возможности скрытия части информации при изъятии телефона полицаем. Вобщем-то единственный способ защититься на данный момент — чистить чаты перед возможным контактом с представителем незаконной власти. Но предусмотреть все такие ситуации достаточно сложно, поэтому мы предлагаем примерно вот такое решение:
Мессенджер должен уметь скрывать часть чатов и переключаться между скрытыми состояниями неким неочевидным для полицая способом. Предположим что чаты собраны в спейсы. При старте, при переключении его в фореграунд приложение находится в безопасном спейсе — пользователь собирает в него чаты безопасные для просмотра представителем незаконной власти.
Создание нового спейса подразумевает ввод жеста (его минимальную сложность мы тоже должны определить). Пользователь обучает нейронку, и далее она распознает жесты. Для переключения в этот спейс пользователю необходимо будет нарисовать этот же жест прямо поверх чатов. Пользователь может создавать неограниченное число спайсов, таким образом даже под давлением полицая он может, к примеру, открыть еще парочку с безопасными чатами.
Решения для NewNode с хакатонов
(https://github.com/nesquikm/flutter_wubbachat)
(https://github.com/nesquikm/firebase_wubbachat)
Сторонние проекты :
ifreedomlab
Проект ifreedomlab смог получить помощь от команды UX-дизайнерок в Ереване. Аудит сайта проекта в части страницы с инструментами подтолкнул к расширению задачи — добавлены другие страницы сайта, добавлены рекомендации относительно расширения активностей проекта.
Ссылка на проект : https://ifreedomlab.net
Zeronet-conservancy
Команде проекта Zeronet-conservancy в Ереване удалось разработать более дружелюбную пользователю инструкцию установки на android/termux, а также скрипт, ещё больше облегчающий этот процесс, был обнаружен возможный вектор атаки на сеть, было разработано и принято решение как наиболее эффективно уходить от центрального элемента сети (zeroid) и связанными с ним атавизмами, был найден и исправлен баг на маке, разработали концепцию запуска сайтов через новый api и тестовый сервер как начало разработки в этом направлении.
Ссылка на проект https://github.com/zeronet-conservancy/rzhs0
Что ещё можно сделать для zeronet-conservancy ?
- дальнейшее упрощение для установки и использования простыми пользователями
- дальнейшая работа над DHT
- дальнейшая работа над новым API
- создание и категоризация полезных сайтов внутри сети — разработка стратегий привлечения новых пользователей
ЧТО НАС ЖДЁТ В БЕРЛИНЕ ?
Всё также остаются задачи от наших партнёров из восьми проектов. Описания всех задач можно найти тут https://internetborders.net/hakaton/ (а также почитать полное описание каждой задачи и ссылки на ресурсы и код, нажав на название команды).
Также в Берлине к нам присоединятся новые команды:
Команда DOXA
Легендарное студенческое оппозиционное медиа предлагает такую задачу на хакатон :
- помочь разработать open source self-hosted альтернативу амплиферу, которую можно было бы подвязать в админку сайта, чтобы новости уходили во все соцсети. Доступ к API сайта DOXA и другие детали будут предоставлены команде, выбравшей эту задачу.
Команда ФАС
Феминистское Антивоенное Сопротивление предлагает две задачи на хакатон
- создать Телеграм-бот для генерирования антивоенных открыток для Одноклассников и WhatsApp, чтобы распространять антивоенные лозунги и картинки среди новых целевых аудиторий
- сделать инфографику женской/феминистской протестной активности (данные будут предоставлены участницами из ФАС)
Мы ждём вас на конференции Интернет Без Границ и Хакатоне Без Границ в Берлине 17-18 июня и в Варшаве 24-25 июня. Зарегистрироваться можно здесь : https://internetborders.net/register/
Если вы хотите выбрать одну из новых задач, пожалуйста, укажите при регистрации « Свой проект » и название выбранного проекта (DOXA, ФАС, Нитка).