42Crunch 技術オンボード ガイド
42Crunch を使用すると、分散された開発チームとセキュリティ チーム全体で API セキュリティ コンプライアンスの適用を自動化する API をセキュリティで保護するための標準化されたアプローチが可能になります。 42Crunch API セキュリティ プラットフォームを使用すると、開発者は統合開発環境 (IDE) から CI/CD パイプラインにセキュリティを構築できます。 API セキュリティに対するこのシームレスな DevSecOps アプローチにより、ガバナンス コストが削減され、セキュリティで保護された API の配信が促進されます。
セキュリティ テストのアプローチ
Web アプリケーションやモバイル アプリケーションのスキャンに使用される従来の DAST ツールとは異なり、42Crunch は、各 API の特定の設計に基づいて正確に作成され、対象とする一連のテストを実行します。 42Crunch スキャン エンジンは、OpenAPI 定義 (Swagger) ファイルをプライマリ ソースとして使用して、API が意図した設計にどの程度適合しているかを検証する多数のテストを実行します。 この準拠スキャンは、OWASP の上位 10 件の脆弱性、不適切な応答コード、スキーマ違反など、さまざまなセキュリティの問題を特定します。 これらの問題は、考えられる悪用シナリオや修復ガイダンスなど、豊富なコンテキストで報告されます。
スキャンは、CI/CD パイプラインの一部として自動的に、または IDE または 42Crunch クラウド プラットフォームを介して手動で実行できます。
API 仕様の品質によってスキャン範囲と有効性が大きく決まります。そのため、OpenAPI 仕様が明確に定義されていることを確認することが重要です。 42Crunch Audit は、開発者が仕様のセキュリティと品質を向上させることを目的として、OpenAPI 仕様ファイルの静的分析を実行します。 監査は、仕様ファイルごとに 0 から 100 の複合セキュリティ スコアを決定します。 開発者が監査によって識別されるセキュリティとセマンティックの問題を修復すると、スコアが向上します。 42Crunch では、準拠スキャンを実行する前に、監査スコアを 70 以上にすることをお勧めしています。
有効化
Note
次の手順では、42Crunch の無料バージョンを設定するプロセスについて説明します。 42Crunch の無料バージョンと有料バージョンの違いと、Azure Marketplace で 42Crunch を購入する方法については、FAQ セクションを参照してください。
開発者は、42Crunch の Audit および Scan サービスに依存することで、上位の OWASP API リスクと OpenAPI 仕様のベスト プラクティスに対する API の静的および動的テストを通じて、CI/CD パイプライン内の API を事前にテストおよび強化できます。 42Crunch からのセキュリティ スキャン結果が Defender for Cloud 内で利用できるようになりました。これにより、中央のセキュリティ チームが Defender for Cloud の推奨事項エクスペリエンス内で API の正常性を把握できるようになり、Defender for Cloud の推奨事項を通じてネイティブに利用できるガバナンス手順を実行できるようになります。
DevOps 環境を Microsoft Defender for Cloud に接続する
この機能を使用するには、DevOps 環境を Defender for Cloud に接続する必要があります。
GitHub 組織をオンボードする方法に関するページをご覧ください。
Azure DevOps 組織をオンボードする方法に関するページをご覧ください。
42Crunch Audit サービスの構成
REST API 静的セキュリティ テスト アクションでは、OpenAPI 仕様 (OAS、旧称 Swagger) に従う REST API コントラクトを検索し、それらに対して徹底的なセキュリティ チェックを実行します。 OAS v2 と v3 の両方が、JSON 形式と YAML 形式の両方でサポートされています。
このアクションは、42Crunch API Security Audit を利用します。 Security Audit は、API 定義の静的分析を実行します。これには、API による認可、承認、トランスポート、要求および応答スキーマの定義方法に関するベスト プラクティスと潜在的な脆弱性に関する 300 を超えるチェックが含まれています。
GitHub 環境の場合
次の手順を実行して、CI/CD パイプライン内に 42Crunch API Security Audit プラグインをインストールします。
新しい既定のワークフローを作成するには、次を行います。
[自分でワークフローをセットアップする] を選びます。
ワークフローの名前を
main.yaml
から42crunch-audit.yml
に変更します。「 https://github.com/marketplace/actions/42crunch-rest-api-static-security-testing-freemium#full-workflow-example 」を参照してください。
完全なサンプル ワークフローをコピーし、ワークフロー エディターに貼り付けます。
Note
このワークフローでは、セキュリティ検索の結果が Defender for Cloud に表示されるために必要な GitHub Code Scanning が有効になっていることを前提としています。 upload-to-code-scanning オプションが true に 設定されていることを確認します。
[変更点のコミット] を選択します。 メイン ブランチに直接コミットするか、プル要求を作成できます。 メイン ブランチに対して PR が開かれると、既定のワークフローが起動するため、PR を作成して GitHub のベスト プラクティスに従うことをお勧めします。
[Actions] (アクション) を選んで、新しいアクションが実行されていることを確認します。
ワークフローが完了したら、[セキュリティ] を選択し、[コード スキャン] を選択して結果を表示します。
42Crunch REST API Static Security Testing によって検出されたコード スキャン アラートを選択します。 [コード スキャン] タブのツールでフィルター処理することもできます。42Crunch REST API Static Security Testing でフィルター処理します。
これで、GitHub コード スキャンに監査結果が表示されていることを確認しました。 次に、これらの監査結果が Defender for Cloud 内で使用可能であることを確認します。 Defender for Cloud に結果が表示されるまでに最大 30 分かかる場合があります。
Defender for Cloud に移動する:
- [推奨事項] を選択します。
- [すべての推奨設定] を選択します。
- API セキュリティ テストを検索してフィルター処理します。
- 推奨設定 [GitHub リポジトリで API セキュリティ テストの結果を解決する必要がある] を選択します。
選択した推奨設定には、42Crunch Audit の結果がすべて表示されます。 42Crunch Audit 手順のオンボードが完了しました。
Azure DevOps 環境の場合
組織に 42Crunch Azure DevOps 拡張機能をインストールします。
Azure DevOps プロジェクトに新しいパイプラインを作成してください。 最初のパイプラインを作成するためのチュートリアルについては、「最初のパイプラインを作成する」を参照してください。
次のワークフローでコピーして、作成したパイプラインを編集します。
trigger: branches: include: - main jobs: - job: run_42crunch_audit displayName: 'Run Audit' pool: vmImage: 'ubuntu-latest' steps: - task: UsePythonVersion@0 inputs: versionSpec: '3.11' addToPath: true architecture: x64 - task: APISecurityAuditFreemium@1 inputs: enforceSQG: false sarifReport: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif' exportAsPDF: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.pdf' - task: PublishBuildArtifacts@1 displayName: publishAuditSarif inputs: PathtoPublish: '$(Build.Repository.LocalPath)/42Crunch_AuditReport.sarif ' ArtifactName: 'CodeAnalysisLogs' publishLocation: 'Container'
パイプラインを実行します。
結果が Azure DevOps で正しく発行されていることを確認するには、42Crunch-AuditReport.sarif が CodeAnalysisLogs フォルダーの下にあるビルド成果物にアップロードされていることを検証します。
オンボード プロセスが完了しました。 次に、結果が Defender for Cloud に表示されることを確認します。
Defender for Cloud に移動する。
- [推奨事項] を選択します。
- [すべての推奨設定] を選択します。
- API セキュリティ テストを検索してフィルター処理します。
- 推奨設定 [Azure DevOps リポジトリで API セキュリティ テストの結果を解決する必要がある] を選択します。
選択した推奨設定には、42Crunch Audit の結果がすべて表示されます。 42Crunch Audit 手順のオンボードが完了しました。
42Crunch Scan サービスの構成
API Scan では、API を継続的にスキャンして OpenAPI コントラクトへの準拠を確保し、テスト時に脆弱性を検出します。 API ライフサイクルの早い段階で OWASP API Security Top 10 の問題を検出し、API が予期しない要求を処理できることを検証します。
スキャンには、運用以外のライブ API エンドポイントと、必要な資格情報 (API キーまたはアクセス トークン) が必要です。 42Crunch Scan を構成するには、これらの手順に従います。
ADO 固有のタスクについては、チュートリアルの azure-pipelines-scan.yaml を参照してください。
よく寄せられる質問
42Crunch は、開発者が API セキュリティの問題を特定して修復するのにどのように役立ちますか?
42Crunch の Security Audit および Conformance Scan は、開発ライフサイクルの早い段階で API に存在する潜在的な脆弱性を特定します。 スキャン結果には、脆弱性と関連する悪用の説明、詳細な修復ガイダンスなど、豊富なコンテキストが含まれます。 スキャンは、CI/CD プラットフォームで自動的に実行することも、42Crunch IDE 拡張機能のいずれかを使用して IDE 内の開発者が段階的に実行することもできます。
42Crunch を使用して、開発者向けの最小品質およびセキュリティ標準への準拠を強制できますか?
正解です。 42Crunch には、セキュリティ品質ゲート (SQG) を使用してコンプライアンスを適用する機能が含まれています。 SQG は、監査またはスキャンに成功するために満たす必要がある特定の条件で構成されます。 たとえば、SQG により、1 つ以上のクリティカルな重大度の問題を含む監査またはスキャンが成功しないことを保証できます。 CI/CD では、SQG に合格しなかった場合にビルドが失敗するように 42Crunch Audit または Scan を構成できるため、開発者はコードをプッシュする前に基になる問題を解決する必要があります。
42Crunch の無料バージョンでは監査とスキャンの両方に既定の SQG が使用されますが、有料のエンタープライズ バージョンでは SQG とタグのカスタマイズが可能です。これにより、SQG を API のグループ化に選択的に適用できます。
42Crunch の SaaS サービスに格納されるデータは何ですか?
42Crunch Security Audit および Conformance Scan の制限付き無料試用版を CI/CD にデプロイできます。CI/CD では、42Crunch SaaS 接続を必要とせずにローカルにレポートを生成します。 このバージョンでは、42Crunch プラットフォームと共有されるデータはありません。
42Crunch プラットフォームの完全なエンタープライズ バージョンでは、次のデータが SaaS プラットフォームに格納されます。
- 名、姓、42Crunch プラットフォームのユーザーの電子メール アドレス。
- OpenAPI または Swagger ファイル (お客様の API の説明)。
- 42Crunch によって実行されるセキュリティ監査および準拠スキャン タスク中に生成されるレポート。
42Crunch はどのようにライセンスされますか?
42Crunch は、API の数とプラットフォームにプロビジョニングされている開発者の数の組み合わせに基づいてライセンスが付与されます。 価格バンドルの例については、このマーケットプレースの一覧を参照してください。 カスタム価格は、Azure コマーシャル マーケットプレースのプライベート オファーを通じて利用できます。 カスタム見積もりについては、mailto:sales@42crunch.com にお問い合わせください。
42Crunch の無料版と有料版の違いは何ですか?
42Crunch は、Security Audit および Conformance Scan の無料の制限付きバージョンと、有料エンタープライズ バージョンの両方を提供します。
42Crunch の無料バージョンでは、42Crunch CI/CD プラグインはスタンドアロンで動作し、42Crunch プラットフォームにサインインする必要はありません。 監査とスキャンの結果は、Microsoft Defender for Cloud および CI/CD プラットフォーム内で利用できるようになります。 監査とスキャンは、リポジトリごとに 1 か月あたり最大 25 回の実行に制限され、最大 3 つのリポジトリがあります。
42Crunch の有料エンタープライズ バージョンでは、監査とスキャンは CI/CD でローカルに実行されますが、カスタマイズ可能なセキュリティ品質ゲート、データ ディクショナリ、タグ付けなど、いくつかの高度な機能を使用できる 42Crunch プラットフォーム サービスと同期できます。 エンタープライズ バージョンは特定の数の API に対してライセンスが付与されていますが、月単位で実行できる監査とスキャンの数に制限はありません。
42Crunch は Azure コマーシャル マーケットプレースで利用できますか?
はい。42Crunch は、こちらから Microsoft コマーシャル マーケットプレースで購入できます。
Azure コマーシャル マーケットプレースを通じて行われた 42Crunch の購入は、最小 Azure 従量課金コミットメント (MACC) にカウントされることに注意してください。