Internetweek2004 VPN 再考
- SSLVPN
- Reverse Proxy
- Clientless
- 対応アプリケーションはWebベースのみ
- JAVA Applet (Port forwarding)
- ActiveX (L2 Cupsule)
- 仮想L2 I/F
- ほぼ全てのアプリケーションでOK
- Other
- SoftEther
- XSS
- 手順
- ユーザが悪意あるWebサイトを閲覧したときに,
- 出力されるWebページに悪意あるスクリプトが埋め込まれており,
- まだそのスクリプトは効果を発揮せずに標的Webサイトへ転送され,
- 標的Webサイトの「スクリプトを排除しない欠陥」を介して,スクリプトが効果を発揮する形でブラウザへ戻ってきて,
- スクリプトがブラウザで実行され,クッキーが漏洩したり,ファイルが破壊したりといった被害が発生する,
- 分からないのは、戻ってきたスクリプトが何をするとcookieが漏洩するのかの具体的な流れ。
- サニタイジング
- フォーム受付時ではなく、HTML精製時に行う
- 二重にやると意図しない変換する可能性がある
- 具体例
- Text部分
- & -> &
- < -> <
- > -> >
- TAG属性値
- & -> &
- < -> <
- > -> >
- ” -> "
- ’ -> '
- シングルクオート中のダブルクオート、ダブルクオート中のシングルクオートはサニタイジング不要だが、両方やってももちろんよい
- 入力データはクオートでくくるべし
- URL属性値
- URLで許可されていない文字列の検出 -> 無効化
英数字
「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」
「-」「_」「.」「!」「~」「*」「'」「(」「)」「%」
-
- Query String
- カタカナで「くえりすとりんぐ」と書いてあったので、しばらく理解できなかった。
- よく漏れる
- 目的
- 入力パラメータの送信
- Webページ感のパラメータ受け渡し
- Webアプリケーションのパラメータ付きリンク
- 使ってよいケースとダメなケースを分ける
- ダメな物
- パスワード
- 個人情報
- Webサーバ、Webアプリケーション経由のシステム構造、データ構造
- GETでなくPOSTにする。
- Webページ感のパラメータわたしはセッションを使う。
- Hidden Field
- Hiddenを使ったWebページ間のデータ受け渡し
- ブラウザを経由する
- ユーザによる変更、改竄を前提に考える必要がある
- セッションメカニズムを使うべき