У ошибки Heartbleed много людей спрашивают, как проверить версию установленного пакета. Я включен, так как я не нашел способ.

К сожалению, благодаря повторному внесению исправлений проверка версий практически бесполезна, поскольку информация остается на более низком уровне. Например (из Fedora):

$ openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr  8 00:29:11 UTC 2014
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) ...
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT ...
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic 

И Yum и Apt-Get не лучше, потому что они не обеспечивают эффективную версию безопасности (от Fedora с Yum):

$ yum info openssl
Loaded plugins: langpacks, refresh-packagekit
Installed Packages
Name        : openssl
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1e
Release     : 37.fc19.1
Size        : 1.5 M
Repo        : installed
From repo   : updates
Summary     : Utilities from the general purpose cryptography library with TLS
            : implementation
URL         : http://www.openssl.org/
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool
            : and shared libraries which provide various cryptographic
            : algorithms and protocols.

И (из Ubuntu и Apt-Cache):

$ apt-cache showpkg openssl
Package: openssl
Versions: 
1.0.1e-3ubuntu1.2 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_saucy-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_binary-amd64_Packages
                  MD5: 977022bc5545601176b69704acc5df9b
 Description Language: en
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_i18n_Translation-en
                  MD5: 977022bc5545601176b69704acc5df9b

1.0.1e-3ubuntu1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_binary-amd64_Packages)
 ...
Provides: 
1.0.1e-3ubuntu1.2 - 
1.0.1e-3ubuntu1 - 

Как видно из вышеизложенного, информация об эффективной версии безопасности отсутствует («1.0.1g»). Единственная предоставленная информация заключается в том, что OpenSSL имеет более низкий уровень ("1.0.1e") и, возможно, уязвим к последней ошибке.

Backpatching и номера версий более низкого уровня должны быть одним из самых глупых решений безопасности в истории. Это прямо там с
(1) плохое оппортунистическое шифрование, хороший текст (браузеры) и
(2) использование публичной информации в качестве секретного / контрольного вопроса.

Как определить эффективную версию безопасности пакета, который был исправлен при использовании Yum и Apt-Get? (Это обобщенный вопрос, и не относится к OpenSSL).

2 ответа2

2

Я использую rpm -q openssl --changelog | head

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

Я предпочитаю это, а не просто указывать дату сборки и предполагать, что она содержит последнее исправление безопасности

Поскольку вы специально спрашивали об этом из yum, сначала вам нужно установить changelog yum install yum-changelog

Затем запустите yum changelog openssl или, чтобы просмотреть время / перед обновлением, yum update openssl --changelog

Из интереса я сделал быстрый поиск, чтобы увидеть, есть ли какой-нибудь другой способ сделать это, но все, что я нашел, был кто-то как Вы, кто хотел легкий способ проверить версию безопасности, и он написал сценарий оболочки, чтобы сделать это для любого пакет (ссылка ниже)

Запись в блоге

Сценарий оболочки

apt-get также (как видно) имеет функцию журнала изменений, выполнив apt-get changelog openssl
(Я говорю, очевидно, потому что я не проверял это сам - некоторые источники цитируют, используя вместо этого aptitude changelog <package> )

dpkg есть инструмент, включенный в пакет dpkg-dev который называется dpkg-parsechangelog
(Опять же, я не использовал это сам, поэтому я не знаю, какие результаты это даст, но я бы предположил, подобную информацию)

Приложение: Единственный простой способ решить проблему журнала изменений, предоставляя CVE, а не конкретную версию, - это использовать такой инструмент, как vFeed.
Я на самом деле не использовал этот конкретный инструмент (могут быть и другие), но он обеспечивает доступ из командной строки к таким функциям, как
get_cve : basic CVE attributes (summary, published and modified dates)

Если у кого-то было время или желание, я уверен, что можно было бы написать простой сценарий оболочки, который будет объединять извлечение информации CVE из журнала изменений и передавать ее в такой инструмент, как vFeed, предоставляя вам однострочный ответ на question "Содержит ли package-x последние исправления безопасности?».
Фактически, большая часть работы, вероятно, уже выполнена в сценарии оболочки, с которым я связывался ранее.

1

Самый надежный способ проверить эффективный статус openssl который я нашел, - запустить openssl version -a и посмотреть на built on поле. Эта дата в сочетании с официальными бюллетенями по безопасности Ubuntu/Fedora предоставит информацию, которую вы ищете.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .