
本記事は情報が古くなっています。新しい記事はこちら
今回は、2021/12/10に発表されたApache Log4jの脆弱性に関する対応としてUnified Access Gatewayの脆弱性対応を行います。
なお、脆弱性に関する対応の最新情報はVMware社のページを確認してください。
VMSA-2021-0028.2
対応方法
UAGに関する脆弱性の一時対応として、VMware社からはLog4jのLookupをdisable(nolookup=true)へ設定することで暫定的に対応が可能です。
また、本設定を行う前に、古いUAGを使用している場合にはアップデートを先に行ってください。
Log4jに対応するUAGのバージョンはUAG 2009以降のバージョンとなります。
該当バージョン以前のUAGに関しては、UAGのバージョンアップが推奨されています。
旧UAGの設定エクスポート
UAGのバージョンアップはApplianceの再デプロイで行います。
設定値を踏襲するため、事前に旧UAGの設定をバックアップしておきます。

UAG設定のバックアップについては、[手動設定]-[サポート設定]-[Unified Access Gateway設定のエクスポート]よりJSON形式でエクスポートを行います。
また、OPSWATによるMetaacces等を使用している際には、インポート時にクライアントアクセスキー等が必要になるため、事前に確認しておきます。
UAGバージョンアップ
本環境では、UAGのバージョンが古いため、UAGのバージョンアップ→脆弱性対応の順番で対応を行っていきます。
また、UAGをバージョンアップを行う上で、Horizonや他のコンポーネントとのコンパチビリティを確認する必要があります。
Product Interoperability Matrix – VMware

現在運用中のUAGは3.9であり、使用しているHorizon製品はVMware Connection Server 7.12となります。
バージョンアップについては、2009以上となりますが、今回は2106へアップデートしていきます。
コンパチ的にnon supportになっていますが、UAGは比較的コンパチに緩いので強行します。
VMwareからサポートを受ける場合はコンパチを優先してバージョンを選定してください。

vCenterへアクセスし、UAGを再デプロイするクラスタに移動します。
クラスタより、[アクション]を選択します。

[アクション]-[OVFテンプレートのデプロイ]を選択します。

[OVFテンプレートの選択]-[ローカルファイル]-[ファイルのアップロード]を選択し、UAGのOVAテンプレートファイルを選択します。

OVAファイルを選択したら、[NEXT]を選択します。

[名前とフォルダの選択]より、[仮想マシン名]と[仮想マシンの配置場所]を選択して、[NEXT]を押下します。

[コンピューティングリソースの選択]より、UAGを配置するクラスタやホストを選択します。
本環境ではDRSを有効化していないため、ホストを指定しています。

[詳細の確認]より、[NEXT]を押下します。

[設定]より、UAGの構成とデプロイサイズを設定します。
今回は、バージョンアップ前のUAGの構成を踏襲するため、[Single NIC]を選択し、[NEXT]を押下します。

[ストレージの選択]より、UAGをデプロイするストレージを選択します。
また、[仮想ディスクフォーマットの選択]より、ディスクのポリシーを選択します。

[ネットワークの選択]より、UAGが所属する仮想ネットワークを選択します。
また、[IPアドレスの割り当て設定]より、[IPプロトコル]を[IPv4]を選択します。

[テンプレートのカスタマイズ]より、以下の設定を行います。
- Networking Properties
- IPMode for NIV 1 (eth0) : STATICV4
- Comma separated list of forward rules in the from… : 空欄
- NIC (eth0) IPv4 Address : UAGのIPアドレス
- List of IPv4 custom routes for NIC1 (eth0) : UAGが所属するネットワークアドレス
- NIC1 (eth0) IPv6 address : 空欄
- DNS server address : UAGから参照可能なDNSサーバのアドレス
- DNS Search Domain : UAGに付与するDNSサフィックス
- NIC1 (eth0) IPv4 netmask : UAGの所属するネットワークのサブネットアドレス
- NIC1 (eth0) IPv6 netmask/prefix : 空白
- NIC1 (eth0) Custom Configuration : 空白
- IPv4 Default Gateway : UAGが所属するネットワークのデフォルトゲートウェイ
- IPv6 Default Gateway : 空白
- Unified Gateway Appliance Name : UAGのホスト名
- Join CEIP
- Join the VMware Customer Experience Improvement Program : □
- Password Options
- Password for the root user of this VM : rootユーザのパスワード
- Password Expiration in days for the root user. : rootユーザのパスワード有効期限(デフォルト)
- Password policy minimum length. : パスワードの最小文字数(デフォルト)
- Password policy for minimuim number : パスワードに含まれる数字の最小数(デフォルト)
- Pasword policy for maximum failed attempts : ログイン失敗の最大試行回数(デフォルト)
- Password policy for unlock time in seconeds on maximum failed attempts : 最大試行回数超過後のログインロック解除時間(デフォルト)
- Password for the admin user, Which enables REST API access : adminユーザおよびREST APIのパスワード
- Password policy minimum length. : パスワードの最小文字数(デフォルト)
- Password policy for minimuim number : パスワードに含まれる数字の最小数(デフォルト)
- Pasword policy for maximum failed attempts : ログイン失敗の最大試行回数(デフォルト)
- Admin session idle timeout in minutes. : Adminユーザのセッション維持時間(デフォルト)
- System Properties
- Enable SSH : ■(SSHの有効化)
- Allow SSH root login using pasword : ■(rootユーザによるパスワードログインの許可)
- Allow SSH root login using key pair : □(rootユーザによるキーペアログインの許可)
- Enable Advanced Features : 空欄
上記の設定が完了後、[NEXT]を選択します。

[設定の確認]より、設定値を確認して、[FINISH]を押下します。
UAGの起動・設定

OVFテンプレートのデプロイが完了したら、新しいUAGを起動します。
起動後、コンソールはすぐに見えますが、裏で初回セットアップ等を行っているため、UAGのログイン画面が表示されるまで少し時間がかかります。

ブラウザより、以下のアドレスへアクセスし、ユーザ名・パスワードを入力してログインします。
UAG URL : https://<UAGのIPアドレス>:9443

UAGにログインしたら、[設定のインポート]-[選択]より、バックアップしたJSONファイルをインポートします。

UAGのトップページより、[手動構成]を選択し、インポートした設定が正常に設定されていることを確認します。
Horizon周りや基本的な設定周りはおおむね正常にインポートできているようです。
本環境で引き継げていない項目としては、UAGの証明書がインポートできていなかったので、再度設定を行いました。
UAG脆弱性対応
新しいUAGの基本的な設定が完了したら、脆弱性の対応を行います。
UAGにSSHまたはコンソールアクセスし、rootでログインします。
コマンドが長いため、SSH推奨です。
基本的な対応は以下のKBに記載されているコマンドを実行し暫定対応は完了です。
VMware KB87092
root@vUGA2106 [ ~ ]# sed -i 's/java /java -Dlog4j2.formatMsgNoLookups=true /' /opt/vmware/gateway/supervisor/conf/authbroker.ini
root@vUGA2106 [ ~ ]# supervisorctl update
authbroker: stopped
authbroker: updated process group
root@vUGA2106 [ ~ ]# ps -ef | grep ab-frontend
gateway 3167 817 99 03:12 ? 00:00:11 /usr/lib/jvm/zulu-8/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dport=8877 -Dlog4j.configuration=file:/opt/vmware/gateway/conf/log4j-authbroker.properties -Dspring.profiles.active=accesspoint -jar /opt/vmware/gateway/lib/ab-frontend-0.2.jar
root 3183 3086 0 03:12 pts/0 00:00:00 grep --color=auto ab-frontend
まとめ
今回は、緊急の対応としてUAGを再デプロイし、Log4jの脆弱性対応を行いました。
Horizonを使用している環境では、Connection ServerとHorizon Agentでも対応が必要となってきます。
Horizon Agentでの対応はHKLMへのキー追加のため、再起動が必要となります。
そのため、リンククローンやインスタントクローンの場合マスターイメージのプッシュ作業が必要となります。
取り急ぎ、外部との接点をはじめに対応したほうが良いと思ったので、UAGから対応を行いました。
ただ、仮想マシン側でJavaやLog4jを使用するシステムがある場合、別途調査して対応が必要になるかもしれないですね。
コメント