【セキュリティ】CSRF(クロスサイト・リクエストフォージェリ)とは【わかりやすく説明してみた】

セキュリティ

みなさんこんにちは、ちょいまけです。
今回は「CSRF(クロスサイト・リクエストフォージェリ)」について説明します。

CSRF、サーバーサイドの実装する時に必ず対応を考えるものですが、特に理由も知らずなんとなく実装していたりしませんか?

またもしかして「CSRF、何それ美味しいの?」という方いらっしゃいませんか?

そんな色々よくわかっていない当時の僕のような皆様のために、CSRFについてあっさり説明します。

CSRF(クロスサイト・リクエストフォージェリ)とは

CSRFとはWebサービスにおいてユーザーが意図しない処理が実行されてしまう脆弱性または攻撃手法のことです。

例えば、ある掲示板サービスにログインした状態でサービス内に貼ってある怪しいURLをクリックすると、自分が投稿した覚えのない投稿が勝手にされてしまうといった被害が発生します。

XSS(クロスサイトスクリプティング)と似ている部分がありますが、XSSで攻撃者が実行可能な処理は基本的に制限はなく、CSRFでの処理はサービスで実装された処理のみという違いがあります。

XSSについて知りたいという方は、以下のリンクからどうぞ(いや、これは怪しくないよ!)

CSRFによる被害例

mixi

2005年4月19日に、mixiのサービス内で怪しいURLをクリックすると「ぼくはまちちゃん!」というタイトルの日記が自分の日記として投稿されてしまうという被害が発生しました。

ITMedia: 大量の「はまちちゃん」を生み出したCSRFの脆弱性とは?から

mixiの事例は掲示板投稿という被害はまだマシな被害だったかも知れません。

これが金融系のシステムでサービスの機能が悪用されたとなると見知らぬ口座にお金を振り込んでしまったなどのとんでもない動作による被害が発生する可能性があります。

CSRFは実はかなり危険な脆弱性なのです。

対策

ユーザー側

信頼できないリンク、怪しいリンクを踏まないようにしましょう。mixiでの事例でもあるように、Webでの被害は怪しいリンクを踏むことで発生することが大半です。

開発側

開発側での対策は、正規のユーザーの意図したリクエストか確認するです。具体的にはトークンを発行する、パスワードを再入力する、Refererを確認するなどの対応を必要に応じて行う必要があります。

さいごに: CSRFは油断ならない

開発者にとってはCSRFというのは割と基本知識であり、実務経験者なら日々の業務で対策しているものだと思います。

ただなんとなく対策しているだけで、CSRFの危険性を理解できていない開発者はもしかしたら割といるかも知れません。少なくとも僕はそうでした。

CSRFなどの危険性、起きうる被害などを正確に把握した上で、しっかり対策していきたいものです。

あと怪しいリンク踏まない、これ本当に大事です気を付けましょう。

今回は以上です。
最後まで読んでいただきまして、ありがとうございました。

コメント

タイトルとURLをコピーしました