Azure Managed Service Column <Azure運用コラム>

NSG(ネットワークセキュリティグループ)で行うセキュリティ対策をご紹介

Category: 実践編

2022.08.12

クラウド環境におけるセキュリティリスクと NSG を用いた有効的な対策方法

近年、仮想化技術が進化し、多くのシステムがオンプレミス環境からクラウド環境へ移行されています。オンプレミス環境では物理的なセキュリティアプライアンスを導入するなど「目に見えるセキュリティ対策」が中心でした。

クラウド環境のセキュリティ対策は十分でしょうか?特に Azure 環境における IaaS(サービスとしてのインフラストラクチャ)型サービスは、あらゆるインフラストラクチャ、コンピューターリソースを簡単に利用できる反面、保存されるデータに対してのセキュリティ対策は利用者が行う必要があります

Azure には NSG(ネットワークセキュリティグループ)という通信フィルター機能をデフォルトで利用することができます。仮想ネットワークのサブネット間、仮想マシン間のネットワークトラフィックを制御する機能を持ち、セキュリティを担保する上で大変重要な機能です。

本記事では NSG の概要と、NSG が無い場合のセキュリティリスク、効果的な NSG の設定方法について紹介します。

1. NSG(ネットワークセキュリティグループ)について

まず大前提として、Azure のような IaaS 型クラウドサービスでは、展開された仮想マシンや保存されるデータに対し、利用者自身がセキュリティ対策を行わなくてはいけません。これは Microsoft 社が提唱するクラウドサービスにおける共同責任モデルとして確立された考え方です。

セキュリティ対策の基本は、安全な通信を担保するために、通信状況を監視・記録し、不正な通信を拒否する(正しい通信を許可する)という「ネットワーク制御」がポイントになります。Azure において、この基本的な役割を担うのが NSG(ネットワークセキュリティグループ)です。

一般的なネットワーク制御機器(もしくは制御機能)は、ネットワークの境界に設置されるものが殆どです。例として、インターネットとオフィス内ネットワークのように通信が集中するポイントに設置する機器がイメージしやすいでしょう。このように境界に設置することでネットワーク制御を一元的に行うケースが有効的とされています。Azure においても別途有料サービスではありますが、Azure Firewallというクラウド型 Firewall サービスを提供しています。

それに対し NSG は仮想ネットワークのサブネット、仮想ホストの NIC( Network Interface Card )というよう個別のリソースに割り当てて管理するネットワーク制御機能です。Azure のデフォルト機能として提供される NSG は共同責任モデルにおける利用者の基本的なセキュリティ対策として重要な役割を担っています。NSG について、Firewall との違いなど、詳しくはこちらの記事で紹介しておりますので合わせてご参照ください。

2. NSG を設定しない場合どのような危険があるのか?

Azure 環境を利用するメリットの一つは、仮想ネットワークをサブネットに分割する、複数の仮想マシンを構築するなど、可用性を向上させる設計が可能となる点です。

また使いたい時にすぐに使えるというメリットもある為、本番環境のみならず、短期的なテスト利用も含め、仮想マシンを展開する機会は多くなるでしょう。ではこのよう状況で NSG を設定しない場合、どのようなリスクを伴うのでしょうか。

2.1 不正に乗っ取られるリスク

仮想マシンはそのまま作成すると、インターネットから RDP(リモートデスクトッププロトコル)や SSH(セキュアシェル)でのアクセスが許可された状態で展開されます。
RDP はパソコンの画面へそのままアクセスすることができますし、SSH もコマンドラインによる対話型の操作が可能になります。

結果的にインターネットから誰でも仮想マシン内にアクセスできる状態となり、仮想マシンの乗っ取りによる BOT 化の二次被害、情報盗取・漏洩のリスクが非常に高くなります。

2.2 サービス妨害のリスク

