Разработчики анонимной сети Tor представили (https://lists.torproject.org/pipermail/tor-dev/2016-December...) первый выпуск проекта sandboxed-tor-browser (https://trac.torproject.org/projects/tor/wiki/doc/TorBrowser...) (выпуск 0.0.1 был пропущен, поэтому сразу сформирован 0.0.2), в рамках которого подготовлена прослойка для запуска Tor Browser в изолированном окружении, не позволяющем получить информацию о системе и параметрах сетевого подключения в случае успешной эксплуатации уязвимостей (https://www.opennet.dev/opennews/art.shtml?num=45588) в браузере и выполнении кода атакующих. Разработка пока имеет статус экспериментальной альфа-версии.
Изоляция обеспечивается при помощи контейнера, сформированного через инструментарий bubblewrap (https://github.com/projectatomic/bubblewrap) с использованием технологии seccomp-bpf и пространств имён ядра Linux. Для упрощения загрузки, установки, обновления, настройки и запуска Tor Browser в контейнере подготовлен специальный интерфейс на GTK+. Директории ~/Desktop и ~/Downloads внутри контейнера отражаются на внешние директории ~/.local/share/sandboxed-tor-browser/tor-browser/Browser/Desktop и ~/.local/share/sandboxed-tor-browser/tor-browser/Browser/Downloads. Для вывода звука опционально может использоваться PulseAudio. В настоящее время поддерживается только сборка из исходных текстов (https://gitweb.torproject.org/tor-browser/sandboxed-tor-brow.../) для Linux, бинарные пакеты обещают сформировать на этой неделе. Поддерживается только установка на 64-разрядных системах.
Из временных ограничений, которые скоро будут устранены отмечаются: невозможность многоязычного ввода с использованием сервисов, подобных I-Bus, отсутствие поддержки подключаемого транспорта meek (https://trac.torproject.org/projects/tor/wiki/doc/meek), неработоспособность службы уведомлений о наличии обновлений (обновления устанавливаются отдельной утилитой). Из ограничений, которые из соображений безопасности скорее всего останутся нереализованными, выделяются: транспорт FTE (https://fteproxy.org/), ускорение 3D-графики (доступен программный рендеринг, но аппаратный запрещён из-за достаточно опасных обращений к драйверам), вывод на принтер (поддерживается печать в файл), использование Tor Browser для обращений к чему-либо, кроме сети Tor.
URL: https://lists.torproject.org/pipermail/tor-dev/2016-December...
Новость: http://www.opennet.dev/opennews/art.shtml?num=45667
А почему бы не использовать виртуалку, а не новую прослойку, у которой свои баги и заморочки в подарок?
Есть ли возможность узнать что-то особое о хосте, из виртуалбокса к примеру?
Виртуалку можно использовать и сейчас, но у неё большие накладные расходы.Если виртуалку каждый раз не пересоздавать при запуске тор-браузера, то если браузер взломают и понапихают в гостевую ОС бекдоров, то они будут жить там долгое время.
Т.е. даже если секьюрити баг в тор-браузере в обновлении закроют, то зараза всё равно останется в системе.bubblewrap насколько я понял каждый раз пересоздаёт контейнер, так что время жизни потенциальной заразы ограничено временем работы тор-браузера. А при обновлении с исправлениями уязвимостей зараза уже не переедет в новый контейнер.
Насчёт безопасности прослоек - bubblewrap использует ядерные namespaces, так что безопасность по большей степени зависит от них, а не от этой утилиты (хотя в ней конечно тоже могут быть баги).
а это хорошая идея. С пересозданием виртуалки
> а это хорошая идея. С пересозданием виртуалкиТолько после пересоздания нужно не забывать обновлять тор-браузер, ставить обновления ОС и прочее... Слишком много возни.
1. Снапшот.
2. Браузер каждый раз пускаем со снапшота. Или ro, или откат перед каждым запуском.
3. Запускаем из основного контейнера, обновляем, новый снапшот.Как-то так, с поправкой на возможности любимой среды виртуализации.
Сто́ит ли некоторое улучшение анонимности такой возни — отдельный вопрос…
> 1. Снапшот.
> 2. Браузер каждый раз пускаем со снапшота. Или ro, или откат перед
> каждым запуском.
> 3. Запускаем из основного контейнера, обновляем, новый снапшот.
> Как-то так, с поправкой на возможности любимой среды виртуализации.
> Сто́ит ли некоторое улучшение анонимности такой возни — отдельный вопрос…— Вторая свежесть — вот что вздор! Свежесть бывает только одна — первая, она же и последняя. А если осетрина второй свежести, то это означает, что она тухлая!»
В данном случае, аналогия не верна.
>> но у неё большие накладные расходыну сколько можно эту чушь с грязношвабра повторять как мантру? вы сами то хоть тесты делали? 5% - накладные расходы на виртуализацию (в большинстве случаев так вообще 2-3%).
Пруфы в студию, ссылки на проведенные тесты, графики, и прочее... Газификацией луж занимаетесь товарищ...
в гугле забанили? вот результаты из топа выдачи:https://habrahabr.ru/company/cloud4y/blog/282918/
https://major.io/2014/06/22/performance-benchmarks-kvm-vs-xen/
Чушь, товарищ leap42, вы несёте. Чтобы накладные расходы были 2-3% нужно иметь топовые железяки.
с какого уровня начинаются топовые железки? на каком заканчиваются нетоповые? на каком основании сделаны выводы? ссылки на подтверждающие тесты будут?
Да, да... Только кто учитывает, сколько затратится ОЗУ, сколько места на хранилище для виртуалки? Да и кому это интересно, если 1 гиг только на запуск (не забыть время загрузки), если 3-4 гига жестяка уходит под виртуалку? Все эти отчеты хороши только пока у тебя до пса ресурсов.
я в состоянии сам потестировать, чай не на винде сижу
а газификацией луж, дорогой аноним, занимаются апологеты докера
вот ещё:
http://openstack-in-production.blogspot.ru/2015/08/kvm-and-h...
для тех, кто не осилит, кратко:
оверхед KVM в сценарии 4 гостя по 8 ядер = 2,5% (после тюнинга меньше)
оверхед Hyper-V в сценарии 4 гостя по 8 ядер = 0.8%
> вот ещё:
> http://openstack-in-production.blogspot.ru/2015/08/kvm-and-h...
> для тех, кто не осилит, кратко:
> оверхед KVM в сценарии 4 гостя по 8 ядер = 2,5% (после
> тюнинга меньше)
> оверхед Hyper-V в сценарии 4 гостя по 8 ядер = 0.8%Сколько оверхед по занятой памяти и жесткому диску?
> Сколько оверхед по занятой памяти и жесткому диску?Ты бы ещё износ клавиатуры посчитал и пробег мыши, ей-богу. Даже если контейнеру для запуска понадобится 32Гб жёсткого диска и 8Гб RAM, какая разница? В каких реальных случаях тебе понадобится больше одного такого контейнера? А учитывая, что реально ему нужно будет 5-7 Гб HDD и 1-1,5 Гб RAM, говорить вообще не о чем.
А зачем пересоздавать, если можно откатить до снимка на начало работы. Обновить систему и обновить снимок.
> Есть ли возможность узнать что-то особое о хосте, из виртуалбокса к примеру?Ping из виртуалбокса без проблем раскроет IP-адрес основной системы, чтобы этого небыло нужно городить хитрый проброс всего трафика через tor proxy.
Вас отрезали от ВПН?
Что там пинговать собираетесь?
> Вас отрезали от ВПН?Зная IP VPN наделённые властью могут надавить на провайдера VPN и узнать реальный IP клиента. Как выход можно весь трафик заворачивать в Tor, но это скорее исключение из правил. Обычно не парятся и запускают Tor в виртуальной машине (Tails запускают). Как думайте ловят всех этих владельцев притонов в onion-зоне? Попадаются именно на таких мелочах и неосторожности.
> Что там пинговать собираетесь?
свой внешний хост, на котором высветится не интранет адрес виртуальной машины, а уже оттранслированный IP клиента или адрес VPN (см. ответ выше).
>> Вас отрезали от ВПН?
> Зная IP VPN наделённые властью могут надавить на провайдера VPN и узнать
> реальный IP клиента. Как выход можно весь трафик заворачивать в Tor,
> но это скорее исключение из правил. Обычно не парятся и запускают
> Tor в виртуальной машине (Tails запускают). Как думайте ловят всех этих
> владельцев притонов в onion-зоне? Попадаются именно на таких мелочах и неосторожности.Вся эта возня с законами о https://www.opennet.dev/opennews/art.shtml?num=46944 нужна по многим причинам, но одна из них ИМХО, государство в лице всей вертикали, и прочие присосавшиеся, да простые работники (и создание новых рабочих мест), что бы не ударить лицом в грязь должно осваивать больше средств, чем крутится на том рынке с которым пытаются бороться. А то как то несолидно выглядит ;)
Вот бы посмотреть статистику как именно попадаются.
Там ведь специалисты работают. У них уже наверняка наработаны методы.
Максимум ИМХО при передаче бабла.
а это только если пользоваться конфигурацией по-умолчанию (заточеную под удобство использования)
>> Есть ли возможность узнать что-то особое о хосте, из виртуалбокса к примеру?
> Ping из виртуалбокса без проблем раскроет IP-адрес основной системы, чтобы этого небыло
> нужно городить хитрый проброс всего трафика через tor proxy.Хитрый, говорите...
# # Add group and user
# groupadd -g 17500 whowho
# useradd -m -s /bin/sh -G whowho -c "Wgotsy" wgotsy
# passwd wgotsy# su - wgotsy
$ mkdir ~/opt
$ cd ~/opt
# # Download and install tor-browser
# #
# # https://www.torproject.org/download/download-easy.html#linux$ wget -c https://www.torproject.org/dist/torbrowser/6.0.7/tor-browser...
$ wget -c https://www.torproject.org/dist/torbrowser/6.0.7/tor-browser...# #
# # https://www.torproject.org/projects/torbrowser.html.en#downl...
# #
# # Linux Instructions
# #
# # !!! Do not unpack or run TBB as root. !!!
# #
# # Download the architecture-appropriate file above, save it somewhere, then run one of the following two commands to extract the package archive:
# #
# # tar -xvJf tor-browser-linux32-6.0.7_LANG.tar.xz
# #
# # or (for the 64-bit version):
# #$ tar -xvJf tor-browser-linux64-6.0.7_LANG.tar.xz
# #
# # (where LANG is the language listed in the filename).
# #
# # Once that's done, switch to the Tor browser directory by running:
# #$ cd tor-browser_LANG
# #
# # (where LANG is the language listed in the filename).
# #
# # To run Tor Browser, click either on the Tor Browser or the Tor Browser Setup icon or execute the start-tor-browser.desktop file in a terminal:
# #
# # !!! Do not unpack or run TBB as root. !!!
# #$ ./start-tor-browser.desktop
# #
# # !!! Do not unpack or run TBB as root. !!!
# #
# # This will launch Tor Launcher and once that connects to Tor, it will launch Firefox.
# #
# # Get user gid
$ id
uid=17222(wgotsy) gid=17222(wgotsy) группы=17222(wgotsy),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),60(games),104(scanner),107(bluetooth),109(netdev),17500(whowho)
$ exit$ su - root
Make firewall rules
# echo '
:
TOTOR_GID="17222"
if test -z "${TOTOR_GID}" ; then exit ; fi
LOCAL_TOR_PORTS="9150,9151"
REMOTE_TOR_PORTS="9050"
REMOTE_TOR_HOST="192.168.57.62"
## OUTPUT ##
# Clear previous output firewall rules
# Re-create OUTPUT-torify-clnt if it doesn't exist
ipt_all -N OUTPUT-torify-clnt || true
ipt_all -F OUTPUT-torify-clnt || true
ipt_all -D OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || true
ipt_all -I OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || trueipt_all -A OUTPUT-torify-clnt -m owner ! --gid-owner "${TOTOR_GID}" -j RETURN
#ipt_all -A OUTPUT-torify-clnt -j LOG
##ipt_all -A OUTPUT-torify-clnt -m tcp -p tcp -m owner --gid-owner "${TOTOR_GID}" -j DROP
##ipt_all -A OUTPUT-torify-clnt -m udp -p udp -m owner --gid-owner "${TOTOR_GID}" -j DROP
##ipt_all -A OUTPUT-torify-clnt -m owner --gid-owner "${TOTOR_GID}" -j DROP
## IPv4 OUTPUT in table nat ##
# Clear previous output firewall rules
# Re-create OUTPUT-torify-clnt if it doesn't exist
ipt_inet -t nat -N OUTPUT-torify-clnt || true
ipt_inet -t nat -F OUTPUT-torify-clnt || true
ipt_inet -t nat -D OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || true
ipt_inet -t nat -I OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || trueipt_inet -t nat -A OUTPUT-torify-clnt -m owner ! --gid-owner "${TOTOR_GID}" -j RETURN
ipt_inet -t nat -A OUTPUT-torify-clnt -m tcp -p tcp -m multiport -d localhost --destination-ports "${LOCAL_TOR_PORTS}" -j RETURN
ipt_inet -t nat -A OUTPUT-torify-clnt -m udp -p udp -m multiport -d localhost --destination-ports "${LOCAL_TOR_PORTS}" -j RETURN
ipt_inet -t nat -A OUTPUT-torify-clnt -m tcp -p tcp -d "${REMOTE_TOR_HOST}" --dport "${REMOTE_TOR_PORTS}" -j RETURN
ipt_inet -t nat -A OUTPUT-torify-clnt -m udp -p udp -d "${REMOTE_TOR_HOST}" --dport "${REMOTE_TOR_PORTS}" -j RETURN
ipt_inet -t nat -A OUTPUT-torify-clnt -j LOG
ipt_inet -t nat -A OUTPUT-torify-clnt -m tcp -p tcp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
ipt_inet -t nat -A OUTPUT-torify-clnt -m udp -p udp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
## IPv6 OUTPUT in table mangle ##
# Clear previous output firewall rules
# Re-create OUTPUT-torify-clnt if it doesn't exist
ipt_inet6 -t mangle -N OUTPUT-torify-clnt || true
ipt_inet6 -t mangle -F OUTPUT-torify-clnt || true
ipt_inet6 -t mangle -D OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || true
ipt_inet6 -t mangle -I OUTPUT -m owner --gid-owner "${TOTOR_GID}" -j OUTPUT-torify-clnt || trueipt_inet6 -t mangle -A OUTPUT-torify-clnt -m owner ! --gid-owner "${TOTOR_GID}" -j RETURN
ipt_inet6 -t mangle -A OUTPUT-torify-clnt -m tcp -p tcp -m multiport -d localhost --destination-ports "${LOCAL_TOR_PORTS}" -j RETURN
ipt_inet6 -t mangle -A OUTPUT-torify-clnt -m udp -p udp -m multiport -d localhost --destination-ports "${LOCAL_TOR_PORTS}" -j RETURN
ipt_inet6 -t mangle -A OUTPUT-torify-clnt -j LOG
#ipt_inet6 -t mangle -A OUTPUT-torify-clnt -m tcp -p tcp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
#ipt_inet6 -t mangle -A OUTPUT-torify-clnt -m udp -p udp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
ipt_inet6 -t mangle -A OUTPUT-torify-clnt -j DROP' > /etc/My_Favorit_Firewall/rules/60torify-client.rules
# service My_Favorit_Firewall reload
Далее (в следующей части) настройка Tor (запускаемого вместе с tor-browser-ом) and Tor-browser (хотя его как раз настраивать не надо) от пользователя.;)
ipt_inet -t nat -A OUTPUT-torify-clnt -m tcp -p tcp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
ipt_inet -t nat -A OUTPUT-torify-clnt -m udp -p udp -j DNAT --to-destination "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
It's a shame! One line is lost.
+ ipt_inet -t nat -A OUTPUT-torify-clnt -j DNAT --to-destination "${REMOTE_TOR_HOST}"
> ipt_inet -t nat -A OUTPUT-torify-clnt -m tcp -p tcp -j DNAT --to-destination
> "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
> ipt_inet -t nat -A OUTPUT-torify-clnt -m udp -p udp -j DNAT --to-destination
> "${REMOTE_TOR_HOST}":"${REMOTE_TOR_PORTS}"
> It's a shame! One line is lost.
> + ipt_inet -t nat -A OUTPUT-torify-clnt -j DNAT --to-destination "${REMOTE_TOR_HOST}"Выше вот интересные комменты.
А ты новость прочитай еще раз, там прямо даже ответ есть.
Меньше требует памяти.
Но вм лучше. Лучше использовать вм
Таненбаум уж 30 лет назад говорил, и Minix спроектирован так, что всё должно быть изначально в песочницах. Ядро следит за тем - какой песочнице какие права выдаются.Обновления независимые и обратимые.
А теперь:
- Андроид права и jail
- IOS права и jail
- Systemd jail
- FreeBSD
- Docker
- LXC
- RKT
- OpenVZ
- Snaps
- Flatpack
...
Я знаю что это разного применения утилы.
Но Вам не кажется, что изоляция/песочница - вполне может быть одна?
Они все используют Cgroups/Namespaces. Все работают от рута.
Так может уже пора что-то одно написать?In Minix everything but the micro-kernel is a user process.
Я о том, что он показал, что нам надо - ещё 30 лет назад. А мы пропустили сквозь уши, пишем разные велосипеды но в итоге идём к тому-же самому. Только с полным бардаком.
Как и команда ядра теперь думает как в монолитном ядре отделить от него драйвера.
Чего одно? Вы предлагаете для разных платформ одно писать? Нет, я понимаю ещё объединить flatpack и snaps. Я могу понять, что надо перенести из FreeBSD jail. Но что вы предлагаете на ведройде делать? Там и так всё анально разграничено и тогда им придётся архитектуру полностью менять. iOS туда же, да ещё и закрытое.Docker нужен не для визуализации а для быстрого развёртывания софта в контейнере. Что-то типа chroot, но защищённый.
Одна утилита для одной цели, давайте будем придерживаться этого золотого правила, ок?
А каждая команда пилит свой путь, истиннее, чем путь других команд. И недопиливает по чуть-чуть, что заставляет еще кого-то уже "свое" делать.Таненбаум дядька легендарный, но систему свою кроме как пиарить как предтечу Линукса, особо не смог к делу пристроить. Этак можно и Ивана Грозного приплести, что он велел нехристям жить опричь российских людей - тоже песочница, да еще с firewall-ом, тьфу, заставой!
Сказать-то каждый может. Сделать - нет.
Кажется. Нужно уходить с линуксов вообще. Только использовать прослойку для работы с оборудыванием на первое время. Вон Genode куда-то туда и идет.
> оборудыванием?адназначна!
>Tor Browser в изолированном окруженииSocks proxy работать не будет и придется запускать еще один Tor. Почему все разработчики ПО считают, что компьютеры резиновые?
>5% - накладные расходы на виртуализацию (в большинстве случаев так вообще 2-3%).
Вы это скажите моему ноуту, может вас послушает и перестанет жрать память и проц.
Абсолютно та же ситуация, по ощущениям накладные расходы все 20-30% да и держать ось в коробке ради браузера, изврат как по мне...
> Вы это скажите моему ноуту, может вас послушает и перестанет жрать память и проц.Ноут. Жрёт память и проц. Бардак в голове ничего не жрёт?
Типичный ответ типичного анонима...
> Socks proxy работать не будет и придется запускать еще один Tor.Где это написано?
Тема не новая:https://blog.torproject.org/blog/q-and-yawning-angel
https://wiki.mozilla.org/Security/Sandbox
По первой ссылке интервью с автором sandboxed-tor-browser, первый релиз которого описан в обсуждаемой новости. Планировали создать уже давно, но пригодный для использования альфа-выпуск сделали только сейчас.По второй ссылке никакой защиты от определения реального IP, в то время, как главной задачей sandboxed-tor-browse является защита от утечки IP в случае взлома браузера.
Возможно ли для этих целей использовать Linux Containers (LXC) ?
А чем это отличается от других контейнеров? Контейнер системд или просто chroot, например.
Запускаю фф в firejail, а тор не нужен.
Запускай в астрале,
там даже инета не надо
А можно ли sandboxed-tor-browser запустить внутри firejail, запущенного внутри docker?
И насколько скажется на производительности?
Мальчик: Дяденька, а можно я прыгну с 10 этажа?
Дяденька: Можно мальчик, но только 1 раз.
Раскрутка тора ведётся весьма активно. Кому-то это сильно нужно.
>bubblewrapНо... ведь... флатпак...