ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
bart コマンドは、通常のユーザー、スーパーユーザー、または役割を引き受けたユーザーとして実行できます。ただし、bart コマンドを通常のユーザーとして実行する場合は、アクセス権のあるファイルのカタログ化と監視しか行えません (たとえば、自分のホーム内のファイルのみ)。スーパーユーザーとして bart コマンドを実行する利点は、作成する目録に隠しファイルやプライベートファイルについての情報が含まれることです。これらの情報を監視することもあるでしょう。アクセス権を制限したファイル (/etc/passwd ファイルや /etc/shadow ファイル) に関する情報のカタログ化と監視が必要な場合は、bart コマンドをスーパーユーザーとして実行してください。RBAC の使用についての詳細は、「役割に基づくアクセス制御 (概要)」を参照してください。
bart コマンドをスーパーユーザーとして実行した場合、その出力は誰にでも読み取れます。この出力には、プライベートであることを意図するファイル名も含まれる可能性があります。bart コマンドの実行時にスーパーユーザーになる場合には、出力を適切に保護してください。たとえば、アクセス権を制限した状態で出力ファイルを生成するオプションを使用します。
注 - この章に示されている作業と例は、スーパーユーザーによって実行された bart コマンドを示しています。特に明記しない限り、bart コマンドをスーパーユーザーとして実行するかどうかは任意に選択できます。
|
システムの目録は、Oracle Solaris ソフトウェアの初期インストールが終わった直後に作成できます。このタイプの目録は、一定期間における同一システムの変化を比較するためのベースラインとなります。あるいは、この目録を使用し、異なるシステムの目録と比較することもできます。たとえば、ネットワーク上の各システムのスナップショットを作成し、各テスト目録を制御目録と比較する場合、テストシステムをベースライン構成と一致させるために必要な作業をすばやく判断できます。
始める前に
システム目録を作成するには、root 役割になっている必要があります。
# bart create options > control-manifest
目録の検査対象としてルートディレクトリを指定します。規則で指定されるパスはすべて、このディレクトリからの相対パスとなるように変換されます。目録で報告されるパスはすべて、このディレクトリからの相対パスとなります。
カタログ化される個々のファイルの一覧 (コマンド行上で指定されるか、あるいは標準入力から読み取られる) を受け入れます。
この目録の規則ファイルの名前です。- を付けて -r オプションを使用すると、規則ファイルが標準入力から読み取られます。
ファイルリストに挙げられたすべての通常ファイルの署名を無効にします。このオプションは、パフォーマンスを上げる目的で使用できます。また、(システムログファイルの場合のように) ファイルリストの内容が変わる予定がある場合にも使用できます。
目録にわかりやすい名前をつけてください。たとえば、システム名と目録が作成された日付を組み合わせます。
例 6-1 システム上のファイルごとに情報を一覧表示する目録を作成する
オプションをまったく指定せずに bart create コマンドを実行すると、システムにインストールされているファイルごとに情報がカタログ化されます。このタイプの目録は、元になるイメージから多数のシステムをインストールする場合のベースラインとして使用してください。また、同一のインストールが行われたかを確認する場合に、このタイプの目録を使用して比較を行うこともできます。
例:
# bart create ! Version 1.1 ! HASH SHA256 ! Wednesday, September 07, 2011 (22:22:27) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode / D 1024 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3ebc418eb5be3729ffe7e54053be2d33ee884205502c81ae9689cd8cca5b0090 0 0 . . . /zone D 512 40755 user::rwx group::r-x,mask:r-x,other:r-x 3f81e892 154de3e7bdfd0d57a074c9fae0896a9e2e04bebfe5e872d273b063319e57f334 0 0 . . .
各目録は、ヘッダーとエントリから構成されます。目録ファイルの各エントリは、ファイルタイプに応じて単一の行に示されます。たとえば、上記の出力における各目録エントリでは、タイプ F はファイルを示し、タイプ D はディレクトリを示します。また、サイズ、内容、ユーザー ID、グループ ID、およびアクセス権も表示されます。特殊文字を正しく処理するため、出力内のファイルエントリはコード化されたバージョンのファイル名でソートされます。この結果、すべてのエントリがファイル名をキーにして昇順に並べられます。標準でないファイル名 (改行文字やタブ文字が埋め込まれたものなど) については、ソート前にそれらの非標準文字が引用符で囲まれます。
! で始まる行には、目録についてのメタデータが示されてます。目録バージョン行には、目録の仕様バージョンが示されます。ハッシュ行には、使用されたハッシュメカニズムが示されます。日付行には、目録が作成された日付が日付形式で示されます。date(1) のマニュアルページを参照してください。一部の行は、目録比較ツールによって無視されます。無視される行には、空の行や、空白しか入っていない行、# から始まるコメントなどがあります。
目録は、次に示す方法のいずれかでカスタマイズできます。
サブツリーを指定する
システム上の個々のサブツリーに目録を 1 つ作成するという方法を採ると、大きなディレクトリのすべての内容にそれぞれ目録を作成するよりも、特定のファイルの変化を効率良く監視できます。この方法では、システム上の特定のサブツリーのベースライン目録を作成し、その後そのサブツリーのテスト目録を定期的に作成できます。制御目録とテスト目録の比較には、bart compare コマンドを使用します。このオプションを使用すると、重要なファイルシステムを効率良く監視し、侵入者によって攻撃されたファイルがないかを確認できます。
ファイル名を指定する
全システムをカタログ化する目録の作成は時間がかかり、ディスクスペースや負担も大きくなるため、システム上の特定のファイルまたは特定のファイル群についての情報だけを表示する場合は、この bart コマンドオプションを使用することを推奨します。
規則ファイルを使用する
規則ファイルは、単一のシステム上の特定のファイルと特定のサブツリーに関する情報を表示するカスタム目録を作成する場合に利用できます。規則ファイルは、特定のファイル属性の監視にも使用できます。規則ファイルを使用して目録の作成と比較を行うと、複数のファイルまたはサブツリーの複数の属性を指定するという柔軟さが得られます。しかし、コマンド行では、作成する各目録または生成するレポートの全ファイルに適用される汎用的な属性定義しか指定できません。
始める前に
root 役割になっている必要があります。
サブツリーを指定する。
# bart create -R root-directory
ファイル名 (1 つまたは複数) を指定する。
# bart create -I filename...
例:
# bart create -I /etc/system /etc/passwd /etc/shadow
規則ファイルを使用する。
# bart create -r rules-file
この作業は、一定期間内で同一のシステムに起きるファイルレベルの変化を監視する場合に行なってください。このタイプの目録は、セキュリティー侵害を検出して破損したファイルや異常な状態のファイルを見つけたり、システムのパフォーマンスの問題を解決したりするのに便利です。
始める前に
公開オブジェクトを含む目録を作成したり、比較したりするには、root 役割になっている必要があります。
# bart create -R /etc > control-manifest
# bart create -R /etc > test-manifest
# bart compare options control-manifest test-manifest > bart-report
この比較の規則ファイルの名前です。-- を付けて r オプションを使用するのは、指示語が標準入力から読み取られることを意味します。
ユーザーは、コマンド行から汎用指示語 IGNORE を設定できます。
プログラムによる解析に対して地域対応化されていない標準的な出力を生成するプログラムモードです。
制御システムの bart create コマンドからの出力です。
テストシステムの bart create コマンドからの出力です。
例 6-2 同一システムの目録を一定期間で比較する
この例では、一定期間に /etc ディレクトリに発生した変化を監視します。このタイプの比較を行うと、システム上の重要ファイルが攻撃されていないかをすばやく確認できます。
制御目録を作成します。
# bart create -R /etc > system1.control.090711 ! Version 1.1 ! HASH SHA256 ! Wednesday, September 07, 2011 (11:11:17) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /.cpr_config F 2236 100644 owner@:read_data/write_data/append_data/read_xattr/wr ite_xattr/read_attributes/write_attributes/read_acl/write_acl/write_owner/synchr onize:allow,group@:read_data/read_xattr/read_attributes/read_acl/synchronize:all ow,everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 4e271c59 0 0 3ebc418eb5be3729ffe7e54053be2d33ee884205502c81ae9689cd8cca5b0090 /.login F 1429 100644 owner@:read_data/write_data/append_data/read_xattr/write_x attr/read_attributes/write_attributes/read_acl/write_acl/write_owner/synchronize :allow,group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow,ev eryone@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 4bf9d6d7 0 3 ff6251a473a53de68ce8b4036d0f569838cff107caf1dd9fd04701c48f09242e . . .
/etc ディレクトリの変化を監視する時点で、テスト目録を作成します。
# bart create -R /etc > system1.test.101011 Version 1.1 ! HASH SHA256 ! Monday, October 10, 2011 (10:10:17) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /.cpr_config F 2236 100644 owner@:read_data/write_data/append_data/read_xattr/wr ite_xattr/read_attributes/write_attributes/read_acl/write_acl/write_owner/synchr onize:allow,group@:read_data/read_xattr/read_attributes/read_acl/synchronize:all ow,everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 4e271c59 0 0 3ebc418eb5be3729ffe7e54053be2d33ee884205502c81ae9689cd8cca5b0090 . . .
制御目録をテスト目録と比較します。
# bart compare system1.control.090711 system1.test.101011 /security/audit_class mtime 4f272f59
前の出力は、audit_class ファイル上の変更時間が、制御目録が作成されたあとに変化したことを示しています。このレポートは、所有権、日付、内容などのファイル属性が変化していないかを確認するために使用できます。このタイプの情報をすぐに利用できるようにしておくと、ファイルを改ざんした可能性がある人物や、変化が起きた時点などを追跡しやすくなります。
システム同士の比較を行い、ベースラインシステムとほかのシステムの間にファイルレベルの相違がないかをすばやく確認できます。たとえば、ベースラインシステムに特定バージョンの Oracle Solaris ソフトウェアをインストールした場合で、ほかのシステムにも同一のパッケージがインストールされているかどうかを知りたいときには、それらのシステムの目録を作成し、続いてテスト目録を制御目録と比較できます。このタイプの比較では、制御システムと比較される各テストシステムについてファイルの内容の相違がすべて一覧表示されます。
始める前に
システム目録を比較するには、root 役割になっている必要があります。
# bart create options > control-manifest
# bart create options > test1-manifest
テスト目録に識別しやすい意味のある名前を付けます。
例:
# cp control-manifest /net/test-server/bart/manifests
テストシステムが NFS マウントされた状態でない場合は、FTP などの信頼性のある方法によって制御目録をテストシステムにコピーしてください。
# bart compare control-manifest test1-manifest > test1.report
テストシステムごとに、同じ bart オプションを使用してください。
例 6-3 異なるシステムの目録を制御システムの目録と比較する
この例では、制御目録を異なるシステムのテスト目録と比較することによって /usr/bin ディレクトリの内容に起きた変化を監視する方法について説明します。
制御目録を作成します。
# bart create -R /usr/bin > control-manifest.090711 ! Version 1.1 ! HASH SHA256 ! Wednesday, September 07, 2011 (11:11:17) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /2to3 F 105 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribut es/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:read _data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:re ad_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4bf9d261 0 2 154de3e7bdfd0d57a074c9fae0896a9e2e04bebfe5e872d273b063319e57f334 /7z F 509220 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribu tes/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:rea d_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:r ead_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4dadc48a 0 2 3ecd418eb5be3729ffe7e54053be2d33ee884205502c81ae9689cd8cca5b0090 ...
制御システムと比較するシステムごとにテスト目録を作成します。
# bart create -R /usr/bin > system2-manifest.101011 ! Version 1.1 ! HASH SHA256 ! Monday, October 10, 2011 (10:10:22) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /2to3 F 105 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribut es/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:read _data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:re ad_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4bf9d261 0 2 154de3e7bdfd0d57a074c9fae0896a9e2e04bebfe5e872d273b063319e57f334 ...
目録を比較する時点で、その目録を同じ場所にコピーします。
# cp control-manifest /net/system2.central/bart/manifests
制御目録をテスト目録と比較します。
# bart compare control-manifest system2.test > system2.report /su: gid control:3 test:1 /ypcat: mtime control:3fd72511 test:3fd9eb23
上記の出力は、/usr/bin ディレクトリの su ファイルのグループ ID が制御システムのグループ ID と同じでないことを示しています。この情報は、異なるバージョンのソフトウェアがテストシステムにインストールされていないかということや、誰かがファイルを改ざんしていないかということなどの確認に便利です。
ここでは、コマンド行でファイル属性を指定することによって BART レポートをカスタマイズする方法を説明します。この作業はオプション (省略可能) です。システム上の全ファイルまたは特定のファイルについての情報を一覧表示するベースライン目録を作成すると、特定のディレクトリ、サブディレクトリ、またはファイル (1 つまたは複数) に起きた変化を監視する任意の時点で各種の属性を指定して bart compare コマンドを実行できます。コマンド行で各種のファイル属性を指定し、同一目録についてさまざまな比較を行うことができます。
始める前に
root 役割になっている必要があります。
このテスト目録は制御目録と同様に作成してください。
例:
# bart compare -i dirmtime,lnmtime,mtime control-manifest.121503 \ test-manifest.010504 > bart.report.010504
コンマは、コマンド行構文で指定する各属性を区切るために使用します。
ここでは、bart compare コマンドの入力情報として規則ファイルを指定することにより BART レポートをカスタマイズする方法を説明します。この作業もオプション (省略可能) です。規則ファイルを使用すると、BART レポートをカスタマイズし、1 つ以上のファイルまたはサブツリーの複数の属性を柔軟に指定できます。また、異なる複数の規則ファイルを使用することで、同じ目録についてさまざまな比較を行えます。
始める前に
root 役割になっている必要があります。
# bart create -r rules-file > control-manifest
# bart create -r rules-file > test-manifest
# bart compare -r rules-file control-manifest test-manifest > bart.report
例 6-4 規則ファイルを使用して BART レポートをカスタマイズする
次に示す規則ファイルには、bart create コマンドと bart compare コマンドの両方に適用される指示語が含まれています。この規則ファイルは、/usr/bin ディレクトリの内容についての情報を一覧表示するように bart create コマンドに指示します。さらに、このディレクトリのサイズと内容の変化だけを追跡するように bart compare コマンドに指示します。
# Check size and content changes in the /usr/bin directory. # This rules file only checks size and content changes. # See rules file example. IGNORE all CHECK size contents /usr/bin
作成した規則ファイルを使用して制御目録を作成します。
# bart create -r bartrules.txt > usr_bin.control-manifest.121003
/usr/bin ディレクトリの変化を監視する時点で、テスト目録を作成します。
# bart create -r bartrules.txt > usr_bin.test-manifest.121103
同じ規則ファイルを使用して目録を比較します。
# bart compare -r bartrules.txt usr_bin.control-manifest \ usr_bin.test-manifest
bart compare コマンドの出力を調べます。
/usr/bin/gunzip: add /usr/bin/ypcat: delete
上記の出力では、bart compare コマンドによって /usr/bin ディレクトリにおける相違が報告されます。この出力は、/usr/bin/ypcat ファイルが削除されたことと、/usr/bin/gunzip ファイルが追加されたことを示しています。