Безопасны ли списки репозитория? Есть ли версия HTTPS?

24

Безопасны ли обновления репозитория?

Как медвежонок со стороны разработчика, я не могу понять, почему список репозиториев http://security.ubuntu.comи другие http(незащищенные) сайты перечислены в /etc/apt/sources.list. Без соответствия цепочки сертификатов это выглядит как «спросить у любого респондента список пакетов для обновления» вместо «спросить сайт ubuntu.com ...»

Может ли какая-либо сеть выбрать поддельные сайты обновлений, и является ли это обычной практикой для предоставления локально кэшированной и проверенной копии?

Чарльз Мерриам
источник

Ответы:

30

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

Все файлы, загруженные APT, имеют подпись, которая позволяет проверять загруженный файл по открытым ключам, хранящимся на вашем компьютере, как подписанным Ubuntu и только Ubuntu. Это подтверждает, что полученный вами файл был авторизован Ubuntu на каком-то этапе и с тех пор не изменялся и не изменялся.

Техническое объяснение того, как это работает, доступно в Ubuntu (и в Debian который использует ту же систему).

Из-за использования HTTP вместо HTTPS, да, злоумышленники могли видеть, какие файлы вы загружаете, но в этом случае вам вряд ли стоит беспокоиться о конфиденциальности. Попытка «человека посередине» изменить пакеты, чтобы внедрить вредоносный код, все равно потерпит неудачу, поскольку нарушит механизм подписи.

Один из возможных недостатков этого механизма подписания заключается в том, что он не гарантирует, что вы получаете самую последнюю версию пакета (действительно, иногда зеркала обновляются медленно). Чтобы помочь решить эту проблему, подписанный файл выпуска содержит дату «Действителен до», после которой все файлы, на которые он ссылается, должны считаться устаревшими. Человек в середине мог бы иметь возможность заменить архив неизмененной более ранней версией архива в течение этой даты, действительной до тех пор, пока ваш APT не поверит в отсутствие обновлений. Но они не могут вносить какие-либо произвольные изменения в пакеты и не могут вернуться назад во времени после определенного момента.

Механизмы подписи обеспечивают гораздо лучшую безопасность, чем HTTPS, в распределенной среде такого типа, где файлы отражаются на многих серверах, не контролируемых Ubuntu. По сути, вам нужно доверять только Ubuntu, а не зеркалу, поэтому вам нужно доказать, что файлы изначально были из Ubuntu и с тех пор не были изменены - нет необходимости проверять подлинность зеркала.

Обратите внимание, что когда вы добавляете неофициальный репозиторий в ваш список источников, такой как PPA, вы будете получать файлы, которые не подписаны Ubuntu. APT должен предупредить вас об этом, потому что они не были подписаны сертификатом, соответствующим какому-либо из открытых ключей, установленных на вашем компьютере в соответствии с разрешением Ubuntu.

thomasrutter
источник
1
Большой! Таким образом, короткая версия гласит: «Транспортный уровень небезопасен, но каждый пакет подписан. Не существует безопасного списка доступных обновлений, и исправления для существующих проблем безопасности не гарантируются.»
Чарльз Мерриам
2
Не уверен , что вы подразумеваете под «Там нет безопасного список доступных обновлений» , но файл выпуска и списки пакетов будут подписаны. Просто он не проверяет, что ваше зеркало обновлено.
Томасруттер
3
То есть, если нет способа проверить, что зеркало или основной сайт обновлен, то нет способа узнать, есть ли доступные обновления, обновления безопасности или что-то другое. То есть, нет безопасного списка доступных обновлений.
Чарльз Мерриам
4
Алиса запускает Ubuntu. Боб контролирует интернет-соединение Алисы. Боб не может поместить плохой пакет в установку Алисы, потому что каждый пакет подписан. В Ubuntu обнаружен огромный недостаток безопасности. Алиса пытается найти обновленный пакет, но Боб удаляет все упоминания о пакете из проверки обновлений Алисы. Алиса бьет системного администратора, а затем проверяет наличие обновлений через HTTPS с ubuntu.com, проверяя, что она подключена к реальному веб-сайту по защищенной ссылке. Теперь Алиса видит обновление безопасности, а Боб не может его скрыть.
Чарльз Мерриам
3
Это, конечно, правильный ответ. Но что я нахожу странным, так это то, что никто не беспокоится о том, что подслушиватель собирает список всех установленных вами пакетов в порядке, включая те, которые вы обновили, а какие нет, чтобы нацелить их атаку на известные уязвимости в этих пакетах.
Teekin
8

Ответ с самым высоким рейтингом здесь явно устарел. С тех пор в apt было обнаружено 2 серьёзных эксплойта по удалённому выполнению кода из-за ошибки в проверке пакета. Бюллетени по безопасности здесь и здесь .

Это намного хуже, чем опасения по поводу конфиденциальности / утечки информации и устаревшей версии пакета; это позволяет выполнять произвольный код как root, полный сбой безопасности. И дело в том: эти атаки были бы предотвращены, если бы вместо http использовался https.

Это доказывает, что защита глубоко принцип применяется здесь так же, как и везде. Многочисленные утверждения о том, что https не предоставляет никаких или минимальных преимуществ для безопасности в контексте apt, просто неверны, как показали эти эксплойты.

Тогда возникает вопрос, стоит ли преимущество безопасности https в затратах на кэширование, увеличение накладных расходов и т. Д. Я не могу ответить на этот вопрос, но, по крайней мере, я считаю, что Ubuntu / Canonical / Launchpad должен предоставлять дополнительные конечные точки https для своих репозиториев. ,

Никлас Холм
источник
1
Безопасность также связана с конфиденциальностью, и HTTPS означает, что, по крайней мере, будет гораздо сложнее выяснить, какие пакеты и версии вы используете.
10
Я скажу, однако, что, если у самого apt нет проблем с этим, http в порядке. Тем не менее, https создает резервную копию на случай, если безопасность gpg (или как она использует его более точно) испортится.
RoundDuckMan
2

Важное дополнение: на самом деле, поскольку обновление и первоначальная установка загружаются онлайн, требуется много трафика, и источник этого трафика, то есть потоки двоичного и текстового кода, воспроизводим. Таким образом, в Интернете существует большое количество шлюзов и кеш-устройств. Значительное количество интернет-провайдеров настроили кэш на основе протокола http, чтобы сохранить пропускную способность экспорта, и протокол https не может существовать в качестве прозрачного кэша.

Другая причина заключается в том, что программа зеркального отображения на основе http намного проще: нет необходимости проверять сертификат tls-ssl и не нужно беспокоиться о недействительности сертификатов или о проблемах конфигурации веб-сервера.

Не так давно, около 20 лет, на заре Интернета, https и интернет-трафик все еще были очень дорогими игровыми процессами. Поэтому http также включил протокол ftp, который почти устарел, в качестве основного способа доставки установки и обновления для распространения пакетов программного обеспечения в Интернете.

Аналогично, Microsoft Windows и Office также обновляются с использованием http. Вы можете заметить, что обычно это не установочный пакет, загруженный с сервера Microsoft, а встроенный кеш-сервер вашего провайдера.

JZ
источник