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

Основная проблема - то, что file ожидает имена файлов как параметры командной строки, не на stdin. Когда Вы пишете ls | file, вывод ls передается как вход file. Не как аргументы, как введено.

, Каково различие?

  • Параметры командной строки - когда Вы пишете флаги и имена файлов после команды, как в cmd arg1 arg2 arg3. В сценариях оболочки эти аргументы доступны как переменные $1, $2, $3, и т.д. В C, Вы получили бы доступ к ним через char **argv и int argc аргументы [1 111].

  • Стандартный вход, stdin, является потоком данных. Некоторые программы как [1 112] или wc чтение от stdin, когда им не дают параметров командной строки. В сценарии оболочки можно использовать read для получения одной строки входа. В C можно использовать scanf() или getchar() среди различных вариантов.

file обычно не читает из stdin. Это ожидает, что по крайней мере одно имя файла будет передано как аргумент. Вот почему это распечатывает использование, когда Вы пишете ls | file, потому что Вы не передали аргумент.

Вы могли использовать xargs для преобразования stdin в аргументы, как в [1 120]. Однако, как [1 122] упоминания terdon , анализируя ls плохая идея. Самый прямой способ сделать это просто:

file *

24
задан 20.05.2020, 05:53

3 ответа

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

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

.

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

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

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

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

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

30
ответ дан 20.05.2020, 05:53
  • 1
    Er, если нет никакого способа проверить, что зеркало или основной сайт, актуально тогда, нет никакого способа знать, существуют ли обновления доступные, обновления системы защиты или иначе. Таким образом, нет никакого безопасного списка доступных обновлений. – Michael Haren 20.05.2020, 05:53
  • 2
    Alice выполняет Ubuntu. Bob управляет Alice' s Интернет-соединение. Bob не может поместить плохой пакет в Alice' s установка, потому что каждый пакет подписывается. Существует некоторый огромный дефект безопасности, найденный в Ubuntu. Alice try' s для нахождения обновленного пакета, но Bob удаляет все упоминание о пакете от Alice' s обновляют проверку. Alice бьет системного администратора и затем вытягивает проверку обновления через HTTPS с ubuntu.com, проверяющего, что она подключена к реальному веб-сайту вдоль безопасной ссылки. Теперь Alice видит обновление системы защиты, и Bob не может скрыть его. – Michael Haren 20.05.2020, 05:54
  • 3
    Не уверенный, что Вы подразумеваете под " нет никакого безопасного списка доступного updates" но файл версии и списки пакета подписаны. It' s просто, что это doesn' t проверяют, что Ваше зеркало актуально. – tvanfosson 20.05.2020, 05:54
  • 4
    Здорово!, Таким образом, короткая версия является " транспортный уровень не безопасен, но каждый пакет подписывается. Нет никакого безопасного списка доступных обновлений, и патчи для существующих проблем безопасности, как гарантируют, не будут поставлены " – tvanfosson 20.05.2020, 05:55
  • 5
    Это - конечно, корректный ответ. Но то, что я нахожу странными, - то, что никто, кажется, не волнуется по поводу соглядатая, составляющего список всех пакетов, которые Вы установили в порядке, включая которые you' ve обновляется и которые Вы haven' t, для предназначения для их нападения на известные уязвимости системы обеспечения безопасности в тех пакетах. – Scott Lawrence 20.05.2020, 05:55

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

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

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

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

8
ответ дан 20.05.2020, 05:53

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

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

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

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

2
ответ дан 20.05.2020, 05:54

Теги

Похожие вопросы