検証レポートの読み取り
検証が完了した後で、レポートをエクスポートするか、オンラインで読み取ることができます。
手順
- QRadar® コンソールで 「事前検証」 をクリックします。
- レポートを JSON 形式でダウンロードするには、ページの右上にあるダウンロード・アイコン (
) をクリックします。 - レポートをオンラインで読むには、ページの右上にある文書アイコン (
) をクリックします。以下の表で、検証ステップについて説明し、エラーを修正するための解決策を示します。表 1. 拡張の .zip ファイル ルール名 説明 拡張の .zip ファイルの内容の検査 拡張の .zip ファイルを抽出できるかどうか、およびそのファイルに必要なファイルが含まれているかどうかを検査します。 コンテンツ・エクスポート XML が存在するかどうか 拡張の .zip ファイルにコンテンツ XML が含まれているかどうかを検査します。 含まれていない場合、検査プロセスは打ち切られます。 拡張マニフェストが存在するかどうか 拡張の .zip ファイルに manifest.txt が含まれているかどうかを検査します。 含まれていない場合、検査プロセスは打ち切られます。 表 2. 拡張マニフェスト (manifest.txt) ルール名 説明 拡張マニフェストのロード manifest.txt (拡張の情報) が JSON 形式であるかどうかを検査します。 含まれていない場合、検査プロセスは打ち切られます。 manifest.txt ファイルは X-Force App Exchange 送信ポータルからダウンロードすることができ、関連フィールドは自動的に生成されます。 拡張バージョン形式が有効かどうか 拡張のバージョン (manifest.txt の version フィールド) が MAJOR.MINOR.PATCH のように 3 桁のシーケンス形式であるかどうかを検査します。 QRadar の最小バージョンが有効です。 サポートされる QRadar バージョン ( manifest.txtで定義されたmin_qradar_version ) が有効かどうかを検査します。 3 桁 (2019.14.6) または 4 桁 (2019.14.6.20201205215722) のシーケンスでフォーマット設定できます。 SSH を使用して QRadar にログインし、 /opt/qradar/bin/myver を使用して開発環境で QRadar のバージョンを見つけることができます。 拡張は英語をサポートする必要がある doc.extension_manifest.supported_language_set (配列) に少なくとも「en-US」が含まれているかどうかを検査します。 このフィールドは、X-Force App Exchange 送信ポータルによって生成されます。 拡張パッケージ・サイズが有効かどうか manifest.txt ファイル内の doc.extension_manifest.package_size を検査します。 このフィールドは、X-Force App Exchange 送信ポータルによって生成されます。 他のフィールドと突き合わせた検査 必須フィールド (名前、説明、作成者、および作成者の E メール) が manifest.txt ファイルで定義されているかどうかを検査します。 これらのフィールドは、X-Force App Exchange 送信ポータルによって生成されます。 表 3. 拡張の署名 ルール名 説明 署名成果物は META-INF ディレクトリーに配置される 拡張が署名されているかどうかを検査します。 詳しくは、 How to get your extension .zip file ready for validationを参照してください。 表 4. コンテンツ XML ルール名 説明 コンテンツ・エクスポート XML のロード コンテンツ XML を正常にロードできるかどうかを検査します。 アプリケーション情報が有効かどうか このコンテンツ XML にエクスポートされたアプリケーションがあるかどうかを検査します。 ある場合は、そのアプリケーションの情報が正しいかどうか確認してください。 QRadar のバージョン番号の形式の有効性 <qradarversion>...</qradarversion> に正しい形式の有効な QRadar バージョンが含まれているかどうかを検査します。 このフィールドは、 QRadarによって自動的に生成されます。 詳しくは、異なるタイプのカスタム・コンテンツ項目のエクスポートを参照してください。 カスタム・イベント・プロパティー正常性チェック このコンテンツ XML 内に、公開されている拡張と競合しているカスタム・プロパティーがないか検査します。 公開されている他の拡張と同じ名前のプロパティーが拡張に含まれていると、正しくインストールできません。 競合するカスタム・プロパティーを修正または防止するために、 QRadar コンソールに IBM QRadar カスタム・プロパティー・ディクショナリー をインストールし、コンソール UI からプロパティーを選択してコンテンツ XML をエクスポートすることができます。 カスタム検索正常性チェック 手動変更による検索属性の欠落がないかどうかを検査します。 カスタム・ルール正常性チェック 手動変更によってルール属性が欠落していないかどうかを検査します。 表 5. アプリケーションの .zip ファイル ルール名 説明 アプリケーションの .zip ファイルの抽出 アプリケーションの .zip ファイルを正常に抽出できるかどうかを検査します。 アプリケーションの manifest.json のロード manifest.json ファイルが有効な JSON 形式であるかどうかを検査します。 アプリケーションのバージョンの形式の有効性 アプリケーションのバージョン (manifest.json のversion フィールド) が MAJOR.MINOR.PATCH のように 3 桁のシーケンスであることを確認します。 App Framework V2 によるサポート アプリケーションが、App Framework V2 によって提供される新しい基本イメージを使用するかどうかを検査します。 詳しくは、 QRadar: How to migrate applications from app framework v1 to V2を参照してください。 環境変数の検査 manifest.json ファイル内の environment_variables の値が有効な形式であるかどうかを検査します。 詳しくは、QRadar App Framework - マニフェストのオブジェクト・タイプ - 環境変数を参照してください。 サービス名とポートの検査 manifest.json ファイル内の environment_variables の値が有効な形式であるかどうかを検査します。 詳しくは、 QRadar App Framework - マニフェスト・オブジェクト・タイプ - サービス・タイプを参照してください。 注: 拡張にアプリが含まれていない場合、 Application.zip ファイルのルール検査はスキップされます。表 6. インストール・スクリプト ルール名 説明 フォルダー構造の有効性 アプリの .zip ファイルに必須フォルダーが含まれているかどうかを検査します。 Python パッケージの依存関係は、インターネットへのアクセスなしで解決する必要がある Python パッケージの依存関係をローカルで解決できるかどうかを検査します。 アプリケーションは、インターネットへのアクセスなしで正常にインストールできる必要があります。 インストール・スクリプトはインターネットにアクセスしない container/run および container/build の init スクリプトに、インターネットにアクセスするためのコマンドが含まれていないかどうかを検査します。 オーバーライド・パッケージの検査 アプリケーションの .zip ファイルが独自のバージョンの OpenSSH および SQLite3をインストールするかどうかを検査します。 これらのパッケージは、App Framework V2 ランタイム環境で既に提供されています。 init スクリプトで sudo を使用しない container/run ディレクトリーおよび container/build ディレクトリー内の init スクリプトで sudo コマンドが使用されているかどうかを検査します。 カスタム encdec.py および qpylib を使用しない アプリケーションの .zip ファイルに自作の qpylib ライブラリーが含まれているかどうかを検査します。 qpylib ライブラリーは、App Framework V2 ランタイム環境で既に提供されています。 注意: 拡張にアプリが含まれていない場合、 インストール・スクリプト のルール検査はスキップされます。表 7. 拡張とアプリケーションの相互チェック ルール名 説明 サポートされている最小バージョンの QRadar にコンテンツをインストールできます。 サポートされる最小バージョンの QRadar にコンテンツ XML をインストールできるかどうかを検査します。このバージョンは、 manifest.txtの min_qradar_version フィールドで定義されています。 例:
- min_qradar_version は「7.3.2」に設定され、コンテンツ XML は 7.3.2 フィックスパック 5 (7.3.2 20191022133252) からエクスポートされます。
- min_qradar_version は「7.3.2」に設定され、コンテンツ XML は 7.3.1 GA (7.3.1. 20171206222136) からエクスポートされます。
- min_qradar_version は「2019.14.0」(7.3.3 GA) に設定され、コンテンツ XML は 7.3.3 フィックスパック 6 (2019.14.6.20201205215722) からエクスポートされます。
注:- /opt/qradar/bin/myver を使用して SSH 経由で QRadar コンソールにログインし、 QRadar の内部バージョン (4 桁) を確認できます。
- manifext.txt の min_qradar_version は、3 桁 (2019.14.6) または 4 桁 (2019.14.6.20201205215722) のシーケンスです。
XML が App Framework V2 を提供するコンテンツで、エクスポートされた QRadar のバージョンを確認します。 App Framework V2 は、 QRadar 7.3.3 フィックスパック 6 +、 7.4.1 フィックスパック 2 +、または QRadar 7.4.2+ ( 7.4.0.xではサポートされません) で提供されます。 App Framework V2で実行されるアプリケーションが拡張に少なくとも 1 つ含まれている場合、このルールは、サポートされる QRadar バージョン・リストにコンテンツ XML がエクスポートされているかどうかを検査します。 manifest.txt の QRadar の最小サポート・バージョンが App Framework V2 を提供していることを確認します。 App Framework V2 で実行されるアプリケーションが拡張に少なくとも 1 つ含まれている場合、このルールは、最小サポート対象バージョン (manifest.txtの min_qradar_version) で App Framework V2 が提供されているかどうかを検査します。 表 8. セキュリティー・チェック ルール名 説明 Python コードのセキュリティー検査 IBM QRadar Pre-Validation アプリケーションは、Bandit を使用して、 Python コードで一般的なセキュリティー問題を検出します。
Bandit またはその他の自動化ツールがフォールス・ポジティブの結果を生成することは、珍しくありません。 レポートを分析して、結果の妥当性を判別します。
- 必要に応じて、修正した圧縮ファイルをアップロードし、パッケージを再び検証します。