簡単にできる!
SIDfm VM を利用した脆弱性対策とその運用
2020.3.25
はじめに
- 脆弱性管理を行いたいが、どのように始めればよいのかわからない。
- 導入までの敷居が高そう。
そのような疑問をお持ちではありませんか? SIDfm VM を利用すれば、簡単に脆弱性管理が始められます。 このエントリでは、SIDfm VM の導入と SIDfm VM を利用した脆弱性管理とその運用手順を簡単にご説明します。
想定する環境
想定する環境を下図に示します。ここでは、オンプレミス環境に VM サーバを設置することとします。同様に、クラウド上にも設置可能です。
CentOS 7 を minimal インストールした VM サーバ vmsv.example.com と CentOS 7 を minimal インストールした監視対象ホスト host1.example.com が構築されており、 両者は Proxy サーバ proxy.example.com を経由してインターネットに接続されているとします。
VM サーバのインストール
以下の手順にて SIDfm VM ソフトウェア(以下「VM サーバ」という)のインストールを行います。VM サーバは Docker イメージで提供されますので簡単に実装できます。なお、VM サーバは Docker コンテナとして実行されます。システムに Docker を実装する必要があります。
VM サーバのインストール設定
-
VM サーバ vmsv.example.com にログインします。
-
root ユーザに昇格します。
$ su -
-
インストールスクリプト向け設定ファイルをダウンロードします。
-
ダウンロードした variable ファイルを変更し、環境に合わせた設定を行います。
# vi variables
VM サーバのインストール
-
Docker をインストールします。
# curl 'https://www.softek.co.jp/SID/support/sidfmvm/download/server/install_docker.sh' | /bin/bash
-
PostgreSQL データベースをインストールし設定します。
# curl 'https://www.softek.co.jp/SID/support/sidfmvm/download/server/setup_database.sh' | /bin/bash
-
VM サーバをダウンロードしインストールします。
# curl 'https://www.softek.co.jp/SID/support/sidfmvm/download/server/build_vmserver.sh' | /bin/bash
ライセンスキーの登録とホスト登録用APIキーの発行
-
SIDfm VM のログインページにアクセスします。
- http://vmsv.example.com/redmine/ にアクセス
- ログイン ID とパスワードに「sidfmadm」を入力し、「ログイン」ボタンをクリック
- 次に、ログイン直後のページであるライセンス管理画面で、ライセンスIDとライセンスパスワードを入力してライセンスキーの登録を行います。 ライセンスキーの登録方法の詳細につきましては SIDfm VM 導入ガイドの「ライセンスキーを登録する」をご参照ください。
-
ライセンス管理画面にある、ホスト登録用APIキーの項目のアクション「APIキー登録」をクリックします。
Information
この「ホスト登録用APIキー」は、ホストをVMサーバに登録する際に使用します。
これで VM サーバのインストールは完了です。
VM サーバへ監視対象ホストを登録する (VM エージェントによる登録)
監視対象ホストにおける VM エージェントのインストール設定
-
監視対象ホスト host1.example.com にログインします。
-
root ユーザに昇格します。
$ su -
-
インストールスクリプト向け設定ファイルをダウンロードします。
-
ダウンロードした variable ファイルを変更し、環境に合わせた設定を行います。
# vi variables
監視対象ホストにおける VM エージェントのインストール・VM ホストへの登録
-
VM エージェントをインストールします。
# curl 'https://www.softek.co.jp/SID/support/sidfmvm/download/agent/install_vmagent.sh' | /bin/bash
監視対象ホストの登録確認
- http://vmsv.example.com/redmine/ にアクセスします。
- ログイン ID とパスワードに「sidfmadm」を入力し、「ログイン」をクリックします。
-
設定メニューの「ホスト設定」をクリックします。
-
登録ホスト一覧の中にインストールしたホストが登録されているか確認します。
同期の確認
登録ホストが「」になっているか確認します。同期ボタンにカーソルを合わせるとVM エージェントからのデータ受信日時、脆弱性照合日時を確認することができます。
脆弱性管理の開始
まず脆弱性管理の一連の流れを確認します。 下図は、独立行政法人情報処理推進機構(IPA)セキュリティセンターによって発行された「脆弱性対策の効果的な進め方(ツール活用編)」に記載されている脆弱性対策のフローです。
このエントリでは、下図に示されたフローに沿う形で SIDfm VM を利用し、脆弱性の管理を行う方法をご紹介することにします。
対象ソフトウェアの把握・脆弱性関連情報の収集
対象ソフトウェアの把握では、脆弱性管理のために監視対象ホストにインストールされているソフトウェアの名称やバージョンの確認を行います。 SIDfm VM エージェントは、インストールされている rpm パッケージを洗い出します。
脆弱性関連情報の収集も SIDfm の脆弱性データベースを利用するため、お客様が煩わされることはありません。
それでは先程 VM エージェントをインストールした監視対象ホストの状況を見てみましょう。
- http://vmsv.example.com/redmine/sidfm/licenses/ にアクセスします。
-
登録ホスト一覧画面に表示されたホスト名「host1.example.com」のリンクをクリックします。
-
ホスト詳細画面が表示されました。この画面では監視対象ホスト host1.example.com にインストールされたソフトウェアと、そのソフトウェアに存在する脆弱性などを確認することができます。
適用の判断
次に、脆弱性への対応の可否を判断します。 判断のためには脆弱性の内容や危険度、緊急度が必要です。 SIDfm VM ではこれらの情報にも簡単にアクセスすることができます。
脆弱性情報の詳細まで確認することは面倒で時間のかかる作業です。通常は組織のポリシーなどに従い CVSS や SRI といった危険度指標を元にして優先度の高いものから確認していくことになります。
ここでは例として vim パッケージに存在した『危険度:高』の脆弱性へ対処する流れを説明します。
-
脆弱性列の「CentOS 7 の vim に任意の OS コマンドを実行...」リンクをクリックしてください。
-
移動した先の画面にある「詳細脆弱性コンテンツへ」ボタンをクリックします。
-
脆弱性情報の詳細画面では、脆弱性の CVE 番号、CVSS スコア、危険度、および概要などを確認することができます。 これらの情報をもとに、脆弱性への対処が必要かどうか、必要であればどの程度の緊急度か、などを判断します。この host1.example.com の環境では、vim を使用して作業することが多いため、脆弱性の影響を受ける可能性があると判断しました。 またこの脆弱性は危険度は「高」とされていますが、host1.example.com の環境では基本的に外部から取得した信頼できないファイルを使用しないため、早急な対応は不要と判断しました。
計画
脆弱性への対応が決まれば、次は計画(スケジューリング)です。
計画フェーズでは、いつ脆弱性に対応するかを決定します。その際に考慮する事柄は次のようなものが挙げられます。
- 脆弱性の危険度
- 緊急度 (既に攻撃が確認されているかどうか等)
- テスト環境での検証に要する期間
それでは SIDfm VM で脆弱性に対応予定日を設定してみましょう。
-
アクション列の「対応予定日変更」ボタンをクリックしてください。
-
適当な対応予定日を設定し、「更新」ボタンをクリックしてください。
-
対応予定日が設定されました。
検証
運用環境でのソフトウェアのアップデート前に、テスト環境でソフトウェアを更新し、動作確認や適用可否を行うフェーズです。 SIDfm VM の機能では「対応予定日変更」や「ステータス変更」のコメント欄を利用できますが、このエントリでは割愛します。
適用
脆弱性対応のフェーズです。 主にソフトウェアの更新による脆弱性への対処となりますが、 ソフトウェアの更新が不可能な場合や更新が可能な時期になるまでの回避策の実施等もこのフェーズに含まれます。
SIDfm VM は、パッチ情報(対処の方法)がすぐに得られます。ホストの脆弱性と対応のサマリー表の「i」列にあるプルダウンメニューを選択し、「影響しているパッケージ一覧」をクリックすることで、修正対象となるパッケージの一覧が得られます。
同様に、脆弱性詳細画面の「対処方法」タブをクリックすることでも、対処方法を参照できます。
それでは先程の vim の脆弱性への対処 (パッケージの更新) を実施してみましょう。
-
監視対象ホスト host1.example.com へログインし、root ユーザへ昇格します。
$ su -
-
脆弱性を含むパッケージ (ここでは vim-minimal) を最新版に更新します。
# yum -y update vim-minimal
-
次回の VM エージェントの実行タイミングで更新したパッケージの情報が VM サーバへ送信されます。
-
パッケージの更新情報によって、VM サーバで監視対象ホスト host1.example.com の脆弱性の対策状況が自動的に更新されます。
SIDfmセミナーご案内
-
システム管理者・運用者必見