ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: セキュリティーサービス Oracle Solaris 11.1 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
bart コマンドは、目録を作成および比較するために使用されます。このコマンドは、どのユーザーでも実行できます。ただし、ユーザーがファイルのカタログ化やモニターを行うことができるのは、自分がアクセス権を持っているファイルだけです。そのため、ユーザーやほとんどの役割は自分のホームディレクトリ内のファイルを有効にカタログ化できますが、root アカウントは、システムファイルを含むすべてのファイルをカタログ化できます。
BART 目録およびレポートは、だれでも読み取ることができます。BART の出力に機密情報が含まれている可能性がある場合は、出力を保護するための適切な対策を取ってください。たとえば、アクセス権が制限された出力ファイルを生成するオプションや、出力ファイルを保護されたディレクトリ内に配置するオプションを使用します。
|
この手順では、システムのベースライン目録を作成する方法について説明します。このタイプの目録は、中央のイメージから多数のシステムをインストールするときに使用してください。または、インストールが同一であることを確認したい場合は、このタイプの目録を使用して比較を実行してください。ベースライン目録の詳細は、「BART 目録」を参照してください。形式の規則を理解するには、例 6-1 を参照してください。
注 - ネットワーク化されたファイルシステムをカタログ化しようとしないでください。BART を使用して、ネットワーク化されたファイルシステムをモニターすると、ほとんど価値のない目録を生成するために大量のリソースが消費されます。
始める前に
システムの制御目録を作成するには、root 役割になる必要があります。
# bart create options > control-manifest
目録の検査対象としてルートディレクトリを指定します。規則で指定されるパスはすべて、このディレクトリからの相対パスとなるように変換されます。目録で報告されるパスはすべて、このディレクトリからの相対パスとなります。
カタログ化される個々のファイルの一覧 (コマンド行上で指定されるか、あるいは標準入力から読み取られる) を受け入れます。
この目録の規則ファイルの名前です。- 引数を指定すると、規則ファイルが標準入力から読み取られます。
ファイルリストに挙げられたすべての通常ファイルの署名を無効にします。このオプションは、パフォーマンスを上げる目的で使用できます。また、(システムログファイルの場合のように) ファイルリストの内容が変わる予定がある場合にも使用できます。
形式については、例 6-1 を参照してください。
システム目録を保護するための 1 つの方法として、システム目録を root アカウントだけがアクセスできるディレクトリ内に配置します。
# mkdir /var/adm/log/bartlogs # chmod 700 /var/adm/log/bartlogs # mv control-manifest /var/adm/log/bartlogs
目録にわかりやすい名前をつけてください。たとえば、mach1-120312 のように、目録が作成されたシステム名と日付を使用します。
例 6-1 BART 目録の形式の説明
この例では、出力例のあとに目録の形式の説明が表示されています。
# bart create ! Version 1.1 ! HASH SHA256 ! Friday, September 07, 2012 (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 . . .
各目録は、ヘッダーとファイルエントリで構成されています。各ファイルエントリは、ファイルタイプに応じて 1 行になります。たとえば、前の出力にある各ファイルエントリの場合、タイプ F はファイルを指定し、タイプ D はディレクトリを指定します。また、サイズ、内容、ユーザー ID、グループ ID、およびアクセス権も表示されます。特殊文字を正しく処理するため、出力内のファイルエントリはエンコードされたバージョンのファイル名でソートされます。この結果、すべてのエントリがファイル名をキーにして昇順に並べられます。標準でないファイル名 (改行文字やタブ文字が埋め込まれたファイル名など) の場合はすべて、ソート前に非標準文字が引用符で囲まれます。
! で始まる行には、目録についてのメタデータが示されてます。目録バージョン行には、目録の仕様バージョンが示されます。ハッシュ行には、使用されたハッシュメカニズムが示されます。チェックサムとして使用される SHA256 ハッシュの詳細は、sha2(3EXT) のマニュアルページを参照してください。
日付行には、目録が作成された日付が日付形式で示されます。date(1) のマニュアルページを参照してください。一部の行は、目録比較ツールによって無視されます。無視される行には、メタデータ、空行、空白のみで構成された行、および # で始まるコメントが含まれます。
目録は、次に示す方法のいずれかでカスタマイズできます。
サブツリーを指定する
個々のサブツリーの指定は、選択された重要なファイル (/etc ディレクトリ内のすべてのファイルなど) への変更をモニターするための効率的な方法です。
ファイル名を指定する
ファイル名の指定は、特に重要なファイル (データベースアプリケーションを構成および実行するファイルなど) をモニターするための効率的な方法です。
規則ファイルを使用する
規則ファイルを使用して目録の作成と比較を行うと、複数のファイルまたはサブツリーの複数の属性を指定するという柔軟性が得られます。コマンド行からは、目録またはレポート内のすべてのファイルに適用されるグローバルな属性定義を指定できます。規則ファイルからは、グローバルには適用されない属性を指定できます。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
サブツリーを指定する。
# bart create -R subtree
ファイル名 (1 つまたは複数) を指定する。
# bart create -I filename...
例:
# bart create -I /etc/system /etc/passwd /etc/shadow
規則ファイルを使用する。
# bart create -r rules-file
例については、「制御目録を作成する方法」の手順 3 を参照してください。
ヒント - 規則ファイルを使用した場合は、目録とともに規則ファイルを保存します。有効な比較のためには、この規則ファイルを使用して比較を実行する必要があります。
一定期間にわたって目録を比較することによって、壊れたファイルや異常なファイルを見つけたり、セキュリティー違反を検出したり、システム上のパフォーマンスの問題をトラブルシューティングしたりすることができます。
始める前に
システムファイルを含む目録の作成と比較を行うには、root 役割になる必要があります。
# bart create -R /etc > control-manifest
例については、「制御目録を作成する方法」の手順 3 を参照してください。
# bart create -R /etc > test-manifest
# mv test-manifest /var/adm/log/bartlogs
同じコマンド行オプションと規則ファイルを使用して、それらを作成するために使用した目録を比較します。
# bart compare options control-manifest test-manifest > bart-report
例 6-2 一定期間にわたる同じシステムに対するファイル変更の追跡
この例は、一定期間にわたって /etc ディレクトリの変更を追跡する方法を示しています。このタイプの比較を使用すると、攻撃されたシステム上の重要なファイルを見つけることができます。
制御目録を作成します。
# cd /var/adm/logs/manifests # bart create -R /etc > system1.control.090712 ! Version 1.1 ! HASH SHA256 ! Friday, September 07, 2012 (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 . . .
あとで、同じコマンド行オプションを使用して、テスト目録を作成します。
# bart create -R /etc > system1.test.101012 Version 1.1 ! HASH SHA256 ! Wednesday, October 10, 2012 (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.090712 system1.test.101012 /security/audit_class mtime 4f272f59
この出力は、audit_class ファイル上の変更時間が、制御目録が作成されたあとに変化したことを示しています。この変化が予期しないものである場合は、さらに調査を行うことができます。
異なるシステムの目録を比較することによって、システムが同様にインストールされているかどうか、または同期してアップグレードされているかどうかを判定できます。たとえば、システムを特定のセキュリティーターゲットにカスタマイズした場合は、この比較によって、そのセキュリティーターゲットを表す目録と、その他のシステムの目録の間の相違がすべて見つかります。
始める前に
システム目録を比較するには、root 役割になる必要があります。
# bart create options > control-manifest
これらのオプションについては、bart(1M) のマニュアルページを参照してください。
例については、「制御目録を作成する方法」の手順 3 を参照してください。
# bart create options > test1-manifest
例:
# cp control-manifest /net/ test-server/var/adm/logs/bartlogs
テストシステムが NFS マウントしたシステムでない場合は、sftp または別の信頼できる手段を使用して、目録を中央の場所にコピーします。
# bart compare control-manifest test1-manifest > test1.report
例 6-3 /usr/bin ディレクトリ内の疑わしいファイルの識別
この例では、2 つのシステム上の /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.090711 /net/system2.central/bart/manifests
目録を比較します。
# bart compare control-manifest.090711 system2.test.101011 > system2.report /su: gid control:3 test:1 /ypcat: mtime control:3fd72511 test:3fd9eb23
この出力は、/usr/bin ディレクトリ内の su ファイルのグループ ID が、制御システムのグループ ID と同じでないことを示しています。この情報は、テストシステム上に別のバージョンのソフトウェアがインストールされたことを示している可能性があります。GID が変更されているため、だれかがファイルを改ざんしたことが可能性として考えられます。
この手順は、既存の目録の出力を特定のファイル属性に関してフィルタリングするために役立ちます。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
例:
# bart compare -i lnmtime,mtime control-manifest.121511 \ test-manifest.010512 > bart.report.010512
各ファイル属性を区切るには、コマンド行構文でコンマを使用します。
規則ファイルを使用すると、目的とする特定のファイルやファイル属性に関して BART 目録をカスタマイズできます。デフォルトの BART 目録に対して異なる規則ファイルを使用すると、同じ目録に対して異なる比較を実行できます。
始める前に
root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。
# bart create -r myrules1-file > control-manifest
例については、「制御目録を作成する方法」の手順 3 を参照してください。
# bart create -r myrules1-file > test-manifest
# bart compare -r myrules1-file control-manifest test-manifest > bart.report
例 6-4 規則ファイルを使用した BART 目録および比較レポートのカスタマイズ
次の規則ファイルは、bart create コマンドに、/usr/bin ディレクトリ内のファイルのすべての属性を一覧表示するよう指示します。さらに、この規則ファイルは 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 usrbinrules.txt > usr_bin.control-manifest.121011
/usr/bin ディレクトリへの変更をモニターする場合は常に、同一の目録を準備します。
# bart create -r usrbinrules.txt > usr_bin.test-manifest.121111
同じ規則ファイルを使用して目録を比較します。
# bart compare -r usrbinrules.txt usr_bin.control-manifest.121011 \ usr_bin.test-manifest.121111
bart compare コマンドの出力を調べます。
/usr/bin/gunzip: add /usr/bin/ypcat: delete
前の出力は、/usr/bin/ypcat ファイルが削除されたこと、および /usr/bin/gunzip ファイルが追加されたことを示しています。