Как мне исправить / исправить CVE в пакете zbb Ubuntu, когда новая версия недоступна с помощью apt-get?

У меня есть несколько облачных стеков, на которых запущен Ubuntu 14.04.2, и мне нужно исправить CVE, с которыми я сталкиваюсь в библиотеке zlib (в частности zlib1g и zlib1g-dev. В конце концов мне нужно перенести эти системы к более поздней версии Ubuntu, однако до тех пор, пока я не разрешу блокировщики для обновления, мне нужно смягчить существующие CVE.

Каковы наилучшие методы обновления системных пакетов? Что я должен беспокоиться о нарушении / как для проверки функциональной регрессии?

То, что я сейчас тестирую, - это добавить источники из более поздних версий Ubuntu (например, artful):

sudo cp /etc/apt/sources.list /etc/apt/sources.list.d/artful.list sudo vim /etc/apt/sources.list.d/artful.list # replace "trusty" with "zesty" sudo apt-get update

Закрепить все пакеты на trusty:

$ cat /etc/apt/preferences Package: * Pin: release n=trusty Pin-Priority: 900 Package: * Pin: release o=Ubuntu Pin-Priority: -10

Затем обновите определенные пакеты с помощью:

apt-get install --only-upgrade <package> -t zesty

Пакет, который мне нужно обновить: zlib1g / zlib1g-dev

Каковы наилучшие методы обновления системных пакетов? CVE-2016-9841 (критический) Что мне следует беспокоиться о нарушении / как проверить функциональную регрессию? CVE-2016-9843 (критический)

Обновление системных пакетов d oes не получите мне версию zlib1g с разрешенным CVE. Мне нужна версия> = 1:1.2.8.dfsg-4, ближайшая, вероятно, 1:1.2.11.dfsg-0ubuntu1 из zesty. См .:

$ dpkg -s zlib1g | grep Version: Version: 1:1.2.8.dfsg-1ubuntu1 $ sudo apt-get update && apt-get upgrade $ dpkg -s zlib1g | grep Version: Version: 1:1.2.8.dfsg-1ubuntu1

Содержание /etc/apt/sources.list:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://archive.ubuntu.com/ubuntu/ trusty universe deb-src http://archive.ubuntu.com/ubuntu/ trusty universe deb http://archive.ubuntu.com/ubuntu/ trusty-updates universe deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates universe ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted # deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted deb http://archive.ubuntu.com/ubuntu/ trusty-security universe deb-src http://archive.ubuntu.com/ubuntu/ trusty-security universe # deb http://archive.ubuntu.com/ubuntu/ trusty-security multiverse # deb-src http://archive.ubuntu.com/ubuntu/ trusty-security multiverse
6
задан 2 November 2017 в 21:59

6 ответов

Вот как я сделал это для моего первого запуска.

Я упаковал свое приложение в микросервисы с пользовательским фоновым изображением Docker. Микроуслуги были основаны на Node.js, так что я стал основой для развертывания этих сервисов с использованием Kubernetes / Docker Compose в средах stage / prod. Я сохранил эти изображения Docker на cloud.docker.com, у которого есть хороший сканер изображений Docker, который находит соответствующие CVE, просматривая изображения.

Вот как я попал в соответствующие CVE. Затем

Я упаковал свое приложение в микросервисы с пользовательским базовым изображением Docker. Микроуслуги были основаны на Node.js, так что это был фундамент

. Для меня «неопределенный» и «контекстно-зависимый» означает, что это довольно теоретическая атака. Это означало бы, что плохие парни с большим количеством денег хотели проникнуть в вас - в отличие от обычных плохих парней, которые хотят сломать кого-то. Только вы знаете, что лучше всего разместить ваши ресурсы.

Для моего случая были Chrome CVE (Chrome - основа для Node.js), которая не применима к моим вариантам использования, поэтому я проигнорировал их ждут восходящие исправления. Иногда были вещи, которые нуждались в исправлении сразу, поэтому:

Я обновил изображения Докера. Поскольку все микроуслуги начинались с пользовательского базового изображения Docker, я мог бы быстро вывести узлы и обновления ОС. Я развернул эти службы, используя Kubernetes / Docker Compose в средах stage / prod

Я рассмотрел некоторые другие ответы здесь - надеюсь, вы получите то, что ищете.

1
ответ дан 18 July 2018 в 04:10

если у вас есть БНЭ, которые необходимо исправить, и это не фиксируется в официальных репозиториях для релиз вы используете, что Вы не должны сделать, это скачать и установить пакеты из произвольного будущем выпуске. Такие пакеты могут установить нормально, но нет никакой гарантии, что существующие другие существующие программы могут быть в состоянии взаимодействовать с ними. В Абис или API может измениться, может существенно, а может и нет. Тонкие изменения может быть достаточно, чтобы бросить трудно отлаживать баги. (если библиотека не загружается как положено, командной строки приложение может скинуть файл не найден ошибка, хотя файл команды, несомненно, существует!)

я бы предположил:

проверить, если патч доступен для версии вы используете, либо в отчетах БНЭ в другом месте, или вверх по течению. Если это так, тогда скачать и модифицировать исходный пакет соответствующих пакетов: как я могу получить и модифицировать исходный код программы, установленные через apt-получить? Воспользуйтесь кнопками [F1], чтобы применить патч (см. Вики или этой Debian hwoto). Я хотел бы предложить, что вы столкнетесь лишь наименее значительная часть номер версии (детали после последнего -) - конечно, не ударяться в детали, прежде чем первый :, количество эпох. Установите пакет так построена.

это гораздо более вероятно, для поддержания совместимости с другими компонентами операционной системы (поскольку сам исправить не что-нибудь сломать), в то время как все еще позволяя вам получить обновление, если обновление попадает в репозитории вашего освобождения. Таким образом, Вы можете гарантировать, что конкретное БНЭ вы хотите, чтобы исправить фиксируется как далеко, как вы можете сказать, что может быть в случае с пакета из произвольного будущем выпуске.

1
ответ дан 18 July 2018 в 04:10

Без дополнительной информации о том, что вы хотите заплатить, и в каком кармане репозиториев Ubuntu, в котором находится программное обеспечение для данной версии, невозможно дать вам полный ответ, достаточно узкий.

Но я попытаюсь дать вам обзор того, как «исправлять» проблемы с безопасностью в пакетах Ubuntu.

Пакеты программного обеспечения в Main и вкладки, созданные сообществом во Вселенной , через $RELEASE-security репозитории

. Для патчей безопасности, представленных в пакетах пользователями для рассмотрения команды безопасности в пакетах Universe, и исправлений безопасности самой командой Security в пакетах Ubuntu Main, после их выпуска они доступны из $RELEASE-security (например, xenial-security) и $RELEASE-updates репозитории. Таким образом, вы можете просто сделать sudo apt-get update && sudo apt-get dist-upgrade и получить все исправления.

Отслеживание отдельных CVE в CVE Tracker позволит вам узнать, было ли у CVE исправление выпущено в Ubuntu еще как команда SEcurity определяет уровень приоритета CVE и то, как быстро он нуждается в решении (по умолчанию «Medium», независимо от серьезности CVE).

Пакеты программного обеспечения в Main, и вкладки, внесенные сообществом во Вселенной, через $RELEASE-security репозитории

Здесь у нас две проблемы. Во-первых, пакеты Universe получают только заплатки, когда сообщество предоставляет их команде безопасности для просмотра и просмотра. Во-вторых, большое количество пакетов в результате не обновляется.

У вас есть два решения для этих проблем: либо перекомпилируйте пакеты самостоятельно с исправлениями, либо дождитесь, когда обновление появится в репозиториях (или

Для первого решения вам нужно будет следовать CVE Tracker с шага 1-го шага 3.9, а затем шаги подробно описанный в разделе 6, если вы хотите отправить их для репозиториев и создать исправленные пакеты локально в своей системе и установить их.

Фактический процесс для этого очень сложный в зависимости от пакета, так что это

Пользовательское скомпилированное программное обеспечение

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

3
ответ дан 18 July 2018 в 04:10

Вот как я сделал это для моего первого запуска.

Я упаковал свое приложение в микросервисы с пользовательским фоновым изображением Docker. Микроуслуги были основаны на Node.js, так что я стал основой для развертывания этих сервисов с использованием Kubernetes / Docker Compose в средах stage / prod. Я сохранил эти изображения Docker на cloud.docker.com, у которого есть хороший сканер изображений Docker, который находит соответствующие CVE, просматривая изображения.

Вот как я попал в соответствующие CVE. Затем

Я упаковал свое приложение в микросервисы с пользовательским базовым изображением Docker. Микроуслуги были основаны на Node.js, так что это был фундамент

. Для меня «неопределенный» и «контекстно-зависимый» означает, что это довольно теоретическая атака. Это означало бы, что плохие парни с большим количеством денег хотели проникнуть в вас - в отличие от обычных плохих парней, которые хотят сломать кого-то. Только вы знаете, что лучше всего разместить ваши ресурсы.

Для моего случая были Chrome CVE (Chrome - основа для Node.js), которая не применима к моим вариантам использования, поэтому я проигнорировал их ждут восходящие исправления. Иногда были вещи, которые нуждались в исправлении сразу, поэтому:

Я обновил изображения Докера. Поскольку все микроуслуги начинались с пользовательского базового изображения Docker, я мог бы быстро вывести узлы и обновления ОС. Я развернул эти службы, используя Kubernetes / Docker Compose в средах stage / prod

Я рассмотрел некоторые другие ответы здесь - надеюсь, вы получите то, что ищете.

1
ответ дан 24 July 2018 в 18:01
  • 1
    Спасибо, полезно получить некоторый контекст для сортировки CVE. Это кажется весьма субъективным, что затрудняет его. – Ryan Fisher 2 November 2017 в 22:28
  • 2
    @RyanFisher рад, что я могу помочь. Да, это определенно субъективно - и очень большой расчет стоимости бизнеса / риска. – Michael Cole 4 November 2017 в 02:14

Если у вас есть CVE, который вы должны исправить, и он не исправлен в официальных репозиториях для выпуска, который вы используете, то вам не следует загружать и устанавливать пакеты из произвольной будущей версии. Такие пакеты могут быть установлены нормально, но нет никакой гарантии, что существующее другое существующее программное обеспечение может взаимодействовать с ними. Возможно, ABI или API изменились, возможно, значительно, возможно, нет. Тонких изменений может быть достаточно, чтобы вызывать жесткие ошибки. (если библиотека не загружается так, как ожидалось, приложение из командной строки может выдать ошибку, не найденную в файле, хотя файл команды явно существует!)

Я бы предложил следующее:

Проверьте, доступен ли патч для используемой версии, либо в отчетах CVE в другом месте, либо из восходящего потока. Если это так, загрузите и измените исходный пакет соответствующего пакета: Как мне получить и изменить исходный код пакетов, установленных через apt-get? Используйте quilt для применения патча (см. Debian wiki или этот Debian hwoto). Я бы предположил, что вы натолкнетесь только на наименее значимую часть номера версии (части после последнего -) - конечно же, не ударяйте часть перед первым :, числом эпохи. Установите установленный пакет.

Это гораздо более вероятно, чтобы поддерживать совместимость с другими компонентами ОС (так как само исправление не нарушает что-то), но при этом позволяет обновлять, если обновление попадает в хранилища вашего выпуск. Таким образом, вы также можете гарантировать, что конкретный CVE, который вы хотите исправить, исправлен, насколько вы можете судить, что может быть не так с пакетом из какой-либо произвольной будущей версии.

1
ответ дан 24 July 2018 в 18:01
  • 1
    Спасибо, мне придется изучить прилагаемые усилия, но это похоже на самое удобное решение. Как только я исправляю версию, доступную с помощью apt-get для trusty, я предполагаю, что могу создать свой собственный PPA и разместить его для распространения в моих системах. Я собираюсь работать над этим и посмотреть, как это происходит. – Ryan Fisher 2 November 2017 в 22:05

Без дополнительной информации о том, что вы хотите заплатить, и в каком кармане репозиториев Ubuntu, в котором находится программное обеспечение для данной версии, невозможно дать вам полный ответ, достаточно узкий.

Но я попытаюсь дать вам обзор того, как «исправлять» проблемы с безопасностью в пакетах Ubuntu.

Пакеты программного обеспечения в Main и вкладки, созданные сообществом во Вселенной , через $RELEASE-security репозитории

. Для патчей безопасности, представленных в пакетах пользователями для рассмотрения команды безопасности в пакетах Universe, и исправлений безопасности самой командой Security в пакетах Ubuntu Main, после их выпуска они доступны из $RELEASE-security (например, xenial-security) и $RELEASE-updates репозитории. Таким образом, вы можете просто сделать sudo apt-get update && sudo apt-get dist-upgrade и получить все исправления.

Отслеживание отдельных CVE в CVE Tracker позволит вам узнать, было ли у CVE исправление выпущено в Ubuntu еще как команда SEcurity определяет уровень приоритета CVE и то, как быстро он нуждается в решении (по умолчанию «Medium», независимо от серьезности CVE).

Пакеты программного обеспечения в Main, и вкладки, внесенные сообществом во Вселенной, через $RELEASE-security репозитории

Здесь у нас две проблемы. Во-первых, пакеты Universe получают только заплатки, когда сообщество предоставляет их команде безопасности для просмотра и просмотра. Во-вторых, большое количество пакетов в результате не обновляется.

У вас есть два решения для этих проблем: либо перекомпилируйте пакеты самостоятельно с исправлениями, либо дождитесь, когда обновление появится в репозиториях (или

Для первого решения вам нужно будет следовать CVE Tracker с шага 1-го шага 3.9, а затем шаги подробно описанный в разделе 6, если вы хотите отправить их для репозиториев и создать исправленные пакеты локально в своей системе и установить их.

Фактический процесс для этого очень сложный в зависимости от пакета, так что это

Пользовательское скомпилированное программное обеспечение

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

3
ответ дан 24 July 2018 в 18:01

Другие вопросы по тегам:

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