正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

高度なSAST SwiftおよびObjective-Cの設定

  • プラン: Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: ベータ版

GitLab Advanced SASTは、クロスファイル、クロスファンクションテイント解析を使用してSwiftおよびObjective-Cのコードを分析し、iOSアプリケーションへの高度なSASTのカバレッジを拡張します。

SwiftおよびObjective-C分析は、独自のコンテナイメージとして提供される、別のCI/CDジョブであるgitlab-advanced-sast-extとして実行されます。追加の設定は必要ありません。高度なSASTが有効な場合、リポジトリにSwift(.swift)、Objective-C(.m)、またはObjective-C++(.mm)ファイルが含まれていると、ジョブが実行されます。

高度なSAST SwiftおよびObjective-C分析を有効にする

前提条件:

SwiftおよびObjective-Cの分析では、他のサポートされている言語と同じ有効化変数が使用されます:

include:
  - template: Jobs/SAST.gitlab-ci.yml

variables:
  GITLAB_ADVANCED_SAST_ENABLED: "true"

この変数が設定されており、リポジトリにSwiftまたはObjective-Cファイルが含まれている場合、GitLabはgitlab-advanced-sast-extジョブをパイプラインのtestステージに追加します。

高度なSAST SwiftおよびObjective-C分析を無効にする

他の言語向けに高度なSASTを有効にしたままSwiftおよびObjective-C分析を無効にするには、gitlab-advanced-sast-extSAST_EXCLUDED_ANALYZERS変数に追加します:

include:
  - template: Jobs/SAST.gitlab-ci.yml

variables:
  GITLAB_ADVANCED_SAST_ENABLED: "true"
  SAST_EXCLUDED_ANALYZERS: "gitlab-advanced-sast-ext"

SwiftおよびObjective-C分析を含む高度なSAST全体を無効にするには、GITLAB_ADVANCED_SAST_ENABLED"false"に設定します。

グループCI/CD変数としてGITLAB_ADVANCED_SAST_ENABLEDが設定されている場合、プロジェクトの.gitlab-ci.ymlファイルの変数の値はそれを上書きしません。グループ変数をオーバーライドするには、同じ名前のプロジェクトCI/CD変数を定義します。詳細については、変数の優先順位を参照してください。

脆弱性カバレッジ

このアナライザーは、信頼できない入力をソースから脆弱なシンクまで、ファイルやファンクションを横断してトレースします。一般的な脆弱性の種類であるSQLインジェクションや機密情報の平文送信に加えて、iOS固有のAPIやデータフロー(以下を含む)をモデル化します:

  • 信頼できない入力ソースとしてのディープリンクおよびカスタムURLスキーム。
  • キーチェーン項目のアクセシビリティクラス。
  • UserDefaults、ペーストボード、およびローカルファイル内の機密データの保存。
  • WebKitおよびUIWebViewコンテンツの読み込み。

アナライザーが検出する弱点タイプの完全なリストについては、SwiftおよびObjective-C CWEカバレッジを参照してください。

FIPSパイプライン

ベータ期間中、SwiftおよびObjective-C分析用のFIPS対応コンテナイメージは利用できません。他のアナライザーと同様に、FIPS準拠のイメージはGitLab高度なSASTとSemgrepベースのアナライザーでのみ利用可能です。

FIPS対応コンテナイメージを使用するパイプラインでは、gitlab-advanced-sast-extジョブは引き続き実行されますが、FIPS対応コンテナイメージをプルできないため失敗します。FIPS準拠の方法でSASTを使用するには、SwiftおよびObjective-C分析をオフにしてください

既知の問題

ベータ期間中、SwiftおよびObjective-C分析には以下の既知のイシューがあります:

  • オフライン環境はサポートされていません。
  • SemgrepベースのSASTアナライザーからの検出結果と重複排除されません。両方のアナライザーがSwiftまたはObjective-Cファイルで同じ脆弱性を検出した場合、両方の検出結果が報告されます。
  • カスタムルールセットはサポートされていません。
  • 差分ベースのスキャンインクリメンタルスキャンはサポートされていません。アナライザーは常にフルスキャンを実行します。このアナライザーは常にフルスキャンを実行します。