tcbck コマンド

目的

システムのセキュリティーの状態を監査します。

構文

検査モード

tcbck { -n | -p | -t| -y } [ -i ] [ -o] { ALL | tree | { Name ... Class ... } }

更新モード

tcbck -a -f File | PathName Attribute = Value ...

または

tcbck -d -fFile | { PathName ... | Class ... }

または

tcbck -l /dev/filename /dev/ filename

終了状況

このコマンドは、以下の終了値を戻します。
0
ユーザー定義ファイルは適切です。
>0
エラーが発生しました。または 1 つ以上のユーザー定義ファイルにエラーが発生しています。
以下のエラー・コードが戻されます。
EINVAL (22)
無効なコマンド・ライン引数
ENOENT (2)
1 つ以上のユーザー定義ファイルが存在しない
ENTRUST (114)
データベース・ファイル内のユーザー定義でのエラー

説明

tcbck コマンドは、 /etc/security/sysck.cfg ファイル (sysck データベース) で定義されているファイルのインストールを検査することにより、システムのセキュリティー状態を監査します。 /etc/security/sysck.cfg ファイル内の各ファイル定義には、正しいインストールを記述する属性を 1 つ以上入れることができます。フラグやパラメーターを指定しないで起動すると、 tcbck コマンドは、その構文の一覧表を出力します。

tcbck データベースは通常、トラステッド・コンピューティング・ベースの一部である全ファイルおよび全プログラムを定義しますが、セキュリティーに関係すると思われるファイルだけは、root ユーザーまたはセキュリティー・グループのメンバーが選択して定義することができます。

注: このコマンドは、メッセージを stderr に書き込みます。

フラグ

項目 説明
-a sysck データベース内のファイル定義を追加または更新します。
-d sysck データベースからファイル定義を削除します。
-f File ファイル定義が File から読み取られるよう指定します。
-i tree オプションが指定されているときに、 treeck_nodir 属性にリストされているディレクトリー下にあるファイルシステムを削除します。
-l (小文字の L) 管理者がトラステッド・コンピューティング・ベースで登録する /dev/ ファイル用の sysck.cfg ファイルにエントリーを追加します。
-n 検査モードを指定し、エラーを報告するが修正はしないよう指示します。
-o syslog に出力を書き込みます。
-p 検査モードを指定し、エラーを修正するが報告はしないよう指示します。
-t 検査モードを指定し、エラーを修正するかどうかを尋ねるプロンプトとともにエラーを報告するよう指示します。
-y 検査モードを指定し、エラーを修正しかつ報告するよう指示します。

操作のモード

tcbck コマンドには、検査モードと更新モードの、2 つの操作モードがあります。各モードの説明は以下のとおりです。

検査モード

検査モードでは、tcbck コマンドがインストールされたファイルに対してファイル定義を検査します。sysck データベース (/etc/security/sysck.cfg ファイル) 内のすべてのファイル定義は ALL 値を指定することにより、またファイルシステム・ツリー内のすべてのファイルは tree 値を指定することにより検査することができます。特定のファイルを検査したい場合、Name パラメーターを使用して個々のファイルのパス名を指定するか、または Class パラメーターを使用して、複数のファイルを、監査などのようにクラス名で定義されている論理グループにグループ化することができます。ALL または tree 値、あるいは Class または Name パラメーターによって識別される 1 つ以上のファイルのうちの 1 つを選択しなければなりません。

tree 値が選択基準の場合は、ファイルシステム・ツリー内のすべてのファイルを検査して、関連するすべてのファイルが sysck データベース内に定義されていることを確認します。tcbck データベース内に定義されたファイルは、それらの定義に対して検査されます。tcbck データベースにないファイルについては、以下のことを行ってはいけません

  • トラステッド・コンピューティング・ベース属性を設定すること。
  • setuid または setgid を管理 ID に設定すること。
  • tcbck データベース内のファイルにリンクすること。
  • デバイス・スペシャル・ファイルになること。

tree 値と -t フラグを指定して、検査モードで tcbck コマンドを実行中にエラーが発生した場合、コマンドはエラー・メッセージを表示して、エラーを修正するかしないか、またはどのように修正するかを決定するようプロンプトを表示します。 そのファイルを削除しないか、または不正許可をオフにしないよう決定すると、そのデータベースを更新するかどうかのプロンプトが表示されます。更新を要求すると、システムは、そのファイル名、リンク、または登録されていないデバイス名などの不足している情報を提供します。

検査モードを指定し、エラーの処理方法を識別するためには、フラグ (-n-p-t-y) も同様に入れなければなりません。/etc/security/sysck.cfg ファイル内に重複するスタンザがあると、エラーが報告されますが、修正はされません。

重要プロダクト・データベース (VPD) の更新とは、VPD マネージャーに対して各ファイルの typechecksum、および size 属性を定義することです。この情報は正しいインストールを検査するために使用されます。これらの属性が -f File に定義されていないと、それらはプログラムのインストール時、または更新時に計算されます。checksum 属性は、VPD マネージャー用に特に定義された方法で計算されます。 ファイル属性については、エラーの修正を参照してください。

更新時に修正されるファイル定義は、ファイルがトラステッド・コンピューティング・ベース (TCB) の一部であることを示す新しい定義だけです。File パラメーターは、tcbck フォーマットのファイル定義を含み /etc/security/sysck.cfg ファイル内に定義されるスタンザ・ファイルです。 更新を終了すると、スタンザ・ファイル内のファイル定義に対してファイルを検査し、エラーを修正して報告します。

setuid または setgid 特権が必要なプログラムは、tcbck データベース内になければなりません。または、tcbck コマンドを検査モードで実行するときに、これらの特権はクリアされます。

更新モード

更新モードでは、tcbck コマンドは、File パラメーター、PathName パラメーター、または Class パラメーターで指定されたファイルに対して、/etc/security/sysck.cfg ファイル内のファイル定義を追加 (-a)、削除 (-d)、または修正します。Class パラメーターにより、複数のファイルを、監査などのようにクラス名で定義される論理グループにグループ化できます。 さらに、tcbck コマンドは、/etc/security/sysck.cfg ファイルから指定したスタンザを削除します。

更新モードでは、tcbck コマンド (-l) は、/etc/security/sysck.cfg ファイル内の指定した /dev エントリーに /dev/ エントリー・ファイル定義を追加または修正します。管理者はこのフラグを実行して sysck.cfg ファイルに、登録された新規作成デバイスを追加します。新規デバイスが sysck.cfg ファイルに追加されていないと、ツリー・オプションは未登録デバイスについて警告を発します。

-l フラグは、コマンド・ライン上にリストされたそれぞれの /dev/ エントリー用にスタンザを作成します。スタンザの情報は、/dev エントリーの現行状況から取り込まれます。スタンザには以下のものが入っています。

デバイス名。 /dev/ エントリー名
ファイル・タイプ FILEDIRECTORYFIFOSYMLINKBLK_DEVCHAR_DEV、または MPX_DEV のいずれか
オーナー ID オーナー名
グループ ID グループ名
許可 オーナー、グループ、その他の書き込み許可、読み込み許可、実行許可。 SUIDSGIDSVTX および TCB 属性ビット。
ターゲット ファイルがシンボリック・リンクの場合、ターゲット・ファイルがリストされます。

-a フラグで追加、または修正されるファイル定義は、コマンド・ラインまたはファイル内に Attribute=Value ステートメントとして指定することができます。以下の属性が使用できます。

項目 説明
acl ファイル用のアクセス制御リスト。 値がブランクの場合は、acl 属性は除去されます。値を指定しないと、コマンドはアクセス制御リストで説明されているフォーマットに従って値を計算します。
class ファイルの論理グループ。値は、計算できないので、指定しなければなりません。値がブランクの場合は、class 属性は指定されたファイル・スタンザから除去されます。値は ClassName [ClassName] です。
checksum ファイルのチェックサム。値がブランクの場合は、checksum 属性は除去されます。値を指定しないと、コマンドは sum コマンドで指定されたフォーマットに従って計算します。値は、スペースを含む sum -r コマンドの出力です。
group ファイル・グループ。値がブランクの場合は、group 属性は除去されます。値を指定しないと、コマンドは値を計算し、それがグループ ID またはグループ名になります。
links このファイルに対するハード・リンク。値がブランクの場合は、links 属性は除去されます。値は、計算できないので、指定しなければなりません。値は、Path [,Path ...] で表される絶対パス名でなければなりません。
mode ファイル・モード。値がブランクの場合は、mode 属性は除去されます。 値を指定しないと、コマンドは値を計算し、それは 8 進数値または文字列 (rwx) となり、さらに tcbSUIDSGID および SVTX 属性を持ちます。
owner ファイルのオーナー。 値がブランクの場合は、owner 属性は除去されます。 値を指定しないと、コマンドは値を計算しますが、 それは、ユーザー ID またはユーザー名になります。
program ファイル用の関連検査プログラム。値がブランクの場合は、program 属性は除去されます。値は、計算できないので、指定しなければなりません。値は絶対パス名でなければなりません。 フラグを指定すると、値は Path ,Flag のフォーマットで表さなければなりません。
symlinks ファイルに対するシンボリック・リンク。値がブランクの場合は、symlinks 属性は除去されます。値は、計算できないので、指定しなければなりません。値は、Path [,Path..] で表される絶対パス名でなければなりません。
size バイト単位のファイルのサイズ。値がブランクの場合は、size 属性は除去されます。値を指定しないと、コマンドは値を計算します。この値は 10 進数です。
source ファイルのソース。値がブランクの場合は、source 属性は除去されます。値を指定しないと、適切なタイプの空ファイルが生成されます。値は絶対パス名でなければなりません。
type ファイルのタイプ。この値はブランクにはできません。値を指定しないと、コマンドは値を計算し、それが FILEDIRECTORYFIFOBLK_DEVCHAR_DEV、または MPX_DEV キーワードになります。

/etc/security/sysck.cfg ファイル内に sysck スタンザを生成または修正することにより、tcbck コマンドの属性を追加、削除、または修正することができます。以下の属性が使用できます。

項目 説明
checksum ファイルのチェックサム値を計算する、代替チェックサム・コマンドです。システムはコマンドに各ファイルの名前を追加します。値がブランクの場合は、この代替 checksum 属性は除去されます。値は、各ファイルに対して実行されるコマンド・ストリングです。デフォルトの文字列は /usr/bin/sum -r < です。
setgids 有効でない setgid プログラムがないかどうかを検査される管理グループ (200 より大きい ID 番号を持つグループ) の補足リストです。値がブランクの場合は、setgids 属性は除去されます。値は、コンマで区切られたグループ名のリストです。
setuids 有効ではない setuid プログラムがないかどうか検査される管理ユーザー (200 より大きい ID 番号を持つユーザー) の補足リストです。値がブランクの場合は、setuids 属性は除去されます。値は、コンマで区切られたユーザー名のリストです。
treeck_nodir tcbck コマンドによる検証から除外されるディレクトリーのリストです。値がブランクの場合は、treeck_nodir 属性は除去されます。値は、コンマで区切られたディレクトリーのリストです。この属性に入っているディレクトリー内に存在するファイルシステムは除外されません。これらのファイルシステムを除外するには -i フラグを使用してください。

このオプションは、tree オプションが指定されている場合にのみ使用します。

treeck_novfs インストールされたファイルシステム・ツリーの検査時に、tcbck コマンドによる検証から除外されるファイルシステムのリストです。値がブランクの場合は、treeck_novfs 属性は除去されます。値は、コンマで区切られたファイルシステムのリストです。

このオプションは、tree オプションが指定されている場合にのみ使用します。

これらの属性の詳細については /etc/security/sysck.cfg ファイルを、 また典型的なスタンザの例については を参照してください。

Attributes が値なしで指定されている場合、コマンドは、変更するファイルから値を計算しようとします。type 属性の指定は必須ですが、他の属性は指定する必要はありません。

エラーの修正

エラーを修正するために、tcbck コマンドは通常、属性を定義された値に再設定します。以下の属性については、コマンドは以下で説明するようにそのアクションを修正します。

項目 説明
checksum ファイルのアクセス制御リストをクリアすることによって、そのファイルを使用不可にしますが、それ以降の検査は停止しません。
links 脱落しているハード・リンクをすべて作成します。 他のファイルに対してリンクが存在する場合、そのリンクは削除されます。
program プログラムを起動します。そのプログラムは存在し、 絶対パス名を持っていなければなりません。 エラーが起こるとメッセージが表示されますが、付随するアクションは実行されません。
size ファイルのアクセス制御リストをクリアすることによって、そのファイルを使用不可にしますが、それ以降の検査は停止しません。
source ソース・ファイルを、File パラメーターで識別されたファイルにコピーします。ソースが null の場合、既存ファイルはすべて削除され、正しい type のファイルが作成されます。
symlinks 脱落しているシンボリック・リンクをすべて作成します。 他のファイルに対してリンクが存在する場合、そのリンクは削除されます。
type ファイルのアクセス制御リストをクリアすることによって、そのファイルを使用不可にし、それ以降の検査を停止します。

