第4回 VMwareでLIDSに触れてみよう
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/2/23
前回は、LIDSの特徴の1つである「Linuxカーネルケーパビリティ」について説明しました。これは、プロセスに特権を与えるのではなく、特権を細分化した必要最小限のケーパビリティを与えることで、万が一、脆弱性が悪用されても特権を奪われないようにするものです。
今回は「ステート」という概念とLIDS-1系列で使用できる「TDE/TPE/Sandbox」を解説する予定でしたが、実際に読者にLIDSを触ってもらう方がよいと思いますので、簡単にステートの概念を説明してから、VMwareイメージの使い方の紹介という内容に変更します。なお、TDE/TPE/Sandboxについては次回に回します。
セキュリティ強度とシステム動作の相反
第2回、第3回で見てきたように、LIDSではACLとケーパビリティを用いることでシステムを保護しています。これらの保護を厳密に行うことにより、システムを極めて堅牢にすることができる半面、設定しなくてはいけないACLやケーパビリティの数が多くなってしまい、結果としてシステムの使い勝手が悪くなってしまうという問題があります。例を挙げて説明しましょう。
図1のようにシステムすべてがREADONLYで保護されていると仮定します。プログラムが起動するときに、/tmpディレクトリにテンポラリファイルを作成/消去し、/var/runディレクトリにPIDファイルを作成するとしましょう。第2回で説明したように、この場合にはACLを用いて、特定のプログラムのみが/tmpディレクトリと/var/runディレクトリに書き込めるように設定します。
図1 特権を奪われたプログラムが被害を拡大する |
しかし、そのプログラムが悪用された場合には、/tmpディレクトリや/var/runディレクトリに書き込みを許可してしまうことになり、結果として/tmpディレクトリ以下に悪意のあるバイナリを置かれてしまうなど、全体のセキュリティを下げてしまう可能性があります。
また、/etc/init.d以下の起動スクリプトをDENYにすることにより、プログラムの不正な起動や停止を妨げることができますが、これも常にDENYにしてしまうと、システムを起動してサービスを立ち上げる際やシステムをシャットダウンする際に、正常な動作ができなくなります。
このようにシステムのセキュリティ強度を上げようとすると、システムの起動や停止がうまくいかなくなることがあります。しかし、起動や停止がうまくいくような設定をしてしまうと、結果としてセキュリティ強度が弱くなってしまう可能性があります。
ステートという考え方
LIDSでは、このような問題に対する解として、ステートを用意しています。これはシステムを、
- BOOTステート
- POSTBOOTステート
- SHUTDOWNステート
の3つのステートに分け、それぞれのステートごとで異なるACL/ケーパビリティを設定できるようにしようというものです。
システムのステートは、図2のように遷移します。各ステートの説明は以下になります。
図2 システムのステートの遷移 |
1.BOOTステート
システムが起動し、LIDSが初期化された状態から「lidsadm -I」コマンド(「カーネルの封印」を行うコマンド)を実行するまでになります。このBOOTステートで、システムで必要とするサービスなどを起動したり、必要なモジュールをロードしたりします。
2.POSTBOOTステート
カーネルを封印した後のステートです。システムをこのステートにした状態で、通常の運用は行います。カーネルを封印することにより、LKM(Loadable Kernel Module)によるカーネルへのモジュールのロードが一切できなくなります。これにより、LKMを悪用するrootキットの侵入を防ぐことができます。
3.SHUTDOWNステート
「lidsadm -S -- +SHUTDOWN」コマンドを実行すると、システムがSHUTDOWNステートになります。名前のとおりシステムをこのSHUTDOWNステートにしてから「shutdown」コマンドなどで実際のシステムシャットダウンや再起動を行います。
これらのステートごとで異なるACL/ケーパビリティを設定できます。先ほどの例では、
- BOOTステートでは、システムすべてをREADONLYにし、プログラムが/tmpや/var/runディレクトリに書き込みや削除ができるようなACLを設定する
- POSTBOOTステートでは、システムすべてが例外なくREADONLYになる
- SHUTDOWNステートでは、システムすべてをREADONLYにし、プログラムが/tmpや/var/runディレクトリに書き込みや削除ができるようなACLを設定する
として、通常運用はPOSTBOOTステートで行うようにすれば、仮に通常運用中にプログラムが悪用されたとしてもシステムに影響を与えられる危険性が少なくなります。
1/3
|
Index | |
VMwareでLIDSに触れてみよう | |
Page1 セキュリティ強度とシステム動作の相反 ステートという考え方 |
|
Page2 VMwareイメージでLIDSを体験しよう VMwareイメージの使い方 システムの起動からログインまで 設定用スクリプト |
|
Page3 デモ1:ファイルACLを試してみる デモ2:プロセスの保護を試してみる デモ3:プロセスの隠ぺいを試してみる システムの停止/再起動 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|