![](https://storage.googleapis.com/gblogs-bucket/sites/2/1477372593-bpfull.jpg)
Microsoft 社は今月はじめ、Exchange Server に存在する数件の重大な脆弱性について修正プログラムを公開しました。これらの脆弱性のうち 1 件(CVE-2021-26855)は、「ProxyLogon」とも呼ばれる特に危険なものです。ProxyLogon は Exchange Server のサイド リクエスト フォージェリ(SSRF)の脆弱性であり、攻撃者は、有効な電子メールアドレスさえあれば認証をバイパスできます。認証をバイパスした攻撃者は通常、任意ファイル書き込みの脆弱性(CVE-2021-27065)をエクスプロイトして、JScript の Web シェルを Exchange Server に書き込みます。この Web シェルが展開されると、攻撃者がサーバを完全に制御できるようになります。
Cisco Talos は、前述の脆弱性に加え、侵害を受けた Exchange Server で観察された Web シェルについてもカバレッジをリリースしました。BlueKeep や DejaBlue をはじめとする多くのサーバ脆弱性と同様に、ProxyLogon 攻撃を防御する上では SSL を復号することが必要です。このため、Cisco Secure IPS(NGIPS)で SSL 復号を設定し、暗号化された ProxyLogon 攻撃を防御する方法についてガイドを作成しました。
前述の脆弱性および Microsoft 社が公開した修正の適用方法の詳細については、以下のリンクを参照してください。
ここからは、Microsoft Exchange トラフィックの復号とインライン検査について手順を説明します。この手順では、SSL 復号をサポートしているインライン Firepower IPS デバイスが必要です。詳細については、Cisco Secure の次世代侵入防御システム(NGIPS)に関するシスコのページを参照してください。
1. Exchange で使用されている証明書を特定します。Exchange 管理センターにログインします。
- [サーバー(Servers)] で、[証明書(Certificates)] を選択します。
- Exchange のサービスに割り当てられている証明書を選択し、編集アイコンをクリックします。証明書のサムプリントをメモします。
- Exchange Server で「certlm.msc」を実行します。
- Exchange 管理センターのサムプリントと一致している証明書を見つけます。
- その証明書を右クリックし、[すべてのタスク(All Tasks)] から [エクスポート…(Export…)] を選択します。
- [次へ(Next)] をクリックします。
- [はい、秘密キーをエクスポートします(Yes, export the private key)] をクリックし、[次へ(Next)] をクリックします。
- PKCS が選択されていることを確認し、[次へ(Next)] をクリックします。
- 秘密キーを暗号化するためのパスワードを入力し、[次へ(Next)] をクリックします。
- PFX ファイルの名前を入力し、[次へ(Next)] をクリックします。
- 最後に、[完了(Finish)] をクリックします。
これで、Exchange 証明書と秘密キーが正常にエクスポートされました。Cisco Firepower Management System 用の Windows Server 暗号スイートの設定に進みます。
13. [グループポリシーの管理(Group Policy Management)] を開きます。
- [既定ドメインポリシー(Default Domain Policy)] -> [管理用テンプレート(Administrative Templates)] -> [ネットワーク(Network)] -> [SSL構成設定(SSL Configuration Settings)] を開いて、[SSL暗号の順位(SSL Cipher Suite Order)] をダブルクリックします。
- オプションを [有効(Enabled)] に設定し、静的キーの復号に Firepower がサポートする以下の CipherSuite 一式を貼り付けます。
TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256 _CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_3DES_EDE_ CBC_SHA
これで、Exchange Server が SSL 検査用に設定されました。Firepower 用の SSL 証明書とキーの準備に進みます。
16. Firepower 用の証明書と秘密キーを準備します。
この手順では、OpenSSL ツールと、上の手順でエクスポートした PFX ファイル(この例では exch_cert.pfx)が必要になります。PFX ファイルから証明書を抽出します。
$ openssl pkcs12 -in exch_cert.pfx -clcerts -nokeys -out cert.pem Enter Import Password:
上のコマンドを実行すると、インポートパスワードの入力を求められます。これは、これまでの手順で入力したパスワードです。
PFX ファイルから秘密キーを抽出します。
$ openssl pkcs12 -in exch_cert.pfx -nocerts -out key.pem Enter Import Password: Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
上のコマンドでは、同じインポートパスワードと、PEM パスフレーズの入力を求められます。この秘密キーのパスフレーズを覚えておいてください。Exchange 証明書を Firepower に追加する際に必要です。
17. Firepower Management Center にログインします。
- [オブジェクト(Objects)] -> [オブジェクト管理(Object Management)] -> [PKI] -> [内部証明書(Internal Certs)] の順に選択します。[内部証明書の追加(Add Internal Cert)] を選択します。
- 上の手順で準備した証明書と暗号化済みの秘密キーを貼り付けます。[暗号化(Encrypted)] をクリックし、上の手順で準備したインポートパスワードを入力します。[保存(Save)] をクリックします。
これで、Exchange 証明書と秘密キーが Firepower に正常にインポートされました。センサーのポリシーを準備します。
20. [ポリシー(Policies)] -> [SSL] -> [新しいポリシー(New Policy)] に移動します。SSL ポリシーの名前を入力し、[保存(Save)] をクリックします。
- [ルールの追加(Add Rule)] を選択します。
- ルールの名前を入力し、上でインポートしたキーを使用して、[復号 – 既知のキー(Decrypt – Known Key)] アクションを選択します。[ポート(Ports)] を選択し、宛て先ポートとしてポート 443 を入力します。[保存(Save)] をクリックします。
- [ポリシー(Policies)] > [アクセス制御(Access Control)] に移動して、該当する [アクセス制御ポリシー(Access Control Policy)] を編集します。[詳細設定(Advanced)] をクリックします。
- SSL ポリシーを、これまでの手順で準備したものに設定します。
- 変更を保存し、反映します。
- 最後に、Exchange への接続を確認します。これで、Exchange トラフィックのインライン復号とインライン検査の設定作業は完了です。ProxyLogon のエクスプロイトが Exchange Server に送信されると、暗号化されたトラフィックに仕込まれているエクスプロイトを Firepower が検出し、ブロックします。
このガイドがお役に立てば幸いです。これらの脆弱性を突かれないための防御はきわめて重要であり、最優先の事項と考えてください。
本稿は 2021 年 03 月 23 日に Talos Group
のブログに投稿された「Defending Microsoft Exchange from encrypted attacks with Cisco Secure IPS
」の抄訳です。