OpenSSL の新しい重大な脆弱性: 知っておくべきこと
2022年10月31日
0 分で読めます編集者注: 2022 年 11 月 1 日
Snyk は、自社のシステムとツールにおける OpenSSL v3 の使用について確認したところ、Snyk Broker バージョン 4.127.0 から 4.134.0 は影響を受けるバージョンの OpenSSL 3.0 を使用しており、バージョン 4.135.0 以降にアップグレードする必要があることがわかりました。お客様は Snyk Broker を使って、対応する内部 SCM プラットフォームを Snyk と統合できます。
2022 年 10 月 25 日、OpenSSL プロジェクトは、重大なセキュリティ脆弱性を解決するため、OpenSSL (バージョン 3.0.7) のリリースを発表しました。2 つの脆弱性は 2022 年 11 月 1 日 (火) に公開され、OpenSSL プロジェクトは問題と修正の詳細を説明したブログを公開しました。Snyk の別のブログでも、これらの脆弱性について、またそれが「重大」から「高」に格下げされた理由について詳しく説明しています。このブログは、Snyk を使用して今回のような脆弱性に備える方法に焦点を置き、最新の情報に基づいて更新されています。
Snyk では現在わかっている詳細を記載した勧告を公開しており、新たな詳細が公表された場合はこのアドバイザリを更新します。
脆弱性について
OpenSSL プロジェクトではこの脆弱性を重大と位置づけていますが、OpenSSL 3.0 以前のバージョンには影響しないとしています。つまり、OpenSSL 3.0 以前のバージョンを使用している場合、現時点では影響はないはずです。
OpenSSL プロジェクトのセキュリティポリシーでは、重大な脆弱性と位置づけている内容を概説しています。
これは一般的な設定に影響し、悪用される可能性もあります。その例としては、サーバーメモリのコンテンツの重大な漏洩 (ユーザーの個人情報が暴露される可能性がある)、リモートから簡単に悪用されてサーバーの秘密キーが侵害される脆弱性、または一般的な状況でリモートコード実行が発生する可能性が考えられる場合などが挙げられます。これらの問題は非公開とされ、サポートされているすべてのバージョンの新しいリリースがトリガーされます。弊社では、これらの問題にできるだけ速やかに対処します。
重大度を「重大」に格下げした理由についての詳細は、OpenSSL のブログをご覧ください。
現在、脆弱なバージョンの OpenSSL (3.0 以上) は Ubuntu 22.04 LTS、RHEL 9 などの Linux オペレーティングシステムで使用されています。ただし、Debian などの Linux ディストリビューションは最新リリースのみに OpenSSL 3.x が含まれており、まだテストバージョンであるため、本番システムでの広範な使用は制限される場合があります。影響を受けるバージョンの Linux を使ってビルドされたコンテナイメージも影響を受けます。ただし、多くの一般的な Docker 公式イメージでは Debian Bullseye (11) と Alpine が使用されていますが、これらはまだ OpenSSL 1.x を使用しており、影響を受けません。Web トラフィックの処理に使用されることの多い nginx や httpd などのプロジェクト用の Docker 公式コンテナイメージも Bullseye と Alpine を使用しているため、影響を受けません。
Node.js 18.x および 19.x も OpenSSL3 をデフォルトで使用しているため、Node.js のアップグレードが今後数日以内に提供される予定です。
最後に、開発者が C/C++ を使用している場合は、コードに OpenSSL v3 パッケージが組み込まれていることがあります。関連する OpenSSL パッケージについてはこのコードを確認してください。
脆弱性が公開される前に影響の有無を知る方法
この脆弱性に関する興味深い点の 1 つは、OpenSSL プロジェクトが、リリースの 1 週間前に重要なセキュリティ修正が予定されていることを発表した点です。重大な脆弱性が少なくとも 1 つあることが指摘されたため、影響を受ける可能性のあるアプリケーション、コンテナ、サーバーの検索方法を検討するための時間的余裕がありました。脆弱性が公開されると、当然 Snyk などのセキュリティツールがその存在を検出し、修正プログラムを提供します。しかし、脆弱性が公開される前に、Snyk を使ってどのように戦略を立てられるのでしょうか。
次に紹介するのは、この OpenSSL の脆弱性向けの手順です。ただし、ソフトウェア部品表があり、すべてのオープンソースコードパッケージとコンテナに対して完全な SCA 分析を実行している場合、この手順は詳細が事前にわかっているあらゆる脆弱性に使用できます。
Snyk のビジネスプランまたはエンタープライズプランの顧客であれば、脆弱なバージョンの OpenSSL (3.0.x) を含むすべてのプロジェクトを見つけられます。「レポート」 > 「依存関係」に移動します。検索ボックスに openssl
と入力し、3.0.x バージョンを使用している場所を確認します。「プロジェクト」のリンクをクリックすると、該当するプロジェクトに移動します。データは必要に応じて CSV ファイルにエクスポートできます。
Snyk API (ビジネスプランとエンタープライズプラン) にアクセスできる顧客も、API を使用してこのデータを抽出できます。たとえば、Snyk Labs チームが提供するユーティリティ snyk-deps-to-csv を使用して、依存関係を CSV に抽出できます。依存関係の API に自らアクセスすることもできます。
無料アカウントのユーザーを含む Snyk のすべてのユーザーは、Snyk ダッシュボードでプロジェクトを選択して「依存関係」タブをクリックし、「openssl」を検索することで、脆弱なバージョンの OpenSSL をスキャンできます。この場合も、影響を受けるのは OpenSSL 3.0.x バージョンです。
まだ Snyk でプロジェクトをテストしていない場合は、Snyk CLI でテストできます。
OpenSSL などのオープンソースパッケージや OpenSSL を使用する推移的な依存関係のコードプロジェクトをテストするには、
snyk test
を実行して結果を CLI で直接確認するか、snyk monitor
を実行して結果を Snyk Web UI で確認します。C/C++ を使用しており、パッケージマネージャーの外部 (アンマネージド) でプロジェクトに OpenSSL が含まれているかどうかを確認するには、
snyk test
の実行時に--unmanaged
オプションを追加します。
コンテナイメージをテストするには、
snyk container test
を実行して CLI で結果を直接確認するか、snyk container monitor
を実行して結果を Snyk Web UI に送信します。上記いずれの
test
タイプの場合も、依存関係の一覧を CLI に表示するには、--print-deps
オプションを追加します。monitor
コマンドを使用している場合、依存関係は Snyk Web UI で自動的に報告されます。Linux の場合は、ターミナルで
openssl version
コマンドを実行するだけで、使用している OpenSSL のバージョンを確認できます。
OpenSSL の新しい脆弱性を低減する方法
脆弱性の発表と、2022 年 11 月 1 日 (火) のセキュリティリリースについて、チームメンバーに知らせます。最善の準備方法は、チームが問題を認識し、今後のリリースに備えることです。
アプリケーションとインフラストラクチャを評価し、OpenSSL 3.0 以上をすべての場所で使用していることを確認してください。
2022 年 11 月 1 日 (火) に脆弱な OpenSSL インストールを更新できるよう準備してください。
脆弱性の検出と修正に Snyk を使用している場合は、その脆弱性がデータベースに保存され、2022 年 11 月 1 日に詳細が公開された際にプロジェクトをスキャンすると検出されます。修正が利用可能になると、Snyk が追跡した脆弱なバージョンを更新するよう求められます。
あわてずに
重大な脆弱性の管理はストレスの多い仕事ですが、あわてずに対処してください。OpenSSL プロジェクトは、セキュリティインシデントを責任を持って処理し、修正をタイムリーに提供してきた長年の実績があります。
まだ Snyk のような脆弱性検出ツールを使用していない場合は、今が試してみる良い機会かもしれません。これらのツールは、このようなインシデントが発生したときに通知し、セキュリティ修正が利用可能になったときにその展開にも役立ちます。
すべての問題を修正することは不可能ですが、重要な問題を常に認識し速やかに更新することは、リスクを低減し、侵害を回避するための確実な戦略です。
その他の情報
将来的な脆弱性に関する以下の追加リソースは、準備の際に役立つ場合があります。
Docker DSA 2022-0001\: 公開 CVE を想定した一時的な勧告。影響を受けるパッケージと公開コンテナイメージのリストを提供します。
SANS Internet Storm Center: 影響を受ける Linux ディストリビューションのリスト
DistroWatch: 影響を受ける Linux ディストリビューションのリスト
Node.js の通知\: Node.js v18.x と v19.x が OpenSSL v3 を使用していることを強調する Node.js からのセキュリティリリース。