tcbck コマンドで -t フラグを指定すると、エラーを修正するかどうかをプロンプトが尋ねます。yes と答えると、エラーは修正されます。それ以外の応答をすると、エラーは修正されません。

セキュリティー

アクセス制御: このコマンドの実行 (x) アクセス権を root ユーザーとセキュリティー・グループのメンバーに対してのみ与えます。 このコマンドは、root ユーザーに対して実効 UID が設定され、トラステッド・コンピューティング・ベース属性を持っている必要があります。

アクセスされるファイルは以下のとおりです。

モード ファイル
r /etc/passwd
r /etc/group
r /etc/security/user
rw /etc/security/sysck.cfg
x /usr/bin/aclget
x /usr/bin/aclput
x /usr/bin/sum

監査イベントは以下のとおりです。

イベント 情報
TCBCK_Check ファイル、エラー、状況
TCBCK_Update ファイル、関数

  1. aclchecksumclassgroupowner、および program 属性を指定して /bin/boo ファイルを tcbck データベースに追加するには、以下のように入力します。
    tcbck -a /bin/boo acl checksum class=audit group owner¥
    program=/bin/boock
    実行結果のスタンザには上記で与えられた属性が含まれ、定義しない属性には計算された値が挿入されます。 データベースには以下のようなスタンザが含まれます。
    /bin/boo:
           acl = 
           checksum = 48235
           class = audit
           group = system
           owner = root
           program = /bin/boock
           type = FILE          
    属性値はインストール定義に追加されますが、正しいかどうかは検査されません。 program 属性値はコマンド・ラインから得られ、 checksum 属性値は checksum プログラムによって計算され、acl を除く他のすべての属性値はファイルの i ノードから算出されます。
  2. ファイルのサイズの検査はしても、インストール時にさらに大きくなる場合があるのでデータベースには追加しないように指示するには、/etc/passwd ファイルについての以下の例にあるように、VOLATILE キーワードを使用してください。
    /etc/passwd:
            type =  FILE
            owner = root
            group = system
            size  = 1234,VOLATILE
  3. tcbck データベースから /bin/boo ファイル定義を削除するには、以下のように入力します。
    
    tcbck -d /bin/boo 
  4. tcbck データベースから auditclass を持つすべての定義を削除するには、以下のように入力します。
    tcbck -d audit
  5. tcbck データベース内のすべてのファイルを検査し、すべてのエラーを修正して報告するには、以下のように入力します。
    tcbck -y ALL
  6. インストールされたファイルシステム・ツリーのセキュリティー監査中に /calvin ファイルシステムおよび /hobbes ファイルシステムを検査から除外するには、以下のように入力します。
    
    tcbck -a sysck treeck_novfs=/calvin,/hobbes 
  7. セキュリティー監査中にディレクトリーを検査から除外するには、以下のように入力します。
    
    tcbck -a sysck treeck_nodir=/home/john
  8. jfh および jsl を管理ユーザーとして、また developers を管理グループとして追加し、インストール済みファイルのセキュリティー監査中に検査するには、以下のように入力します。
    tcbck -a sysck setuids=jfh,jsl setgids=developers
  9. 新しく作成された /dev エントリー、foo および barsysck.cfg スタンザ・エントリーを作成または修正するには、以下のように入力します。
    tcbck -l /dev/foo /dev/bar
    注: これらのエントリーは、追加するとトラステッド・コンピューティング・ベースの一部として登録されます。
重要: 特殊文字の "$" および "?" は、このルーチンで使用できますが、これをファイル名で使用すると、ファイルがあいまいになるなどの潜在的な問題を起こす場合があります。

ファイル

項目 説明
/usr/bin/tcbck tcbck コマンドに対するパスを指定します。
/etc/security/sysck.cfg システム構成データベースに対するパスを指定します。