Webセキュリティ入門:HTTP・Cookie・脆弱性
可用性(Availability)とは
この回でやること
可用性とは、使いたいときに使える状態です。対策が可用性を下げてしまう場面も含めて学びます。
- 読む 約 7 分
- 最後にクイズ 1 問
このレッスンで学ぶこと
可用性は、CIAの3つ目で、使いたいときに使える状態を指します。この回では、それが失われる原因を3つに分けて見ます。
読み終えるころには、可用性が失われる原因を分類し、上限を先に決める理由を説明できるようになります。
可用性とは使いたいときに使えること
Availability(可用性) は、必要な人が必要なときに情報や機能を使える状態です。
3つの中でいちばん地味に見えますが、失われたことがすぐ分かるという点が他の2つと違います。データが盗まれても気づかないことはありますが、サービスが止まったことに気づかない利用者はいません。
失われる原因
原因は、攻撃だけではありません。
攻撃によるもの。 大量の通信を送りつけて処理しきれなくする、重い処理を繰り返し呼ぶ、保管領域を埋める。
事故によるもの。 機器の故障、設定の誤り、ソフトウェアの不具合、依存している外部サービスの障害。
自分の対策によるもの。 ここが今回いちばん伝えたいところです。
対策が可用性を下げることがある
安全にするための仕組みが、正当な利用者を締め出すことがあります。
- 何度か間違えたらアカウントを止める仕組みが、他人に故意に間違えさせられて、本人が入れなくなる
- 通信の回数制限が厳しすぎて、通常の使い方でも引っかかる
- 疑わしい通信を止める仕組みが、正常な通信まで止める
- 認証の手順を増やしすぎて、必要なときに入れない
厳しくすることと安全にすることは、同じではありません。 締め出された利用者にとっては、止まっているのと変わりません。
機密性と完全性を強くするほど、確認と制限が増え、可用性は下がりやすくなります。資産に応じて釣り合いを決めます。
どこまで守るかを先に決める
可用性は「落とさない」ではなく、どこまでなら許せるかで考えます。
- どのくらい止まってよいか。数分か、数時間か
- どの機能が止まると致命的か。全部が同じ重さではありません
- 止まったときに気づけるか。気づけない停止がいちばん長引きます
- 元に戻す手順があるか。誰が、何を見て、どう戻すか
決めていないと、障害のたびに判断から始めることになります。
悪用の可能性がある処理を知っておく
可用性を下げるのに、特別な攻撃は要りません。普通の機能を重く使うだけで足ります。
- 検索の条件を工夫して、極端に重い問い合わせを作る
- 制限の無いファイル送信で、保管領域を埋める
- 1件ずつしか処理できない機能を、大量に並べて呼ぶ
守り方は、上限を先に決めておくことです。1回あたりの大きさ、一定時間あたりの回数、同時に走らせる数。上限が無い処理は、いつか必ず限界まで使われます。