4

Как предотвратить утечку данных из /tmp без ramfs или tmpfs?

Есть ли простой способ настроить автоматическое монтирование /tmp во время загрузки, чтобы файлы записывались на диск, не оставляя восстанавливаемых данных после выключения компьютера? Например, ecryptfs со случайным ключом ...

Я использую Ubuntu 10.10.


Я не использую Full-Disk Encryption, потому что для меня важна автоматическая загрузка. Я в порядке с системными файлами, которые не зашифрованы. Меня беспокоит то, что личные данные, работа в Интернете и т.д. В конечном итоге затрагивают диск в незашифрованном виде, поскольку некоторые приложения записывают его в /tmp .

Я не могу использовать tmpfs или ramfs потому что мне не хватает оперативной памяти (я не хочу использовать swap).

Решение на уровне приложений неприемлемо, потому что я не могу гарантировать (и не хочу), что каждое отдельное приложение будет настроено так, чтобы не записывать в /tmp .

4 ответа4

1

Может или не может работать, но ... вы можете попробовать установить /tmp, чтобы пользователи не могли его записать, и установить export TMPDIR="$HOME/tmp" (предполагается, что $ HOME зашифрован) где-то, что будет использоваться в env of все сеансы (например, /etc /profile, возможно?). Я думаю, что многие вещи должны уважать переменную среды TMPDIR, но все они не обязательно соблюдают ее.

0

Вы можете попробовать запустить firefox в изолированной программной среде selinux, которая не только запретит /tmp другим пользователям, но и защитит ваши домашние файлы от firefox :-)

Не уверен, насколько это будет полезно в Ubuntu, но после некоторой настройки он отлично работает на моем Fedora (15).

0

все приложения ведут себя одинаково за исключением того, что то, что они пишут в /tmp, не достигает моего диска

Чтобы данные в /tmp не доходили до диска, вам нужно поместить их в оперативную память (ramfs или tmpfs). С другой стороны, поскольку это не варианты для вас, у вас есть еще два варианта (с данными на диске):

  1. Измените ярлыки по умолчанию или создайте псевдонимы для команд, которые, как вы опасаетесь, могут привести к утечке информации, например:

    alias vi='sandbox -M -H sehome/ -T tmp/ vi'
    

    Таким образом, пользователь (или вы) не должны забывать запускать песочницу при каждом запуске приложения.

  2. Автоматически очищать /tmp когда в нем больше нет заблокированных файлов (задание cron, которое может выполняться каждые 1–30 минут) или при выходе из системы. Это мой личный выбор:

http://www.linuxquestions.org/questions/linux-general-1/script-to-empty-tmp-folder-415361/

Добавьте эту строку в ваш файл ~/bash_logout. rm -rf /tmp /* 2> & /dev /null

Или вы можете возиться с использованием /dev /zero и dd, чтобы фактически стереть данные из вашего /tmp

-1

Вы можете использовать overlayfs или bind mount и т.д.

Кроме того, если после создания / монтирования / tmp вы просто смонтируете по нему любой путь, являющийся зашифрованным контейнером, это поможет.

Также вы можете сделать что-то действительно странное и, возможно, войти в режим паники.

Вы можете смонтировать /dev /null поверх /tmp, поэтому любая запись в /tmp никуда не денется.

Почему многие люди думают о столь сложных решениях, которые не соответствуют тому, что вы действительно хотите ...

Вы сказали, что хотите, чтобы данные не попадали на жесткий диск ... просто смонтируйте путь /dev /null

Конечно, данные не будут читаемы после записи ... они будут потеряны при записи ... это то, что разработано для /dev /null.

Но если вы хотите, чтобы данные попадали на диск, но не в обычном виде (иначе, в зашифрованном виде)... просто сделайте это:

  1. Создайте файл для хранения данных
  2. Создайте на нем контейнер LUKS (см. Параметр --header)
  3. Смонтировать его на пути

Так что любая запись будет идти на диск, но будет зашифрована.

Я должен предупредить вас об этом:

  • Знаете ли вы каждую строку исходного кода со всех частей (ядра, приложений и т.д.), Которые будут запускаться на ПК? Если ответ «нет», вам необходимо решение для шифрования диска на 100% (включая /boot и т.д.) ... Grub2 + LUKS (многослойный) действительно хорош, посмотрите, как редактировать сценарии initramfs для монтирования таких LUKS, и будьте готовы дважды вводить парольные фразы при каждой загрузке ... не делайте глупостей, храните файл KEY внутри initramfs, чтобы не вводить дважды ... при классной загрузке атака будет простой, и ее действительно легко найти.

Если вы уверены, что все ваши приложения пишут только по "контролируемым" путям, попробуйте сначала с помощью mount по пути, на котором есть монтирование (оно отменяет монтирование до размонтирования).

Иногда люди ищут сложное решение и не видят легкого.

Я имею в виду, это будет работать:

  1. mount /dev /sda1 /mnt /MyHDD
  2. mount /dev /sdb2 /mnt /MyHDD
  3. umount /mnt /MyHDD
  4. umount /mnt /MyHDD

После 1 файлы / папки, видимые в / mnt / MyHDD, находятся на диске sda в первом разделе, после 2 файлы / папки, видимые в / mnt / MyHDD, в разделе sdb 2, после 3 файлов / папок, видимых в / mnt / MyHDD находятся на диске sda на первом разделе, после 4 ¿? это зависит от того, что было установлено там до 1.

Таким образом, вы можете смонтировать:

  • /dev/null --- приведет к потере всех данных
  • /dev/mapper/crypto --- или как вы называете LUKS (данные будут зашифрованы)

Надеюсь, поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .