監査パッケージ優先順位付けガイドライン

Debian ディストリビューションの監査を実行する際に最初に生じる問題の一つは、 監査対象のパッケージを決定することです。

理想的にはすべてのパッケージを監査することになるでしょうが、 アーカイブ全体には膨大な数のパッケージがあるので、 作業に優先順位をつける簡単な方法がなくてはなりません。

単純なガイドラインとしては、最初に監査する価値があるのは以下のパッケージです。

  1. setuid や setgid をされてインストールされているあらゆるバイナリ。
  2. ネットワーク越しにサービスを提供するあらゆるもの。
  3. リモートからアクセス可能なあらゆる CGI/PHP スクリプト。
  4. root 権限で実行される cronjob やその他の自動化スクリプトを含んでいるあらゆるもの。

一般に、人気があるパッケージは優先順位を上げてください。 これらのパッケージに何らかの問題があれば、より多くのユーザに影響があるからです。

Debian 人気コンテストでは、 調査に参加しているボランティアにどのパッケージが最も人気があるのかを明らかにするための調査を行い続けています。

特に、投票による (by vote) パッケージの順序付けを見てください。この投票によるリストでは、 調査に参加しているユーザがどの程度の頻度でパッケージを使用しているかによって、 パッケージを順位付けています。

パッケージが (特に上述の基準のいずれかを満たすなど) セキュリティ上重要であり、 (このような調査で) 人気もある場合は、間違いなく監査の対象です。

setuidsetgid をされたバイナリ

setuidsetgid をされたバイナリは、伝統的にセキュリティ監査の対象となっています。 これらのパーミッションのいずれかを持つ脆弱なバイナリを突く侵害行為で、ローカルユーザは、 本来持っていない権限を利用する手段を得ることが可能だからです。

検索の補助となる手段として、現行安定版 (stable) リリースに含まれる setuid や setgid をされたバイナリの完全な一覧がこちらに存在します。

setuid や setgid をされたバイナリの中からどれを選択するかに関しては、 そのようなバイナリの中でもセキュリティ問題への繋がりやすさに差がある、 ということを覚えておくことが重要です。例えば、setuid(root) をされたバイナリは、setgid(games) や setuid(bugs) をされたバイナリよりも先に監査すべきです。

ネットワークサーバ

セキュリティ監査の実施ということになると、明らかに思い浮かびやすいもう 1 つの対象はネットワークに繋がったサーバです。 ネットワークに繋がったサーバに悪用可能な問題があると、 攻撃者がリモートからマシンを侵害できるようになりうるからです。

通常、 リモートからのセキュリティ侵害はローカルからのセキュリティ侵害よりもはるかに重大です。

オンラインのスクリプト

オンラインのスクリプト、特に CGI スクリプトは、実はネットワークサーバと同等です。 ウェブサーバ自体は安全かもしれませんが、その上で動作するスクリプトも同程度に重要なのです。

ネットワーク越しに利用可能なスクリプトのバグは、 接続を待ち受けているサーバのバグと同程度に重大です。 どちらのバグでもマシンへのセキュリティ侵害が可能になってしまうからです。

cronjob やシステムのサービス

あちこちに多数あるわけではありませんが、 パッケージ内に含まれている自動化スクリプトや cronjob などには目を通す価値があります。

ログファイルの掃除などに使用される多くのサポートツールが、デフォルトでは root 権限で実行されます。

シンボリックリンク攻撃の悪用が成功してしまうと、 ローカルからの侵害を招く可能性があります。