Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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

Veriexecのファイル署名と検証、メリット、SRXシリーズファイアウォールでの使用方法について説明します。

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

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

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

Veriexecのしくみ

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

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

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

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

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

Veriexecの利点

Veriexecの主な利点を以下に示します。

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

  • 不正アクセスの防止: これにより、攻撃者が持続的に不正アクセスを取得したり、システム障害が発生したりするのを防ぎます。

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

  • 認定コードをサポート: お客様は、JET SDKを使用してVeriexecの適用により、署名済みの認証済みコードをJunos OSに追加できます。

  • SDKガイドを参照してください: SDKソリューションの詳細については、Juniper Juniper Extension Toolkit開発者ガイドの「 オンデバイスJETアプリケーションの開発 」を参照してください。

Junos OS を実行しているデバイスで Veriexec が適用されているかどうかを確認する方法 - オプション 1

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

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

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 になります。

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

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:/// install コマンドを使用して、USB ストレージ デバイスから Junos OS イメージをインストールします。

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

ブートアップグレードは、Junos OSパッケージで利用可能なツールで、BIOSファームウェアのアップグレードをサポートします。 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. ここでは、さまざまなシナリオを確認できます。

    • request system software add /var/tmp/xxx.tgz no-copy no-validateコマンドを使用して、指紋付きのJunos OSを通常どおりインストールします。

    • 古い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リリースでサポートされていないため、インストールが終了します。