Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Veriexec の概要

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

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

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

Veriexecの仕組み

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

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

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

ログ メッセージの形式は以下の通りです。

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

Veriexecの重要性

Veriexecは、ジュニパーネットワークスのルーター、スイッチ、ファイアウォールのシステムセキュリティを侵害しようとする者から保護するための効果的かつ重要なツールです。これにより、システムへの足がかりを確立したり、永続的な不正アクセスを取得したり、システムを障害状態に移行したりしようとする脅威アクターを阻止します。このようなアクターが任意の署名されていないバイナリを実行できる場合、不正な変更を行い、セキュリティ ポリシーに違反するマルウェアやその他のコードを実行する可能性があります。

お客様は、JET SDKを使用して、Junos OSにveriexecを適用した署名および承認済みコードを追加することができます。SDKソリューションの詳細については、『Juniper Extension Toolkit開発者ガイド』の「オンデバイスJETアプリケーションの開発」を参照してください。

Junos OSを実行しているデバイスにVeriexecが適用されているかどうかを確認する方法

次のサブセクションでは、veriexec が適用されているかどうかを確認する手順について説明します。

一部のJunos OSプラットフォームでは、veriexecの適用が無効になったJunos OSのオプションバージョンを提供しています(Junos Enhanced AutomationまたはJunos Flexと呼ばれます)。Junos 拡張自動化の詳細については、自動化 が強化された Junos OS を実行するデバイスにおける Junos 自動化拡張機能の概要を参照してください。

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

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

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

  2. sysctl security.mac.veriexec.state コマンドを使用します。

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

手記:

security.mac.veriexec.state コマンドは、Junos OS Release 15.1 以降でのみ有効です。

Veriexecが動作しているかどうかを確認する別の方法

veriexec が動作しているかどうかを確認するには、以下のように認証済みファイル (ここでは /usr/bin/id) を新しい場所にコピーします。Veriexec は、 /usr/bin/id の有効なフィンガープリントはあっても、ファイルが同一であっても /tmp/id のフィンガープリントがないため、操作を防止します。起こっていることは、veriexecがファイル自体ではなく、コピー後に同一ではないファイルの基盤となるLinuxプロパティを評価することです。

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

  2. ディレクトリを変更し、サンプル ファイル /usr/bin/id を新しい場所にコピーします。

業績

veriexec が強制されている場合は、認証エラーが表示されます。そうでない場合、ファイルは通常どおりに実行されます。

veriexecが強制された場合の出力(ファイルがブロックされた場合):

veriexecが強制されていない場合(ファイルがコピーされた場合)の出力:

SRXシリーズデバイス用のVeriexec対応ローダー

veriexec 対応ローダーは、TFTP サーバーまたは USB ストレージ デバイスから install コマンドを使用して Junos OS イメージをインストールします。

  • install tftp://[host]/ install コマンドを使用して、tftp サーバーから Junos OS イメージをインストールします。

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

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

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

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

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

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

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

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

    • Junos OS リリース 20.3R1 以降では、 request system software add /var/tmp/xxx.tgz no-copy no-validate コマンドを使用して、指紋による Junos OS を正常にインストールします。

    • 20.3R1より前のJunos OSリリースでは、veriexec対応ローダーが使用されており、以前のリリースのターゲットJunos OSイメージがveriexec対応ローダーでサポートされていない場合、 request system software add /var/tmp/xxx.tgz no-copy no-validate コマンドを使用して、veriexec対応ローダーから古いローダーに自動的にダウングレードします。

    • request system software add /var/tmp/xxxコマンドを使用して、Junos OSパッケージがインストールと互換性があるかどうかを確認します。

      veriexec対応ローダーは20.3R1より前のJunos OSリリースでサポートされていないため、インストールは終了します。