Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Veriexec ファイル署名と検証 for Junos OS

Veriexec のファイル署名と検証、利点とその使用方法について説明します。

Verified Exec(veriexec とも呼ばれる)は、デバイスの整合性を損なう可能性のある不正なソフトウェアやアクティビティからJunosオペレーティングシステム(OS)を保護するファイル署名および検証スキームです。もともと NetBSD OS 用に開発された veriexec は Junos OS 用に適応され、デフォルトで有効になっています。

許可されたファイル、つまりJunos OSに同梱されている特定のファイルには、ファイルが使用できる(実行または開くことができる)かどうかをveriexecがチェックするフィンガープリントが関連付けられています。有効なフィンガープリントがないファイルは、検証済みの入力を必要とするアプリケーションでは実行または読み取れません。

/bin/sh ファイルには検証済みの入力は必要ありません。このファイルを使用して、任意のスクリプトを実行できます。リスクの観点から見ると、これらのスクリプトは対話型コマンドと同じで、ユーザー認証と権限によって制御されます。ただし、検証済みのシェルスクリプトに、任意のスクリプト、つまりマニフェストにシグネチャのないファイルを実行する命令が含まれている場合、そのファイルの実行は防止されます。

Veriexecの仕組み

Veriexec は、すべての実行可能ファイルと、不変のままでなければならないその他のファイルのフィンガープリントのセットで構成されるデジタル署名されたマニフェストをカーネルに提供します。veriexec ローダーは、マニフェストの関連するデジタル署名が正常に検証された場合にのみ、マニフェストの内容をカーネルにフィードします。カーネルは、ファイルがフィンガープリントと一致するかどうかを検証できます。veriexecが強制されている場合、検証済みのフィンガープリントを持つ実行可能ファイルのみが実行されます。保護されたファイルは、書き込み、変更、または変更できません。

各インストールイメージには、読み取り専用ファイルであるマニフェストが含まれています。これには、次のようなエントリが含まれています。

ログメッセージの形式は次のとおりです。

ファイルが変更され、結果のフィンガープリントがマニフェストのフィンガープリントと異なる場合は、次の例のようなログメッセージが表示されます。

指紋の不一致は、ファイルが変更されたことを示します。このようなファイルには破損したコードが含まれている可能性があるため、実行しようとしないでください。JTACにお問い合わせください。

Veriexecのメリット

  • セキュアなシステム—ジュニパーネットワークスのルーター、スイッチ、ファイアウォールをセキュリティ侵害から保護します。

  • 不正アクセスの防止—攻撃者が永続的な不正アクセスを取得したり、システム障害を引き起こすのをブロックします。

  • マルウェアの実行を防止—署名されていないバイナリ実行を防止することで、不正な変更やマルウェアをブロックします。

  • サポート認証コード—JET SDKを使用して認証を適用し、署名された認証コードをJunos OSに追加します。SDKソリューションの詳細については、 ジュニパー Juniper Extension Toolkit 開発者ガイドを参照してください。

Veriexec が動作するかを確認する方法 — オプション 1

一部の Junos OS プラットフォームでは、veriexec の適用を無効にしたオプション バージョンの Junos OS が提供されています。詳細については、「 Junos 拡張自動化」を参照してください。

管理者は、Junos OS CLIシェルから以下のコマンドを実行することで、veriexecが適用されているかどうかを確認できます。

  1. シェルを起動します。

  2. Junos OSリリース15.1以降では sysctl security.mac.veriexec.state コマンドを使用します

    veriexecが適用されている場合、出力は security.mac.veriexec.state: loaded active enforceになります。veriexecが適用されていない場合、出力は security.mac.veriexec.state: loaded activeになります。

Veriexec が動作するかを確認する方法 — オプション 2

veriexec が動作しているかどうかを確認するには、以下に示すように、承認されたファイル( 例:/usr/bin/id)を新しい場所にコピーします。ファイルが同一であっても、有効なフィンガープリントは /usr/bin/id にのみ存在し、 /tmp/id には存在しないため、Veriexec は操作を阻止します。ファイルの整合性を検証するために、veriexec はファイルの基盤となる Linux プロパティを評価します。ファイル自体ではなく、これらのプロパティは、ファイルを別の場所にコピーすると変更されます。

  1. シェルを起動します。

  2. ディレクトリーを変更してから、許可されたファイル ( 例えば /usr/bin/id) を新しい場所にコピーします。

結果

veriexecが適用されている場合は、認証エラーメッセージが生成されます。エラーメッセージが生成されない場合、ファイルは通常どおり実行されます。

veriexecが適用されると生成される出力で、ファイルがブロックされていることを示します。

veriexecが適用されていない場合に生成される出力で、ファイルがコピーされていることを示す

Veriexec Loaderのインストール

veriexec ローダーは、TFTP(Trivial File Transfer Protocol)サーバーまたは USB ストレージ デバイスからインストールする Junos OS イメージを検証します。

  • TFTPサーバーからJunos OSイメージをインストールするには、次のコマンドを使用します。

  • 以下のコマンドを使用して、USBストレージ デバイスからJunos OSイメージをインストールします。

veriexec対応ローダーが、Junos OSイメージを検証します。ローダーは、フィンガープリント付きの新しいJunos OSイメージのみを起動し、フィンガープリントまたはカーネルなしの既存のイメージは起動しません。 nextboot機能を使用して、現在の起動デバイスを確認できます。

ブートアップグレードは、BIOSファームウェアのアップグレードをサポートするために、Junos OSパッケージで利用可能なツールです。 bootupgrade コマンドを使用して、アップグレード、Uブートのチェック、手動でのロード、およびveriexec対応ローダーのインストールを行うことができます。 bootupgrade -c loader コマンドは、現在のローダーのバージョン文字列を出力します。

Veriexec対応ローダーをJunos OSイメージにインストールする前に、両方のデュアルルートパーティションでJunos OSフィンガープリントの識別が実行されます。veriexec対応ローダーは、両方のデュアルルートパーティションにフィンガープリント付きのJunos OSがある場合にのみインストールできます。

Junos OS CLIシェルからveriexec対応ローダーをインストールします。

  1. シェルを起動します。

  2. bootupgrade -l /boot/veloaderコマンドを使用して、veriexec対応ローダーをインストールします。

  3. ここでは、さまざまなシナリオを確認できます。

    • request system software add /var/tmp/xxx.tgz no-copy no-validateコマンドを使用して、フィンガープリント付きのJunos OSをインストールします。

    • veriexec対応ローダーが以前のリリースのターゲットJunos OSイメージをサポートしていない場合、そのリリースと互換性のある以前のバージョンのローダーにダウングレードできます。 request system software add /var/tmp/xxx.tgz no-copy no-validate コマンドを使用すると、以前のバージョンのローダーに自動的にダウングレードできます。
    • request system software add /var/tmp/xxx コマンドを使用して、Junos OS パッケージが veriexec ローダーを使用したインストールと互換性があるかどうかを確認します。

      この例では、veriexec ローダーが 20.3R1 以前の Junos OS リリースでサポートされていないため、インストールが終了していることがわかります。