Я использую дистрибутив Fedora - с предустановленными политиками SELinux. Я хочу ограничить незащищенный доступ к своим закрытым ключам в ~/.ssh
папка - для предотвращения утечки возможного вредоносного ПО, которое может работать под моей учетной записью. Рут-киты исключены.
Обновление №1: Я хочу решить корпоративную проблему с новичками в Fedora - без USB-токенов и т. Д. Они могут использовать очень слабую парольную фразу. Все будет хорошо, если только root
пользовательские и клиентские программы ssh будут иметь доступ к закрытым ключам. Фактическому пользователю-человеку нет необходимости видеть закрытый ключ - я не знаю, зачем кому-либо смотреть закрытый ключ хотя бы один раз.
Как я могу это сделать? Предлагаю использовать SELinux.
Если вредоносная программа будет запускаться с использованием ваших учетных данных, я не думаю, что SELinux является правильным инструментом для этой работы, поскольку все, что вы можете внедрить, наверняка остановит и вас от доступа к ключу.
Закрытые ключи имеют встроенные механизмы безопасности, которые работают вместе очень надежно. Ключи должны быть доступны для чтения только их владельцу. Если вы добавите надежную парольную фразу, беспокоиться не о чем.
Подходящий способ скрыть закрытые ключи от тех, кому разрешено их использовать, - это аппаратный модуль безопасности (смарт-карта или что-то еще хорошо работает). Вы можете сделать это с некоторыми усилиями для ключей SSH (появляется поиск в Google этот учебник об этом с некоторым неуклюжим оборудованием и GPG).
Однако, если вас беспокоит что-то, кроме оболочки, от ее получения, учитывая, что множество эксплойтов дает вам оболочку, AppArmour может таким образом ограничить разрешения файловой системы, хотя я считаю, что делать это внутри домашних каталогов немного сложнее управлять для многопользовательских систем.
SELinux тоже может это делать; вы помещаете метку безопасности на файлы и разрешаете только ssh
читать их.
Имейте в виду, что пользователь, как правило, может создавать свои собственные ключи SSH и обычно является их владельцем, что означает, что он может настраивать любые добавленные метки и разрешения. Это предположение, которое существует.
Если вы собираетесь запускать вирусы, вы можете следовать некоторым правилам, которые сделают вас в большей безопасности, чем любое из этих:
blackhole.iana.org
хорошее DNS-имя). Если они должны быть реальными адресами, вы можете разместить для них специальный тестовый C&C в ограниченной сети.Если вы беспокоитесь о случайном запуске вируса, selinux может вам помочь, хотя реальное решение этой проблемы - здравый смысл и должная осторожность.
Вы также можете защитить свои закрытые ключи с помощью паролей, что приведет к их шифрованию, хотя вирусы могут заставить ваши нажатия клавиш обходить это.