Автоматические обновления - что такое «адекватная» безопасность? - PullRequest
5 голосов
/ 23 февраля 2009

Есть несколько вопросов ( C # , Java ), которые охватывают, как можно реализовать автоматическое обновление. Изначально кажется, что автоматическое обновление легко обеспечить, и, по-видимому, нет веских причин не предоставлять автоматическое обновление для большинства программ.

Однако ни один из них не охватывает аспекты безопасности автоматических обновлений.

  • Насколько безопасны автоматические обновления сейчас?
  • Насколько они должны быть безопасны?
  • Насколько они безопасны?

Моя главная проблема заключается в том, что Интернет для всех намерений и целей является диким западом, где никто не может предположить что-либо о каких-либо данных, которые они получают. Автоматические обновления через Интернет кажутся рискованными.

Компьютер компании заражается, подделывает DNS (только небольшой процент из которых выигрывает) и заставляет компьютеры других компаний полагать, что сервер обновлений для обычного приложения находится где-то еще, они загружают «новое» приложение и заражаются .

Как разработчик, какие существуют возможные атаки и какие шаги я должен предпринять, чтобы защитить своих клиентов от злоупотреблений?

-Adam

Ответы [ 4 ]

6 голосов
/ 23 февраля 2009

При правильном использовании криптографии ваши обновления могут быть очень безопасными. Защитите сайт, с которого вы распространяете свои обновления, с помощью SSL. Подписывайте все свои обновления с помощью GPG / PGP или чего-то еще, заставьте своих клиентов проверять подпись перед применением обновления. Принимает меры для обеспечения максимальной безопасности вашего сервера и ключей.

Адекватен , очень субъективен. То, что подходит для интернет-игры, может быть, совершенно не подходит для системы безопасности наших ядерных ракет. Вы должны решить, какой потенциальный ущерб может возникнуть, если кому-то удастся сломать вашу безопасность.

2 голосов
/ 23 февраля 2009

Наиболее очевидной атакой будет злоумышленник, поставляющий измененные двоичные файлы через свой «злой» сервер обновлений. Таким образом, вы должны убедиться, что загруженные данные могут быть проверены на получение от вас, используя цифровую подпись.

Для обеспечения безопасности, очевидно, вам следует избегать распространения ключа для подписи. Таким образом, вы можете реализовать некоторые варианты подписи сообщений RSA

1 голос
/ 23 февраля 2009

По-видимому, нет веских причин не предоставлять автоматические обновления для большинства программ.

Есть веские причины не форсировать обновление.

  1. Исправление ошибок может привести к поломке кода
  2. пользователи, возможно, не захотят рисковать взломом производственных систем, использующих старые функции
1 голос
/ 23 февраля 2009

Подключение к вашему серверу обновлений через SSL может быть достаточным при условии, что ваш клиент откажется подключиться, если получит недействительный сертификат, а ваш сервер потребует согласования разумного уровня безопасности соединения (и клиент также поддерживает это).

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

Это также в некоторой степени верно, даже если они получают ваше первоначальное программное обеспечение по протоколу https или с цифровой подписью - поскольку большинство пользователей могут легко убедить нажать кнопку «ОК» практически на любом предупреждении безопасности, которое они видят на этом.

...