レッドハットの森若です。今回はRHELのセキュリティ情報を入手し、対応をおこなうまでの手順を見てみましょう。
修正が作成されるまで
一般にプログラムに問題があるときは、プログラムのソースコードを修正して対応します。RHELのほどんとのパッケージではアップストリームのソースコードを直接変更せずそのままにしておき、修正は複数の「パッチ(修正用の差分情報)」を追加することでおこなっています。
RHELで利用されているrpm(RPM Package Manager)では、元のソースコードとパッチ、さらにそれらを処理して実際に実行されるプログラムに変換するための情報を「ソースrpm」とよばれるパッケージにまとめます。
ソースrpmから「バイナリrpm」を作成します。これは実際に実行できるプログラムなどが入ったパッケージで、通常「rpmパッケージ」という場合にはこのバイナリrpmのことをさしています。
通常1つのソースrpmから、複数のバイナリrpmが作成されます。動作するCPUアーキテクチャや利用するライブラリ、オプションなどによって、同じソースrpmから異なるバイナリrpmが作成されます。
errataとアドバイザリ
このように作成されたソースrpmおよびバイナリrpmを公開するデータベースがerrataです。
errataに含まれている、修正を公開する単位が「アドバイザリ」です。アドバイザリは、1つまたは複数のソースrpmの修正に対応したアナウンスで、以下のような情報を含みます。
アドバイザリのID (RH?A-XXXX:YYYY というフォーマットです。 ?はS,B,Eのいずれか、XXXX,YYYYは数字です)
修正された問題の要約
発行日、最終更新日
(セキュリティ修正のみ)重要度
(セキュリティ修正のみ)関連する脆弱性情報
影響をうける製品
更新されたパッケージとそのバージョン
関連するbugzillaエントリ(通常は複数の修正が含まれています)
errataはそれぞれのアドバイザリがレコードとしてならんだデータベースになっています。
重要な特徴として、errataではそれぞれのアドバイザリに順序関係があり、同じ製品であれば新しいアドバイザリには、それ以前のアドバイザリで提供された修正が全て反映されています。
たとえばfirefoxがアドバイザリ A, B, Cの順に3回修正されたとすると、Aに含まれている修正は全てB,C にも含まれ、Bに含まれている修正はCにも含まれています。
つまり、常に最新のパッケージを適用することで、全ての既知の問題に対応できます。「Bで修正された部分は利用するがAとCの問題はそのまま放置する」というような選択肢をなくすことで、管理がシンプルになっています。
アドバイザリの種類は?
アドバイザリには3種類の分類があり、それぞれIDが以下の4文字ではじまります。
RHSA セキュリティ上の脆弱性を修正したアドバイザリ
RHBA バグを修正したアドバイザリ
RHEA 機能拡張したアドバイザリ
RHEAはマイナーリリース(7.1から7.2など)のタイミングで行われます。機能拡張と同時にバグやセキュリティ上の問題の修正が含まれる場合があるため、RHBA, RHSAも機能拡張を含んでいることがあります。
errata情報の入手
errataの情報は公開されており、以下のwebページから参照することができます。
https://access.redhat.com/security/updates/active/
また、通知を受ける方法としてRHELでは3通りの方法を提供しています。
1. yum-updatesd によるメール送信、log出力
RHELに同梱されている yum-updatesd は定期的にカスタマーポータルに接続して更新情報を取得し、更新パッケージがあれば通知します。
通知方法にはe-mail, log出力, dbusが選択でき、デフォルト設定ではdbusによる通知を利用して、GUI環境でアップデートの通知を画面表示させます。この設定を変更することでメールやログの形でアップデートの通知を受けとることができます。
詳しくは、「man yum-updatesd.conf」としてマニュアルを参照してください。
2. Red Hat カスタマーポータルからのメールによる通知
カスタマーポータルのErrata notifications設定により、errata出荷時にメールで通知を受けとることができます。
https://www.redhat.com/wapps/ugc/protected/notif.html
3. メーリングリスト、RSSフィードによる通知
errataの更新についての通知を、RSSフィードおよびメーリングリストでおこなっています。
- RHSA Announce メーリングリスト(プラットフォーム製品のセキュリティ修正)
RHSA-announce Info Page
- JBoss Watchメーリングリスト(ミドルウェア製品のセキュリティ修正)
Jboss-watch-list Info Page - errata更新のRSSフィード
Red Hat Customer PortalAccess Red Hat’s knowledge, guidance, and support through your subscription.
脆弱性のCVE numberから対応するerrataアドバイザリを確認
RHSAには、Common Vulnerabilities and Exposures (CVE)の関連する脆弱性情報へのリンクが含まれています。以下のサイトで、CVE numberからerrataのアドバイザリを逆引きすることができます。ニュースサイト等で見た脆弱性が製品への影響しているかの確認や、既に出荷されていればerrataのIDを確認することができます。
https://access.redhat.com/security/cve/
yumコマンドによるセキュリティ修正の確認・対応
インターネット接続が可能であるか、Red Hat Satelliteが利用可能な環境では、yumコマンドによりセキュリティ対応をおこなうことが可能です。
サマリの表示
# yum updateinfo Loaded plugins: langpacks, product-id, subscription-manager Updates Information Summary: available 3 Security notice(s) 2 Critical Security notice(s) 1 Important Security notice(s) 2 Bugfix notice(s) 2 Enhancement notice(s) updateinfo summary done
適用可能なerrataの一覧
# yum updateinfo list available Loaded plugins: langpacks, product-id, subscription-manager RHSA-2015:1443 Important/Sec. bind-32:9.9.4-18.el7_1.2.x86_64 RHSA-2015:1443 Important/Sec. bind-libs-32:9.9.4-18.el7_1.2.x86_64 RHSA-2015:1443 Important/Sec. bind-libs-lite-32:9.9.4-18.el7_1.2.x86_64 RHSA-2015:1443 Important/Sec. bind-license-32:9.9.4-18.el7_1.2.noarch RHSA-2015:1443 Important/Sec. bind-utils-32:9.9.4-18.el7_1.2.x86_64 RHSA-2015:1207 Critical/Sec. firefox-38.1.0-1.el7_1.x86_64 RHSA-2015:1229 Critical/Sec. java-1.7.0-openjdk-1:1.7.0.85-2.6.1.2.el7_1.x86_64 RHSA-2015:1229 Critical/Sec. java-1.7.0-openjdk-devel-1:1.7.0.85-2.6.1.2.el7_1.x86_64 RHSA-2015:1229 Critical/Sec. java-1.7.0-openjdk-headless-1:1.7.0.85-2.6.1.2.el7_1.x86_64 RHBA-2015:1192 bugfix openssl-1:1.0.1e-42.el7_1.9.x86_64 RHBA-2015:1192 bugfix openssl-libs-1:1.0.1e-42.el7_1.9.x86_64 RHBA-2015:1474 bugfix python-chardet-2.2.1-1.el7_1.noarch RHEA-2015:1473 enhancement python-urllib3-1.10.2-1.el7_1.noarch RHEA-2015:1476 enhancement redhat-access-insights-1.0.4-0.el7_1.noarch updateinfo list done
アドバイザリ詳細の確認
# yum info-sec --advisory RHSA-2015:1443 Loaded plugins: langpacks, product-id, subscription-manager =============================================================================== Important: bind security update =============================================================================== Update ID : RHSA-2015:1443 Release : Type : security Status : final Issued : 2015-07-20 00:00:00 Bugs : 1237258 - CVE-2015-4620 bind: abort DoS caused by uninitialized value use in isselfsigned() CVEs : CVE-2015-4620 Description : The Berkeley Internet Name Domain (BIND) is an implementation of : the Domain Name System (DNS) protocols. BIND : includes a DNS server (named); a resolver library : (routines for applications to use when interfacing : with DNS); and tools for verifying that the DNS : server is operating correctly. : : A flaw was found in the way BIND performed DNSSEC : validation. An attacker able to make BIND : (functioning as a DNS resolver with DNSSEC : validation enabled) resolve a name in an : attacker-controlled domain could cause named to : exit unexpectedly with an assertion failure. : (CVE-2015-4620) : : Red Hat would like to thank ISC for reporting this : issue. : : All bind users are advised to upgrade to these : updated packages, which contain a backported patch : to correct this issue. After installing the : update, the BIND daemon (named) will be restarted : automatically. Severity : Important updateinfo info done
CVE IDを指定してのアップデート
# yum update --cve CVE-2015-4620
アドバイザリIDを指定してのアップデート
# yum update --advisory RHSA-2015:1443
RHELのバージョンによりyumコマンドで利用するオプションが変わります。以下のナレッジベースでRHELの5,6,7それぞれでの操作をご案内しています。
https://access.redhat.com/solutions/10021