Webセキュリティ入門:HTTP・Cookie・脆弱性
アタックサーフェス(攻撃面)とは
この回でやること
アタックサーフェス(攻撃面)とは、外から触れる場所の総量です。数え上げて入り口を減らす考え方を学びます。
- 読む 約 7 分
- 最後にクイズ 1 問
このレッスンで学ぶこと
アタックサーフェス(攻撃面)は、外から触れられる場所を全部足し合わせた量です。この回では、自分のサービスの入り口を数え上げるところから始めます。
読み終えるころには、数え上げた入り口を、減らせるものと減らせないものに分けられるようになります。
攻撃面とは触れる場所の総量
Attack Surface は、外部から触れられる場所すべてを指します。攻撃が入ってくる可能性のある入り口を、ひとまとめに数えた量だと考えてください。
家にたとえるなら、玄関だけでなく、窓、勝手口、換気口、郵便受けまで含めた「外とつながっているところ全部」です。鍵の強さの話ではなく、そもそも何か所あるかの話をしています。
Webサービスの入り口を数える
思いつくままに挙げると、想像より多いことが分かります。
- 画面と URL。ログイン、検索、一覧、詳細、設定
- API。画面から呼ばれるもの、外部連携用のもの、社内用のもの
- 入力欄。検索語、コメント、ファイル送信、プロフィール画像
- URLに載る値。パスの一部、クエリ、フラグメント
- ヘッダーとCookie。ブラウザが自動で送るものも、書き換えられます
- 管理画面。同じサーバーに同居していれば、それも入り口です
- 開発の名残。使わなくなった旧APIや、消し忘れた検証用の画面
- サービスの外。DNS、メール、外部サービスの管理画面、置きっぱなしのクラウドの保管領域
最後の2つが見落とされがちです。使っていないものは、守られていないことが多いぶんだけ危なくなります。
一覧に無いものは、守る対象からも漏れます。攻撃面の把握は、対策より前の作業です。
減らせるものと減らせないもの
数え上げたら、次は分類します。
減らせないもの。 ログイン画面も検索も、無くしたらサービスが成り立ちません。ここは無くすのではなく、疑って扱う場所です。
減らせるもの。 使っていない旧API、公開する必要のない管理画面、外に見せなくてよいポート、消し忘れた検証環境。これらは無くすのが一番安い対策です。守る仕組みを増やすより、守る対象を減らすほうが確実に効きます。
分けられるもの。 管理画面を別のドメインに移す、社内からしか届かない場所に置く。到達できる人を減らせば、実質的に入り口が減ります。
機能を足すと面も増える
新しい機能は、たいてい新しい入り口を持ってきます。ファイル送信を足せば、送られてくるファイルという入り口が増えます。外部連携を足せば、相手からの通信という入り口が増えます。
これは機能を足すなという話ではありません。足すときに入り口が1つ増えたと意識するという話です。増えたぶんだけ、疑う場所も増えます。