- 1.脆弱性とは
- 2. 脆弱性管理
- 3. 脆弱性管理に正解はある?
- 4.脆弱性情報の収集について
- 5.脆弱性管理のやり方
- 6.SBOMについて
- 7.脆弱性管理のシステム(1)Tenable
- 8. FutureVuls
- 9.nmap
1.脆弱性とは
1.1 脆弱性とは
脆弱性とは、情報セキュリティ上の弱点や欠陥です。似たような言葉に、バグやセキュリティホールがあります。
ここで議論する脆弱性ですが、言葉の厳格な違いを意識してもらう必要はなく、CVE番号で管理された脆弱性と考えてください。
・CVEの数だけでみると、脆弱性は年々増えている。25083個(2022)→ 29065個(2023年)
1.2 脆弱性の指標
❶CVE、CWE、CVSSの説明
IPAのサイトに、脆弱性の指標であるCVE、CWE、CVSSに関して説明があります。
・共通脆弱性識別子CVE概説
https://www.ipa.go.jp/security/vuln/scap/cve.html
・共通脆弱性タイプ一覧CWE概説
https://www.ipa.go.jp/security/vuln/scap/cwe.html
・共通脆弱性評価システムCVSS v3概説
https://www.ipa.go.jp/security/vuln/scap/cvssv3.html
整理すると、以下です。
指標 | 意味 |
---|---|
CVE(Common Vulnerabilities and Exposures) | CVE-西暦年-4桁の通番で表される脆弱性の通番 |
CWE(Common Weakness Enumeration) | 脆弱性の種類(脆弱性タイプ) |
CVSS(Common Vulnerability Scoring System) | 脆弱性の深刻度を0.0~10.0の範囲で表現 |
❷CVSS
上記のサイトを元に、CVSSを評価する3つの基準の中身を見ましょう
項番 | 基準 | 基準の内容 | 備考 |
---|---|---|---|
(1) | 基本評価基準(Base Metrics) | 脆弱性そのものの特性を評価する基準です。 | 時間の経過や利用環境の異なりによって変化しません。 |
(2) | 現状評価基準(Temporal Metrics) | 脆弱性の現在の深刻度を評価する基準です。 | 脆弱性への対応状況に応じ、時間が経過すると変化します。 |
(3) | 環境評価基準(Environmental Metrics) | ユーザの利用環境も含め、最終的な脆弱性の深刻度を評価する基準です。 | ユーザ毎に変化します。 |
❸実際のCVSS値を見てみよう
以下に、2023年6月14日に出されたIPAからの注意喚起があります。
https://www.ipa.go.jp/security/security-alert/2023/alert20230613.html
このCVE-2023-27997を、JVNの脆弱性対策情報データベース(https://jvndb.jvn.jp/index.html)で調べてみましょう。
基本評価基準を見ると、9.8(Critical)です。攻撃元区分が「ネットワーク」なので、インターネットから攻撃される可能性があり、非常に危険と言えます。
1.3 SSVC
CVSSは指標の一つであり、それだけでは危険かが判断できない。。SSVCという指標を入れている。偶然かは不明だが、CVSSの逆のスペル
1.攻撃コードの公開有無と悪用レベル
2.システムの露出レベル
3.攻撃者にとっての有用性
4.攻撃された際の業務影響
1と3はFutureVulsが独自に算出。時系列で変化する。
2. 脆弱性管理
2.1 脆弱性管理(広義)
本来、脆弱性管理といえば、たとえば、パッチをあてる以外に、設定ミスが無いかなども含まれるでしょう。
脆弱性の定義はたしょう曖昧でしょうが、脆弱性診断といえば、ポートが空いているなどもチェックします。
2.2 脆弱性管理(狭義)
ここでは、狭義という言葉が適切かはわかりませんが、ソフトウェア資産のOS等のバージョンを管理し、それがリスクがあるかという点に絞った脆弱性管理について述べます。
CVE番号が付与された脆弱性の管理と考えてもらってもいいでしょう。(Tenableでやるのはここ?★)
2.3 脆弱性管理(狭義)の流れ
❶情報資産の管理
組織内で保有している情報資産の名称、ホスト名、IPアドレス、ソフトウェアのバージョン情報、設置場所、管理責任者、連絡先などを一元管理します。
❷脆弱性情報の収集
脆弱性対策情報ポータルサイトであるJVN(Japan Vulnerability Notes)や、情報処理推進機構(IPA)の「重要なセキュリティ情報」、ニュースサイト、セキュリティのコミュニティや取引ベンダなどを通じて、脆弱性情報を収集します。
ただ、これは難しいのでTenableなどのツールを使う場合もあります。
❸脆弱性への対処
・脆弱性が発見された場合、それが自社のシステムにどれくらいの影響があるかのリスク評価をします。
・対処すべきと判断された脆弱性に対して、システムの改修、ソフトウェアのアップデート、セキュリティ機器での対処などをします。
2.4 脆弱性診断
脆弱性管理のほかに「脆弱性診断」という言葉もあります。
こちらは、プラットフォーム診断とWebアプリケーション診断があります。
最近では、ペネトレーションテストなどが、特に金融系のお客様で行われることがあります。
3. 脆弱性管理に正解はある?
3.1 脆弱性管理の難しさ
脆弱性管理は非常に難しいです。理由はいくつかあります。
・CVSSだけでみると、ほとんどが緊急度が高になっていまう。本当はそうではない。
・他社で重大な脆弱性が、自社でも重大とは限らない
・脆弱性は、時間であったり、組織の対策によって変わる
・リスク=情報資産の価値×脆弱性×脅威であるので、同じ脆弱性であっても、情報資産の価値によってもリスクが変わる
・本当に攻撃が成立するかの判断には、セキュリティやシステムに関するかなりのスキルが必要
・脆弱性があれば、それを塞ぐのではあるが、そう簡単にシステムを止めることはできないし、ソフトウェアをアップデートするっていうのは、アプリケーション試験も必要で、かなり大変な作業になる場合がある
3.2 そもそも、脆弱性が露呈しないようにしたい
たとえば、SSV-VPNの脆弱性があったとして、その脆弱性を管理して適切にパッチをあてるのは大変です。
そもそも、脆弱性が発動しないようにしたいところです。
たとえば、
・送信元IPアドレス制限をして、特定の人からのみしか接続できないようにする
・(脆弱性は回避できませんが、リスクを減らすために)接続するときだけサーバに接続する
・内部対策として、SSL-VPN装置が侵入されても、さらにその先のサーバへは接続できないようにする。具体的にはセグメントを分ける、サーバの認証強化など。加えて、ログなどの監視も強化しておくといいかと。
4.脆弱性情報の収集について
・どうやって収集するか
・それが自社に重大かどうかの判断はどうやってやるのか
5.脆弱性管理のやり方
・台帳を作る
・管理するシステムを利用する
・脆弱性管理のシステムを入れる(TenableやFuture Vulsなど)
・AWSなどのクラウドサービスのシステムの場合、クラウドサービスで管理する(たとえば、Amazon Inspector)
・あともう一つあったはず
5.2 脆弱性管理のシステムをなぜ入れないのか?
システムがあったほうが、リアルタイム性や正確性で各段に優れる。でも、導入している企業は日本の企業で1割もいない気がする。
その理由は、
・スキャンすらNG
・エージェントをインストールする障壁(テストに時間がかかる、問題ないことの確認に時間がかかる、エージェントが負荷を高める可能性)
※そう思うと、AWS上のインスタンスには、あらかじめスキャンできるツールが入っていたと思う。
6.SBOMについて
SBOM(Software Bill of Materials:ソフトウェア部品表)は、フルスペルにあるように、システムや製品のソフトウェアの部品を一覧化したリストです。
現在のシステムというのは、オープンソースのソフトウェアも含め、複数のソフトウェアの部品で構成されています。そして、その中の一つの部品に脆弱性があっても、サーバが乗っ取られるなどの重大な被害につながることもあります。昨今、SBOMによる管理の重要性が高まっています。
しかし、どこまで運用ができるかというと、また別の話です。
・TenableはSBOMは未対応だと思う。
7.脆弱性管理のシステム(1)Tenable
7.1 Tenable概要
・脆弱性管理の市場評価ではTeanbleがNo.1であろう
・可視化対象は、サーバ、クラウド(★別途確認)、コンテナ、IoT機器も
・日本語対応
・パッシブスキャナーへの対応(負荷をかけない)
・サイバーエクスポージャー管理で、脆弱性管理だけでなく、ID管理なども1つのプラットフォームで統合管理
・Vulnerability Priority Rating (VPR) による、リスク・深刻度ベースでの管理。スコアは0~10。SSVCみたいなもの?★詳細は要確認
・対応OSは、Windows、Linux、MacOS
7.2 Nessusによる脆弱性診断
(1)概要
・スキャンあたりのIPアドレスが最大16ではあるが、無料で診断に利用できる。
https://jp.tenable.com/products/nessus/nessus-essentials
(2)構成
・クラウド上にスキャナーがある
・クラウドから一斉にスキャンが可能
(3)診断方法
それぞれ、メリットデメリットがあるので整理する。
❶外部から診断をする
❷サーバにエージェントを入れる
❸SSHでサーバにログインする
7.3 実際の設定
(1)インストール
・上記にて、名前やメールアドレスを入力
・Nessusをインストールするが、Windows10のPC、WindowsSerer(x86_64)、MACやLinuxなどのOSを選ぶことができる。
・ダウンロードしたファイルを実行。基本的には「次へ」で進む。
・ブラウザの画面が開くので、SSLで接続。おそらく以下のURL
https://localhost:8834/#/
・「Registar for Nessus Essential」を選択してContinue。次の画面はSkipしてActivation Codeを入れる
・username とパスワードを作成してsubmit
・ここから少し時間がかかる(1時間~2時間は覚悟した方がいいかも)
右上の円形の矢印がグルグル回っているとすると、そこにカーソルを合わせると、進捗がわかる
(2)テストスキャン
インストールが無事に終わると、最初のテストスキャンするサーバを入力する画面がでる。
ここでIPアドレスを入れる。このIPも16IP制限にカウントされる。
基本的にはプラットフォーム診断を実施してくれる。
→画面は非常に見やすい。
(3)Credential Scan
外部から診断をするのは、Webサーバのバナーであったり、レスポンスを見て、OSやミドルウェアの情報を取得する。それだと限界があったり、正確な情報がわかるとは限らない。それよりは、サーバにログインし、コマンドを打つことで、OSの正確なソフトウェアの状況がわかる。場合によっては、パッチの適用状況もわかる。
そのためには、Credential Scanとして、SSHでログインをさせる。そのために、NessusにログインID/Passwordを渡す。
8. FutureVuls
・費用は1サーバあたり、1か月4000円。1年で48000円
・エージェントを入れるか、SSHログインでチェックをする。
100台のサーバがあって、システム管理者が100人いるとして、100人の端末にエージェントを入れて毎日1回チェックをする。
・データはクラウドで管理されるのでサーバは不要。
・導入は簡単ではなく、サーバの台数にもよるが数か月はかかることを覚悟した方がいい。エージェントを入れて正常に動作するかのテストも必要ですから。
インストールすれば、もちろん運用は楽になる。が、それでもあくまでもツールでしかなく、最終判断はエンジニアがすべきである。
9.nmap
最初に言った話と変わってしまっているが、ポートスキャンであればNmapがその代表である。