Как я устраняю / фиксируют CVEs в Ubuntu zlib пакет, когда новая версия не доступна через Кв. - добираются?

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

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

Что я в настоящее время тестирую, должны добавить источники от более поздних версий 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

Обновление системных пакетов не получает меня версия zlib1g с разрешенным CVE's. Мне нужна версия> = 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
7
задан 2 November 2017 в 10:59

3 ответа

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

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


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

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

Отслеживание отдельного CVEs в Средстве отслеживания CVE сообщит, выпустили ли CVE's фиксацию в Ubuntu уже, а также определении Службой безопасности приоритетного уровня CVE и как быстро этому нужно обращенный (значение по умолчанию является "Средним" независимо от серьезности CVE).


Пакеты, не обновленные в репозиториях

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

У Вас есть два решения для этих проблем: или восстановите пакеты сами с патчами или ожидайте обновления для приземления в Репозиториях (или чтобы кто-то отправил патчи для Службы безопасности).

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

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


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

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

3
ответ дан 23 November 2019 в 06:43

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

То, что я предложил бы:

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

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

1
ответ дан 23 November 2019 в 06:43

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

  1. Я упаковал свое приложение на микрослужбы с пользовательским основным изображением Докера. Микросервисы были всеми на основе Node.js, так, чтобы была основа
  2. Я развернул те сервисы использование Kubernetes / Докер Сочиняет в среды этапа/напоминания
  3. Я сохранил те изображения Докера на cloud.docker.com, который сделал, чтобы хороший Докер отобразил сканер, который находит соответствующий CVE's путем взгляда в изображениях.

Это - то, как я добрался до соответствующего CVE's. Затем

  1. Я считал CVE's для наблюдения, какой применялся. Эти 4 CVE's похожи:
    • inftrees.c в zlib 1.2.8 мог бы позволить контекстно-зависимым взломщикам оказывать неуказанное влияние путем усиления неподходящей адресной арифметики с указателями.
    • inffast.c в zlib 1.2.8 мог бы позволить контекстно-зависимым взломщикам оказывать неуказанное влияние путем усиления неподходящей адресной арифметики с указателями.
    • Функция inflateMark в inflate.c в zlib 1.2.8 могла бы позволить контекстно-зависимым взломщикам оказывать неуказанное влияние через векторы, включающие сдвиги влево отрицательных целых чисел.
    • Функция crc32_big в crc32.c в zlib 1.2.8 могла бы позволить контекстно-зависимым взломщикам оказывать неуказанное влияние через векторы, включающие вычисление CRC с обратным порядком байтов.

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

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

  1. Я обновил изображения Докера. Поскольку все микросервисы запустились с пользовательского основного изображения Докера, я мог выставить Узел и обновления ОС относительно быстро.
  2. Развернитесь к этапу, испытанию с помощью дыма на этапе, и развернитесь к производству.

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

1
ответ дан 23 November 2019 в 06:43

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

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