迅速なセキュリティパッチ適用により侵入を防止する
セキュリティホールを悪用した攻撃からシステムを守るためには、ソフトウェアのアッ
プデートやパッチ適用をこまめに実施してシステムを最新の状態に保つことが重要で
す。あいにく、パフォーマンスチューニングやハードウェアメンテナンス、あるいはソ
フトウェアのデバッグのような「より緊急の」作業が優先されるため、システムのアップ
デートやパッチ適用といった作業は後回しにされがちです。パッチを適用することで、
システムの基本機能が向上するわけではありません。時間と費用の無駄とみなされ、低
コストで最大のパフォーマンスを求める経営者の下では、システムのアップデートはた
いてい作業リストの最下層に追いやられてしまいます。
スクリプトなどを使った自動化をしていないのであれば、手作業によるアップデート
は非常に時間のかかる繰り返し作業です。ありがたいことに、たいていのLinuxディス
トリビューションはアップデートのためのパッケージをネットワークからダウンロードで
きます。アップデートを自動化するにはパッケージの有無や変更をモニターし、自動的
に判定してダウンロードしてアップデートするツールを作成すればよいでしょう。その
ようなツールにAutoRPM(http://www.autorpm.org/)があります。このツールを利用
するとパッケージの配布サイトをチェックして、新しいパッケージをダウンロードする作
業を自動化できます。
AutoRPMは複数のFTPサイトをチェックして新しいパッケージを探すことができる
Perlスクリプトです。AutoRPMには、新しいパッケージあるいは変更されたパッケー
ジを自動的にダウンロードして管理者に通知したり、自動的にインストールしたりする
機能があります。さらに、1つのFTPサイトだけを利用できるのではなく、そのFTP
サイトが利用できない時に代わりになるミラーサイトを複数登録することもできます。
AutoRPMは混んでいるFTPサイトをモニターし、これまで何度そのサイトと通信を試
みたか記憶します。これにより、登録されているFTPサイトをスコアリングし、スコア
が最も高いFTPサイトからチェックしていきます。
AutoRPMを使うためには、最新のパッケージをダウンロードして次のコマンドにより
インストールします。
# rpm -ivh autorpm-3.3.3-1.noarch.rpm
ソースコードからインストールすることも可能です。ただし、Makefileは用意されて
おらず、自分の手でファイルをコピーするしか手はありません。とても面倒なのでRPM
パッケージの使用をお勧めします。
AutoRPMのデフォルト設定はRed Hat Linux用ですが、以下のようにAutoRPMの
設定ファイル/etc/autorpm.d/autorpm.confを変更することでFedoraや他のRPMベー
スのディストリビューションでも利用することができます。
###################### BEGIN Red Hat Linux ##############################
# This automatically determines the version of Red Hat Linux
# You have... you can comment this out and define it yourself
# if you want to
Eval_Var("RHVersion", "sed 's/\(Red Hat Linux \)\?release \([^ ]*\)
(.*)/\2/' /etc/redhat-release");
#Set_Var("RHVersion", "9.0");
# Look for official Red Hat updates
# (won't automatically install anything unless you edit the file)
Config_File("/etc/autorpm.d/redhat-updates.conf");
######################## END Red Hat Linux ##############################
まずEval_var、Set_var、Config_Fileの行をコメントアウトします。そして続
くセクションのEval_val、Config_File行を以下のように変更します。
###################### BEGIN Fedora Linux ###############################
# This automatically determines your version of Fedora Linux
Eval_Var("FedoraVersion", "rpm -q fedora-release | awk -F'-' {'print $3'}");
# Look for official Fedora updates
# (won't automatically install anything unless you edit the file)
Config_File("/etc/autorpm.d/fedora-updates.conf");
######################## END Fedora Linux ###############################
変更が終了したなら、crontabで/etc/autorpm.d/autorpm.cronスクリプトが定期的
に実行されるよう登録します。これにより、定期的にアップデートパッケージを自動的
にダウンロードします†。
AutoRPMではなく、yumを使って自動的にアップデートを行う方法もありま
す。デフォルトでyumはアップデートのダウンロードとインストールを行いますが、
downloadonlyプラグイン(http://linux.duke.edu/projects/yum/download/yum-utils/)
をインストールすることで、yumがインストールステップをスキップできるようになり
ます。
これで以下のコマンドを実行することにより、すべてのアップデートパッケージをダ
ウンロードすることができます。
# yum --downloadonly -y update
このコマンドをcrontabに登録することで、定期的にアップデートパッケージのダウ
ンロードが自動で実行されます。そしてダウンロードしたアップデートパッケージを確
認して、yum updateコマンドを実行することで、それらをインストールできます。
Debianベースのシステムであれば、apt-get -d -y upgradeコマンドを実行す
ることで、似たような結果を得ることができます。このコマンドはすでにインストール
してあるパッケージのアップデートパッケージをダウンロードします。そしてapt-get
upgradeを実行することでそれらのアップデートパッケージをインストールできます。
これまで見てきたように、システムを最新の状態に保つための方法はいくつか存在し
ます。オペレーティングシステムを最新の状態に保つことは、それらが抱えるセキュリ
ティ上の問題を修正するためにも大切な作業です。セキュリティホールを抱えたままの
システムは、攻撃者にとって格好の餌食となります。