2014/11/11

1.セキュアなマウントポイントの設定について

マウントオプションを適切に設定して攻撃による被害拡大を防ぐ

 ファイルシステムは、Unixシステムを利用するための基本的な要素です。したがって、 もしも攻撃者によってコンピュータに侵入されてしまった際に、重要なファイルにアク セスされることを防ぐために、ファイルのパーミッションは適切に制限されていることが 望ましいといえます。そのためにはファイルアクセスを制限できるマウントオプションを 用いるとよいでしょう。  「マウントオプション」はファイルシステムへのアクセス方法を制御するためのオプ ションです。マウントオプションはファイルシステムがマウントされる際に、OSカーネ ルに引き渡されます。例えば、nodevオプションを指定すると、デバイスノード(デバ イスファイル)を無効にできます。また、noexecオプションでプログラムの実行を禁止 でき、nosuidオプションでSUIDビットを無効にすることができます。roオプション を指定すると、ファイルシステムを読み出し専用でマウントすることもできます。  これらのマウントオプションは、mountコマンドの-oオプションに指定します。例 えば、プライマリIDEハードディスクの3番目のパーティションをnodev、noexec、 nosuidの各マウントオプションを指定して、/tmpにマウントするには、次のコマンド を実行します。
# mount -o nodev,noexec,nosuid /dev/hda3 /tmp
これを/etc/fstabで設定するには、次のように記述します。 /dev/hda3 /tmp ext3 defaults,nodev,noexec,nosuid 1 2  使用目的を慎重に考慮して目的別にパーティションを分割し、それぞれのパーティ ションに適切なマウントオプションを設定します。これにより攻撃者がコンピュータに侵 入した後の活動を困難にすることができます。機能別にパーティションを分割するには、 システムがディレクトリへの書き込みが必要なのか、読み込みしか必要ないのかを分類 することです。通常の運用中に変更する必要のないディレクトリは、読み出し専用オプ ション(ro)でマウントすることを推奨します。このように読み出し専用オプションを適 用できるディレクトリとして/usrが考えられます。  言うまでもなく/homeのようなディレクトリは読み出し専用としてマウントするべきで はありません。しかしながら通常のUnixシステムにおいて、ユーザーがホームディレ クトリ上でSUIDされたプログラムを実行したり、デバイスファイルを作成したりするこ とを許可する必要はありません。そこで、/homeに独立したパーティションを割り当て、 nodevオプションとnosuidオプションを設定してマウントするとよいでしょう。 またユーザーのホームディレクトリに実行ファイルを置かせないのであれば、noexecマウ ントオプションを追加するのもよいでしょう。また、/tmpや/varディレクトリについて も、これらのディレクトリ上にデバイスファイルを作成したり、実行ファイル(SUIDビッ トの有無を問わず)を置いたりする必要はありません。/tmpやホームディレクトリのよう な共有のファイルシステムをマウントオプションで制限しておけば、攻撃者によるトロイ の木馬などの悪意あるプログラムの実行を防ぐことができます。
nodevオプションがchroot環境で動作しているファイルシステムに適用されていた場 合、chroot()を呼び出して動作しているサービスが機能しないかもしれないことに注意 してください。これはchroot環境下では、/dev/logや/dev/nullなどのデバイスファイ ルが必要なためです。
攻撃者が前述のようなマウントオプションによる制限を回避可能な方法も数多く存在 します。例えばLinuxにおいて、noexecオプションを指定したファイルシステム上で あっても、/lib/ld-linux.soを使用してファイルを実行することが可能です。ld-linux.so を実行不可能とすることで、この問題を解決できると考えるかもしれませんが、そのよ うにするとすべての動的リンクライブラリを用いるプログラムが実行できなくなってしま います。現実的ではありませんが、システム上のすべてのプログラムを静的リンクする ことでこの問題を解決できます。  このようにLinuxにおいてnoexecオプションはほとんど役に立たない可能性があり ます。結局のところroot権限を奪った攻撃者に対しては、これらのマウントオプション を与えたファイルシステムでさえも無意味で、-o remountオプションで再マウントさ れてしまいます。  しかしながらマウントオプションを設定しておけば、root権限を奪う前の攻撃者や悪 意あるユーザーの行動を制限することが可能なのです。

自動でWEBブラウザテストを実行してみる!(selenium + eclipse + java)

1.eclipseの準備 2.selenium IDE(katalon recoder by firefox)で動作記録する。 3.javaファイルにエクスポートする。 4.eclipseで実行