目次
ネットワークセキュリティサービス
以下にAzureのネットワークセキュリティサービス一覧を示します。本記事ではこれらのサービスについて詳しく解説していきます。
| サービス | 役割 | デプロイ場所 |
| DDoS Protection | Azureで利用するパブリックIPアドレスに対するDDoS攻撃からの保護 | VNet外 |
| Azure Front Door | SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃からの保護 | VNet外 |
| Application Gateway | SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃からの保護 | VNet内 |
| Azure Firewall | HTTP/HTTPS、MSSQLに関してはFQDNベースのL7のアクセス制御、その他プロトコルに対してはL4のアクセス制御を行い、悪意ある第三者からの通信を防ぐ | VNet内 |
| NSG | L4のアクセス制御を行い、悪意ある第三者からの通信を防ぐ | VNet内 |
| プライベートエンドポイント/ サービスエンドポイント | PaaSに対してアクセス可能なVNet、リソースを制御し第三者からのPaaSへの通信を防ぐ | VNet |
DDoS Protection
概要
Azureで利用するパブリックIPアドレスに対するDDoS攻撃から保護するサービス。
SKU(特徴)
- DDoS Infrastructure Protection
Azureプラットフォーム側でデフォルトで機能する最低限守られるレベルの防御
- 無償
- パブリックIPアドレス利用時にはデフォルトで機能する
- 基本的なL3/L4 DDoS緩和をAzureプラットフォーム側で提供
- ユーザ側で閾値が設定できず、メトリックの監視も行えない
- DDoS IP Protection
守りたいIPアドレスが少数ならコスパ良く高度な防御が可能
- 有償
- 特定のパブリックIPアドレス単位でDDoS Protectionを有効化
- 中小規模向け(必要なIPアドレスだけ守るのでコスト最適)
- L3/L4高度防御、攻撃時レポート、アラート
- インフラ全体の包括的保護はしない(IPアドレス単位)
- DDoS Network Protection
大規模ネットワーク全体を対象に、最も包括的な保護プラン
- 有償
- VNet単位で保護(複数IPアドレスをまとめて保護)
- 大規模向け(多数のパブリックIPアドレスを使うネットワークを一括で防御)
- L3/L4高度防御、レポート、アラート
- Application Gateway、Load Balancerなどを含むVNet全体をカバー
- Web Application Firewall (WAF) 連携によるL7防御強化
Azure Front Door、Application Gateway(WAF)
概要
SQLインジェクションやXSSなどのWebアプリケーションに対する攻撃から保護するサービス。
XSSとは?
XSS(Cross-Site Scripting)とは、Webページに悪意のあるスクリプト(主にJavaScript)を仕込む攻撃のことです。
特徴
WAFポリシーを構成しアタッチ(追加)することで利用できる。
- ユーザが作成したカスタムルール
- Azureで管理するマネージドルールセット
- WAFを機能させるためにはHTTPSの暗号化されたペイロードを検査する必要があるため、あわせてSSL/TLSオフロードを設定する必要がある
カスタムルールとマネージドルールがどちらも設定されている場合、カスタムルールを処理した後にマネージドルールが処理される。
ペイロードとは?
通信・データ・攻撃などの中で “本当に運びたい中身・実行したい内容” のこと。
SSL/TLSオフロードとは?
サーバが行うはずの暗号化・復号(SSL/TLS処理)を、専用装置やロードバランサーに肩代わりさせる仕組み。
Azure Firewall
概要
HTTP/HTTPS、MSSQLに関してはFQDNベースのL7のアクセス制御、その他のプロトコルに対してはL4のアクセス制御を行い、悪意ある第三者からの通信を防ぐことができるサービスです。
特徴
ステートフル(通信を往復で処理)なファイアウォールです。アプリケーションルール、ネットワークルール、DNATルールに基づいてトラフィックを処理します。
- 評価の順序
- 受信:「DNAT規則 → ネットワーク規則」の順に評価。合致するものがなければ拒否される。
- 送信:「ネットワーク規則 → アプリケーション規則」の順に評価。合致するものがなければ拒否される。
NSG
概要
ステートフルなL4通信制御機能です。
特徴
- サブネットとNICに紐づけることができるが、推奨はサブネットである
- ステートフルである、戻りのパケット規則は内部的に自動で作成される
- 評価の順序
- 受信:サブネットのNSGに従い評価された後、NICのNSGに従い評価される
- 送信:NICのNSGに従い評価された後、サブネットのNSGに従い評価される
ASGとは?
NSGの拡張機能として、ASG(アプリケーションセキュリティグループ)があります。仮想マシン(NIC)をグループ化することができ、NSGの送信元/宛先として適用できる。同じ役割のサーバ同士をグルーピングすることで、アプリケーションの通信パターンに適応したNSG設定が容易になります。
ASGを使う際、1つのASGに所属させるNICはすべて同じVNet内に存在する必要がある点に注意が必要である。またNSGで送信元と宛先双方にASGを設定する場合、それぞれのASGに所属するNICは同一のVNet内に存在する必要がある。そのため、送信元と宛先両方にASGを使う場合は、1つのVNet内の通信にのみ適用可能です。
プライベートエンドポイント/サービスエンドポイント
概要
PaaSに対してアクセス可能なVNet、リソースを制御し第三者からのPaaSへの通信を防ぐことができるサービス。
特徴
プライベートエンドポイントとサービスエンドポイントの特徴は以下の通りです。
| 項目 | プライベートエンドポイント | サービスエンドポイント |
|---|---|---|
| 接続方法 | プライベートIP | パブリックIP(許可されたVNet) |
| 通信経路 | 完全なVNet内(閉域) | Azureのバックボーン |
| セキュリティ強度 | 高 | 中 |
| 利用例 | 高度な分離・セキュリティが必要 | 簡易なアクセス制御 |
アクセス方法
本題に入る前に、VNet外のPaaSにVNet内からアクセスする方法は3つあります。
- インターネットへのアウトバウンドと同様の送信元NAT(SNAT)を使ったアクセス
- サービスエンドポイント(サブネットに付加)を経由してのアクセス
- プライベートエンドポイント(PaaSに付加)を経由してのアクセス
1.インターネットへのアウトバウンドと同様の送信元NAT(SNAT)を使ったアクセス
Microsoft以外のISPなどネットワーク運営者のネットワークを経由せずに、通信はMicrosoftが管理するバックボーンネットワークで完結します。
2.サービスエンドポイント(サブネットに付加)を経由してのアクセス
サービスエンドポイントを経由してVNet内からPaaSにアクセスすると、送信元IPアドレスはNATされず、VNet内で利用しているプライベートIPアドレスのまま通信を行います。実際には、VNetのIDおよびサブネットのIDを埋め込んだ特殊なパケットフォーマット(プロトコル)を使うことで、PaaS側で通信元の特定などを実現しています。
サービスエンドポイント経由のアクセス先はあくまでPaaSのパブリックエンドポイントとなります。
ただし、以下のようなデメリットもあります。
- オンプレミスからのプライベート通信には利用できない
- サービスエンドポイントを利用する場合、VNet内からPaaSのカテゴリごとに許可を行います。たとえば、ストレージアカウントにアクセスする場合はサービスエンドポイントを利用するサブネットでMicrosoft.Storageに対するアクセスを許可します。(アクセスする先のPaaSのリソース名まで特定できない点で少し難があります)
上記の問題に対処するためには、プライベートエンドポイントを利用する必要があります。
3.プライベートエンドポイント(PaaSに付加)を経由してのアクセス
プライベートエンドポイントを使うと直接PaaSにアクセスできます。(PaaSを閉域ネットワークからのアクセスだけに限定することが可能)
- オンプレミスからの通信もプライベートエンドポイントを経由することが可能
- NSGを使って通信を制限することも可能
- 「Paasはマルチテナントの構成を取っている」「TLSレベルではホスト名で通信先を認証する」ことから、プライベートエンドポイントを設定してもホスト名を指定してアクセスする必要がある
オンプレミスからプライベートエンドポイントにアクセスするための代表的なDNSインフラとして、オンプレミスのDNSからプライベートエンドポイント用のドメイン、もしくはホスト名については条件付きフォワードでVNetにデプロイしたDNSフォワーダーに転送する。
上記以外にも「PaaSにアクセスするクライアントそれぞれでhostsファイルを書く」や「オンプレミスのDNSにてプライベートDNSゾーンと同様にプライベートエンドポイント用のドメインを管理する」などがあるが、前者も後者も管理コストがかかる。
さらにDNSフォワーダーを構築する場合、Private DNS Resolver(VNet内のリソースが、プライベートな名前を安全に解決するためのDNSサービス)を利用することが一般的である。
「VMを使ってDNSサーバを構築し、転送されてきたDNSクエリをさらに168.63.129.16のエンドポイントへ転送するように設定する」や「Azure FirewallのDNSプロキシの機能(Azure FirewallをDNS経由の通信の中継点にすることで、DNSアクセスを制御・監視できる機能)を利用する」などもあるが、管理コストがかかる
Private DNS Resolverは、2種類のエンドポイントをホストする機能を持っています。
- オンプレミスから発信されたクエリをプライベートDNSゾーンで解決するための受信エンドポイント
- VNetから発信されたクエリをオンプレミスに転送するための送信エンドポイント