Я знаю, что большинство дистрибутивов имеют какую-то функцию хранилища, где новые пакеты могут быть загружены после установки. Какие дистрибутивы делают это безопасным способом, а какие - нет.
Я особенно думаю о векторах атак, таких как «человек посередине», и о таких проблемах, как нарушение безопасности как на метасерве репозитория, так и на зеркалах файлов репозитория.
Я слышал, что и Slackware, и Arch Linux очень уязвимы, потому что им не хватает подписи пакетов. Это правда? Существуют ли другие основные дистрибутивы Linux, которые уязвимы для простых атак «человек посередине»?
Ответы:
Это не прямой ответ на ваш вопрос, но есть несколько вещей, которые вы можете сделать, чтобы уменьшить этот риск. Самый простой - это проверить ваши загруженные пакеты по контрольным суммам с другого зеркала, с которого вы не загружали.
Когда мой менеджер пакетов (
poldek
) загружает пакет, я установил его для сохранения копии загруженных оборотов в папке кэша. Он автоматически проверяет контрольную сумму загрузки по сравнению с хранилищем пакетов и предупреждает / прерывает при несоответствии, но если вы беспокоитесь о том, что человек-посредник атаковал ваш хранилище дистрибутивов, было бы легко написать вторичный скрипт, который просматривал бы все ваши загруженные пакеты и сверяйте их с контрольными суммами, загруженными из другого зеркала. Вы даже можете запустить свою первую установку как пробную версию, чтобы пакеты загружались, но не устанавливались, затем запустите сценарий проверки, а затем выполните фактическую установку.Это не мешает скомпрометированному пакету попасть в репозиторий дистрибутива, но большинство дистрибутивов имеют другие способы смягчить это, и даже подписанные пакеты не гарантируют, что это никогда не было проблемой. Что он делает, так это подавляет целевой вектор атаки «человек посередине». Используя отдельный источник и загружая его по отдельному каналу, вы убиваете легкость, с которой скомпрометированный пакет может быть помещен в постукиваемую строку.
источник
paccheck
, который сравнивает пакеты с разными зеркалами перед установкой и предупреждает о любых несоответствиях.Пакеты Debian проверяются суммой, а контрольные суммы подписываются ключом в наборе ключей Debian. Менеджер
apt
пакетов гарантирует, что загруженный пакет имеет правильную контрольную сумму и что файл контрольной суммы был подписан правильно.источник
Пакеты Fedora подписаны и проверены. Даже сторонние репозитории, такие как rpmfusion, подписывают свои пакеты.
Yum (менеджер пакетов) требует специального флага (
--nogpgcheck
) для установки пакетов, которые не были подписаны.источник
Все пакеты Arch Linux используют сумму md5 или sha1 для проверки того, что все биты на месте. Сопровождающий пакета должен выбрать алгоритм хеширования. Пакеты, установленные из AUR (часто это небольшой текстовый файл PKGBUILD), должны быть проверены установщиком перед установкой. Репозитории, содержащие официальные двоичные пакеты, контролируются доверенными пользователями (TU).
Обновление : Arch теперь ввел подписывание пакетов с pacman 4
источник
Кто сказал, что у Slackware нет подписи пакетов?
Пакеты Slackware подписываются открытым ключом Slackware. Так что каждый пакет имеет свою подпись с расширением
.asc
. Не только пакеты, но и другие файлы также подписаны, какCHECKSUMS.MD5
. Содержит список контрольных сумм пакетов.В дистрибутиве есть официальный инструмент под названием
slackpkg
для загрузки / установки пакетов с зеркала. После обновления локальной базы данных репо сslackpkg update
помощью инструмента проверяется действительность подписи нового файла MD5 и журнала изменений и т. Д.После загрузки пакета (но перед установкой) проверяются подпись и MD5 пакета.
Можно получить открытый ключ с помощью
slackpkg update gpg
или просто импортировать его с установочного компакт-диска сgpg --import GPG-KEY
Есть другой неофициальный инструмент
slapt-get
для Slackware. Он также поддерживает GPG-проверки! Аналогично какslackpkg
.источник
OpenBSD, безусловно. Весь проект посвящен безопасности, команда даже установила более 5000 линейных патчей для оригинального apache, потому что они не чувствовали, что он достаточно безопасен для использования. Это через pkg_add, но у меня никогда не было проблем с этим.
источник