Если же нужна 100% победа над вирусами, то можно использовать Check Point GO – это загрузочная флешка со встроенной ОС на базе Linux с предустановленным прикладным ПО, в том числе для организации VPN. Внедрение в это решение вирусов невозможно, т.к. память флешки имеет защиту от изменения, получается что-то наподобие CD/DVD.
В ней нет SquashFS (или иного образа с корневой файловой системой, который ищет код из initramfs в Live CD/USB), а значит Ubuntu проверит и пропустит данную файловую систему. Безоговорочный (без поиска характерных файлов и директорий) выбор файловой системы в качестве корневой происходит в Ubuntu лишь при одновременном соблюдении двух условий:
— на накопителе нет таблицы разделов, файловая система записана прямо в первый и последующий секторы;
— накопитель не идентифицируется программным обеспечением udev как имеющий дисковый тип (т. е. накопитель должен быть каким-то экзотическим).
А откуда уверенность, что Ubuntu из, например, двух предложенных корневых систем выберет именно ложную?
Перебор файловых систем происходит в алфавитном порядке следования имен их блочных устройств: /dev/sda1 будет протестирован до /dev/sdb1. НЖМД определяется системой раньше, а значит его разделы будут следовать первыми.
Она же по понимает, что в случае наличия корневой системы на HDD и на bootable флешке (что является штатной ситуацией) использовать нужно именно файловую систему с флешки.
Процесс загрузки унифицирован и для CD, и для USB Flash, и для USB HDD, т. е. за все отвечает один и тот же код, который «не знает» про конкретный способ загрузки в данной ситуации, а значит не может игнорировать какие-то накопители. Более того, этот же код должен работать и в ситуации, когда загрузочное устройство заведомо не содержит корневую файловую систему (это редкая, но штатная ситуация для Live CD/USB).
Использование Tails — это разумный подход с точки зрения безопасности.
Все-таки Tails, если в его последних релизах что-то существенно не меняли, не защитит от подмены корневой файловой системы с применением USB-накопителя (например, когда работник не отключает «плохую флешку» перед загрузкой в «доверенную среду»).
Выбор дистрибутива и его уровень его кастомизации — вопрос дискуссионный.
Поэтому нужно четко представлять возможные угрозы. Например, если заменить syslinux на GRUB, то появляется возможность подменить ядро операционной системы на то, которое разместили на другом накопителе. А применение спецификации мультизагрузки позволяет подменить и конфигурационный файл GRUB.
Следует отметить, что в live-initramfs (Debian) уже давно (с 2009 года) приоритет при поиске корневой файловой системы отдается съемным накопителям (а в Tails, если мне не изменяет память, загрузка вообще возможна лишь со съемных накопителей, что есть выстрел в ногу многим пользователям, ведь существуют накопители USB Flash и внешние НЖМД, которые udev не идентифицирует как съемные, а значит запуск Tails с них невозможен), в то же время в casper (Ubuntu) ничего особо не менялось в данном плане.
В Ubuntu, если не включать постоянное хранилище данных и не использовать диск с обновлениями драйверов, можно лишь подменить корневую файловую систему на свою (а из нее уже запустить свою программу и переключиться в настоящую корневую файловую систему для продолжения загрузки). Но, например, в KNOPPIX можно подсунуть собственные модули ядра (в ряде случаев они будут автоматически загружены в память) и обновления операционной системы (последние будут без какого-либо участия пользователя распакованы в корень с заменой существующих файлов).
И ядро в процессе поиска SquashFS подключает все доступные устройства
Да (но не ядро, а «early userspace»).
и запускает с них недоверенные программы
Да, но нужно придать им нужную форму. Поскольку Ubuntu поддерживает загрузку с файловых систем FAT и NTFS, то это вполне может сделать и «вирус» в «винде».
После завершения загрузки файловые системы на НЖМД действительно не подключены. Но это не значит, что они не были подключены и отключены ранее – в процессе загрузки. Вы не задавали себе вопрос, как Ubuntu определяет, с какого носителя нужно брать SquashFS? Ведь GRUB и syslinux не передают ядру адрес загрузочного устройства (такое происходит только при загрузке установленного дистрибутива, но никак не в случае с Live CD/USB), а значит этот адрес нужно получить как-то иначе.
И не получится сделать «доверенную среду» путем простой модификации Ubuntu, без существенного изменения процесса ее загрузки.
Я не вижу каких-то модификаций по этой части в инструкции. Что конкретно нужно сделать, чтобы отключить возможность автоматического запуска программ на НЖМД в процессе загрузки Ubuntu?
Ведь нельзя знать, против тебя это будет применено или не против тебя.
Нужно заметить, что любые показания могут быть повернуты против лица, их давшего. На это прямо указал ЕСПЧ в одном из своих решений, хотя, в принципе, данное утверждение вполне очевидно и без ссылок на официальные документы. Например, любые показания, данные свидетелем, можно обернуть против него, пригласив более убедительного лжесвидетеля (что весьма часто происходит в судебной практике). Но одна лишь возможность использовать показания лица против него самого не признается достаточной для обоснованного применения права не свидетельствовать против себя. К сожалению, четких формальных критериев, позволяющих отличить допрос свидетеля как будущего или фактического обвиняемого от допроса свидетеля как постороннего лица, нет, однако в практике ЕСПЧ, которая учитывается высшими российскими судами, таким критерием является отсутствие реального или планируемого преследования лица (см. цитату ранее), даже если такая потенциальная возможность в итоге и привела к осуждению этого лица.
не будет ли попытка доступа в рамках помощи следствию просто прямым нарушением закона (неправомерный доступ к информации, и т.п.)
В целом, не будет, хотя универсальной разрешающей нормы законодательство РФ не содержит. Что касается неправомерного доступа, то обладатель информации не может осуществить неправомерный доступ к собственной информации, а закон допускает появление у лица прав обладателя информации не только по факту создания информации или договору, но и по закону, к которому вполне можно отнести и нормы УПК РФ, разрешающие принудительное получение информации по определенной процедуре (например, по судебному решению).
Какой дистрибутив взят за основу?
Подготовка раздела и файловой системы:
Запись необходимых данных в файловую систему:
Ребут и запуск того же дистрибутива с параметром «nosplash».
Я ее уже демонстрировал, на одной конференции в том числе. Если очень хотите, могу показать еще раз, на примере с Ubuntu 14.04.
— на накопителе нет таблицы разделов, файловая система записана прямо в первый и последующий секторы;
— накопитель не идентифицируется программным обеспечением udev как имеющий дисковый тип (т. е. накопитель должен быть каким-то экзотическим).
Перебор файловых систем происходит в алфавитном порядке следования имен их блочных устройств: /dev/sda1 будет протестирован до /dev/sdb1. НЖМД определяется системой раньше, а значит его разделы будут следовать первыми.
Процесс загрузки унифицирован и для CD, и для USB Flash, и для USB HDD, т. е. за все отвечает один и тот же код, который «не знает» про конкретный способ загрузки в данной ситуации, а значит не может игнорировать какие-то накопители. Более того, этот же код должен работать и в ситуации, когда загрузочное устройство заведомо не содержит корневую файловую систему (это редкая, но штатная ситуация для Live CD/USB).
Все-таки Tails, если в его последних релизах что-то существенно не меняли, не защитит от подмены корневой файловой системы с применением USB-накопителя (например, когда работник не отключает «плохую флешку» перед загрузкой в «доверенную среду»).
Поэтому нужно четко представлять возможные угрозы. Например, если заменить syslinux на GRUB, то появляется возможность подменить ядро операционной системы на то, которое разместили на другом накопителе. А применение спецификации мультизагрузки позволяет подменить и конфигурационный файл GRUB.
1. образ для записи на НЖМД – http://digitalcorpora.org/corp/aor/drives/2009-aor-test_grml200910.iso (это PoC);
2. скриншот для этого образа – http://forensicswiki.org/images/4/4c/Grml.png.
Следует отметить, что в live-initramfs (Debian) уже давно (с 2009 года) приоритет при поиске корневой файловой системы отдается съемным накопителям (а в Tails, если мне не изменяет память, загрузка вообще возможна лишь со съемных накопителей, что есть выстрел в ногу многим пользователям, ведь существуют накопители USB Flash и внешние НЖМД, которые udev не идентифицирует как съемные, а значит запуск Tails с них невозможен), в то же время в casper (Ubuntu) ничего особо не менялось в данном плане.
Fixed.
Да (но не ядро, а «early userspace»).
Да, но нужно придать им нужную форму. Поскольку Ubuntu поддерживает загрузку с файловых систем FAT и NTFS, то это вполне может сделать и «вирус» в «винде».
И не получится сделать «доверенную среду» путем простой модификации Ubuntu, без существенного изменения процесса ее загрузки.
А что защищает «доверенную среду» от автоматического исполнения недоверенных программ с НЖМД?
Здесь речь идет про возможность повернуть показания против давшего их лица.
Нужно заметить, что любые показания могут быть повернуты против лица, их давшего. На это прямо указал ЕСПЧ в одном из своих решений, хотя, в принципе, данное утверждение вполне очевидно и без ссылок на официальные документы. Например, любые показания, данные свидетелем, можно обернуть против него, пригласив более убедительного лжесвидетеля (что весьма часто происходит в судебной практике). Но одна лишь возможность использовать показания лица против него самого не признается достаточной для обоснованного применения права не свидетельствовать против себя. К сожалению, четких формальных критериев, позволяющих отличить допрос свидетеля как будущего или фактического обвиняемого от допроса свидетеля как постороннего лица, нет, однако в практике ЕСПЧ, которая учитывается высшими российскими судами, таким критерием является отсутствие реального или планируемого преследования лица (см. цитату ранее), даже если такая потенциальная возможность в итоге и привела к осуждению этого лица.
В целом, не будет, хотя универсальной разрешающей нормы законодательство РФ не содержит. Что касается неправомерного доступа, то обладатель информации не может осуществить неправомерный доступ к собственной информации, а закон допускает появление у лица прав обладателя информации не только по факту создания информации или договору, но и по закону, к которому вполне можно отнести и нормы УПК РФ, разрешающие принудительное получение информации по определенной процедуре (например, по судебному решению).