わかりやすく セキュリティ原則 とは
セキュリティと聞くと、気のきいた暗号技術を一つ思いうかべがちです。けれども、鍵がどれほど丈夫でも、扉を大きく開けておけば役に立ちません。本当に安全な家は、鍵一つでできているわけではありません。誰にどの鍵を渡すか、一枚が破られたら何が防ぐか、知らない客を入れるか止めるか、仕組みが単純か複雑か。こうした設計の約束が集まって安全をつくります。これまでの回で学んだ暗号、認証、ファイアウォール、人の習慣も、この約束の上に置かれてはじめて本当の力を出します。そして、この約束は技術が変わっても長く生き残ります。
必要な分だけ、最小権限
オペレーティングシステムを扱った回で、プログラムや利用者ごとに権限を分け、取り上げるようすを見ました。その考えをセキュリティの設計に広げてみましょう。誰かに権限を渡すときは、任された仕事にどうしても必要な分だけを渡します。少し見るだけでよい人に、直す権限まで渡す理由はありません。
そして、仕事が終わったらその権限を取り上げます。権限が少ないほど、そのアカウントが乗っ取られたり、まちがいが起きたりしても、被害が広がる範囲は小さくなります。ふだんは一般のアカウントで使い、管理者の権限は必要なときだけ使うようにという助言も、同じ原理から来ています。
一人に渡す権限を選んでみましょう。必要な分だけなら危険の範囲は小さく、多すぎれば失うものが大きくなります。
必要な分だけ渡したときがいちばんすっきりしていました。多すぎる権限は、ふだんは便利に見えても、何かが狂った瞬間に被害を大きくします。最小権限は人だけに当てはまるものではありません。プログラムや機械にも同じように当てはめます。この部品はこの仕事だけ、このプログラムはこのフォルダだけを見る、というように、権限の囲いを狭く張ります。
けれども、権限をどれほどうまく分けても、その一枚が破られる日は来ます。だから次の原則が必要です。
一つ破られても、多層防御
どんな守りも、絶対に破られないとは言い切れません。そこで一枚にすべてを賭けず、防ぐ層をいくつも重ねます。外の扉が開いても中の扉があり、中の扉が開いても金庫がある、という具合です。
一枚がだめでも、その後ろの層が支えます。攻撃する側は一か所破ればよかったのが、すべての層を破らなければならなくなり、層が増えるほど最後までたどり着くのが難しくなります。この領域で見たものも同じです。パスワードの上に二つ目の認証の段階があり、その前にファイアウォールが、行き交う中身には暗号化が、いちばん前には確かめる人の習慣があります。
層を一つずつ破ってみましょう。一枚開いても次の層が止めるので、最後まで行くにはすべての層を通らなければなりません。
一枚開けても終わりではありませんでした。次の層がまた行く手をふさぎました。層をいくつも置くときには、こつが一つあります。層ごとに性質を変えることです。すべての層が同じ鍵なら、一つを開ける方法がそのまま全部を開ける方法になってしまうからです。
だから層は、種類が違うほど頼もしくなります。けれども層をいくつも置くには、どこまで入れてどこから止めるかの基準をはっきり決めなければなりません。その基準の出発点が、次の原則です。
知らないものは止める、基本は遮断
扉を設計するとき、出発点は二つ考えられます。一つは、まず全部入れて悪いものだけ止めること、もう一つは、まず全部止めて許したものだけ入れることです。ファイアウォールの回で見たとおり、二つのうちでは止めることから始めるほうが安全です。
全部入れてから始めると、世の中の悪いものを一つ残らず知っていなければ止められませんが、そんな一覧は作れません。思いもよらなかった危険がそのまま入ってきます。反対に止めることから始めれば、自分がはっきり許したものだけが通り、知らないものは自動で止まります。名簿になければ入れないというわけです。
二つの出発点を比べましょう。全部入れて悪いものだけ止めると知らない危険がもれ、全部止めて許したものだけ入れると知らないものは自動で止まります。
全部入れてから始めたほうでは、思いもよらない客がこっそりもぐりこみ、止めることから始めたほうは、知らないものをすべて止めました。基本を遮断にしておけば、許可の一覧で何かを書き忘れても、危ない側ではなく安全な側にかたむきます。
まちがえたときの損が小さい側に設計すること、これを失敗しても安全な設計と呼ぶこともあります。壊れると閉まる金庫の扉のようなものです。ところが、原則を全部守ろうと仕組みを足していくと、設計はどんどん複雑になり、それがまた別の危険になります。最後の原則が、そのつり合いをとります。
複雑だとすきまが増え、単純なほど安全
原則をきちんと守ろうとして、仕組みを限りなく足していくとどうなるでしょうか。仕組みが複雑になるほど、その中に隠れたすきまもいっしょに増えます。部品が多く、つながりがからみ合うほど、どこが弱いのかひと目では見えなくなるからです。人がすべてを調べきれない仕組みでは、調べきれなかったまさにその場所がすきまになります。
だから、よい設計は単純さを守ります。本当に必要なものだけを置き、なくてもよいものは取りのぞきます。共通鍵暗号の回で見たように、よい暗号が信頼できるのは方法を隠しているからではなく、方法が公開され、多くの人が調べても持ちこたえるからです。単純で開かれた設計ほど、そうして調べるのが簡単です。
仕組みに部品を足したり減らしたりしてみましょう。複雑になるほど調べきれないすきまが増え、単純なほどひと目で調べられます。
部品を減らすと調べる場所が減り、足すほどすきまがそっと増えました。単純さは怠けではありません。何が本当に必要かを、最後まで考えぬいた結果です。
四つの原則はばらばらに動くのではなく、かみ合ってまわります。最小権限で被害の広がる範囲を狭め、多層で支え、基本は遮断にしたうえで、全体を単純に保つのです。では、四つの原則をひとところに集めましょう。
まとめ
まとめるとこうなります。よいセキュリティは、一つの技術ではなく設計の原則から生まれます。最小権限は、必要な分だけ渡し、仕事が終わったら取り上げることです。多層防御は、一枚が破られても、種類の違う次の層が支えるようにすることです。基本遮断は、許したもの以外はまず止めること、単純さは、調べきれなかったすきまを減らすことです。
四つの原則はかみ合っていっしょに働き、個々の技術より長く続きます。だから新しい技術に出会っても、まず原則で考えればぐらつきません。
四つの原則を順に押してふり返りましょう。最小権限、多層防御、基本は遮断、単純なほど安全、の順です。
これで、安全を設計する四つの原則を手にしました。この先、ほかのセキュリティの話に出会ったら、この原則が道しるべになります。これは必要な分だけ渡しているか、一枚だけか何枚もあるか、知らないものを入れる側か止める側か、単純か、むだに複雑か、と問えばいいのです。
けれども、原則をとことん押し進めると、不便になる瞬間がやって来ます。層を増やすほどログインは面倒になり、基本遮断は新しいことをするたびに許可を求めさせます。次の回では、この領域の最後の話として、安全と便利さのあいだで何をどう量るのかを見ます。