基礎Security通論
■はじめに
この講座を見ている皆さんはもちろんコンピュータをインターネットに接続していることかと思います。インターネットは世界中のWebサイトで情報を集めたり、掲示板やチャットでコミュニケーションをしたり、オンラインゲームを楽しんだり、オンラインショッピングを行うことができたり非常に便利だと思います。しかしながら、世界中の人々とインターネットを通じて通信できるということは、逆にあなたのコンピュータも不特定多数の人たちから通信される可能性があるということです。悪意を持ったアタッカー(クラッカーと呼ばれる)があなたをインターネットを通じて、場合によっては社内LANや学内LAN内で貶めようとしている可能性もあるわけです。自分のコンピュータには重要なものが無いから気にしないという方もいるかもしれませんが、アタッカーがあなたのコンピュータを経由して、他の人をアタックした場合、そのアタックの濡れ衣をあなたがかぶる可能性もあるのです。
よって、コンピュータを使うということは各自セキュリティに関する情報に敏感になり、自分自身で身を守るしかありません。
ちなみに、セキュリティーを考察する場合、Attacker側の行動パターンを知ることが非常に有効である。そのために基礎Hacking通論を参照せよ。
■コンピュータセキュリティとネットワークセキュリティ
アタックのきっかけとなるものはコンピュータのハードウェアやソフトウェアに問題があるものと通信されるネットワーク自体に問題があるものがあります。それぞれから守ることをコンピュータセキュリティ、ネットワークセキュリティと呼びます。
これらに関して簡単に表にまとめてみました。
コンピュータセキュリティ
|
周辺機器やソフトウェアの物理的アタックやバグなどから守ること コンピュータ単体に対するセキュリティです。
|
ネットワークセキュリティ
|
インターネットやLAN内においてネットワーク越しのアタックを守ること
|
■セキュリティーの分類
セキュリティー(コンピュータセキュリティとネットワークセキュリティ含めて)は次の3つの分野に大別されます。よって頭文字をとってCIAとも呼ばれます。
機密性、秘匿性(Confidentiality)
|
権限のないユーザーによる情報へのアクセスを防ぐこと。
|
整合性、完全性(Integrity)
|
権限のないユーザーが権限のあるユーザーに発覚しない手段によって情報を改竄されることを防ぐこと。
|
認証、可用性(Authentication)
|
ユーザーの自称する身元が正しいことを確認すること。
|
上のCIAの3つをカバーしなければ十分なセキュリティープロトコルとはいえません。
例:NetscapeのSSL(詳細は特別講座<SSL/T編>を参照せよ)はこれらをカバーしています。
■セキュリティのトレードオフの性質
どこかの分野を強化すると、別の分野が弱くなるという問題をトレードオフの関係という。
●安全性と利便性のトレードオフ
セキュリティには100%安全というものはありません。安全性を高めれば利便性は低くなり、利便性を高めようとすると安全性が低くなります。つまり、安全性と利便性はトレードオフの関係にあるのです。ちなみに、トレードオフとはどちらかが優れれば、片方が劣るということです。
また、守るべき対象と守るためのコストについても、天秤にかける必要があります。10万円程度の情報しかないのに、100万円のセキュリティを施すのは無駄といえるでしょう。
●機密性、完全性、可用性のトレードオフ
例えば、機密性を高めるために何重ものパスワードを設定するような場合、機密性は高まるものの、パスワードのどれかひとつを忘れてしまうとシステムが使えなくなってしまい、可用性に問題が出てくる。しかし、一般的に機密性以外の完全性、可用性については十分に議論されないケースが多いのが現状である。
■情報セキュリティの目的
企業において、セキュリティ管理を行う目的は次から成り立ちます。
・情報資産の保護
・顧客からの信頼獲得
・競争力、収益力の維持と向上(上の2つの結果から)
■ネット犯罪の対策の方向性
次の2つがキーポイントです。
・セキュリティ・バイ・オブセキュリティ(security by obsecurity)の否定
・セキュリティ・イズ・ア・プロセス(Security is a process.)
前者のセキュリティ・バイ・オブセキュリティは秘密を守るための方法を秘密にするということです。この考え方が間違っているというのは、現在のセキュリティ界の共通認識とされています(もちろん、これの否定に賛同しない人たちもいるが)。
ソースや仕組みを完全にオープンにすることによって、誰でもそれを把握できるようにすべきということです。
「全てオープンにしてしまったら、悪意のある人に悪用されてしまうのではないか? 」と思う方もいらっしゃるでしょう。しかし、悪意のある人にとって、そのようなソフトやシステムの構造を明らかにしない方が都合がよいのです。なぜならば、セキュリティホールはより多くの人に検証してもらった方が、見つかりやすいからです。
後者のセキュリティ・イズ・ア・プロセスはセキュリティを高めるためには単に技術の問題だけではなく、基礎知識から初めて、日々の注意から、体制までを含めた管理運用のプロセスをトータルに構築すべきという考え方です。
■インシデント
インシデントとは重大事件に発展する危険性のある小さな出来事という意味で、セキュリティ上で発生する危険性をセキュリティインシデントと呼びます。
ホワイトハット達が使い始め、「脆弱性」「フルディスクロージャー」に次ぐセキュリティ界の流行語対象とも言える重要な語句です。
■本人認証の方法の比較
本人認証には、おおよそ3つの方法がある。それぞれ一長一短があり、セキュリティの重要度やコスト、利便性などによって選択する必要がある。
|
長所
|
短所
|
知識
|
・記憶(知識)は盗難されない ・利用が簡単
|
・本人が忘れる ・パスワード自体は盗難される可能性がある
|
所有物
|
・携帯性が高い ・操作性が高い
|
・偽造や盗難されやすい。例えば、クローニングやスキミングがそうである。詳細は特別講座<スキミング編>を参照せよ。
|
バイオメトリクス (詳細は応用Physical_Security講座を参照せよ)
|
・記憶・所持しなくてもよい ・盗難・偽造されにくい
|
・認証のための特別な装置が必要。つまり、コストが高い。 ・高度な処理ソフトが必要
|
■バージョン・ロールバックアタック
インターネットセキュリティプロトコルに弱点が見つかると、ベンダーは普通はプロトコルを訂正して、弱点をなくします。しかも、上位互換性がとても大事なので、ベンダーはしばしば新プロトコルを、古い安全でないプロトコルと互換性のあるものになります。賢いアタッカーはあっさり古いプロトコルを強制して、それからkつての弱点を悪用するだけです。これをバージョン・ロールバックアタックと呼びます。
■フルディスクロージャ
最近流行りのフルディスクロージャ(full
disclosure)とは次のようなものです。BugtraqメーリングリストのFAQからの引用です。
・真にセキュアなシステムは全てのレベルにおいてオープンレビューに耐えねばならない(例えば、プロトコルレベル、ソースコードレベルなど)
・万人に対して、セキュリティ上の脆弱性についての詳細情報は利用可能であるべきである。
そして、フルディスクロージャは次の利点をもたらすとされています。
・セキュリティ上の弱点に関して非常に多くの人がシステムを確認することが可能。
・ベンダに対してはセキュリティ対策を早期に提供させるための圧力となり得る。
・プログラム、およびシステム設計者は他人の過ちから学ぶことができる。
・利用者はシステム内の似通った脆弱性を見つけることができる。
■セキュリティー10原則
管理者は少なくともこの10原則を認識しておく必要があるでしょう。
- 1:無名だからといって安全とは限らない。
- 2:バグやセキュリティーホールのフルディスクロージャがセキュリティーにとってプラスになる。
- 3:システムのセキュリティーは使用量に正比例して低下する。
- 4:誰かが間違った対応をする前に適切に対処する。
- 5:発覚の不安を与えて攻撃を抑止する。
- 6:上には上がいる。
- 7:完全保証つきのセキュリティーソリューションなどは存在しない。
- 8:善(white hat)と悪(black hat)を混ぜると灰色(gray hat)になる。
- 9:敵の立場で考える。
- 10:信頼性とは相対的な概念である。「自分で作ったコード以外は信用できない」ということを示唆しています。
■セキュリティポリシー
詳細は特別講座<セキュリティーポリシー編>を参照せよ。
■セキュリティーホールとは、何でしょうか?
セキュリティーホールとは、不正にアクセスを許してしまうハードウェア、ソフトウェア、ポリシーの弱点です。セキュリティーホールについては、SecurityHole_DataBaseを参照してみてください。
■セキュリティーホールは、誰が発見しているのですか?
セキュリティーホールを発見している人たちは、次に分類できます。
・ホワイトハット ←フルディスクロージャーの思想に基づいて、セキュリティホールをベンダなどに報告してから、情報公開。
・ブラックハット
・グレーハット
・ベンダまたは何らかのセキュリティチーム ←ハッカーチームなども含む。
・一般のインターネットユーザー、コンピュータユーザー ←セキュリティホールやバグを発見しているが、それに気づいていない場合が多々あります。別にこれはノーベル賞にも同じようなことがいえますが。
■最も強力なセキュリティーツールってあるのですか?
『UNIXセキュリティ』(マグロウヒル)によれば、次のように言われています。
最も強力なセキュリティーツールは、システムアドミニストレータが持つべき認識であり、「悪い人が持っている知識が、何よりも強力なツール」である。
■セキュリティ事故による損失
・詐欺や盗難による実質的な金銭的損失
・業務中断やシステム停止による機会損失
・現状復帰に関わる費用と時間
・賠償責任に関わる費用
・社会的信用の失墜による損失
■セキュリティモデル
セキュリティを説明する理論モデルは山ほどあります。その多くは1970年代〜80年代にアメリカ国防省がお金を出したものです。
軍事システムに多かったのは多層セキュリティ(MLS)システムと呼ばれるものです。
セキュリティモデルで一番有名なのがBell-LaPadulaモデルです。このモデルは主体、対象、アクセス操作を定義して、それについて論じるための数学を定義しています。適応価格システム構築に繋がるという意味では失敗に終わったが、この理論はその後のシステム設計に影響を与え続けています。
Bell-LaPadulaモデルには大きく2つのセキュリティ規則があります。
・データの読み出しに関する規則
・データの書き込みに関する規則
もし、利用者が秘密レベルの権利を持っていたら、公開、取り扱い注意、秘密の文書は読めるけれども、最高機密運書は読めない。
また、利用者が秘密データを使って作業をしていたら、秘密と最高機密文書は作れるが、取り扱い注意や公開の文書は作れない。これについては少し説明が必要かもしれない。或る人物が文書を盗もうとしているとする。コンピュータはその人が機密文書をコンピュータ外にメールで送ろうとしたら止めるはずだ。しかし、もし機密文書を見て、その内容を公開文書にコピーできるならば、その新しい公開文書をメールで送信できてしまう。この種のことを防止するためにこのコントロールが付いているのだ。
このように、基本的に利用者は自分のクリアランス以上の文書は読めないし、自分のセッションのクリアランス以下の文書も作成できない。そして、理論的に利用者は自分には読めない文書を書くことができるのです。
以上がBell-LaPadulaモデルに記述された必須アクセス制御である。これはUNIXやWindowsNTなどのOSにおける「判断に基づくアクセス制御」とは正反対である。UNIXやWindowsNTの方式は利用者が誰がどのファイルを読み書きできるかを自分の判断で決められる方式である。
残念ながら、Bell-LaPadulaモデルには次のような限界があった。
○機密性
機密性ばかりに力を入れてしまい、それ以外のものを全て犠牲にしていること。
そして、機密性はセキュリティ階層という軍のモデルに基づいていること。
○クラス分け
クラス分けの問題をどう管理するのかという問題を無視していること。
このモデルでは誰かが魔法のようにあらゆるデータをクラス分けしてくれて、そのクラス分けは絶対変わらないという前提に基づいている。実際の世界では誰かがあるデータは重要だと思って、それを機密扱いにして、誰か別の人がそれを機密区分から外したりと流動的にクラス分類は変わってしまう場合がある。
○作業
ときどきユーザーは自分には見ることができないデータを使って作業をしなければならないということだ。
ここではBell-LaPadulaモデルを取り上げたが、もちろん他にも多くのセキュリティモデルがある。例えば、Chinese
WallモデルやClark-Wilsonモデルなどである。
■セキュリティカーネル
多くのOSには多少のセキュリティがカーネルの段階で組み込んである。
セキュリティを組み込む一番よい部分はシステムレイヤーの低い部分である。即ち、PCのアーキテクチャーにおけるハードウェア層やオペレーティングシステムの層だ。
これらの層がよいというのには次のような理由がある。
・ある層でのセキュリティをかわすにはその下にある層を攻撃すると有効な場合が多い。例えば、ワープロソフトに暗号化機能を組み込んでも、アタッカーがその下にあるOSに細工できたら意味はない。よって、一番低いソフトウェアの部分にセキュリティを入れておいたほうが、セキュリティは高くなる。
・低いそうに組み込んでおいたほうが簡単だからだ。簡単だから、実装しやすく、分析も容易に行える。これらは結果としてセキュリティを高める。
・速度が速いからだ。OSに組み込んでおけばパフォーマンスは高いし、セキュリティ上の差異はない。例えば、暗号処理はCPUサイクルをかなり消費します。なるべく効率これらをできるようにしておいたほうがよい。
●参照モニタ
|