trustchk コマンド

目的

トラステッド・シグニチャー・データベース (TSD) およびトラステッド実行機能の管理。

構文

TSD へのファイルの追加

trustchk [ -R module name ] -s <private key file> -v <certificate file> [ -P ] -a [tree] { filename [ size=VOLATILE ] [ hardlinks=value ] [ symlinks=value ]...| -f filename }

TSD からのファイルの削除

trustchk -d { filename...| ALL | -f filename }

TSD の照会

trustchk -q { filename...| ALL |-f filename }

新規ハッシュ・アルゴリズムへの切り替え

trustchk -g [ SHA1 | SHA256 | SHA512 ]

システム・スキャン

trustchk [-i] [ -x ] { -n | -t | -y } tree [dirpath…….]

ポリシーの構成

trustchk [ -@ { WparName | ALL } ] -p { [ TE [ = ON | OFF ] ] [ CHKEXEC [ = ON | OFF ] ] [ CHKSHLIB [ = ON | OFF ] ] [ CHKSCRIPT [ = ON | OFF ] ] [ CHKKERNEXT [ = ON | OFF ] ] [ STOP_UNTRUSTD [ = ON | OFF | TROJAN ] ] [ STOP_ON_CHKFAIL [ = ON | OFF ] ] [ LOCK KERN POLICIES [ = ON | OFF ] ] [ TEP [ = ON | OFF | PathList ] ] [ TLP [ = ON | OFF | PathList [ TSD_FILES_LOCK [ = ON | OFF | EXVOL] ] [ TSD_LOCK [ = ON | OFF ] ] }

システム監査

trustchk [ -l ] [ -r ] { -n | -t | -y } { filename... | ALL } }

代替 TSD ファイルの使用

trustchk -F TSDFile { -a | -d | -g | -q | -y | -n | -t }

Update TSD trustchk

trustchk -u <filename>[<attr>=value]

trustchk -k -s <private key file> -v certificate file [ -N ] { [ -D ] "OU = distinguished name"}
注: 正符号 (+) は、-D オプションの識別名でのみ使用できる特殊文字です。
次の例は、どのように正符号を識別名で特殊文字として使用するかを示しています。
trustchk -k -s sign-key -v verify-key -N -D 
"OU=IT + OU=jj, OU=zlab037.austin.ibm.com"
正符号は、他のフォーマットでは使用できません。

説明

トラステッド・シグニチャー・データベースの管理

特権ユーザーは、trustchk コマンドを使用して、トラステッド・シグニチャー・データベース (TSD) へのエントリーの追加、削除、リストを行います。 TSD は、システム上にあるトラステッド・ファイルのセキュリティー属性のデータベースです。 TSD は /etc/security/tsd/tsd.dat ファイル内にあります。 このデータベースは、インストール時に取り込まれます。 このデータベースは、システム上にあるトラステッド・ファイルのセキュリティー属性を格納しています。 以下の属性リストが、ファイル定義 (スタンザ) の一部を成しています。
属性 使用法
Owner ファイルの所有者の名前。 所有者 ID は使用できません。
Group ファイルのグループの名前。 グループ ID は使用できません。
Type 定義のタイプ。 定義が、ファイル、ディレクトリー、先入れ先出し法スペシャル・ファイル (FIFO)、キャラクター・デバイス、ブロック・デバイス、または多重化デバイスに属する場合に指定します。
Mode SETUID、SETGID、TCB、または SVTX ビットがファイル内に設定されるかどうかを指定する追加パラメーターに加える、許可ビット。
hardlink ファイルを指すハード・リンクのコロン区切りのリスト。
symlink ファイルを指すシンボリック・リンクのコロン区切りのリスト。
size バイト単位のファイルのサイズ。
cert_tag このファイルのシグニチャーの計算に使用された、デジタル証明書の ID。
signature RSA アルゴリズムを使用して計算されたファイルのデジタル署名。
hash_value ファイルの暗号ハッシュ値。 デフォルトでは、ハッシュ値の計算には SHA256 値が使用されます。
accessauths オブジェクトのアクセス許可。
innateprivs ファイルの固有の特権。
inheritprivs ファイルの相続可能な特権。
authprivs 所定の許可を持つ場合のユーザーに割り当てられる特権。
secflags オブジェクトに関連するファイル・セキュリティー・フラグ。
minslabel オブジェクトの最小機密ラベル。 これが有効なのは、Trusted AIX® システムの場合のみです。 値が指定されていない場合、System Low Sensitivity Label (SLSL) が想定されます。
maxslabel オブジェクトの最大機密ラベル。 これが有効なのは、Trusted AIX システムの場合のみです。 この属性は、通常のファイルおよび FIFO には適用できません。 値が指定されていない場合、System Low Sensitivity Label (SLSL) が想定されます。
intlabel オブジェクトの保全性ラベル。 これが有効なのは、Trusted AIX システムの場合のみです。 値が指定されていない場合、System High Integrity Label (SHTL) が想定されます。
注: -f フラグを使用して複数のスタンザを外部ファイルに指定する場合は、スタンザ間にブランク行を含める必要があります。

システムのセキュリティー状態の監査

システムのセキュリティー状態を監査する場合は、TSD に保管されているセキュリティー・パラメーターを、システムにある実際のファイルのパラメーターに照らして検査する必要があります。 これを行うには trustchk コマンドを使用します。 値に不一致があれば、指定された入力フラグに基づいてユーザーに提示されます。 TSD にリストされたファイルのすべてを検査する場合は、filename の代わりに ALL パラメーターを使用します。 コマンド・ラインで、スペースで区切られたファイルのリストを指定できます。

トラステッド実行メカニズムの使用可能化

開始前に、ファイルの暗号ハッシュの検査を行うランタイム保全性検査機能を、使用可能または使用不可にするには、trustchk コマンドを使用します。 トラステッド実行機能をオンまたはオフにするには、TE -p フラグを使用します。

トラステッド実行のさまざまなポリシーの構成

トラステッド実行メカニズムとともに使用するさまざまなセキュリティー・ポリシーを、使用可能または使用不可にするには、trustchk コマンドを使用します。 以下のさまざまなポリシーを指定できます。
項目 説明
CHKEXEC TSD に属する実行可能ファイルの保全性を、その開始前に検査します。
CHKKERNEXT TSD に属するカーネル拡張機能の保全性を、そのロード前に検査します。
CHKSHLIB TSD に属する共用ライブラリーの保全性を、そのロード前に検査します。
CHKSCRIPT TSD に属するシェル・スクリプトの保全性を、その開始前に検査します。
LOCK_KERN_POLICIES このポリシーを使用不可にすると、すべてのポリシーをいつでも使用可能または使用不可にすることができます。 このポリシーを使用可能にすると、その他のポリシーがすべてロックされます。 そのような状態のポリシーを使用可能または使用不可にするには、LOCK_KERN_POLICIES ポリシーを 使用不可にしてから、システムを再始動してください。
STOP_ON_CHKFAIL 保全性検査が不合格となったファイルのロードを停止します。
STOP_UNTRUSTD TSD に属さないファイルのロードを停止します。

TROJAN

TSD に属さず、 以下のいずれかのセキュリティー設定を持つファイルのロードを停止します。
  • suid/sgid ビット・セットを持つ。
  • TSD 内のファイルにリンクされている。
  • privcmds データベースにエントリーがある。
  • privcmds データベース内のファイルにリンクされている。
TE トラステッド実行を使用可能または使用不可にします。 ポリシーを活動化できるのは、TE オプションがオンに設定されているときのみです。
TEP トラステッド実行パスの値を設定し、それを使用可能または使用不可にします。 トラステッド実行パスは、コロン区切りの絶対パス (例えば、/usr/bin:/usr/sbin) のリストから構成されます。 このポリシーが使用可能になると、これらのディレクトリー・パスのみに属するファイルが開始を許可されます。 TEP に属さない実行可能プログラムがロードされても、プログラムはブロックされます。
TLP トラステッド・ライブラリー・パスの値を設定し、それを使用可能または使用不可にします。 トラステッド・ライブラリー・パスは、コロン区切りの絶対パス (例えば、/usr/lib:/usr/ccs/lib) のリストから構成されます。 このポリシーが使用可能になると、これらのディレクトリー・パスのみに属するライブラリーがロードできます。 プログラムが、TLP に属さないライブラリーのロードを試みても、プログラムはブロックされます。
TSD_FILES_LOCK TSD に属するファイルの、書き込みモードでのオープンを使用不可にします。

EXVOL

TSD に属する不揮発性ファイルのみの、書き込みモードでのオープンを使用不可にします。 揮発性ファイルは変更できます。
TSD_LOCK TSD の編集を使用不可にするために、TSD ファイル (/etc/security/tsd/tsd.dat) の書き込みモードでのオープンを禁止します。

デフォルトでは、TSD は、トラステッド・コンピューティング・ベースの一部であるすべてのファイルおよびプログラムを定義しますが、特権ユーザーまたはセキュリティー・グループのメンバーは、セキュリティー関係と見なされるファイルのみの定義を選択できます。

TE ポリシーは、/etc/security/tsd/tepolicies.dat ファイル内に保管されます。

このコマンドは、メッセージを標準のエラー・ログ (stderr) に書き込みます。

TROJAN 検出のためのシステム・スキャン

システム上に実行可能ファイルが存在し、そのエントリーが TSD 内になく、 以下のいずれかのセキュリティー設定がある場合、trustchk は TROJAN に感染したシステムを検出する機能を持ちます。
  • suid/sgid ビット・セットを持つ。
  • TSD 内のファイルにリンクされている。
  • privcmds データベースにエントリーがある。
  • privcmds データベース内のファイルにリンクされている。

変更の始めTrusted Execution (TE) ポリシーを持つソフトウェアまたは暫定修正のインストール変更の終わり

変更の始めTrusted Execution (TE) ポリシーが TSD_LOCK ポリシーまたは TSD_FILE_LOCK ポリシーと一緒にオンになっていると、installp コマンドおよび emgr コマンドは失敗します。 インストールを続行するには、TSD_LOCK ポリシーまたは TSD_FILE_LOCK ポリシーをオフにしてください。 TSD_LOCK ポリシーも TSD_FILE_LOCK ポリシーもオンになっていなければ、emgr コマンドおよび installp コマンドは TE ポリシーで正常に動作します。 変更の終わり

フラグ

項目 説明
-a filename ファイル定義を TSD に追加します。 定義は、ファイルから読み取られるか (-f オプション)、絶対ファイル名を指定している場合は、コマンドによって計算されます。 以下のパラメーターは、ファイル名を持つユーザーによって指定できます。
size=VOLATILE
ファイルのサイズを指定します。 この属性が使用できるのは VOLATILE 値のみです。 VOLATILE 値は、この定義が属するファイルは、実際に変動しやすいことを示します。 ファイルの内容は頻繁に変わり、したがって、監査中、このファイルのサイズ、ハッシュ値、およびシグニチャーは、検査する必要はありません。
hardlinks=value
trustchk コマンドによって単独に計算できないファイルに対する、ハード・リンクを提供します。
symlinks=value
ファイルに対するシンボリック・リンクを提供します。
-tree
この tree パラメーターは、–a フラグとともに使用されます。 このパラメーターは、ディレクトリー名が –a フラグとともに提供される場合に、trustchk データベースへのスタンザの反復追加をサポートします。 ファイル名が記述されている場合は、ファイル名のスタンザが追加されます。

TSD に通常ファイルを追加する場合は、秘密鍵を指定するか、あるいはパスフレーズ (すなわち、パスワード) 保護なしに、PKCS#8 フォーマットの ASN.1/DER の -s フラグによって、署名鍵を指定する必要があります。ASN.1/DER の -v フラグによって、関連する証明書を指定することも必要です。 関連する証明書には、ファイルのシグニチャーを検査するのに使用される公開鍵が入っています。 指定したデジタル証明書は、/etc/security/certificates ファイルの証明書ストアにコピーされるため、システム監査の際に、ファイルのシグニチャーの検査に使用できます。 デバイス、ディレクトリーおよび FIFO (すなわち、先入れ先出し法ファイル) などの非通常ファイルを追加する場合は、秘密鍵および証明書は不要です。

-d ファイル定義を TSD から削除します。 スタンザを TSD から削除する必要があるファイルの名前は、コマンド・ラインで指定するか、-f フラグによって指定できるファイルに入れられます。
-D コマンド・ライン・インターフェースから発行者 DN およびサブジェクト DN を入力したい場合は、このフラグを –k フラグと併用します。
-f filename filename パラメーターで指定されたファイルからファイル定義を読み取ることを指定します。 ファイル (またはスタンザ) 名は、コロンで終了する必要があります。 外部ファイルの各ファイル名エントリーの間には、ブランク行を入れる必要があります。
-F 異なる TSD ファイルが参照として使用されることを指定します。 このフラグは、-a-d-g-q-n-t、または -y フラグとともに使用できます。
-g [ SHA1 | SHA256 | SHA512 ] TSD を新規ハッシュ・アルゴリズムに移行します。 ファイル定義内のすべての hash_value フィールドは、TSD で再計算され更新されます。 SHA1、SHA256 および SHA512 のアルゴリズムがサポートされます。

現在アクティブなアルゴリズムを表示するには、アルゴリズム名を指定せずに -g フラグを指定します。

-i

このフラグは、–n-t-y オプションを指定し、さらに tree パラメーターを指定する場合にのみ使用できます。このフラグは、NFS マウント・ファイルシステムのスキャンを無視します。

-l 検査される Trusted AIX ラベル属性のみを指定します。 -l オプションが有効なのは、Trusted AIX システムの場合のみです。
-k trustchk コマンドを使用して証明書および秘密鍵ファイルを生成します。鍵ファイル名および証明書ファイル名は、-s および -v フラグで指定する必要があります。 生成された鍵は、-s および -v フラグによって指定されるファイルに保存されます。
-n 監査モードを指定し、エラーが報告されることを示します。 TSD 内の属性間のすべての不一致、および実際のファイル・パラメーターが、stderr. エラー・ファイルに印刷されます。 TSD 内のすべてのエントリーを検査するには、ALL パラメーターを使用します。 TROJAN 検出のためにシステム全体またはディレクトリーをスキャンするには、 このフラグを tree パラメーターと一緒に使用してください。
-p トラステッド実行ポリシーを構成します。 ポリシー構成は、コマンド・ラインからオンにできます (例えば、policyA=ON)。 ポリシー名を指定して、その現在の状態を取り出します (例えば、trustchk -p CHKEXEC)。

TE=ON オプションを使用すると、TE に関連しない TEP および TLP ポリシーを除くポリシーを使用可能にします。

TEP および TLP ポリシーは、自動的にオンにもオフにもできます。 TEP=ON オプションは TEP を使用可能に、TLP=ON オプションは TLP 機能を使用可能にします。
-P パスワードを入力するようプロンプトを出します。このパスワードは、秘密鍵ファイルの暗号化または暗号化解除に使用されます。このオプションは、–a フラグと一緒に使用することができます。

このフラグを trustchk – a コマンドと一緒に使用すると、秘密鍵ファイルの暗号化解除に使用されるパスワードを入力するようプロンプトが出されます。

-q ファイル名の TSD を照会します。 セキュリティー属性のリスト全体を印刷します (例えば、指定されたファイル名のスタンザ)。 TSD 内のすべてのエントリーを取り出すには、ファイル・パス名をリストする代わりに ALL パラメーターを使用します。
-r 許可および特権のみが検査されることを指定します。 このフラグが有効なのは、拡張 RBAC および Trusted AIX システムの場合のみです。 TSD 内のすべてのエントリーを検査するには、ALL フラグを使用します。
-R module_name TSD ポリシーと TE ポリシーの値を、ローカル・コピーからではなく指定されたモジュールから取り込むことを指定します。
-s ファイルを TSD に追加する間に、そのシグニチャー計算に使用する署名鍵を指定します。 署名鍵は、パスフレーズ (すなわち、パスワード) 保護のない、PKCS#8 フォーマットの ASN.1/DER の RSA 秘密鍵です。
-t 監査モードを指定し、エラー修正の必要の有無を尋ねるプロンプトによってエラーが報告されることを示します。 TSD 内のすべてのエントリーを検査するには、ALL オプションを使用します。 TROJAN 検出のためにシステム全体またはディレクトリーをスキャンするには、 このフラグを tree パラメーターと一緒に使用してください。
-u TSD 内の指定された属性の値を更新します。trustchk –u コマンドを使用していずれかの rbac 属性が変更される場合は、setkst を明示的に実行する必要があります。これにより、カーネル・テーブルが更新されます。
注: このフラグがサポートする属性は次のとおりです。Owner、 group、 mode、 Hardlinks、 symlinks、 accessauths、 innateprivs、 inheritprivs、 authprivs、 secflags、 t_innateprivs、 t_inheritprivs、 t_secflags、 t_authprivs、 t_accessauths、 および type。
-v 署名鍵に関連する検査証明書を指定します (-s フラグを使用して)。 この証明書は /etc/security/certificate ファイルの証明書ストアにコピーされ、監査の際のファイル・シグニチャーの検査に使用されます。 ストア内に同じ証明書 ID の証明書が既に存在する場合は、新規証明書によって上書きされます。 検査証明書は ASN.1/DER フォーマットを取ります。
-x このフラグは、-n-t-y オプションを指定し、さらに tree パラメーターを指定する場合にのみ使用できます。 シンボリック・リンクに従いません。
-y 監査モードを指定し、エラーを修正かつ報告されることを示します。 TSD 内のすべてのエントリーを検査するには、ALL パラメーターを使用します。 TROJAN 検出のためにシステム全体またはディレクトリーをスキャンするには、 このフラグを tree パラメーターと一緒に使用してください。
重要: -y オプションは、慎重に使用します。 trustchk コマンドが不一致を検出すると、ファイルが使用不能になることがあります。
-@ WparName システム WPAR の TE ポリシーをリストします。

終了状況

このコマンドは、以下の終了値を返します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. /home/guest/privkey.der にある秘密鍵、および /home/guest/certificate.der の関連証明書を使用して /usr/bin/ls の新規ファイル定義を追加する場合は、以下のコマンドを入力します。
    trustchk –s /home/guest/privkey.der –v /home/guest/certificate.der 
    –a  /usr/bin/ls
  2. 前の例の秘密鍵と証明書の同じペアを使用して、ファイルを揮発性ファイルとして TSD に追加する場合は、以下のコマンドを入力します。
    trustchk –s /home/guest/privkey.der –v /home/guest/certificate.der 
     –a  /usr/bin/passwd size=VOLATILE
  3. 最初の例の秘密鍵と証明書の同じペアを使用して、/usr/local/bin/ls ハードリンクによってファイル /usr/bin/ls を TSD に追加する場合は、以下のコマンドを入力します。
     trustchk–s /home/guest/privkey.der –v /home/guest/certificate.der 
    –a  /usr/bin/ls hardlinks=/usr/local/bin/ls 
  4. ファイル /usr/bin/logname を削除する場合は、以下のコマンドを入力します。
     trustchk –d  /usr/bin/logname
  5. ファイル /home/guest/filedef.in に格納されたファイル定義を追加する場合は、以下のコマンドを入力します。
    trustchk –s /home/guest/privkey.der 
    –v /home/guest/certificate.der 
    –a  -f /home/guest/filedef.in
  6. ロードのたびに TSD にリストされた実行可能ファイルを検査するポリシーを使用可能にするには、以下のステップに従ってください。
    1. 以下のコマンドを入力して、ポリシーを構成します。
      trustchk –p CHKEXEC=ON
    2. 以下のコマンドを入力して、ポリシーを活動化します。
      trustchk –p TE=ON
  7. TSD に属するファイルのすべての保全性を検査する場合は、以下のコマンドを入力します。
    trustchk –n ALL
  8. TSD に対して現在アクティブな hash アルゴリズムの値を印刷するには、以下のコマンドを入力します。
    trustchk -g
  9. 1 つの WPAR のすべてのポリシーをリストするには、以下のコマンドを入力します。
    trustchk -@ <wpar> -p
  10. すべての WPAR のすべてのポリシーをリストするには、以下のコマンドを入力します。
    trustchk -@ ALL -p
  11. TROJAN 検出報告のみを目的としてシステム全体をスキャンするには、 以下のコマンドを入力します。
    trustchk –n tree
  12. TROJAN 検出のために dir /usr のみをスキャンし、 それらを自動的に修正するには、以下のコマンドを入力します。
    trustchk  -y /usr
  13. TROJAN 検出のために、NFS マウント・ファイルシステムを除くシステム全体をスキャンし、 それらを対話式で修正するには、以下のコマンドを入力します。
    trustchk –i –t tree
  14. ローカル・コピーの代わりに LDAP サーバーから値を取り込むには、 以下のコマンドを入力します。
    trustchk –R LDAP -p