Web攻撃2@Web技術
- DNS Spoofing
DNSを動的に変更することでセキュリティ制限を破る攻撃
FalshやJavaアプレットの通信先ドメイン制限が破れる
→結果的に攻撃対象者のWebサーバーや限定されたネットワーク内のWebサーバーの情報が盗まれる可能性がある。
- 攻撃対象に罠サイト(サイト内の情報をポスト+リロードするスクリプトを含ませる)を踏ませる
- DNSの正引き設定を違うIP(127.0.0.1とか)にする
- 1番目のスクリプトでリロードを開始
- 正引き結果が(上の例では127.0.0.1)になってリロードされる
- アドレス127.0.0.1に対応しているアプリケーションのレスポンスをポストする
ホスト名からIPを引っ張る形のアプリであれば、DNSSpoofing脆弱性はある
対応策は一度ドメインから引いたIPを長時間保持しておく=DNSの有効期限設定を無視する
事があげられる 2度目以降DNSに聞きに行かないようにする
→DNS Pinggingと言うそうです
→ウェブブラウザではDNSPinggingを行うそうです
→DDNSにヒモ付られている個人サーバーはどうするんだろう?IPしょっちゅう変わるよね
→FirefoxではDNSの結果の保持時間は最小で110秒ほど(内部で固定でされているっぽい)
- Anti-DNS Pingging
↑の対策に対してまた攻撃方法がある
簡潔に言うと、同じドメインに対して接続を失敗させることで成功する可能性がある
ファイアウォールやサーバーを一旦停止(遮断)する or わざとポートを間違える
例)http://xxx.xxx.com:81など
とブラウザ上の実装で再びDNSの正引きIPを取りに行く
この方法でDNS Spoofingができるようになる
- LiveConnect
Javaのコードを直接実行できる
=Javascriptの持っているDocumentからの参照+Javaの持っているSocketレベルでの関数が同じ階層で実行できる
→複雑なので理解中
追記:
- DNS IP変更
- Anti-DNS Pinngingを利用してIPを変更したあと、サイトを踏ませる。
- JavascriptからJava構文を使ってTCPレベルのコネクションを張る。
- →ポートスキャンができた。
JavascriptだけではHTTPリクエストしかできないけど、Java構文が使えるためにTCP層から通信できることがわかる
→Operaでは継承関連のバグでうまいこと動かないらしい