9月14日に開かれたPHPカンファレンス2013に行ってきました。
PHP界隈で有名な徳丸浩さんを生で見れたり、
PHPerの綺麗なお姉さんがいっぱいいたり面白かったです。
で、徳丸浩さんのセッションを聞いていたのですが、
初心者PHPerの僕にはワカランチンなことだらけでした。
徳丸浩さんのありがたーいセッションについてはこちら。
安全なPHPアプリケーションの作り方2013
そんなセッションの中でセッションフィクセーションって単語が出てきたので調べてみた。
セッションフィクセーションとは?
詳しくは以下。
第3回 犯罪者に代わって操作させられる「セッション・フィクセーション」
ってやっちゃうと何の勉強にもならないので、段階を踏んで読んでいくことに。
セッションフィクセーションの手順としては、
- 攻撃者がサイトAからセッションIDを取得しておく。
- 攻撃者が取得したセッションIDをアクセスしたきたユーザのクッキーにセットさせる罠サイトを用意する。
- ユーザがサイトAに攻撃者のセッションIDを使ってログインしちゃう。
- セッションIDとユーザ情報がサイトA内で行われる。
- 攻撃者のなりすましし放題!
ってな感じなのですね。
どうやって別サイトのクッキーにセッションIDをセットさせるのさ!?
この部分が最初は分からなかった。
何故ならクッキーはサードレベルドメインとセッションIDで紐づくものじゃない!という認識があったから。
で、先ほどの記事を読むとそもそもその認識が間違いということがわかってきた。
クッキーはドメインが後方一致するならばクッキー情報を送信するということで、
ブラウザによってクッキーに格納されるドメインのレベルは異なるのですな。
ふーむ、記事を読むにこの攻撃が成立するのはFirefoxのあるバージョン以下のものだったりするのかな?
まだまだPHPのセキュリティ界隈はよくわからんことが多い。。。