Azure Security Centerでリスク対策の優先順位を考える
はじめに
これまで3回の記事を通して、Azure Security Centerを使って、Security Centerとは⇒リスクの可視化⇒リスク対策のやり方、と説明してきました。
セキュリティリスクはいろいろある中で、どのような穴が狙われやすいのか?被害が拡大しやすいのか?そんなことを知っている人は、とても勉強熱心か、あるいは攻撃する側の人でしょう…。
リスクに順位付けをする
そんな利用者のために用意されているのが「推奨事項」メニューです。
ここに、「この設定を直したらどれくらい環境が良くなるか」という観点で「セキュリティスコア」が表示されています。
この環境の評価
例えばこの環境では、一番必要性の高い「MFAを有効にする」はできているものの、その次に評価点の高い「管理ポートをセキュリティで保護する」という項目に対応できていません。
セキュリティスコア(評価点)の考え方
セキュリティスコアは、Azureが勝手に決めた数字であり、この数字が低ければ無視してよいものでも、高ければ攻撃を受けるといったものでもありません。ただし、マイクロソフトが推奨順に高評価点、というだけでも一定の信頼性があります。
よく言われるのは「マイクロソフトは世界でトップクラスに攻撃を受けている企業だ」ということです。どのような攻撃が世の中で行われているか、ものすごい量のデータを持っているはずで、それが評価基準に反映されていると考えればとても信頼できる情報です。
具体的な項目を見る
一段階ドリルダウンしてみると、具体的には3つの項目で構成されています。
インターネットに接続されている仮想マシンをネットワーク セキュリティグループで保護する必要がある
文字通り、VMにはNSGを適用しましょうというルールです。カンタンですね。さすがにやってありました。
仮想マシンで管理ポートを閉じる必要があります
22番ポートや3389番ポートが空いているVMが指摘を受けています。
検証用途ではついつい開けてしまいがちですが、Bastionなどを使い、インターネット向かいでオープンにはしないようにしましょう。こうやって指摘を受けることで「どうやって守るべきなのか」という基本を学習できることにも意味があります。
仮想マシンの管理ポートは、Just-In-Time のネットワーク アクセス制御で保護する必要があります
JITアクセスとは、Security Centerの「サーバー用のAzure Defender(=有償版)」に含まれる機能です。
「通常時はNSGのポートを塞いでおいて」「Security Center経由で接続ポート・時間・接続元IPアドレスなどを限定してアクセスを要求」「一時的に接続ポートを空けてアクセスする」「どういう許可を出したか後から監査ができる」といった動きをさせられます。
よっぽど閉域で構成で来ているか、あるいは別の接続管理ツール等を使っていない限りは、こういった仕組みは利用すべきというのがベストプラクティスと言えます。
機能の詳細は公式ドキュメントをご参照下さい。
何処までやればいいのか確認する
優先順位が高い方からできる限りやりましょう、というのが基本線ですが、管理するサブスクリプションやリソースが増えてくると、そうも言ってられなくなると思います。そこで見るのが「セキュリティスコア」の合計点です。
推奨事項のページや、Securiy Centerのトップページのダッシュボードに表示されています。
このセキュリティスコア、環境(リソース量)によって最高点が変わりますので、完全に横並びには評価できませんが、割合(%)を見ることでどの程度守れているかが見えてきます。
前述の通り、全てを100%にすることはなかなか難しいと思いますが、自身の管理する全環境の評価点を平均的に押し上げていく、というのが管理の目標になると思います。
ただ、リソースが増減したり、設定が変わると評価も洗い替えされますので、ここの状況は定期的にチェックする必要があります。
システム構築時に満点にしたからと言って、運用を通してスコアが下がっていったら意味がありませんし、「障害対応で設定を変えてみる」「そして設定を戻し忘れた」なんて話は枚挙に暇がありません…
対策の仕方は学習できましたが、どうやって継続的に対策してくんだ…という課題が残ったことが分かりました。
おわりに
今回、沢山あるセキュリティリスクに対して、何から対処していくべきか考え方を書いてみました。基本的な使い方はおおむね書けたと思いますが、Security Centerの入門としては次で最後にしたいと思います。次回「じゃあSecurityCenterって毎日見なきゃいけないの?」お楽しみに!
Discussion