コードの脆弱性のスキャン

アプリケーション依存性管理(ADM)サービスは、ビルドに使用されるパッケージの脆弱性を検出するためにOracle Cloud Infrastructure (OCI) DevOpsビルド・パイプラインから使用できる統合された脆弱性ナレッジ・ベースを提供します。

ADMサービスでは、Common Vulnerability Scoring System (CVSS)を使用しているため、ソフトウェア・パッケージのスキャンが容易になります。CVSSは、ソフトウェア脆弱性の特性と重大度を伝達するためのオープン・フレームワークです。依存関係ごとに、低いCVSSスコア(0.1など)は、セキュリティの脆弱性があまり重大ではないことを意味し、高いCVSSスコア(10.0など)は、セキュリティの脆弱性が高い、つまり重大であることを意味します。複数の依存関係を持つコード・リポジトリのスキャン中に、ADMはmaxObservedCvssV2ScoremaxObservedCvssV3Scoreなどの集計値を提供します。

ノート

ADMでは、Mavenパッケージのスキャンのみがサポートされます。

カスタムMavenリポジトリがある場合、OCI DevOpsではpom.xmlファイルでの構成がサポートされます。プロジェクト・オブジェクト・モデル(POM)は、Mavenがプロジェクトをビルドする際に使用する構成詳細を含むXMLファイルです。Mavenリポジトリの構成については、複数のリポジトリの設定を参照してください。

脆弱性監査プロセス

脆弱性監査は、アプリケーションとその依存関係の脆弱性を示します。OCI DevOpsサービスを使用してビルドを実行するときに、コード・リポジトリへの新しいコミットに対してコード・スキャンを開始できます。脆弱性監査は、「マネージド・ビルド」ステージで行われます。

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ポリシーを参照してください。