All streams
Search
Write a publication
Pull to refresh
43
0
Максим @msuhanov

User

Send message
Если же нужна 100% победа над вирусами, то можно использовать Check Point GO – это загрузочная флешка со встроенной ОС на базе Linux с предустановленным прикладным ПО, в том числе для организации VPN. Внедрение в это решение вирусов невозможно, т.к. память флешки имеет защиту от изменения, получается что-то наподобие CD/DVD.


Какой дистрибутив взят за основу?
Кстати говоря, если интересно, то посмотрите, как в ALT Linux Rescue сделана защита от подмены корневой файловой системы.
Подготовка SquashFS (делать прямо из Live CD/USB):

mkdir squashfs
cd squashfs/
mkdir sbin bin dev etc usr tmp var
cp /bin/busybox bin/
echo -e '#!/bin/busybox sh\nwhile true; do\necho pwned\ndone' > sbin/init
chmod +x sbin/init
sudo apt-get install squashfs-tools
mksquashfs . ../a.squashfs
cd ..


Подготовка раздела и файловой системы:

sudo fdisk /dev/sda # тут нужно создать один раздел
sudo mkfs.ntfs -f /dev/sda1


Запись необходимых данных в файловую систему:

sudo mount /dev/sda1 /mnt/
cp -R /cdrom/.disk /mnt/
mkdir /mnt/casper
mv a.squashfs /mnt/casper/
sudo umount /mnt/


Ребут и запуск того же дистрибутива с параметром «nosplash».
Вы возьметесь продемонстировать атаку по подмене файловой системы?


Я ее уже демонстрировал, на одной конференции в том числе. Если очень хотите, могу показать еще раз, на примере с Ubuntu 14.04.
В ней нет 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.
Для grml 2009.10 в режиме Live CD:
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) ничего особо не менялось в данном плане.
В Ubuntu, если не включать постоянное хранилище данных и не использовать диск с обновлениями драйверов, можно лишь подменить корневую файловую систему на свою (а из нее уже запустить свою программу и переключиться в настоящую корневую файловую систему для продолжения загрузки). Но, например, в KNOPPIX можно подсунуть собственные модули ядра (в ряде случаев они будут автоматически загружены в память) и обновления операционной системы (последние будут без какого-либо участия пользователя распакованы в корень с заменой существующих файлов).
И ядро в процессе поиска SquashFS подключает все доступные устройства


Да (но не ядро, а «early userspace»).

и запускает с них недоверенные программы


Да, но нужно придать им нужную форму. Поскольку Ubuntu поддерживает загрузку с файловых систем FAT и NTFS, то это вполне может сделать и «вирус» в «винде».
После завершения загрузки файловые системы на НЖМД действительно не подключены. Но это не значит, что они не были подключены и отключены ранее – в процессе загрузки. Вы не задавали себе вопрос, как Ubuntu определяет, с какого носителя нужно брать SquashFS? Ведь GRUB и syslinux не передают ядру адрес загрузочного устройства (такое происходит только при загрузке установленного дистрибутива, но никак не в случае с Live CD/USB), а значит этот адрес нужно получить как-то иначе.

И не получится сделать «доверенную среду» путем простой модификации Ubuntu, без существенного изменения процесса ее загрузки.
Я не вижу каких-то модификаций по этой части в инструкции. Что конкретно нужно сделать, чтобы отключить возможность автоматического запуска программ на НЖМД в процессе загрузки Ubuntu?
при загрузке с которого пользователь сразу получит возможность подписи документов в браузере на неизвлекаемых ключах в доверенной среде


А что защищает «доверенную среду» от автоматического исполнения недоверенных программ с НЖМД?
даже если такая потенциальная возможность в итоге и привела к осуждению этого лица


Здесь речь идет про возможность повернуть показания против давшего их лица.
Ведь нельзя знать, против тебя это будет применено или не против тебя.


Нужно заметить, что любые показания могут быть повернуты против лица, их давшего. На это прямо указал ЕСПЧ в одном из своих решений, хотя, в принципе, данное утверждение вполне очевидно и без ссылок на официальные документы. Например, любые показания, данные свидетелем, можно обернуть против него, пригласив более убедительного лжесвидетеля (что весьма часто происходит в судебной практике). Но одна лишь возможность использовать показания лица против него самого не признается достаточной для обоснованного применения права не свидетельствовать против себя. К сожалению, четких формальных критериев, позволяющих отличить допрос свидетеля как будущего или фактического обвиняемого от допроса свидетеля как постороннего лица, нет, однако в практике ЕСПЧ, которая учитывается высшими российскими судами, таким критерием является отсутствие реального или планируемого преследования лица (см. цитату ранее), даже если такая потенциальная возможность в итоге и привела к осуждению этого лица.
не будет ли попытка доступа в рамках помощи следствию просто прямым нарушением закона (неправомерный доступ к информации, и т.п.)


В целом, не будет, хотя универсальной разрешающей нормы законодательство РФ не содержит. Что касается неправомерного доступа, то обладатель информации не может осуществить неправомерный доступ к собственной информации, а закон допускает появление у лица прав обладателя информации не только по факту создания информации или договору, но и по закону, к которому вполне можно отнести и нормы УПК РФ, разрешающие принудительное получение информации по определенной процедуре (например, по судебному решению).

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity