"Shade検索"Wiki

トレンドマイクロ対策

ログイン情報漏洩の危険


ちょっと面倒な問題が出てきました。

ここで公開しているCGIではありませんが、限られたユーザーだけアクセスできるようにベーシック認証で制限をかけているCGIがあります。
外部に出したくないデータを扱っているので、変なところからのアクセスがないか、時々ログをチェックしているのですが、
末尾にsjdcとか iad1がついた見慣れないドメインからのアクセスが目につくようになってきました。

IPアドレスからgethostbyaddrでホストを調べてみると、wtp-g4-maya8.sjdcとかwtp-gs-maya7.sjdc、あるいはwtp-g9-maya6.iad1ということになるのですが、
sjdcやiad1などというトップレベルドメインは見たことがありません。
webで調べてみるとどうもトレンドマイクロ社の検索ロボットのようです。
トレンドマイクロ社の製品に入っている機能で、悪意のあるプログラムが仕掛けられているWebページへのアクセスをブロックするというWebレピュテーションというサービスがあるようなのですが、
そのデータベース作成のためにロボットが調べているようです。

ログを見ると、トレンドマイクロのソフトを入れたパソコンでページにアクセスすると数分後に同じページにロボットからのアクセスがあります。
どうやらブラウザで見たページのURLがトレンドマイクロに送られ、そのURLをロボットが調べるという流れのようです。

ここで問題なのは、ユーザーがアクセスしたWebサイトのURLがすべてトレンドマイクロに送られるということです。
トレンドマイクロのサイトで、WEBレピュテーションについて説明したページを見てみると

本機能を有効した場合、お客様がアクセスをしようとしているURLの情報を全て送信します。
また、アクセス先のWebサーバ側の仕様が、お客様が入力した情報や環境情報等をURLのオプション情報として付加しWebサーバへ送信する仕様となっている場合は、URLのオプション情報(ID,パスワードが含まれる場合があります)についても、トレンドマイクロのサーバに送信されます。

という記述が見つかりました。
これって、やってることはスパイウェアといっしょでは。しかも、IDやパスワード情報もトレンドマイクロに送られるということです。
トレンドマイクロに送られたURLデータがどのように管理されているのかは、わかりませんが、URLが安全か危険かという情報をユーザーに公開している以上、当然URLの情報も公開されてしまうと考えた方が良さそうです。
これまでいっさいアクセスのなかったmsnやgoogleのロボットも来るようになったし。
隠したいURLがオープンになってしまうという点では、スパイウェアよりたちが悪いかもしれません。

Webレピュテーションをインストールする際の使用許諾契約書には当然こうしたことは書いてあるのでしょうが、トレンドマイクロの製品のユーザーが、こうなっていることを認識しているかどうか疑問です。
トレンドマイクロの製品のほとんどにこのWebレピュテーション機能は入っているようなので、かなりのユーザーがID、パスワードを含むURL情報をトレンドマイクロに送っていると考えられます。

とりあえず、件のCGIはトレンドマイクロからのアクセスは拒否するようにしましたが、すでにトレンドマイクロにURL情報が送られているので、ほとんど意味のない抵抗です。

ベーシック認証やPOST送信でのログイン情報まで送っているのかどうかは、ウチで取っているログではわかりませんでした。
さすがにそこまでやると問題になるとはおもいますが。

いずれにしても、こうしたスパイウェアもどきのものが出回っている以上、URLでログイン情報を渡すのはやめた方が良さそうです。
ウチで公開しているほかのアクセス制限機能付きCGIでも、制限ページにログイン後のアクションは常にパスワードチェックを行うようにしているので、アクションを送るごとにパスワードをサーバーに送っています。URLで送ることが多いので、これは別の方法を何か考えた方が良さそうです。

アクセス制限の改善案


ということで、対応策を考えてみました。

従来


ログインする際にフォームからID、パスワードを入力させて認証。ログイン後も何かアクションするごとに認証を行うが、その都度ID、パスワードを入力するのは手間なので、ページのリンク先などにID、パスワードを保存し、制限ページ内での操作や移動はパスワードを入力する必要が無いようにしている。
ブラウザのアドレス欄にID、パスワードを含んだURLが表示される。

改善案


パスワードを送信するのは、最初にログインする時だけにする。ログイン後もなんらかの認証が必要だが、これはログインしたユーザー固有の一時パスワードを作成し、サーバー上に保存する。
以後ログアウトするまでの認証はこの一時パスワードで行い、ログアウトしたら一時パスワードは廃棄する。ログアウトする前に一時パスワードが外部に漏れた場合に備えて、IPアドレスでのアクセス制限も併せて行う。
具体的には、ログイン時のパスワード認証に成功したら、ユーザーのIPアドレス、ログインIDを含むログインファイルを作成する。このログインIDはPOST送信やURLのオプション情報としてブラウザ内に保存する。
ログインファイルはいちいち開かなくてもいいように、ファイル名にIPアドレス、ログインIDを含ませる。
したがってログインページ内での認証は、ユーザーが保持するログインID、ユーザーのIPアドレスを含むログインファイルが存在するかどうかで行う。
このログインファイル、ログインIDは一時的なもので、ユーザーがログアウトしたり、有効期限(数分)を過ぎると自動的に削除される。
一時的な認証データなので万一ログインIDが外部に漏れたとしても、ログインファイル削除後はそのIDでログインすることはできない。
万一正規のユーザーがログイン中、あるいはログインファイルが削除される前にログインIDが漏れ、そのログインIDを使ってアクセスしようとしても、アクセス元のIPアドレスもチェックしているので、不正にログインすることはできない。


ウチで公開しているCGIをチェックしてみたところ、結構パスワードをURLで送信するスクリプトがたくさんありました。
以下対応状況です。

長期予定表


対策済み
パスワードを使用するのは管理者による設定画面にログインしたときだけ。設定画面内の操作は基本的にフォームによるPOST送信だけだが、
編集された設定を設定画面に反映させるため、リダイレクトでパスワードを送信する部分があった。
このリダイレクトを廃止し、別の方法で編集結果を反映させることにした。

詳細予定表


対策済み
長期予定表と同様に管理者による設定画面ログイン時にリダイレクトでパスワードを送信している部分があったので、廃止。
マルチモードの場合、ユーザーが専用の予定表を作ることができるが、この専用ページにログイン中にパスワードをURLで送信する部分があった。
上記の改善案を取り入れ、ログイン時に認証と同時に一時IDを作成し、IPアドレスと一時IPによる認証方式に変更した。

Clip Board改造版


対策済み
管理者用設定画面で編集後にパスワードを含んだURLにリダイレクトする部分があるので、リダイレクトしないように改修。

タイムスタンプ変更CGI


対策済み
URLでパスワードを渡していたので、ログインファイル方式に変更。

疑似偏差値計算機


対策済み
プライベートディレクトリにログインしたときにパスワードを使う。プライベートディレクトリ内の操作は
すべてフォームによるPOST送信なので、問題ないと思うが、ログイン直後にメッセージを表示するためにリダイレクトする部分でパスワードを送信している。
これをリダイレクトしない方式に変更するだけの予定だったが、IDなしのパスワード設定だけというのもまずいかなと思って、通常のIDとパスワードによる登録に変更した上で、
さらにログインファイル方式を導入するという大幅な変更になった。

マルチアップロード


改修済み
パスワードでアクセス制限をかけているのが、管理者、管理者登録のユーザー、ユーザー登録のユーザー、期間限定ゲスト、期間無制限ゲストと種類が多いために、結構手がかかった。
まず期限無制限ゲストを廃止して、管理者、ユーザー、ゲスト3種類のアカウントのみにした。
上記の一時ログインファイル方式を使ったが、ユーザーIDによって振り分ける処理が多いので、ユーザーIDぐらいはURLでのパラメータ送信したいところだったが、
これも一時ログインファイルに保存することにした。
手順としては、ログインでパスワード認証に成功したら、ログインファイルを作成する。これには一時パスワードとユーザーID、ユーザーのIPアドレスを保存する。
アクセス制限ページ内での処理は、一時パスワードのみをPOST送信やURLのパラメータ送信で送る。
CGIで処理を行う前に送信されたパスワードとIPアドレスを含むログインファイルが存在することを確認することで認証を行い、同時にログインファイルに書き込まれたユーザーIDを読み込む。
これでユーザーIDもパラメータ送信する必要がなくなる。

ダウンロード先を通知するメールにパスワードを含んだダウンロード先URLを記述している問題については、URLにはパスワードを含めず、
メール内にパスワードを記述するように変更した。ユーザーIDも手動で入力するようにした方がいいのかもしれないが、これはURL内に含めることにした。

一斉メール送信CGI


パスワードは使用するが、すべてPOST送信なので、パスワードがURL送信されることはない。

対戦ゲーム Fighters


操作はすべてフォームで行っているので、特に改修の必要なし。
なお、対戦のたびに変化するプレイヤーのステータスをすべてブラウザに保持するのは難しいので、このCGIも操作のたびに
ステータスをサーバー上のファイルに保存する方式をとっている。



2604


>>2013/03/23 00:46:04更新>>