Junos OS Evolvedでのサードパーティ製アプリケーションの概要
概要 サードパーティ製アプリケーションは、Linuxコンテナ内で実行することも、署名キーを使用してJunos OS Evolved上でネイティブに実行することもできます。アプリケーションは、Junos OS Evolvedシステムとの対話にはJuniper APIを使用し、ネットワークタスクにはLinux APIを使用します。未検証のアプリケーションは、完全性測定アーキテクチャ(IMA)と呼ばれる完全性ソリューションによって防止されます。
Junos OS Evolvedでのサードパーティアプリケーションの概要
Junos OS EvolvedはLinux上でネイティブに動作します。つまり、Linux用に開発されたサードパーティのアプリケーションやツールをJunos OS Evolvedに統合することができます。Linux開発ツールを使用すると、Junos OS Evolved上で独自のアプリケーションを作成して実行することもできます。これらのアプリケーションは、コンテナー内で実行するか、署名キーを使用してデバイス上でネイティブに実行するかを選択できます。
コンテナでのアプリケーションの実行
Junos OS Evolvedは、Dockerコンテナ内でのアプリケーションの実行をサポートします。コンテナはJunos OS Evolved上で動作し、アプリケーションはコンテナ内で実行されるため、コンテナはOSから隔離された状態に保たれます。事前構築済みの Docker コンテナー イメージを使用し、コンテナー内に追加のツールとライブラリをインストールできます。コンテナーは、Linux ワークフローを使用してアップグレードできます。
コンテナは、すでにLinuxアプリケーションを実行するために一般的に使用されている方法であるため、既存の多くのサードパーティ製アプリケーションをコンテナ内に展開することで、Junos OS Evolvedに簡単にインポートできます。コンテナは孤立しているため、Junos OS Evolvedの整合性を損なうことなく、コンテナを簡単に導入および削除できます。さらに、Junos OS Evolvedは、不正なコンテナがシステムを圧倒しないように、コンテナのリソース使用量にデフォルトの制限を設けています。
Docker コンテナー サービスは、システムの初期化時に自動的に開始されません。Docker コンテナー サービスの自動起動を有効にするには、Linux シェルから次のコマンドを入力します。
# systemctl enable --now docker.service
コンテナでのアプリケーションの実行の詳細については、「コンテナでのサードパーティアプリケーションの実行」を参照してください。
署名キーを使用したアプリケーションのネイティブな実行
サードパーティ製アプリケーションは、署名キーを使用することで、Junos OS Evolved上でネイティブに実行できます。署名キーを生成し、それらを使用して実行可能ファイルまたは共有オブジェクトに署名します。実行可能ファイルに署名すると、デバイス上で実行する権限が与えられ、信頼されたアプリケーションを認証されたジュニパーネットワークスソフトウェアと併せて実行することを承認できるようになります。
署名鍵は、完全性測定アーキテクチャ(IMA)と呼ばれるLinuxサブシステムによって制御されます。IMAポリシーは、ファイルを実行する前に実行する必要があるアクションを定義するルールで構成されています。IMA測定ポリシーはファイルのハッシュを測定して保存し、IMA評価ポリシーはファイルに有効なハッシュまたはデジタル署名があることを確認します。IMAは、この検証が成功した場合にのみファイルの実行を許可します。
Junos OS Evolvedでは、ユーザーは、実行のためにメモリにマップされるすべてのファイルに署名する必要があります。IMA検証は、これらのファイルが誤ってまたは悪意を持って変更されていないことを確認するのに役立ちます。コンテナーとコンテナー内のファイルに署名する必要はありません。
署名キーの使用の詳細については、 Junos OS Evolvedでネイティブに実行するためのサードパーティアプリケーションへの署名を参照してください。
アプリケーションの前提条件
サードパーティ製アプリケーションは、以下の Junos OS Evolved リリースでサポートされています。
-
コンテナ内のアプリケーション向けのJunos OS Evolvedリリース20.1R1以降。
-
ネイティブアプリケーション向けJunos OS Evolvedリリース22.4R1以降。
-
デュアルルーティングエンジンアプリケーション向けのJunos OS Evolvedリリース23.2R1以降。
アプリケーションが正しく動作するためには、Junos OS Evolved上で実行されているLinuxカーネルバージョンをサポートしている必要があります。 show version
コマンドを使用して、現在実行中のLinuxカーネルバージョンを表示します。
Junos OS Evolved用に作成されたアプリケーションでは、通常、ネットワーク状態の読み取りと変更、パケットの送受信、設定の読み取りと変更を行う機能が必要です。Junos OS EvolvedがサポートするAPIの数は限られているため、これらのAPIを考慮してアプリケーションを構成する必要があります。
アプリケーション API
アプリケーションで使用される API には、次の 2 つのカテゴリがあります。
-
ネットワーク状態の読み取りと変更、およびパケットの送受信を行うための Linux API。
-
システムと対話するためのジュニパーAPI。
Junos OS Evolvedは、これら2つのカテゴリーのAPIをサポートしています。 表 1 に、アプリケーションで使用される一連の API の概要を示します。
Api |
機能 |
パケット IO および Linux ソケット API |
管理インターフェイスやデータインターフェイスを介してパケットを送受信する機能。 標準libc –送信、受信、リスニングなど。 |
rtnetlinkを使用して、インターフェイス、ルートなどのネットワーク状態を照会する機能。 |
|
ネットワークデバイスを構成する機能。 |
|
Linuxカーネルが提供する標準インターフェイスを使用してカーネルデータ構造を照会する機能。 |
|
Junos API |
ジュニパーのノースバウンドAPI(NetConf/JET/テレメトリ)にアクセスできます。 |
ジュニパーのノースバウンド API の詳細については、以下を参照してください。
セキュリティに関する注意事項
Junos OS Evolvedは、セキュリティを念頭に置いてゼロから設計されています。IMAおよびLinuxコンテナは、Junos OS Evolvedに対するサードパーティアプリケーションのセキュリティへの影響を制御するのに役立ちますが、サードパーティ製アプリケーションは、悪意のあるコードを通じてセキュリティの脆弱性をもたらす可能性があります。
Junos OS Evolvedにサードパーティアプリケーションを追加することによるセキュリティへの影響を常に考慮してください。Junos OS Evolvedに追加するすべてのアプリケーションは、潜在的なセキュリティリスクがないか十分に吟味されていることを確認してください。
IMAによるファイルセキュリティ
Junos OS Evolvedを実行するネットワークデバイスは、完全性測定アーキテクチャ(IMA)と呼ばれる完全性ソリューションによって保護されています。
整合性は、信頼性、完全性、および変更からの自由を表す基本的なセキュリティ プロパティです。コンピュータセキュリティでは、整合性保護の一般的なターゲットはオペレーティングシステムファイルです。整合性を確保する一般的な方法は、ファイルを既知の正常なファイルと比較することです。
Junos OS Evolvedのコンテキストでは、セキュリティの目標は、デバイスで実行されているソフトウェアが偶発的または悪意を持って変更されていないことを確認することです。デバイスで実行されているソフトウェアは、ジュニパーネットワークスの正規のJunosソフトウェアか、お客様が導入した認定ソフトウェアのいずれかです。
ネットワーク デバイスの脅威モデルには、デバイス所有者の暗黙的または明示的なポリシーに違反するマルウェアを導入しようとする悪意のあるアクターの試みが含まれます。このようなマルウェアには、デバイスまたはネットワークの安全で安全な操作に悪影響を与える可能性のあるバックドア、トロイの木馬、またはインプラントが含まれる可能性があります。悪意のある攻撃者は、さまざまなツール、手法、および手順を使用して、物理攻撃、ローカル攻撃、リモート攻撃などの整合性を侵害します。
PCI-DSS - ペイメントカード業界データセキュリティ標準 (要件 11.5)、SOX - サーベンス・オクスリー法 (セクション 404)、NERC CIP - NERC CIP 標準 (CIP-010-2)、FISMA - 連邦情報セキュリティ管理法 (NIST SP800-53 Rev3)、HIPAA - 1996 年の医療保険の相互運用性と説明責任に関する法律 (NIST Publication 800-66)、SANS Critical Security Control (コントロール 3) など、多くの規制スキームがファイルの整合性要件を課しています。
ファイルの整合性を確保し、マルウェアのリスクを軽減するために、Junos OS EvolvedはIMAとそれに付随するメカニズムである拡張検証モジュール(EVM)を実行します。これらのオープンソース保護は、業界標準であり、トラステッドコンピューティンググループによって指定された信頼メカニズムと一致する一連のLinuxセキュリティモジュールの一部です。
ジュニパーネットワークスは、Junos OS Evolvedファイルにデジタル署名を適用し、お客様がデジタル署名を適用できるようにしています。デジタル署名は、保護された秘密キーを使用して作成され、1 つ以上のキーリングに埋め込まれた公開キーを使用して検証されます。
IMA/EVMサブシステムは、ランタイムチェックを実行してシステムを保護します。ファイルが検証に失敗した場合、そのファイルは開かれず、実行もされません。
つまり、Junos OS Evolvedを実行しているデバイスでは、未検証のソフトウェアはブロックされます。