Шлюз dr web link что это
IPFS расшифровывается как Interplanetary File System, что означает межпланетную файловую систему. По сути, это открытый, одноранговый (p2p), распределенный гипермедиа-протокол, который создан, чтобы функционировать как универсальная файловая система для всех вычислительных устройств. Это сложный и очень амбициозный проект, который много значит для будущего развития и структуры Интернета.
Что такое IPFS
IPFS — это большая децентрализованная p2p-сеть, которую используют как файлообменник, веб-архив или замену Bittorrent. Все крутые примеры использования IPFS в реальных проектах можно посмотреть в зале славы на официальном сайте awesome.ipfs.io.
Вкратце работает оно так: хранимые файлы получают свой мультихэш и разбиваются на блоки, которые разлетаются по всем заинтересованным нодам. На нодах синхронизируется DHT, при скачивании файла собираются блоки с разных (в теории — ближайших) нод. Причём для доступа к файлу или директории не нужно поднимать свою ноду, они все доступны из браузера, что приводит нас к народно любимой фиче: на IPFS можно бесплатно хостить сайты. Но только статику, обновлять любые данные чаще, чем раз в несколько минут неудобно из-за тех же хэшей, которые формируют ссылку и меняются при каждом изменении в файле (существует система постоянных имён IPNS, но она медленная). Впрочем, это не помешало чувакам из Orbitdb запилить базу данных на IPFS, но там свои нюансы. Более подробно почитать про устройство сети можно здесь.
Проверка исправлений
Вижу, что frwl_svc.exe версии 12.5.3.12180 больше не загружает стандартные dll. Это исправляет сам подход с dll hijacking, но появилась гипотеза, что логика работы с доверенными приложениями осталась. Для проверки я воспользовался старой версией frwl_svc.exe.
Публикуем веб-сайт в IPFS
Вам потребуются операционная система на основе GNU/Linux, навыки работы в командной строке и программное обеспечение IPFS.
Видео эксплуатации
После настройки двух виртуальных машин пришло время эксплуатации. На этом видео показана возможность обхода патча, которым Dr.Web исправил ошибку из предыдущего отчёта. Расположение виртуальных машин не отличается от представленных в предыдущем видео. Напомню, первая машина находится с левой стороны на видео, а вторая машина – с правой стороны. Действия в видео:
На второй виртуальной машине запускаем netcat(nc64.exe) и прослушиваем порт 4444.
Затем на первой виртуальной машине с помощью whoami показываем, что все действия от обычного пользователя.
Потом показываем версию frwl_svc.exe (12.5.2.4160) в папке C:\Users\drweb_test\AppData\Local\Temp.
Дальше демонстрируем версию frwl_svc.exe (12.5.3.12180) в папке C:\Program Files\DrWeb.
Следующим шагом показываем, что брандмауэр (firewall) включён, исключения отсутствуют и время последнего обновления.
После этого запускаем C:\Users\drweb_test\AppData\Local\Temp \frwl_svc.exe и видим подключение в nc64.exe во второй машине.
Последним шагом передаём команду на создание папки test на первой машине с помощью nc64.exe, который находится на второй машине.
Разведка
Во время анализа работы антивирусной программы Dr.Web, я обнаружил, что некоторые исполняемые файлы (.exe), в папке C:\Program Files\DrWeb, потенциально могут быть подвержены Dll hijacking.
Dll Hijacking — это атака, основанная на способе поиска и загрузки динамически подключаемых библиотек приложениями Windows. Большинство приложений Windows при загрузке dll не используют полный путь, а указывают только имя файла. Из-за этого перед непосредственно загрузкой происходит поиск соответствующей библиотеки. С настройками по умолчанию поиск начинается с папки, где расположен исполняемый файл, и в случае отсутствия файла поиск продолжается в системных директориях. Такое поведение позволяет злоумышленнику разместить поддельную dll и почти гарантировать, что библиотека с нагрузкой загрузится в адресное пространство приложения и код злоумышленника будет исполнен.
Например, возьмём один из исполняемых файлов – frwl_svc.exe версии 12.5.2.4160. С помощью Process Monitor от Sysinternals проследим поиск dll.
Однако, у обычного пользователя нет разрешений для того чтобы подложить свой DLL файл в папку C:\Program Files\DrWeb. Но рассмотрим вариант, в котором frwl_svc.exe будет скопирован в папку под контролем пользователя, к примеру, в папку Temp, а рядом подложим свою библиотеку version.dll. Такое действие не даст мне выполнение программы с какими-то новыми привилегиями, но так мой код из библиотеки будет исполнен в контексте доверенного приложения.
Что такое IPFS?
IPFS – это глобальное хранилище неизменяемой информации. Работает как временный кэш, но также возможно использование специальных сервисов (платных или волонтёрских), гарантирующих сохранность информации.
Вечная альтернатива Opera VPN (Windows & Linux)
Сейчас, когда Роскомнадзор повсеместно начал блокировать VPN сервисы, очень остро стоит вопрос поиска долгоиграющих альтернатив. Единственный, как мне кажется, вариант, который никогда не смогут заблокировать - это сервис Tor. Давайте попробуем подружить его с нашим любимым браузером (необязательно Opera). Но Opera в качестве примера я взял ради своего удобства.
Я буду использовать отдельный пакет Opera Beta, чтобы была возможность одновременного запуска Opera без VPN и Opera с VPN (так как новые экземпляры Opera из одного пакета запускаются с настройками уже запущенного экземпляра; ну а ещё у Opera Beta прикольный логотип, отражающий, как мне кажется, идею VPN). Покажу настройку на примере Windows 10 и Linux Mint.
Итак, для Windows нам понадобятся:
2) пакет Tor Expert Bundle (просто сервис Tor без браузера)
Сначала устанавливаем Opera Beta в каталог по умолчанию. Следом распаковываем архив с Tor Bundle в директорию, куда установилась Opera. Скорее всего это будет такой путь: C:\Users\ \AppData\Local\Programs\Opera beta, где - это имя вашего конкретного пользователя. На всякий случай распакуем архив в подкаталог Tor.
Теперь создадим в каталоге с установленными Opera Beta и Tor Bundle BATCH-скрипт, который будет запускать службу Tor только тогда, когда мы будем запускать Opera с VPN по ярлыку с Рабочего стола. Назовём его launcher.bat и он будет с таким содержимым:
В нём происходит последовательный запуск службы Tor, а затем Opera с переданным адресом прокси-сервера Tor.
В итоге содержимое каталога должно получиться примерно такое:
В конце концов создадим ярлык к этому скрипту на Рабочем столе. Для этого кликнем правой кнопкой мыши по launcher.bat и выберем:
Идём на Рабочий стол, переименовываем ярлык, например, в OperaTor и в свойствах ярлыка меняем иконку на иконку от Opera Beta, вот так:
В Linux Mint всё еще проще:
1) так же, качаем и устанавливаем deb или rpm пакет Opera Beta
2) затем ставим пакет tor командой sudo apt install tor
После этого заходим в Меню системы, ищем в приложениях ярлык Opera Beta, вызываем для него контекстное меню и выбираем Добавить на Рабочий стол.
И, наконец, идём на Рабочий стол, заходим в свойства ярлыка Opera Beta, чтобы изменить название на OperaTor и в поле Команда добавить опцию использования прокси-сервера --proxy-server="socks://127.0.0.1:9050"
Вот и всё! Теперь, когда вы запускаете OperaTor с Рабочего стола, запускается Opera, использующая прокси-сервер Tor. На мой взгляд это даже удобнее, чем был встроенный Opera VPN. Пользуйтесь на здоровье. Свободу интернету!
Как я и говорил в начале, выбор браузера не ограничивается Opera. То же самое можно сделать и для Google Chrome, у которого так же есть возможность задать прокси-сервер через опцию командной строки: google-chrome --proxy-server="socks://127.0.0.1:9050"
Установка и запуск
У js-ipfs довольно подробный туториал с примерами, поэтому:
Нода запускается в несколько строк:
Конфиги и сиды для неё прописываются тут же, но для старта достаточно этого.
Создаём веб-сайт
Для начала создадим простой веб-сайт, состоящий из двух страниц. Создайте пустую директорию в вашем домашнем каталоге и перейдите в неё:
Также создайте директорию для второй страницы сайта. Это нужно для демонстрации работы относительных ссылок:
В директории верхнего уровня создайте файл index.html . Буквы после слова random (здесь это 74eownSL2tdYBsXm ) замените на любые случайные буквы. Можете просто нажимать произвольные буквы на клавиатуре.
В директории subdir также создайте файл index.html . Аналогичным образом замените буквы после слова random (здесь это TKj20YgXq9fsqYTr ) на случайные буквы.
Что в итоге?
- Когда я сажусь писать код, он автоматически сохраняется в IPFS
- Все версии всегда доступны по персональным ссылкам /ipfs/Qm…
- Я могу публиковать сайт в IPNS, чтобы не слать клиенту ворох ссылок
- Локальная нода просыпается, только чтобы выгрузить файлы и связаться с сервером, после засыпает обратно
- Локально у меня хранится только одна копия сайта, трафик на единичные загрузки новых версий кратно меньше фонового трафика ноды IPFS
- Я наконец-то могу работать в локалхосте без головной боли с версионностью
Вообще с помощью IPFS можно делать и гораздо более интересные штуки. Я вот точно хочу довести до ума эту утилитку и написать новую, с гуи. А пока вот держите сайт, который мы писали и хостили всё это время:
Как вернуть VPN в Opera на Windows 10
После отключения VPN в браузере Opera, я долго "танцевал с бубном", пытаясь редактировать файл Secure Preferences(сначала помогло), потом ставил расширения типа Opera Free VPN
(проработало недолго)
Наконец нашел способ, который реально мне помог:
Скачиваете предыдущую версию с VPN Opera Stable v77.0.4054.90
Удаляете текущую Opera, желательно каким-нибудь Uninstaller-ом, с чисткой "хвостов"
в реестре. Разверните системный «Проводник» и перейдите по пути C:\Windows\System32\drivers\etc. В последней папке вам нужен файл «hosts».
Откройте его при помощи встроенного в Windows приложения «Блокнот» или любым другим редактором. Я использовал AkelPad.
Устанавливаете скачанную предыдущую версию с VPN Opera Stable v77.0.4054.90
Теперь меню с VPN снова доступно. Автообновлений не будет.
Включаем VPN, пользуемся!
Устройство IPFS
- Каждым файлу и директории присваивается уникальный идентификатор (CID – Content Identifier) на основе применения к его содержимому криптографической хэш-функции. Одинаковые файлы получают одинаковый идентификатор, разные файлы – разные идентификаторы.
- Сеть устраняет дублирование. Например, если при загрузке новой версии директории часть файлов не изменились, то они будут разделены между новой и предыдущей версиями.
- Адресация содержимого осуществляется по его уникальному идентификатору (content addressing), то есть не зависит от его фактического положения в сети.
- Каждый узел содержит только ту информацию, в которой он заинтересован, а также некоторую дополнительную информацию, необходимую для поиска файлов в сети (DHT – Distributed Hash Table).
За более подробной информацией обратитесь к whitepaper и к документации.
ВНИМАНИЕ! IPFS является полностью публичной сетью. Любой помещённый в неё файл доступен каждому участнику сети. Для ограничения доступа используйте шифрование. Также возможно создание приватной сети на основе IPFS. Более подробно читайте в документации.
Начало кампании РКН против VPN
Думаю ни для кого не секрет, что в последнее время РКН все больше закручивает гайки. Пробует разные подходы, начиная от реального замедления определенных ресурсов или же ограничиваясь угрозами замедлить их (привет Twitter и YouTube). Конечно, абсолютное фиаско и унижение, полученное после неудачной попытки блокировать Telegram не прошло бесследно. РКН обиду не забыл, а поэтому методы становятся немного более избирательными, чтобы не рушить чудовищное количество важной инфраструктуры, действуя подобно пушке, стреляющей по воробьям (да, это отсылка про рухнувший Сбербанк и прочее при попытке заблокировать Telegram). Хотя и до сих пор каждую неделю звучат призывы огородить богомерзкие и внезапно ставшими неугодными углы интернета от неустоявшейся психики граждан.
Сейчас, пока изгнанные, но все же хоть как-то технически проинформированные пользователи, заново устанавливают OperaVPN в свой браузер, обычные пользователи остались ни с чем. Не особенно хочется выступать в роли проповедника судного дня, но все же, хотя бы в глубине души, все понимают, за каждым ныне популярным, но не особо продуманным в плане защиты от нападок сервисом, придут. Те, кто умудрился вернуть VPN в свой браузер Opera, просто продлевают агонию, вскоре адреса будут забанены и привет.
Можно подумать так: "Ну что ж, значит возьму те, что с конца списка и буду пользоваться ими". Ну например Hola Free VPN Proxy — он есть в списке. Или хотя бы тот же АнтиЗапрет, что угодно, это все вопрос времени. Да, кроме того что придут и за ними, есть еще один нюанс. В конце концов, все эти решения, придумывались в качестве относительно простого обхода блокировок. Раньше, до определенного момента времени, было достаточно любого прокси, как например самый популярный NL (Голландия) прокси или DE (Германия). Сейчас ситуация еще сильнее ухудшилась. Теперь да же зайдя на некоторые заблокированные сайты, то они не откроется из NL и DE. На rezka.ag многие фильмы не откроются да же через UA (Украина).
Т.е. в данный момент не только нужно найти подходящий прокси сервер через который открывается большинство сайтов, но и для части сайтов держать дополнительные сервера. Думаю не нужно говорить что постоянное переключение между этими проксями и сопровождение этих правил, что-откуда надо открывать, не доставляет особого удовольствия. Хоть даже сейчас существуют бесплатные варианты типа той же Hola, но кто-нибудь пытался смотреть через них какое-нибудь потоковое видео? Нужно признать бесплатные варианты, подходят только для того чтобы почитать статеечки или посмотреть картинки. Но интернет давно уже не текст с картинками, это ролики по 150 а то и 1500 mb, YouTube шагает по планете. Обычные варианты такое уже не вывозят.
Все мы хотим пользоваться интернетом так, как этого заслуживаем в 2021 году, а не так как это существует в анально огороженном Китае. Список VPN-сервисов, которые заблокируют на территории России разослали ещё 18 марта среди сотрудников Сбера, а в публичном доступе письмо всплыло 15 апреля. Информация об этом появилась на форуме ntc.party , где сидят разработчики анти-цензурного софта.
И вот настало сегодня, когда зловещее предупреждение о бане исполнилось, решено, что нет лучше времени чем всем вам начать пользоваться тем, что я изначально создавал для себя и не особо пытался продвигать.
Для Google Chrome и Mozilla Firefox релиз уже есть.
Вот главные условия и приципы:
- База всегда максимально полная — обновление происходит ежедневно. Это очень важно.
- Проксировать только заблокированные сайты, все остальные сайты обязаны работать напрямую. Пропускная способность у меня нерезиновая.
- В век страха быть чипированным и получить Covid-19 от вышек 5G клянусь не собирать данных пользователей, не хранить никаких логов на серверах и не передавать ничего третьим лицам. (А нафиг оно мне надо, место у меня тоже ограничено).
Я решил, что в центре всей философии будет простая мысль — установил и забыл. Не надо ничего нажимать, ничего добавлять, ничего обновлять. Установил один раз, и более никаких проблем серии «зобанено» замечено не будет. В конце концов, именно такой уровень сервиса я бы хотел видеть сам. Распространяется бесплатно. Разумеется, для тех, кто хочет указать свой адрес прокси, функционал присутствует. Пользуйтесь.
Да, я жду резонный вопрос «И что же мешает им сделать тоже самое с тобой, что они сделали с Opera?»
Это решение изначально создавалось и планировалось из расчета на будущее. Естественно, я не буду вдаваться в подробности технического решения, но центр логики заключается в ранжированности доверия к пользователям.
Могу заверить, что изначально все создается так, чтобы не допустить остановки сервиса.
Если навалитесь всем скопом и уроните мне сервис, ну тогда «F to pay respects».
Данная статья написана в рамках ответственного разглашения информации о уязвимости. Хочу выразить благодарность сотрудникам Dr.Web за оперативное реагирование и исправление обхода брандмауэра (firewall).
В этой статье я продемонстрирую обнаруженную мной возможность обхода брандмауэра (firewall) в продукте Dr.Web Security Space 12 версии.
При исследовании различных техник и методик обхода антивирусных программ я заметил, что Dr.Web Security Space 12 версии блокирует любой доступ в Интернет у самописных приложений, хотя другие антивирусные программы так не реагируют. Мне захотелось проверить, возможно ли обойти данный механизм безопасности?
Вывод
Убедившись, что способ работает, можно сделать предположение, что, антивирус доверяет «своим» приложениям, и сетевые запросы, сделанные от имени таких исполняемых файлов, в фильтрацию не попадают. Копирование доверенного файла в подконтрольную пользователю папку с готовой библиотекой — не единственный способ исполнить код в контексте приложения, но один из самых легковоспроизводимых. На этом этапе я собрал все артефакты исследования и передал их специалистам Dr.Web. Вскоре я получил ответ, что уязвимость исправлена в новой версии.
Пишем функционал
Дальше нужно передать ноде файлы и загрузить их в IPFS. Для этого используем node.add с параметром < recursive: true >для папок. Адрес можно передавать в аргументах при запуске, а сохранять по команде. Важно записать только последний хэш — он от корневой папки:
Вся папка успешно ушла в сеть. По ссылке откроется сайт, а саму папку можно проверить на вебморде IPFS:
Дальше чтобы сделать процесс сохранения удобным, я дописал сохранение с номером версии и публикацию в IPNS через node.name.publish . Но сохранение вручную это скучно! Я хочу иметь возможность смотреть обновленный сайт так же быстро, как вижу изменения в локалхосте, а значит, обновление должно происходить автоматически. А ещё если я вдруг забуду сохранить что-то, выключу ноутбук и поеду домой, актуальная версия сохранится не только в редакторе, но и в сети. Сделаем автосейвы по дефолту раз в 10 минут, с возможностью изменять интервал для разных темпов работы. Кстати, если файлы не менялись с последнего сохранения, не поменяется и хэш.
Круто, но пока все файлы мы раздаем с локальной машины. Пора подключать серверную ноду! Берём экспериментальный pubsub, получаем топик из аргументов при запуске и пробуем доставить хэш сохранения:
Ура! Дело за малым — заставить сервер хранить все полученные хэши и пиннить их ( node.pin.add ), и научить клиент вырубать свою ноду, когда она не нужна ( node.stop ).
Так выглядит список загрузок на серверной ноде
Что такое IPFS
- Неэффективная доставка контента, связанная с загрузкой файлов с одного сервера за раз,
- Дорогие затраты на пропускную способность и дублирование файлов, что приводит к раздутому хранению,
- Увеличение централизации серверов и провайдеров, что приводит к усилению цензуры в Интернете,
- Короткая история информации, хранящейся в Интернете, и короткие сроки существования веб-страниц,
- Прерывистые соединения.
IPFS предоставляет распределенное хранилище и файловую систему. Вместо загрузки файлов с отдельных серверов в IPFS вы запрашиваете их p2p: предоставляют путь к файлу таким образом, а не через центральный сервер. Это позволяет распределять большие объемы данных с высокой эффективностью, управлением версиями, а сеть становится более устойчивой и постоянно доступной. Она защищена и проверена с помощью криптографического хеширования и распределена по сети одноранговых узлов.
Браузер Opera с поддержкой IPFS
Буквально несколько дней назад Opera Software выкатили первый браузер с нативной поддержкой IPFS. Пока, правда, только в мобильной версии для Android. Это значит, что он может напрямую обращаться в сеть IPFS без веб-шлюзов! Ждем когда поддержку добавят в десктопную версию.
Дисклеймер: для ЛЛ, без всяких аддонов, ДНС, удалений файлов, прописываний конфигов и прочих копаний в планировщиках.
Пункт 1: качаем и устанавливаем(распаковываем в любую удобную нам папку) Оперу Portable с PortableApps, для тех, кто не в курсе: Вики про PApps, это не какой-то ноунейм сайт.
Пункт 2: Заходим в Opera - Настройки - Дополнительно - Включить VPN
P.S. Возможно, придется сменить язык с английского на русский, там же, в найстройках.
P.P.S. Этот браузер автоматически не обновляется, поэтому не придется переживать, что внезапно все сломается.
На оперу тоже есть расширения с впн. Когда-то я Hola юзал. Только раньше она была чисто плагином, а теперь еще софт на ПК тащит, да и работает через пень-колоду. Так что зайти раз в неделю на торрент мне лично проще через тора.
Да я знаю, но суть сабжа в том, чтоб именно Оперовский ВПН юзать, кому-то он больше нравится, видимо. Или дело принципа. Я лишь озвучил способ, как это сделать проще.
Раньше портабельные приложения были популярны, а сейчас вон некоторые PApps "левыми сборками от Васяна" называют.
Я вот чего понять не могу : зачем вообще VPN использовать? Ну, там, на сайты заходить, которые забанены для русских — ладно, а в остальном? Закладочников больше, чем нормальных пользователей?
Некоторые привыкли именно к Опере, отсюда и весь движ.
Странные они. Портабельная опера даже на офф. сайте лежит.
Дикие люди. Тем более PApps уже миллионы людей стотыщмильонов лет юзают без каких-либо нареканий. Открытый исходный код, опять же. Раньше приложения PApps публиковали на дисках журнала "Домашний ПК".
Решений по обходу блока РКН очень много. Даже очень много.
Дык это, речи не было про установку расширений, сабж "Как вернуть Opera VPN" в эту самую Оперу.
Причина использования Оперы и ее ВПН - вопрос десятый. Я вообще Хромом уже 7 пользуюсь, после того, как Опера на движке Presto закусила боты.
Большинство не смогут в такие сложные действия, люди не хотят разбираться еще и с каким-то ГудбайДиПиАй, с аддонами в браузере не все могут/хотят разбираться, а тут еще и ГитХаб. Там проблемы 100% возникнут еще на этапе скачивания с этого самого ГитХаба. Про дальнейшие действия я вообще молчу.
В сортах сборок от Васяна не разбираюсь, чтобы ещё изучать что-то про них.
Не читал, но осуждаю.
Ну давай, пруфани мне про какой-нибудь косяк PortableApps, вирусы там в сборках, майнеры, сборы личных данных. Или ты из тех, кто спорит ради спора?
Нуууу VPN нужен далеко не постоянно. Так что вообще никто не мешает использовать оперу как основной браузер, и тор для трекеров и т.п. Я где-то месяц назад тоже чинил оперу путем редактирования конфига. Нынче данный способ не работает и у меня на компе появился тор.
Мне, вот, если честно лень между браузерами переключаться, у меня все на Хроме, для ВПН расширение просто стоит. Но я прекрасно понимаю, что есть те, кому нравится Опера (я сам на Опере Престо много лет сидел) и способ с портативной Оперой куда надежней всех телодвижений с настройками конфигов.
Большинству ВПН надо чтоб зайти туда, куда провайдер запретил: на хдрезку например, на лурк тот же или еще куда-то. Соседка вон моя, пенсионерка, на Одноклассники через ВПН на Опере ходит, остальное ей слишком сложно (у нас тут вна Украине на ок.ру просто так не пускают). Предлагаешь для этого свой ВПН-сервер арендовать/купить/построить? Не слишком ли много сложностей?
Сейчас бы какую-то левую сборку браузера использовать. Ну надо тебе что-то - есть же Tor Browser.
только без обновлений. За 15 лет ни разу не было нареканий на PApps.
Согласен. Просто подписан на тег ВПН и вижу недоверие к сторонним расширениям и, как в Вашем случае, неприятие PApps. И полнейшее незнание как обойти блок. Интересно, а многие знакомы с Psiphon? Он ведь тоже портабл 😉
Пост ваш полезен. Надеюсь в горячее попадёт.
А портабельная Опера у меня есть в запасе и ВПН работает.
Там не с чем разбираться. В смысле, там есть собранные версии в релизе. В них уже все готово, с ярлычками на типовые случаи. Разве что потребуется разобраться с нахождением на гитхабе кнопочки "релизы". Или в том, как запустить исполняемый файл, лол. В общем, базовые вещи достаточно. На мой взгляд это проще и лучше, чем ставить себе хер знает какой браузер, да еще и не обновлять его. Чревато-с.
Я знаю. Но людям реально зачастую не хватает мозгов, чтоб нажать кнопку включения монитора, а то "кампуктер паламался!" (я раньше думал, что жто лишь байка, но нет), а тут речь про ГитХаб, релиз, исполняемый файл и прочие страшности.
Большинству надо кнопку "сделать заебись" и я это не осуждаю. Мне иногда тоже не хватает такой кнопки.
Нету. Там где у вас блок про VPN - у меня IPFS/IPNS и далее по списку. А про ВПН нету.
На данный момент если скачать по указанной ссылке сборку - про VPN там ничего нет.
Недавно был пост с более простым способом включения OperaVPN: Opera VPN
А потом с очередным обновлением все пойдет по пизде.
Подготовительные мероприятия
Начну проверку своей гипотезы с того, что настрою две виртуальные машины с windows 10 по аналогии с тем, как всё было в демонстрации.
На первую виртуальную машину с ip 192.168.9.2 я установлю Dr.Web последней версии. Процесс установки Dr.Web не отличатся от того, который был описан в предыдущем отчёте. А также в папку Temp я скопирую frwl_svc.exe версии 12.5.2.4160 и version.dll из предыдущего отчета.
На вторую виртуальную машину c ip 192.168.9.3 я установлю netcat.
Как будем хостить
Допустим, у меня есть нода, с которой я бесплатно раздаю статические сайты, сам же на них хожу и иногда привожу коллег посмотреть. Общий объем данных ограничен только размером моего диска, а скорость загрузки — домашним интернетом, что может быть лучше? Но есть ряд проблем. Во-первых, самой IPFS нужно довольно много интернета и солидный кусок процессора, и даже без трафика она всегда отбирает часть ресурсов на синхронизацию DHT. Во-вторых, я в основном работаю с ноутбука и все файлы держу на нём же, и потому же далеко не всегда у меня под рукой домашнее полугигабитное волокно. Кратковременные разрывы для IPFS не проблема, она держит кэш в DHT несколько часов, но стоит куда-то уехать на пару дней, и вот уже все твои проекты радостно высыпаются из сети. Можно запиннить (“запомнить”) файлы на десктопе, но это как минимум вдвое увеличит трафик, что тоже не комильфо. Что делать? Я попробовал поднять ноду на сервере, чтобы разгрузить ноут, но мне всё еще приходилось грузить файлы вручную, как на обычный хостинг. В итоге я покурил доки и API и написал простенькую утилиту для синхронизации моей локальной статики с сервером.
У IPFS есть две самостоятельные реализации: go-ipfs и js-ipfs. Мне ближе JS, поэтому я писал на нём. Я хотел чтобы утилита могла подхватывать папки с моими сайтами, и регулярно загружать их в сеть, пока я работаю. Серверная часть должна ловить хэши папок и пиннить их, чтобы файлы не потерялись.
Возвращаем VPN в оперу
Роспеднадзор заблокировал функции vpn в оперу, она просто пропала, решение такое.
Переходим в папку тут имя вашего компьютера \AppData\Roaming\Opera Software\Opera Developer
Открываем файл в этой папке Secure Preferences с помощью блокнота, находим в самом конце "vpn": и меняем все ru на "vpn": и теперь кнопка vpn снова доступна
Помещаем веб-сайт в IPFS
Перейдите в корневую директорию вашего проекта и наберите команду ipfs add -r . , после чего вы должны увидеть примерно следующий текст:
Вывод
В результате проверки исправлений я обнаружил, что патч исправляет не саму проблему с доверенными приложениям, а только мой способ реализации данной уязвимости. Старая версия frwl_svc.exe отлично обходила ограничения. Все собранные сведения были переданы команде Dr Web. Вскоре была выпущена новая версия исправления, которая уже не обходилась моим методом.
Timeline
16.02.2021: Передача отчета в Dr.Web.
25.02.2021: Dr.Web сообщает, что данная возможность обхода firewall исправлена.
11.03.2021: Получение CVE 2021-28130.
14.03.2021: Проверка исправлений.
15.03.2021: Передача отчета в Dr.Web.
06.04.2021: Dr.Web сообщает, что данная возможность обхода firewall исправлена.
Логотип IPFS.
В статье “Децентрализованные сервисы против распределённых” в качестве примера распределённой системы мы приводили IPFS (InterPlanerary File System). Пришла пора рассказать о ней подробнее, поскольку это одна из наиболее перспективных распределённых технологий.
Где использовать IPFS
Для IPFS уже есть значимые варианты использования. Но также стоит помнить, что протокол развивается, и по мере его разработки случаев применения появится больше. Новая распределенная P2P архитектура для Интернета имеет свои сложности, но преимущества значительные: от огромной финансовой экономии на хранилищах и пропускной способности до интеграции с распределенными блокчейнами.
Поставщики услуг и создатели контента могут также сократить свои расходы через централизованные инфраструктуры.
Технология может использоваться для:
- архивирования информации в Интернете,
- безопасная доставка больших данных, крупного контента,
- исследования архива,
- блокчейна,
- независимого создания и размещения контента.
Централизация серверов приводит к отслеживанию правительством, распространенности DDoS-атак, цензуре и продаже данных.
Наконец, многие надеются на интеграцию IPFS с технологией блокчейн. Используя IPFS в транзакциях, можно размещать неизменяемые вечные ссылки. Временные метки защищают данные, не сохраняя при этом весь блокчейн, что приводит к уменьшению размера блоков.
IPFS включается в ряд криптоплатформ и имеет большой потенциал в этой области.
Но проект также не лишен критики.
Во-первых, это не единственный проект такого рода и не общая концепция. Также есть Ethereum Swarm, SIA, MAIDSAFE и другие. Протокол, например, разрабатывает Library .
Во-вторых, IPFS связан с Filecoin. Но для децентрализованной модели используется централизованный метод поощрения. ICO этого проекта собрало достаточно денег, но большая часть токенов снова отходи крупным игрокам: новая централизация. Разработчики вносят вклад в систему, но не будут иметь дивидендов от сети, поэтому остается стимул уйти в другие проекты.
Мне часто нужно опубликовать статическую страницу или сайт, демо с веб-формой или версткой. Заливать каждый раз куда-то вроде Jsfiddle не всегда удобно, да и редактировать статику в локалхосте куда быстрее и приятнее. Проблемы начинаются, когда мне нужно кому-то показать мою работу, или просто открыть ту же страницу с телефона. Приходится хостить все эти бесконечные рабочие варианты и зарисовки, для каждой заново заливать файлы, прикручивать vhost-ы.
С помощью IPFS можно хостить сайты в интернете прямо с ноутбука, все обновления локальных файлов будут сразу применяться в интернете, и их не нужно куда-то заливать. Когда ноутбук отключен от сети, сайт все равно будет доступен. IPFS это как Bittorrent, только для веба.
В статье мы развернем IPFS ноду на сервере и попробуем эту технологию на практике.
Подготовительные мероприятия
Я начну свой эксперимент с настройки двух виртуальных машин с Windows 10. Первая виртуальная машина служит для демонстрации пользователя с установленным антивирусом Dr.Web. Вторая виртуальная машина будет «ответной стороной», на ней установлен netcat для сетевого взаимодействия с первой виртуалкой. Начальные настройки при установке:
На первую виртуальную машину с IP 192.168.9.2 установлю Dr.Web последней версии, в процессе установки Dr.Web’а выберу следующие пункты:
На вторую виртуальную машину с ip 192.168.9.3 установлю netcat.
Для демонстрации я разработал два исполняемых файла:
Второй файл — это прокси-библиотека version.dll, которая размещается рядом с frwl_svc.exe на первой виртуальной машине. Функциональность та же, что и test_application.exe, только код собран как dll.
Видео эксплуатации
После подготовительных мероприятий, я, наконец, подошёл к эксплуатации. На этом видео представлена демонстрация возможности обхода брандмауэра (firewall) в продукте Dr.Web Security Space 12 версии. (Dr.Web, version.dll и test_application.exe находится на первой виртуальной машине, которая расположена с левой стороны видео. А netcat находится на второй виртуальной машине, которая расположена с правой стороны видео.)
Вот что происходит на видео:
На второй виртуальной машине запускаем netcat он же nc64.exe и прослушиваем порт 4444.
Затем на первой виртуальной машине в папке C:\Users\root\AppData\Local\Temp распакуем aplications.7z, там находятся version.dll и test_application.exe.
После этого, с помощью whoami показываем, что все действия от обычного пользователя.
Потом копируем C:\Program Files\DrWeb\frwl_svc.exe в папку C:\Users\root\AppData\Local\Temp\aplications.
Дальше демонстрируем, что брандмауэр (firewall) включён, исключения отсутствуют и время последнего обновления антивируса.
Следующим шагом запускаем тестовое приложение test_application.exe и проверяем работоспособность брандмауэр (firewall). Dr.Web заблокировал тестовое приложение, а значит можно сделать вывод, что брандмауэр (firewall) работает корректно.
Запускаем frwl_svc.exe и видим подключение в nc64.exe на второй машине.
Передаём команду на создание папки test на первой машине с помощью nc64.exe, который находится на второй машине.
Фиксация содержимого
IPFS по умолчанию не даёт никаких гарантий того, что файлы будут храниться в сети. Как уже было сказано, узлы хранят только те файлы, которые используют.
Для сохранения файлов существует механизм закрепления (pinning). Есть несколько сценариев его использования:
- Вы можете закрепить файл на своём рабочем компьютере или ноутбуке. При этом для вас он будет доступен всегда, даже в отсутствие доступа к Интернету, но другие пользователи сети не смогут получить к нему доступ, когда вы не в сети.
- Вы можете запустить узел IPFS на сервере, который запущен постоянно. При этом файл будет доступен всегда, однако появляются расходы на содержание сервера (оплата услуг VDS, администрирование).
- Вы можете закрепить файл на чужом сервере IPFS, лично обратившись к его администратору, а также воспользовавшись веб-интерфейсом или API сервиса, если таковые имеются.
Для надёжности следует использовать все способы и закреплять файлы на нескольких узлах. Чем больше узлов хранит файл, тем меньше вероятность того, что он пропадёт, если узел будет закрыт.
На данный момент единственным известным нам сервисом по фиксации файлов в IPFS, работающим в автоматическом режиме, является Pinata. Он предоставляет 1 ГБ бесплатно, сверх этого хранение стоит $0.15 в месяц за 1 ГБ.
Opera VPN
Есть еще один способ восстановить VPN в Opera. Для этого всего лишь нужно зайти в расширения -> добавить расширения - > найти там наш "Opera free VPN" и нажать плашку "включить в Opera".
Все, готово, VPN снова работает :)
Виды CID
Существует два вида идентификаторов содержимого:
- CIDv0: QmesV3cwCMeweAMePKhPCkoKNh2A3cMgEYQwRPUUf3Cvy7
- CIDv1: bafybeihvuei3zko5ao5v7k2tutds4b2fm7gcbc3mjete7ifkzsqayuq7ai
Хотя CIDv0 всё ещё является стандартным для содержимого, помещаемого в IPFS, он плохо подходит для поддоменов, поскольку использует и заглавные, и строчные буквы, в то время как доменные имена не чувствительны к регистру.
Один и тот же идентификатор CIDv1 может использовать различные кодировки:
- Base32: bafzaajaiaejca2m4edvf5zdbgnbj5nvz2nm7chdtwzfcupmoaaarifdonsl7ibqu
- Base36: k51qzi5uqu5ditckag7gw12c301kwxac5fpobs62i21uysuiry3bobotvbenmc
Именно CIDv1 с кодировкой Base36 используется для поддоменов.
Шлюзы
Для доступа к файлам, размещённым в IPFS, требуется установка специального программного обеспечения. Расширение для веб-браузеров IPFS Companion делает опыт взаимодействия в веб-браузере со страницами из IPFS неотличимым от взаимодействия с обычными веб-страницами. IPFS Desktop позволяет рядовому пользователю легко использовать IPFS. Для администраторов серверов или для продвинутых пользователей возможна установка с помощью ipfs-update, из бинарных репозиториев или путём компиляции из исходного кода.
Необходимость установки программного обеспечения, даже если она не вызывает больших трудностей, сильно ограничивает потенциал IPFS. Для решения этой проблемы были придуманы шлюзы (gateways) – обычные веб-сайты, которые отдают содержимое из IPFS.
У такого способа разрешения имён есть два недостатка. Во-первых, если файл является веб-страницей, то ссылки на ней должны быть относительными. Во-вторых, если файл является веб-страницей, содержащей интерактивное одностраничное веб-приложение, то это угроза безопасности, поскольку приложение работает на том же домене, что и другие, посторонние приложения.
Поскольку IPFS использует адресацию на основе содержимого, малейшее изменение полностью меняет адрес. Для того, чтобы иметь постоянную ссылку на меняющееся содержимое, поверх IPFS построена система IPNS (InterPlanetary Name System). Эта система очень простая. С использованием приватного ключа узел сообщает сети, что он хочет опубликовать по адресу, связанному с этим ключом, определённый CID. Эта привязка остаётся действительной некоторый промежуток времени, обычно сутки. Чтобы адрес оставался актуальным, требуется периодически повторно осуществлять эту операцию, что можно автоматизировать, например, с помощью Cron.
К сожалению, этот процесс нельзя делегировать стороннему сервису, как это возможно в случае простого хранения файлов, не передавая ему свой приватный ключ. Однако, это позволяет раздавать веб-сайт, например, с постоянно включенного домашнего компьютера, даже если он находится за NAT. Система IPNS ещё развивается. Возможно, в будущем это ограничение будет устранено.
DNSLink
Для привязки CID к доменному имени необходимо создать две записи в DNS:
Преимуществом DNSLink перед IPNS, помимо более удобного имени веб-сайта и отсутствия необходимости иметь сервер для постоянного повторения процесса публикации, является отсутствие в ссылке доменного имени конкретного шлюза. Если шлюз перестал работать или заблокировал ваш веб-сайт, то достаточно выбрать другой шлюз и вписать его в запись DNS типа CNAME. В то же время, этот способ подразумевает привязку к традиционной системе доменных имён, которая является централизованной, в ней возможны цензура и изъятие домена.
Как работает IPFS?
Концепция IPFS практически аналогична World Wide Web, но больше напоминает кучу BitTorrent-ов, которые обмениваются объектами в одном хранилище Git. Файлы распространяются через протокол BitTorrent.
IPFS действует как комбинация Kodemila, BitTorrent и Git для создания распределенной подсистемы Интернета.
Дизайн протокола дает историческое управление версиями Интернета, как в Git. Каждому файлу и всем блокам внутри него присваивается уникальный идентификатор, который является криптографическим хешем. История версий отслеживается для каждого файла. Это приводит к постоянно доступному контенту, где веб-страницы не исчезают из-за отказавшего сервера или банкротства веб-узла. Кроме того, гарантируется аутентичность контента. При поиске файлов пользователь просит сеть найти узлы, которые хранят контент с уникальным ID-хешем.
Связи между узлами в IPFS принимают форму криптографических хешей. Для этого используется архитектура данных Merkle DAG (Directed Acyclic Graphs). К преимуществам DAG Merkle в IPFS относятся:
- Адресация контента . Содержимое имеет уникальный идентификатор, который является криптографическим хешем файла.
- Отсутствие дублирования . Файлы с одним и тем же содержимым нельзя дублировать и сохранить.
- Защита от вмешательства . Данные проверяются с помощью контрольной суммы: если хеш меняется, сеть узнает, что данные подделаны.
IPFS связывает файловые структуры друг с другом через ссылки Merkle, но каждый файл можно найти по понятным для человека именам. Для этого используется децентрализованная система имен IPNS.
Каждый узел сохраняет только интересующий контент и индексирует информацию о том, кто еще что хранит. Структура IPFS устраняет необходимость в централизованных серверах для доставки контента веб-сайта пользователям. Она дает доступ к контенту локально, в автономном режиме. Вместо поиска серверов, как происходит сейчас, пользователи будут искать уникальные идентификаторы, забирая контент с миллиона компьютеров, а не единого сервера.
Текущая главная реализация IPFS на языках Go: на Python и Javascript. Система совместима с Linux, MacOSX, Windows и FreeBSD.
Это проект с открытым исходным кодом и сообществом, вы можете вносить свой вклад на странице Github . Также можно быть оператором собственного узла IPFS.
Какие проблемы решает IPFS?
Читайте также: