高度な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-extをSAST_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ファイルで同じ脆弱性を検出した場合、両方の検出結果が報告されます。
- カスタムルールセットはサポートされていません。
- 差分ベースのスキャンとインクリメンタルスキャンはサポートされていません。アナライザーは常にフルスキャンを実行します。このアナライザーは常にフルスキャンを実行します。