コードの脆弱性のスキャン
アプリケーション依存性管理(ADM)サービスは、ビルドに使用されるパッケージの脆弱性を検出するためにOracle Cloud Infrastructure (OCI) DevOpsビルド・パイプラインから使用できる統合された脆弱性ナレッジ・ベースを提供します。
ADMサービスでは、Common Vulnerability Scoring System (CVSS)を使用しているため、ソフトウェア・パッケージのスキャンが容易になります。CVSSは、ソフトウェア脆弱性の特性と重大度を伝達するためのオープン・フレームワークです。依存関係ごとに、低いCVSSスコア(0.1など)は、セキュリティの脆弱性があまり重大ではないことを意味し、高いCVSSスコア(10.0など)は、セキュリティの脆弱性が高い、つまり重大であることを意味します。複数の依存関係を持つコード・リポジトリのスキャン中に、ADMはmaxObservedCvssV2Score
やmaxObservedCvssV3Score
などの集計値を提供します。
ADMでは、Mavenパッケージのスキャンのみがサポートされます。
カスタムMavenリポジトリがある場合、OCI DevOpsではpom.xmlファイルでの構成がサポートされます。プロジェクト・オブジェクト・モデル(POM)は、Mavenがプロジェクトをビルドする際に使用する構成詳細を含むXMLファイルです。Mavenリポジトリの構成については、複数のリポジトリの設定を参照してください。
脆弱性監査プロセス
脆弱性監査は、アプリケーションとその依存関係の脆弱性を示します。OCI DevOpsサービスを使用してビルドを実行するときに、コード・リポジトリへの新しいコミットに対してコード・スキャンを開始できます。脆弱性監査は、「マネージド・ビルド」ステージで行われます。
VulnerabilityAudit
の脆弱性監査ステップが追加され、コード・スキャンについて指示します。例:
steps:
- type: VulnerabilityAudit
name: "Vulnerability Audit Step"
configuration:
buildType: maven
pomFilePath: ${OCI_PRIMARY_SOURCE_DIR}/pom.xml
packagesToIgnore:
- com.oracle.*
- org.apache.logging
maxPermissibleCvssV2Score: 10.0
maxPermissibleCvssV3Score: 10.0
knowledgeBaseId: ocid1.admknowledgebase.oc1.iad.restoftheocid
vulnerabilityAuditCompartmentId: ocid1.compartment.oc1..restoftheocid
vulnerabilityAuditName: testReport
脆弱性が見つかった場合、ビルドは失敗し、脆弱性監査サマリーを使用してエラーを確認できます。監査サマリーは、脆弱性が見つからない場合でも使用できます。詳細な脆弱性監査レポートを表示することもできます。詳細は、アプリケーション依存性管理の開始を参照してください。
必要なIAMポリシー
Oracle Cloud Infrastructure (OCI)の各サービスは、認証および認可のためにIdentity and Access Management (IAM)と統合されます。DevOpsビルド・パイプラインおよびその他のリソースにアクセスする権限をユーザーに付与するには、動的グループおよびIAMポリシーを作成する必要があります。ビルド・パイプラインの動的グループおよびポリシーの作成については、ビルド・パイプライン・ポリシーを参照してください。
ビルド・パイプラインは、特定のIAMポリシーを定義する必要があるナレッジ・ベースなどのADMサービスのリソースにアクセスする必要があります。ADMリソースにアクセスするためのポリシーを参照してください。詳細は、DevOps IAMポリシーを参照してください。