開発プロセスのセキュリティを強化するGitLab Advanced SASTの特徴とは?

開発プロセスのセキュリティを強化するGitLab Advanced SASTの特徴とは?
執筆者
aslead編集部
aslead編集部

こんにちは。aslead編集部です。
最新ソフトウェア開発のトレンドから、AI・DXツールの効果的な活用法、企業のITガバナンスの強化、業務効率化やDX化を成功に導くソリューションまで、幅広い記事を提供しています。
企業が直面する課題の解決策として効率的なツールの活用方法を探求し、生産性の向上に繋がる実践的な情報をお届けすることを目指します。

昨今、セキュリティリスクへの対応がますます求められており、2021年5月に米国で発令されたEO14028 「国家のサイバーセキュリティの向上に関する大統領令」や、2024年12月に発効された「欧州サイバーレジリエンス法(CRA)」など、海外ではセキュリティ強化を求める規制の整備が進められています。

日本でも、セキュリティ強化が求められています。経済安全保障推進法の中で、ソフトウェア開発プロセスにおけるセキュリティ強化についても言及されており、システム提供を行う事業者は対応に迫られています。こうした課題に対して、ソフトウェア開発ライフサイクル全体にセキュリティを組み込む「DevSecOps」のアプローチが有効とされています。

GitLabは「DevSecOps」を実現するオールインワン型のDevSecOpsプラットフォームで、様々なセキュリティ機能が提供されており、ソフトウェア開発プロセスにおけるセキュリティの早期対策をサポートしています。

GitLabを利用することでセキュリティ対応を強化しつつ、生産性向上の効果が期待できます。

本記事では、GitLabのセキュリティ機能の一つであるSAST(静的アプリケーション・セキュリティ・テスト)を強化した、強力なセキュリティ機能「Advanced SAST」についてご紹介します。

その他のGitLabのセキュリティ機能の詳細は公式ドキュメントより確認いただけます。また、GitLabやDevOps/DevSecOpsについては、過去の記事で詳しくご紹介しているので、下記からご確認ください。

GitLab(ギットラボ)とは?機能や使い方、料金を分かりやすく解説 | コラム | aslead |野村総合研究所(NRI)

DevSecOpsとは?DevOpsとの違いやメリット、ツールの種類を紹介 | コラム | aslead |野村総合研究所(NRI)

目次

GitLabのSAST機能とは?

GitLabのSASTは、Free版を含むすべてのライセンス種別で利用できるソフトウェア開発における静的解析ツールで、コードに含まれる脆弱性を早期に検出するための機能です。GitLabパイプラインでコードがリポジトリにプッシュされた際に、パイプラインで静的解析が実行され、潜在的なセキュリティリスクを識別します。

パイプラインの一部として設定することができ、自動ビルドやテストと組み合わせることで、リリース前の脆弱性を発見することができます。これにより、開発者が迅速に脆弱性を確認できるようになります。

SAST機能を強化した「Advanced SAST」が正式リリース

前述のGitLabのSAST機能を強化した「Advanced SAST」が正式にリリースされました。

GitLabはこれまでもSASTをDevSecOpsワークフローの重要な部分として進化させるというビジョンの元、SAST機能の開発を行ってきました。高度なスキャン技術を持つOxeye社を買収し、脆弱性スキャンの正確さや脆弱性管理、修復機能の改善に取り組んでおり、今回のAdvanced SASTのリリースに至りました。

ここからは、具体的なAdvanced SASTの機能や特徴について解説していきます。

Advanced SASTの特徴

Advanced SASTはGitLab Ultimateから利用可能です。Advanced SAST機能を有効にすることで汚染解析(Taint Analysis※1)ができるようになります。

ユーザーの入力によって変数が「汚染」されると、予期しない挙動や攻撃の原因となることがあります。汚染解析(Taint Analysis)は、汚染されうる変数を特定し、それらが脆弱性につながる「シンク」と呼ばれる関数までどのように伝わるかを追跡します。

また、これらの変数が無害化されないままシンクに渡される場合は、その箇所を脆弱性として判定します。これにより、従来のSAST機能以上に多くの脆弱性の検出が可能になります。さらに、異なるファイル間でのデータの流れや依存関係が分析可能となることで、機密データが不適切に処理される等のリスクを特定し、全体的なアプリケーションのセキュリティ向上が可能になります。

※1 OWASP Foundation. Static Code Analysis. https://owasp.org/www-community/controls/Static_Code_Analysis

SASTとAdvanced SASTの比較

SASTと今回リリースされたAdvancedSASTの特徴的な差異は下記の5点です。

差異 SAST Advanced SAST
利用可能となるプラン GitLab Freeから利用可能 GitLab Ultimateから利用可能
解析の深さ 解析が単体のファイル・関数に限定されるため、複雑な脆弱性の検知が限定的となる 複数のファイルや関数にまたがった解析が可能で、複雑な脆弱性の検知が可能
解析の特徴 解析の対象が単体のファイル・関数に限定されるため、解析結果にfalse-positive(偽陽性)が生じる可能性がある 複数のファイルや関数を対象とした解析が可能となり、解析結果にfalse-positive(偽陽性)が少なくなる
修復ガイド 脆弱性が見つかったコードの行番号を表示する 脆弱性が生じるフローを詳細なコードフロービューで表示し、視覚的に理解できるようになる
サポート言語/フレームワーク より多くの開発言語・フレームワークに対応している 対応している開発言語・フレームワークは限定的

GitLab社から、Advanced SASTの有効化やSASTとの解析結果の比較をデモ形式で紹介しているプロダクトツアーが公開されています。実際の脆弱性レポートの画面や、解析の精度や修復ガイドの違いは上記のリンクからご確認いただけます。

解析の深さ

Advanced SASTでは、複数の関数やファイルにまたがる複雑な脆弱性の検知が可能となりました。ファイル間や関数を横断してユーザー入力の流れを追跡することで、SQLインジェクションやクロスサイトスクリプティング(XSS)といった複数のファイルや関数にまたがる脆弱性の検出が可能です。

Advanced SASTで検出可能な脆弱性タイプ(CWE:共通脆弱性タイプ一覧)は公開されています。検出可能な脆弱性タイプの詳細については公式ドキュメントより確認いただけます。

解析の特徴

Advanced SASTは、ユーザー入力による一連のプログラム実行を追跡するため、複数のファイルや関数にまたがる解析を行います。複数ファイルや関数にまたがる解析と脆弱性の検出によって、解析結果に含まれるfalse-positive(偽陽性)を最小限に抑えます。

さらに、解析対象となる入力に関して一定の境界を設けており、コマンドライン引数や環境変数といったユーザーが通常与える入力は解析対象外としています。詳細な脆弱性報告の基準や解析ルールについては公式ドキュメントより確認いただけます。

修復ガイド

SASTでは、検知された脆弱性についてその脆弱性の概要と脆弱性が存在するファイルおよびその行番号が表示されます。一方、Advanced SASTでは、脆弱性についてより詳細な説明と脆弱性を含むコードの修正例が表示されます。加えて、Advanced SASTでは脆弱性がどのように生じるのかをコードフローで表示します。

脆弱性のコードフローとは、ユーザーの入力から脆弱性を含むコード行まで、データがどのように代入・操作・サニタイズされているかの経路のことです。これらの情報によって、脆弱性の発生原因や影響、修正する際のポイントをすばやく確認することができ、迅速な対応が可能となります。修復ガイドの詳細については公式ドキュメントより確認いただけます。

サポート言語

SASTでは、多くの開発言語やフレームワークに対応しており、様々な環境で利用できます。一方、Advanced SASTでは対応している開発言語やフレームワークはSASTに比べ、限定的となっています。

ただ、GitLabは今後のアップデートでAdvanced SASTのサポート言語やフレームワークを増やしていく予定ですので、対応されていない開発言語を利用されている方はアップデート情報をお待ちください。SASTとAdvanced SASTのサポート言語や、一部Advanced SASTのサポート予定の言語については、公式ドキュメントより確認いただけます。

Advanced SASTが解決する課題

Advanced SASTは、セキュリティ強化が求められる現代のソフトウェア開発環境において、特に以下のような課題を解決するための有効なソリューションです。

  • 複雑なアーキテクチャの脆弱性検出:大規模で複雑なシステムやモジュールの開発において、従来のSASTでは見逃されがちな複雑な脆弱性を検出することが重要です。Advanced SASTは、横断的な関数とファイルの汚染解析(Taint Analysis)を行うことで、より高度な脆弱性を特定し、リスクを軽減します。
  • 早期のセキュリティリスクの特定:開発プロセスの初期段階から脆弱性を特定し、修正を加えたいというニーズに応えるため、Advanced SASTは脆弱性の早期発見を促進します。これにより、リリース前のリスクを最小限に抑えるとともに、効率的な開発を支援します。
  • 脆弱性対応をサポート:ファイルを横断した脆弱性解析による誤検知の削減と詳細な修復ガイドの提供によって、脆弱性への対応をサポートします。これにより、脆弱性の早期対応を支援し、開発プロセスの効率化に期待できます。

Advanced SASTを利用することで、開発プロセス全体におけるセキュリティ対策の強化や、安全なソフトウェア開発の促進につながります。最先端のセキュリティ機能を活用することで、競争力のある製品開発を実現し、顧客や社会の信頼に応える基盤を築くことが可能になります。

お問い合わせ

株式会社野村総合研究所(NRI)は、GitLab社と販売代理店契約を締結しており、中でも優れた顧客価値を提供した実績を持つパートナーだけに与えられる「GitLab認定プロフェッショナルサービスパートナー(PSP )」に認定されています。

DevSecOpsソリューション「aslead DevOps」は、製品・ソリューションの導入からサポートや運用保守まで、ワンストップのトータルサービスを提供しています。また、セキュリティの専門家である「NRI セキュアテクノロジーズ」とタッグを組み、要件定義から保守運用まで、各工程に応じて包括的にサポートを行う「NRI デジタルトラスト」サービスの提供を予定しています。サービスの詳細については下記からご確認ください。

野村総合研究所、マルチクラウド戦略に基づくサービスを拡充し、顧客企業のガバナンス強化と利便性向上を加速 | お知らせ | 野村総合研究所(NRI)

NRIセキュア、野村総合研究所と共同でサイバーセキュリティ機能を組み込んだプラットフォームサービスを提供開始|ニュース|NRIセキュア

GitLabの導入に関するご相談やGitLab無料トライアルの申し込みについては、こちらよりお気軽にお問合せください。