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]
説明
トラステッド・シグニチャー・データベースの管理
属性 | 使用法 |
---|---|
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) が想定されます。 |
システムのセキュリティー状態の監査
システムのセキュリティー状態を監査する場合は、TSD に保管されているセキュリティー・パラメーターを、システムにある実際のファイルのパラメーターに照らして検査する必要があります。 これを行うには trustchk コマンドを使用します。 値に不一致があれば、指定された入力フラグに基づいてユーザーに提示されます。 TSD にリストされたファイルのすべてを検査する場合は、filename の代わりに ALL パラメーターを使用します。 コマンド・ラインで、スペースで区切られたファイルのリストを指定できます。
トラステッド実行メカニズムの使用可能化
開始前に、ファイルの暗号ハッシュの検査を行うランタイム保全性検査機能を、使用可能または使用不可にするには、trustchk コマンドを使用します。 トラステッド実行機能をオンまたはオフにするには、TE -p フラグを使用します。
トラステッド実行のさまざまなポリシーの構成
項目 | 説明 |
---|---|
CHKEXEC | TSD に属する実行可能ファイルの保全性を、その開始前に検査します。 |
CHKKERNEXT | TSD に属するカーネル拡張機能の保全性を、そのロード前に検査します。 |
CHKSHLIB | TSD に属する共用ライブラリーの保全性を、そのロード前に検査します。 |
CHKSCRIPT | TSD に属するシェル・スクリプトの保全性を、その開始前に検査します。 |
LOCK_KERN_POLICIES | このポリシーを使用不可にすると、すべてのポリシーをいつでも使用可能または使用不可にすることができます。 このポリシーを使用可能にすると、その他のポリシーがすべてロックされます。 そのような状態のポリシーを使用可能または使用不可にするには、LOCK_KERN_POLICIES ポリシーを 使用不可にしてから、システムを再始動してください。 |
STOP_ON_CHKFAIL | 保全性検査が不合格となったファイルのロードを停止します。 |
STOP_UNTRUSTD | TSD に属さないファイルのロードを停止します。
TROJAN TSD に属さず、 以下のいずれかのセキュリティー設定を持つファイルのロードを停止します。 |
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 検出のためのシステム・スキャン
- 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 オプション)、絶対ファイル名を指定している場合は、コマンドによって計算されます。
以下のパラメーターは、ファイル名を持つユーザーによって指定できます。
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 | エラーが発生しました。 |
例
- /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
- 前の例の秘密鍵と証明書の同じペアを使用して、ファイルを揮発性ファイルとして TSD に追加する場合は、以下のコマンドを入力します。
trustchk –s /home/guest/privkey.der –v /home/guest/certificate.der –a /usr/bin/passwd size=VOLATILE
- 最初の例の秘密鍵と証明書の同じペアを使用して、/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
- ファイル /usr/bin/logname を削除する場合は、以下のコマンドを入力します。
trustchk –d /usr/bin/logname
- ファイル /home/guest/filedef.in に格納されたファイル定義を追加する場合は、以下のコマンドを入力します。
trustchk –s /home/guest/privkey.der –v /home/guest/certificate.der –a -f /home/guest/filedef.in
- ロードのたびに TSD にリストされた実行可能ファイルを検査するポリシーを使用可能にするには、以下のステップに従ってください。
- 以下のコマンドを入力して、ポリシーを構成します。
trustchk –p CHKEXEC=ON
- 以下のコマンドを入力して、ポリシーを活動化します。
trustchk –p TE=ON
- 以下のコマンドを入力して、ポリシーを構成します。
- TSD に属するファイルのすべての保全性を検査する場合は、以下のコマンドを入力します。
trustchk –n ALL
- TSD に対して現在アクティブな hash アルゴリズムの値を印刷するには、以下のコマンドを入力します。
trustchk -g
- 1 つの WPAR のすべてのポリシーをリストするには、以下のコマンドを入力します。
trustchk -@ <wpar> -p
- すべての WPAR のすべてのポリシーをリストするには、以下のコマンドを入力します。
trustchk -@ ALL -p
- TROJAN 検出報告のみを目的としてシステム全体をスキャンするには、
以下のコマンドを入力します。
trustchk –n tree
- TROJAN 検出のために dir /usr のみをスキャンし、
それらを自動的に修正するには、以下のコマンドを入力します。
trustchk -y /usr
- TROJAN 検出のために、NFS マウント・ファイルシステムを除くシステム全体をスキャンし、
それらを対話式で修正するには、以下のコマンドを入力します。
trustchk –i –t tree
- ローカル・コピーの代わりに LDAP サーバーから値を取り込むには、
以下のコマンドを入力します。
trustchk –R LDAP -p