Webセキュリティ入門:HTTP・Cookie・脆弱性
総仕上げ 攻撃の入り口を洗い出す
この回でやること
ここまでの見方を、用意された題材にひととおり当てて、攻撃の入り口を洗い出します。
- 読む 約 7 分
- 最後にクイズ 1 問
このレッスンで学ぶこと
総仕上げでは、ここまでの回で身につけた見方を、用意された1つの題材にまとめて当てます。新しいサービスを前にしたとき、最初に何をするかがこの回の主題です。
読み終えるころには、新しいサービスを渡されたときの最初の手順を自分の言葉で言えるようになります。
対象は用意されたものだけ
はじめに大事な約束です。演習はこの講座が用意した環境に対してだけ行います。
他人のサービス、勤務先のサービス、たまたま見つけたサイト。どれも許可がなければ対象外です。同じ操作でも、許可の有無で意味がまったく変わります。技術ではなく、そこが線引きです。
手順の型
新しい題材を前にしたとき、順番はだいたい決まっています。
1. 動かして見る。 普通に使ってみます。どんな機能があり、どんな画面があるか。まず正常な姿を知ります。
2. 通信を見る。 開発者ツールで、各操作が何を送っているかを見ます。画面の項目とボディの項目を突き合わせます。
3. 入り口を数える。 見えたAPIを書き出します。画面からたどれないものも、配信物やログから拾います。
4. 境目を引く。 どこまでが利用者の手元で、どこからがサーバー側か。信じてよい値と、そうでない値を分けます。
5. 1か所ずつ試す。 送る値を1つだけ変えて、返答の差を見ます。記録を残します。
いきなり変な値を送っても、返ってきたものが正常なのか異常なのか判断できません。基準を先に作るのが早道です。
何を探しているのか
型に沿って進めながら、次を探します。
- 決めてよい人が決めていない値(値段、数量、権限)
- 番号を変えると他人のものが見える場所
- 画面では止めているが、直接呼べば通る処理
- 返答に混ざっている内部の情報
見つけたらどうするか
自分のサービスなら直します。他人のものなら、運営者に伝えます。 広める前に伝える、というのが順番です。伝えるときは、再現できる形で書きます。何を送ったら何が返ったか、その組があれば相手は確かめられます。