こんにちは。プロダクト・サービス開発部のT.Nです。
2021年12月から2022年6月にかけて連載させていただいたリモートワークセキュリティシリーズでは、各ソリューションの概要をご紹介させていただきました。概要説明だけではよく分からないというお客様もおられると思われますので、今回から実践編として実際の現場でどのように活用されるかについてご紹介させていただきます。第1回目はCisco Duoの実践的な活用方法です。なお、概要偏をまだお読みいただいてない方は下記のリンクもご参考ください。
「リモートワークセキュリティシリーズ 第3回 クラウド提供型Cisco Duoではじめるゼロトラスト」
https://nttcdd.jp/usecase/3312/
目次
Azureへのリモート接続に関するセキュリティを考える
Azureクラウドサービスの便利さとセキュリティリスクについて
読者の皆様はご存知の通り、Azureはマイクロソフトが提供するクラウドサービスです。IaaSからPaaSまでユーザーに対して快適な環境を提供します。筆者もAzureについては初心者ながら設定する機会があったのですが、一度体験するとその快適さからオンプレミスにはもう戻りたくないなと感じました。(もちろん最重要なデータを抱えているお客様は今後もオンプレミスを選択する事が予想されますので、完全になくなる事はないですが。) しかしAzureのセキュリティ事情はどうなっているのか心配もありますね。そこで、本ブログではAzureのセキュリティをCiscoリモートワークセキュリティ(以下Cisco SASE)で対策する意義と検証レポートをメインにご報告させていただければと思います。
Azureの共同責任モデルを知っていますか
AzureのセキュリティについてMicrosoftは共同責任という規定を設けています。簡単に言うとクラウド利用者とクラウド提供者の責任分界点です。例えばIaaSを利用した場合、「任意の仮想マシンに侵入できるセキュリティホール」は、クラウド提供者の責任となりますが、特定の仮想マシンの構成が原因で攻撃者に侵入されるのはクラウド利用者の責任となります。また、OSの構成も利用者の責任となります。例えばWindowsでリモートデスクトップによる接続を無条件で許可した上で、安易なユーザー名とパスワードを使っていて侵入された場合は、クラウド利用者に責任があると見なされます。クラウドに移行してもセキュリティ管理は利用者の責任で担保する必要があるという事です。
Azureのセキュリティ対策をどうするか
ではどのようにセキュリティ対策を講じれば良いのでしょうか。1つの方法としてはAzureが提供しているセキュリティツールをそのまま使用する事です。無料のセキュリティツールから有料のAzure DefenderやAzure Firewall、Azure DDosなどが用意されています。しかしここで気を付けなればいけないのは、クラウドサービスは認証についてはシングルサインオン(SSO)がベースとなっており、Azureの設定にも依りますが、Azureのサービス面で稼働する仮想マシンに対して攻撃者に侵入されてしまうとセキュリティツールも回避されるリスクが高まるという事です。更に、腕のいい攻撃者は侵入に成功した後はrootkitという手法でログの改ざんなどを行い侵入の痕跡を残さずに遠隔操作などの活動をしますので、セキュリティ関連のログが同じAzure上に保管するのは良くないと考えられます。これらのことからセキュリティ対策は同じAzureで実装するよりも別のベンダーで行った方が安全そうです。そこで次章からは、具体的にCisco SASEの構成要素の1つDuoにCisco ASAvを連携させてAzureのセキュリティを強化する方法について、検証と評価をしてみます。
検証目標と構成
本ブログにおける検証目標と使用する製品、構成図は以下の通りです。
・検証目標: Azureへのリモートワーク接続のセキュリティをCiscoSASEで強化する事の有効性を評価する。
・使用する製品: CiscoのASAv、Duo
・構成図:下図の通り、リモートワーカーからAzure上のLinuxへのアクセスを想定します。
Azure側の環境準備
Azureの基礎
本題に入る前に本ブログにおける検証レポートを理解する為に、少しだけAzureの基礎を記載させていただきます。最低限Azureのライセンス体系やリソース、VNetの知識が必要となります。その他にも重要な項目があるのですが、本ブログの範囲を超える為、割愛させていただきます。Azureの詳細ついてはMicrosoftのドキュメントをご参照ください。
(1)Azureのライセンス体系
Azureのライセンスはテナント(会社・組織)がトップにあり、その配下にサブスクリプションという単位でライセンスの契約をします。例えば下記の図のように1つの組織で業務用と開発用で契約する事が可能です。
(2)リソース
サブスクリプションの配下に仮想マシンや仮想ネットワークなどのリソースが紐づけられます。リソースはグループ化が可能であり、リソースグループに対してAzureの簡易なセキュリティやアラート設定など共通のポリシーを適用できます。
(3)VNet
AzureのネットワークはVNetという単位になっています。1つのVNetに複数のサブネットを作成した場合は、AzureのGatewayを経由してルーティングが可能となっています。デフォルトでアクセス制御されていない事が注意点です。サブネット間で直接アクセスさせたい場合やサブネット間の通信についてアクセス制御したい場合は、Cisco ASAvなどのFWを使用してユーザー定義ルートを作成する事で実現できます。Ciscoのセキュリティ製品を導入する意義がここで1つ発生します。
ASAvの準備
Azureの最低限必要な基礎が分かりましたので、次はCisco ASAvをAzureの環境に実装する手順をご紹介させていただきます。Cisco ASAvはAzureのマーケットプレイスからデプロイします。詳細は下記のCisco社が提供する手順をご参考ください。
<前提条件>
・ASAvに関する基本的な知識を有している事。
・ASAvの初期設定は以下の手順に記載しているリンクを元に設定してください。
<手順>
https://www.cisco.com/c/ja_jp/td/docs/security/asa/asa98/asav/quick-start/asav-quick/asav-azure.html
<ポイント>
・ASAvのインタフェースは4つ必要。
・使用しないインタフェースはshutdownで構わない。
・ManagementインタフェースがASAvの管理ネットワークとインターネット通信(VPN通信)を兼務する。
※ASAvの費用について
ASAvのライセンス使用権はCiscoと契約、ASAvを動作させるCPUやメモリなどのリソース使用はMicrosoftと契約します。
<作業履歴>
以下はマーケットプレイスからASAvをデプロイした時の作業履歴です。
ASAv+Duoの設定について
第3章ではASAvとDuoの設定について記載します。設定は下記のCisco Duo関連の手順で確認できます。また、検証を進める上で一部足りない手順がございましたので、補足事項としてお伝えさせていただきます。
ASAvにおけるリモートアクセスVPNの設定
<前提条件>
・ASAvのRemote Access VPNに関する基礎的な知識を有している事。
・Duoの基礎的な知識を有している事。
<手順>
https://duo.com/docs/sso-ciscoasa
https://www.cisco.com/c/en/us/td/docs/security/asa/asa917/configuration/vpn/asa-917-vpn-config.html
<ポイント>
・Anyconnectのバージョンは4.10.*以降をインストール。
・ASAOSのバージョンは9.18.*以降を選択。(ExternalBrowserでSAML認証する為)
・ManagementのインタフェースでVPNを確立する。
・Linuxへのアクセスは、ASAvでルーティングを書くと共に、Azureのユーザー定義ルートを設定する。
<作業履歴>
上記の手順ではASAの設定をGUI(ASDM)から行いますが、作業履歴はその結果、CLIでどのようなコンフィグになっているかをレポートさせていただきます。
<補足:証明書のエラーへの対策について>
ASAvでリモートアクセスVPNのSAML認証をする場合に、AnyConnectはデフォルトで組み込みのブラウザを使用します。組み込みのブラウザはオレオレ証明書ですとセキュリティのエラーが発生してアクセスできません。
そこで検証の際はExternal Browser(MicrosoftEdgeなど)を使用してSAML認証するように設定できます。CiscoのSoftwareセンターからanyconnect external-browser-pkgをダウンロードして、ASAvにソフトウェアをアップロードします。その後にCLIからExternal Browserを有効化します。
Duoの設定
3.2章では本検証におけるDuoの設定を記載します。
<前提条件>
・MFAデバイスとする携帯電話にDuoClientをインストール済みであること。
・Duoの基本的な設定が済んでいること。
<手順>
https://duo.com/docs/sso-ciscoasa
<ポイント>
・Azure ADとDuoのDirectorySyncでユーザーを同期する。
・SSOを有効化する。
・アプリケーションでASA Remote Access VPNを有効化する。
<作業履歴>
(1)Azure
Azureに設定する必要があります。作業のログは以下の通りです。
(2)Duo
次にDuoの設定をします。作業履歴は以下の通りです。
テスト結果
アクセス確認
4.1章ではリモートワーカーの端末とAzure上のASAvでRemot Access VPNを設立して、Azure配下にある仮想マシンにPingするところまで検証した結果を記載します。
<確認のポイント>
・VPNの認証をSAML認証としているので、Duoの多要素認証で本人確認が徹底されている事。
・VPNの確立後は、リモートワーカーがAzure上のLinuxサーバに直接アクセス可能な事。
・セキュリティのログはDuoクラウドで管理されている事。
<検証履歴>
(1)AnyConnectでVPNの確立
タスクトレイからCisco AnyConnect Secure Mobility Clientを起動してアクセス先のASAvのIPアドレスまたはFQDNを入力してConnectボタンを押下します。
(2)Ipconfigの結果
赤字の通り、ASAvからIPアドレスが払い出されている事を確認します。
(3)Pingの確認結果
Azure上の仮想マシンに対してPingの疎通が取れるようになる事を確認します。
DuoのAuthentication Log確認結果
4.2章ではCisco Duoの認証ログの確認です。下図からASAvとのリモートアクセスVPN確立時のSAML認証が成功した事が分かります。これはAzureの環境とは別のCiscoのクラウド上で管理されますので、rootkitなどの攻撃で改ざんする事は不可能である事に注目してください。これはCisco SASEを利用する事の2つ目の利点です。
検証結果の評価
最後に検証結果の評価を出来る限り客観的に下記にまとめさせていただきます。
・Cisco ASAvを導入する事でリモートアクセスVPNを利用できる。
・Cisco ASAvを導入する事でAzure Vnet内でアクセス制御とルーティングを柔軟に行える。
・Cisco DuoとCisco ASAvを連携する事でASAvとリモートワーカーのリモートアクセスVPNをSAML認証として本人確認を徹底できる。(ゼロトラストレベルのセキュリティの実現)
・認証ログはAzureとは別の為、攻撃者から改ざんされる心配がない。
本ブログのまとめと次回の予告
今回はAzureへのリモートアクセスに対するセキュリティ対策をCisco SASE(ASAv+Duo)で強化する事例を取り上げました。NTT Com DDはお客様の働き方の変化に応じてCiscoのセキュリティ製品を提案する事が可能ですので、ご不明な点がございましたらお問い合わせいただけますと幸いです。次回はCisco Umbrellaローミングクライアントを活用したリモートアクセスが実際の現場でどのように活用されるかについて、レポートさせていただきます。こちらもご期待ください。