TOP比較データ> 強制アクセス制御
Linuxディストリビュータが紐解くセキュアOS
Linuxディストリビュータが紐解くセキュアOS

第2回:Red Hat Enterprise Linuxセキュリティの概要と特徴

著者:レッドハット  藤田 稜   2005/11/29
前のページ  1  2   3  4  次のページ
強制アクセス制御

   そこでDACにかわって登場したのがMAC(Mandatory Access Control:強制アクセス制御)です。「登場した」とはいっても決して近年になって考え出された概念ではなく、先に触れたTCSECは1983年に作成されたものですから、すでに20年前の話です。

   DAC下における特権ユーザはMAC下には存在せず、実行中のプログラム(=プロセス)やユーザはセキュリティポリシーと呼ばれる決まりのなかでしかリソースを操作できません。リソースもDACに比べると非常に細かく設定でき、ファイルはもちろんのことネットワークでの通信を行うためのソケットなども制御下に置くことが可能です。また操作も「読み、書き、実行」だけではなく、「リソース情報の取得・設定」「ソケットの生成」などのより細かい制御ができるようになっています。

   図2はDACとMACにおいて、攻撃を受けた際の影響範囲を示したものです。DACではひとたびカーネルが乗っ取られる(つまりroot権限を奪取される)と、濃い灰色・薄い灰色の部分に関わらずシステム全体に影響が拡散してしまいます(図2の上)。しかしながらMACでは、あるプログラム(図2の下・左上の矢印のある部分)が乗っ取られても、影響はそのプログラムが動作する範囲、つまりプログラムが操作することを許可されているリソースまでしか拡散しません。


DACとMACの比較
図2:DACとMACの比較


MACの2つのレベル

   ここまででMACのメリットについては理解できたと思いますが、MACにも問題がないわけではありません。それは、NSAが提供するセキュリティポリシーであるStrictポリシーが本来の目的が軍用調達であるため、一般利用には「厳しすぎる」ことです。Strictポリシーを含むSELinuxを最初に統合したLinuxのディストリビューションはFedora Core 2ですが、公開された際に最も多かった質問が「どうやってオフにするの?」でした。


Targetedポリシーの登場

   そこでRHEL4のベースとなったFedora Core 3には、Red Hatが提案・実装したTargetedポリシーというセキュリティポリシーが統合・評価され、RHEL4にもほぼそのままの形で導入されました。Targetedポリシーでは、メールやウェブといったエッジサーバに"Target"を絞って保護する範囲にポリシーを限定し、実際の管理・運用における便宜をはかっています。RHEL4で設定されたTargetは約10ですが、Fedora Coreの最新版であるバージョン4では約70に増加しており、2006年下半期に発表されるRHEL5ではTargetを増やすことでSELinuxの強化をはかるものと思われます。


ExecShield

   RHEL4をセキュリティという切り口で見るとSELinuxにばかりに注目が集まってしまいますが、SELinuxはあくまで被害を最小化する手段であり、被害自体を防止することはできません。Red Hatでは様々な機能やサポートを組み合わせることで多角的にセキュリティを高めた製品の提供を目指しており、その中でもExecShieldはシステムを乗っ取ろうとするハッカー・クラッカーの野心をそぐ、重要な機能です。


NX/XDとセグメンテーション

   ExecShieldはCPUによってその各称が異なります。AMD社のCPUではNo eXecute、Intel社のCPUではeXecute Disable Bitと呼ばれるNX/XDは、メモリ領域の読み書きの制御だけでなく実行の制御も可能とするものですが、NX/XDを持たないCPUでも同様の機能を実現するセグメンテーションという機能もあります。


オーバーフロー攻撃

   ここで少しハッカー・クラッカーの攻撃方法について解説します。一般にオーバーフロー攻撃と呼ばれるものは、自分が実行したいプログラム(=攻撃コード)をメモリ上のある場所に置いておき、プログラムのちょっとしたミスをついて、その場所までプログラムの制御を飛ばして実行させてしまう方法です。

   プログラムの制御を「飛ばす」先は、バッファやスタックと呼ばれるデータを保持しておく領域で、本来は実行されるプログラムが置かれる場所ではありません。そこで、データを保持する領域からはプログラムを実行しないという何らかの目印(フラグ)や決まりがあれば、こういった攻撃は防げることになります。

   NX/XDはメモリ領域からプログラムを実行しないという目印をCPUが管理できるようにしたもので、セグメンテーションはIntelのx86系CPUが持つメモリ管理機能を利用して、メモリを実行可能な部分と不可能な部分に分けてしまう機能です。ExecShieldはRHEL3のUpdate3から利用できるようになりましたが、RHEL4では、同梱されるすべてのアプリケーションがNX/XD機能を利用できるように設定されており、セキュリティの底上げがはかられています。

前のページ  1  2   3  4  次のページ


レッドハット株式会社 藤田 稜
著者プロフィール
レッドハット株式会社  藤田 稜
レッドハット株式会社 プリセールスエンジニア
ホスト・オフコンのSIer、WebのSIerを経て様々なOSに触れた結果、これからはLinuxだという確信を持ち2005年4月より現職。レッドハットのOEMパートナーやエンドユーザからの導入検討段階での技術的問題の解決、セミナーなどにおけるRed Hat Enterprise Linuxの技術的情報の広報に従事。


INDEX
第2回:Red Hat Enterprise Linuxセキュリティの概要と特徴
  はじめに
強制アクセス制御
  PIE
  SELinuxのサポート