2008年9月19日金曜日

アプライアンスとCSRF(クロスサイトリクエストフォージェリ)

適当なアプライアンスのWEBインターフェイスを触っていると、WEB管理画面から色々できる事に関心する。システム関連の設定から再起動・シャットダウンまで可能で便利。
 
 

某アプライアンスを触っているとき、シャットダウンの許可確認ページが簡素な作りなことが気になった。
ソースを覗いてみると簡単なフォームだったので、試しに外部サイトにリンクを貼って、シャットダウンページのFormと同じリクエストがいくようにしてクリックしてみる。
 
結果、見事にシャットダウンした※。
あーこれCSRF(クロスサイトリクエストフォージェリ)とか言う奴だなと。リファラも何も見ちゃ居ない。
 

※CSRFなので既にそのブラウザで管理画面にログイン済み(Cookie有効状態)という条件です
 
 

しかしこれをとっ捕まえて「CSRFできるからさあ直せ!」と言うかとするとまた別の話。
不特定多数が利用することを前提としたWEBのASPサービスならまだしも、アプライアンスのUIにどこまで求めるかというのも難しい。
 
使ったらすぐログオフしたり、管理系は普段とは違うブラウザ使ったり、予防策を張れないでもない。
 
 

ただ、ログ収集系の機械とかだと、「HTMLのインジェクション発覚→管理者が画面開いただけでシステム操作が可能。
というシナリオがあるんですよね。
 

最近はどんな入出力にも、常にHTMLタグとSQLを突っ込もうとする輩がいるので、開発する人は気をつけていきましょう。