仮想マシンをインターネットと通信可能なグローバル IP アドレスと紐づけて作成すると、インターネットからの偵察スキャン、パスワードアタック(辞書攻撃)、ICMP(インターネットコントロールメッセージプロトコル)、UDP(ユーザーデータグラムプロトコル)といった不要な通信を大量に送りつけるフラッド攻撃など、ありとあらゆる無差別攻撃を受けることになります。結果的に仮想マシンの負荷を高める妨害行為により事業継続性に支障きたす場合があります。

2.3 管理が不十分なことでさらに高まるリスク

管理が行き届いていない場合、さらにリスクは高くなります。万が一仮想マシンに対し NSG が適用されず、グローバル IP アドレスと紐づけたまま放置された場合、仮想マシンがウィルス感染することで内部の重要なサブネットに侵入されるなど、リスクが非常に高くなります。

これらはネットワークの境界線に置かれる Firewall で制御することもできます。しかし仮想マシンや仮想ネットワークが複数存在し、短期間のテスト利用など、比較的状態の変化が多い環境を考慮すると、Firewall のような一括管理の場合、都度ネットワーク制御ルールの見直しが必要となります。やはり、IaaS 型クラウド環境においては予め共通利用が可能な NSG を準備し、サブネット、NIC 単位で適用する運用が効果的と言えるでしょう。

3. NSG を設定するために知っておくべきネットワーク知識

NSG の設定は Azure portal で簡単に行うことができます。しかし最適な設定や、運用におけるチューニング作業などを行うためには、最低限のネットワーク知識(用語)が必要です。本項では、最低限知るべき用語を解説します。

3.1 IP アドレス

IP アドレスとは、通信機器に割り当てられるインターネット上の住所です。データ通信のやりとりは手紙のやり取りに似ており、この IP アドレスを元にデータの送受信を行います。

NSG の設定においてはパブリック IP アドレス、プライベート IP アドレスの2種類を理解する必要があります。パブリック IP アドレスは外部(インターネット)で公開された世界に一つだけの住所です。プライベート IP アドレスは内部(イントラネット)で利用する住所であり、公開されていないため重複しても問題ない情報です。

プライベート IP アドレスがインターネットで通信するためには、プライベート IP アドレスをパブリック IP アドレスへ変換する NAT(ネットワークアドレストランスレーション)という技術を用いてデータ通信を行います。

3.2 プロトコル

インターネット通信をするための約束事をプロトコルと呼びます。これは世界標準で仕様が定められています。NSGで は TCP(トランスミッションコントロールプロトコル)、UDP、ICMP、ESP(エンキャプスレイションセキュリティペイロード)、AH(オーセンティケーションヘッダー)のプロトコルを指定することができます。または Any(すべて)を選択することもできますが、ほとんどのインターネットサービスが TCP、UDP の約束事で通信されています。

例えば TCP は通信相手との「確認」を行うことが約束事で定められており、メール、インターネット、クラウドサービスの多くは TCP で通信しています。

UDP は通信相手との「確認は不要」であることを約束事で定めています。近年急増している動画配信などのストリーミングサービスで用いられています。

3.3 サービスポート

サービスポートとは、プロトコルである TCP/UDP において、コンピュータ内で動作するサービスを指定するための番号です。

例えばメール送信は 25 番、メール受信は 110 番、Web サイト閲覧は 80 番(非暗号化)、443 番(暗号化)、SSH は 22 番、RDP は 3389 番など、予めサービスポートとしての番号が決められています。この番号もプロトコルと合わせて世界標準で定められています。インターネットに関連する番号を統合管理している組織である IANA( Internet Assigned Numbers Authority )が管理を行なっています。

3.4 ステートフル・ステートレス

NSG のようなフィルター機能や一般的な Firewall の概念として、ステートフル・ステートレスという考え方があります。

ステートフルとは、「入力が許可されれば応答は保証される」という原則に基づいています。つまり NSG においては送信の時、一度許可されれば、その通信が戻るとき(受信)も許可されるという状態です。
これとは反対にステートレスとは、送信、受信を都度チェックするので、ネットワーク制御ルールを送信、受信それぞれ設定しなくてはいけません。

