Сетевая анонимность: общие вопросы
Вычеркнутые вопросы перенесены в FAQ
Я хочу настроить своё рабочее место для возможности анонимной работы в сети. Какие риски для анонимности существуют и с чего мне начать?
Прежде всего, заметим, что анонимность немыслима без безопасности, которая отвечает за корректность и надёжность работы всех систем. Создание и настройка сколь-нибудь надёжного в плане анонимности рабочего места требует, как минимум, хорошего знакомства с устройством операционной системы (ОС), с основами сетевых технологий и с основными положениями информационной безопасности: именно поэтому настоятельно рекомендуется начинать разбираться с анонимностью только после получения хотя бы общих (схематических) представлений об указанных технологиях. Попытка описать проблему анонимности в нескольких абзацах или даже страницах заведомо упустит массу важных тонкостей, но мы всё же попытаемся дать краткое описание, которое могло бы послужить подспорьем при настоящем серьёзном изучении проблемы.
Проблема анонимности возникает при обработке служебной и целевой информации, покидающей компьютер, которая, если представлять схематически, проходит через систему следующим образом: прикладная программа -> ОС -> сеть. Каждый из этих уровней обработки информации (прикладной, системный (ОС) и сетевой) может влиять на анонимность пользователя. В силу сложившихся обстоятельств, в плане безошибочности и корректности реализации прикладной уровень наименее надёжен из всех, системный – существенно надёжнее, и самый надёжный – это сетевой.
Специалисты различают программные уязвимости по тому, на каком уровне они работают: прикладном, системном или сетевом. Наиболее часто используются следующие термины: уязвимость вида local root, remote root и 0day. Под local root понимается уязвимость, позволяющая получить самые высокие права (системного уровня) программе, выполняемой на этом же компьютере, под remote root понимается получение тех же прав по сети, программой, выполняемой удалённо на другом компьютере. Какую-либо уязвимость, уже кем-то открытую, но ещё не известную публично, называют 0day. Уязвимости вида local root в надёжных ОС типа Linux/BSD обнаруживают от силы несколько раз в год, remote root – не каждый год [в OpenBSD – 2 раза за всю историю её более чем десятилетнего существования], а фатальные ошибки в браузерах, позволяющие выполнить любой код от имени его запустившего пользователя, находят едва ли не ежедневно.
В силу того, что разные уровни по степени защищённости отличаются очень значительно, контроль за анонимностью работы с данными предпочтительнее возлагать на системный уровень, т.е. на средства самой ОС, а не прикладных программ. Перейдём теперь к рассмотрению того, что происходит внутри каждого уровня и какие угрозы для анонимности он в себе таит.
Прикладные программы помимо целевой информации отправляют массу служебных данных в сеть, начиная от списка своих опций и настроек, и кончая проверками обновлений софта или даже синхронизацией своего содержимого с какими-то хранилищами в сети. Исправить такое поведение иногда частично удаётся с помощью соответствующих настроек, предусмотренных рассматриваемой программой, или же с помощью дополнительных плагинов. Однако, приемлемо (но не полностью) решить эту проблему можно перелагая контроль на системный уровень: запускать программы в специальном окружении, на выделенной ОС в виртуальной или физически выделенной машине. Такой подход может существенно уменьшить ущерб, в том числе, и от передачи каких-то общесистемных файлов и данных, которые программа может попытаться отослать в сеть, став подконтрольной из-за уязвимости злоумышленнику.
На системном уровне возможны критические утечки служебных передаваемых данных из-за неверной настройки или несовместимости того, как работают отдельные прикладные программы и сама ОС. Как правило, эта проблема может быть полностью решена правильной настройкой firewall'а.
Сетевой уровень – один из самых сложных в силу многообразия связанных с ним проблем, но, к счастью, пользователь почти всегда может от него абстрагироваться в рамках своей модели угрозы. Как правило, рассматривают анонимные системы двух типов защиты: систему Tor, которая предоставляет доступ к ресурсам интернета в режиме реального времени без покрывающего трафика, и систему Freenet, являющуюся анонимной файлообменной сетью с покрывающим трафиком. Ограничения на анонимность каждой из этих сетей – предмет отдельного обсуждения, и пока мы от него абстрагируемся.
Стоит заметить, что прикладной и системный уровни могут быть программно изолированы друг от друга. Каждая прикладная программа (каждый процесс), как правило работает от отдельного пользователя, и имеет соответствующие ему права и привелегии в системе. Если уязвимости вида local root в системе нет, то такая программа никак не может получить прав больше, чем права запустившего её пользователя. Поскольку запуск программ от отдельных непривелегированных пользователей повышает защищённость системы, этим настоятельно рекомендуется пользоваться.
Вышеперечисленные проблемы, возникающие при построении анонимизирующих систем, могут быть решены исключительно в доверяемой среде – той, в которой можно прозрачно проконтролировать все стадии работы программ с данными. К примерам доверяемых сред можно отнести такие популярные ОС как Linux или *BSD. Поведение Windows настолько непрозрачно и плохо управляемо при работе с данными (например, отсутствует функциональный и надёжный firewall), доверие к производителям софта требуется настолько полное, а список всевозможных утечек столь велик, что попытка её анонимной настройки для специалиста средней руки едва ли подъёмная задача. Если говорить прямо, то понятия анонимности/безопасности и Windows с нашей точки зрения попросту несовместимы.
Равно как и безопасность, анонимность – это не свершившийся факт, а непрерывный процесс. Степень надёжности анонимной настройки можно постоянно повышать в соответствии с ростом своих знаний и кваификации, реализовывая защиту от всё большего числа возможных способов деанонимизации. В качестве наглядной демонстрации вышеизложенного подхода, рассмотрим постепенное повышение защиты при анонимном серфинге сети посредством Tor, показывая на каждом шаге включение иммунитета от тех новых угроз, которые он начинает учитывать.
- Установка плагина torbutton (tb) на firefox (ff), который запускается от обычного пользователя (полностью прикладной уровень). Это базовая защита от деанонимизации, в том числе и от утечек служебных данных. ff и tb здесь полагаются неограниченно доверяемыми программами – уязвимость в них потенциально полностью деанонимизирует пользователя. Уязвимые tb и ff могут получить полный доступ как к системным файлам, так и всем файлам из неанонимного профиля пользователя (из домашней директории).
- Запуск связки ff+tb под отдельным пользователем tor_user и отдельным X-сервером, с последующей блокировкой на уровне системного firewall'а всех соединений, инициируемых tor_user'ом, идущих не в сеть Tor (уже системный уровень защиты). Этот уровень защиты уже не позволяет уязвимым ff и tb что-либо послать в сеть в обход Tor, и они уже не могут получить без local root уязвимости доступа к неанонимному профилю пользователя. Однако, они ещё могут получить доступ к системным настройкам и файлам, часть которых потенциально может содержать информацию, достаточную для деанонимизации, т.к. эти же системные настройки используются и неанонимным профилем под другим пользователем.
- Запуск связки ff+tb при тех же условиях, что и в предыдущем пункте, но теперь уже в виртуальной машине, причём сам Tor-клиент запускается на основной (host) ОС, и она же отвечает за перенаправление всего трафика от виртуальной машины в сеть Tor. При такой защите tb или ff не могут получить доступа ни к актуальным сетевым настройкам на host ОС, ни к актуальным системным файлам на ней. Для того, чтобы добраться до них, требуется иметь одновременно уязвимость класса local root в гостевой ОС с уязвимостью в виртуальной машине.
- Запуск связки ff+tb на физически выделенной (не виртуальной) машине, которая используется только для работы в Tor и не содрежит никакой информации, позволяющей связать анонимную и неанонимную личность пользователя. Трафик от этой машины направляется в сеть Tor внешним рутером, и он единственный, кто знает сетевые настройки реальной сети провайдера. Неанонимный профиль пользователя находится на отдельной машине, трафик с которой так же пропускает через себя рутер (сетевой уровень защиты). Для того, чтобы уязвимые ff или tb смогли что-то узнать об актуальных настройках сети, требуется уязвимость класса remote root либо против рутера, либо против машины с неанонимным профилем пользователя (на последней содержатся настройки, позволяющие ходить в сеть не через Tor).
Небольшое пояснение: выше под уязвимостью понимаются не только программные ошибки в общепринятом смысле, но и какие-либо другие ошибки в настройке, приводящие к деанонимизации.
комментариев: 9796 документов: 488 редакций: 5664
а то сильно смахивает не на FAQ, а на диссер (эту пометку делаю для своих текстов тоже (и в первую очередь) — не хватает краткости и много лишних речевых оборотов).
Большие абзацы можно ужимать списками/таблицами и прочими перечислениями по ключевым пунктам.
комментариев: 1515 документов: 44 редакций: 5786
Знаю, сам мучаюсь с этой проблемой. Это издержки профессии, в том числе и из-за недостатка в чтении хорошей литературы. Порой пишешь текст как есть, потом исправляешь по многу раз обороты, а все отсеять всё равно не получается. Вон, уважаемые Гости нашего форума уже сколько времени жалуются на распознавание моих псевдоанонимных постов ;-) Другая причина – перфекионизм: попытка написать так, чтобы нельзя было исказить мысль, чтобы не было двусмысленности, что достигается надоедливой избыточностью фраз.
На фабриках по производству роботов при тестированииВ университетах экзаменатор ловит каждое несторожное и неточное слово в ответе, к которому потом усредно прикапывается, а если есть возможность, то иблещетдобивает контрпримерами. Успешность сдачи экзамена определяется исключительно мерой неточных и неправильных утверждений в ответе, а не соотношением между количеством верных и неверных, как можно было бы подумать.Со всеми замечаниями согласен, так что если кто возьмётся поправить – я всеми рукми за. Сам пока занят.
комментариев: 1515 документов: 44 редакций: 5786
Можно сказать, что годится, но у тех, кто сможет его настроить необходимости в чтении данного FAQ'а нет – он предназначен в первую очередь для самых начинающих пользователей, которые пытаются объять не объятное, и у которых ещё нет никаких системных знаний по предмету.
Можно сказать, что не годится (плохо годится), исходя из того, что слишком часто Windows ломится в сеть в попытках скачать (в т.ч. потецнеиально трояноподобные) обновления, её трафик и настройки не так легко контролируются и могут сильно зависеть от версии к версии. Когда ОС начинает во все стороны сифонить данными (а потенциально она может сливать всё содержимое компьютера):
получаем уязвимость типа "сужения множества поиска". Припоминая текущий шум по поводу https://panopticlick.eff.org, это может существенно вредить анонимности.
Про таблицы сам в первую очередь подумал, но я с ними здесь ещё ни разу не работал, и потому предпочёл не связываться. Другой контраргумент – таблицы удобны для иллюстрации, но если в итоговом варианте оставить только таблицы, убрав (избыточные) пояснения, то потеряется точность смысла, которую вкладывал автор, пытаясь писать "правду, ещё раз правду, и ничего кроме правды" :) Я сам много лет медитировал над сложной научной литературой, не понимая предмет, и поэтому не по наслышке знаю насколько необходимы общечеловеческие пояснения, кажущиеся избыточными специалистам.
Была и другая мысль: этот текст вынести в качестве отдельной статьи, которую совместными усилиями бы дополнили до состояния законечнного введения в тему, а в самом FAQ бы ссылались при необходимости на это введение, давая лишь краткие ответы на вопросы (включая пока что единственный вышеотвеченный). Либо можно поначалу написать всё, что планировалось, а как упорядочить – позже виднее будет.
комментариев: 9796 документов: 488 редакций: 5664
Согласен, самые лучшие материалы для усвоения — это не справочники, а когда сначала объясняется на простом уровне, определения многократно повторяют (от поверхностного уровня к более глубокому) и только затем читателя подводят к чётким формулировкам и строгому описанию, а в конце уже даётся краткая выжимка в виде таблиц-шпаргалок, чтобы запомнить. Но объёмы и трудозатраты на создание таких работ растут катастрофически.
Да тоже возникла такая мысль после прочтения — вот она, почти готовая статья. Но поскольку написание статей трудозатратно, лучше в формате FAQ, а когда там какой-то пункт разрастётся, то вынести подробности отдельно и по его мотивам можно сделать и статью.
Вот. Раздел же называется черноВики — сюда пока складываем сырые заметки. Там дальше видно будет, что с ними делать.
Вероятно из-за технической ошибки, вместо слова Freenet в тексте иногда встречается Freedom.
комментариев: 9796 документов: 488 редакций: 5664
А что если некая зловредная программа передаст параметры железок выделенной машины (серийники и прочее)? Ведь по ним теоретически можно отследить их владельца.
*Конечно, это не так анонимно, как хотелось бы, но в рамках разумного допущения приемлемо. Когда вы одновременно открываете несколько вкладок в браузере под Tor'ом, вы тоже коррелируете все свои посещения между собой как на эксит-узлах, так и на посещаемых серверах (последние, скооперировавшись между собой, могут с какой-то вероятностью узнать, на какие ресурсы вы ещё ходите), потому описываемая модель анонимности упрощёная: одна выделенная машина — один анонимный профиль, в рамках которого вы ведёте себя так, как будто никакой анонимности и нет (точнее говоря, ведёте себя псевдонимно). Конечно, это крайний случай, а по факту и в среднем анонимность будет повыше :) Если для вас категорически неприемлемо связывание каких-то двух своих "анонимных профилей" (псевдонимов, если точнее), то под них должны быть разные выделенные машины, дабы сказанное оставалось в силе.
Если программно изменить MAC, троян все равно увидит.
В dmidecode, серийный номер винчестера и т.д.
комментариев: 11558 документов: 1036 редакций: 4118
Существует отдельная сфера безопасности — безопасность канала поставок (чем занимаются спецслужбы и военные, закупающие оборудование у гражданских подрядчиков). Надевайте бутафорские усы, тёмные очки и парик перед походом в магазин, что тут ещё скажешь...