ステートフルかステートレスかで、設定するルールの数が異なりますので、設計上の前提として把握しておく必要があります。NSG や Azure Firewall はステートフルです。

4. NSG を活用したセキュリティ対策について

ここまでの解説を踏まえ、NSG を活用したセキュリティ対策について紹介します。

4.1 NSG の適用箇所は NIC へ適用し Azure Network Watcher 機能を活用する

NSG は仮想ネットワークのサブネット、仮想マシンの NIC に設定することができます。NSG では、主に IP アドレス、プロトコル、サービスを条件として設定しますが、サブネットと NIC の両方に適用することで、セキュリティの堅牢性が高まるというわけではありません。むしろ NSG のルールが競合し、トラブルシューティングが複雑になる可能性があります。Microsoft 社は NSG を両方に関連付けることは推奨していません。

サブネットに関連付けられている NSG は、その内部にあるすべての仮想ホストに影響を与える可能性があるので、NSG は仮想ホストの NIC に設定し管理した方が良いでしょう。

また仮想ホストのNICに対して、NSGを設定するメリットとして Azure Network Watcher を効果的に活用することができます。Azure Network Watcherとは仮想ネットワーク内のリソースの監視、診断、メトリックの表示、ログの設定を行う機能です。特にトラブルシューティングにおいては効果的な機能です。

4.2 共通 NSG を用意し効果的に流用する

NSG は同じ設定の NSG を、任意の数のサブネットと NIC に流用して関連付けることもできます。先述した通りサブネット間の通信制御については影響範囲が大きいため、注意が必要ですが、仮想マシンを作成するときに予め NIC へ適用させるNSGを用意しておくことを推奨します。

例えば送信元の IP アドレスを限定させる、不要なサービスポートへの受信を拒否する(特に SSH や RDP )等を予め運用ルールを定めて汎用的に流用可能な NSG を準備しておくだけ安全性は高くなるでしょう。

4.3 Bastion を活用する

Azure Bastion とは、Web ブラウザと Azure portal を使用し、仮想マシンに接続する PaaS(サービスとしてのプラットフォーム)型サービスです。Azure portal から直接、仮想マシンへ安全な SSH、RDP 接続ができるため、直接インターネットから接続するよりも安全性は高いと言えるでしょう。

Bastion 経由で接続する場合、エージェント、クライアントソフトウェアなども不要です。仮想マシンが SSH、RDP のサービスポートを外部に公開する必要は無く、内部ネットワーク内で Bastion からの SSH、RDP の許可ルールを設定するだけです。

Bastion 経由させることで、安全性と運用上の利便性向上も期待できるでしょう。Bastionの利用に際し、別途料金が発生します。詳しくは公式サイトでご確認ください。

5. まとめ

本記事ではここまで、NSG について、NSG が無い場合のセキュリティリスク、効果的な NSG の設定方法を紹介させて頂きました。Azure 環境において、比較的簡単に実装できる機能なので、是非 NSG を実装しましょう。またクラウド環境内の仮想ネットワークにおいて、高度なセキュリティ対策や運用の利便性向上が必要な場合は、Azure Firewall や Azure Bastion の導入もご検討ください。

セキュリティ対策は様々な観点からコストバランスに応じて対策を講じる必要があります。是非、専門家にご相談の上、効果的なセキュリティ対策をご検討ください。

導入した Azure 環境のセキュリティ対策に不安がある

Azureセキュリティアセスメントサービス

Azureセキュリティアセスメントサービス

お客様がすでにお持ちの Azure 環境に対して、Azure Security Center を利用したセキュリティ対策の評価と対策案をご提示します。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Azure導入個別相談会(無料)

Tag: Azureセキュリティ Azureネットワーク ネットワークセキュリティグループ

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php