シフトレフトを加速させるGitLab DASTの特徴と導入メリット

シフトレフトを加速させるGitLab DASTの特徴と導入メリット
執筆者
aslead編集部
aslead編集部

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

Webアプリケーションの脆弱性対策は、開発現場でますます重要性を増しています。従来の外部診断に頼るだけでは不十分な今、開発初期からセキュリティテストを実施する「シフトレフト」が注目されています。本コラムでは、CI/CDと連携し自動で繰り返しテストが可能なGitLab DASTの特徴や導入によるメリットについて、わかりやすく解説します。

目次

はじめに

企業のサービス提供の中心がWebアプリケーションやAPIへと移行する中、Webを狙ったサイバー攻撃の脅威はますます増加しています。情報処理推進機構(IPA)が公表する「情報セキュリティ10大脅威」においても、Webアプリケーションの脆弱性を狙った攻撃が毎年上位にランクインしており、その深刻さが伺えます。

これらの脆弱性の中には、実際にWebアプリケーションが稼働している状態でなければ発見が難しいものもあります。例えば、OWASP Top 10に挙げられている認証の問題やセキュリティ設定ミスなどの脆弱性の中には、動的に検査することで効果的に検出が可能な脆弱性が多くあります。
また、効果的に脆弱性を見つけるには、専門家による脆弱性診断が必要になることもあります。しかしこの方法はコストが高く、実施できるタイミングも限られているため、頻繁なテストや開発初期段階での問題発見は難しいのが現実です。また、診断範囲が費用によって制限されることが多く、見落としのリスクも残ります。

こうした課題を解決する手段として有効なのがDAST(動的アプリケーションセキュリティテスト)です。GitLabのDASTはCI/CDパイプラインに組み込むことで、開発途中や機能統合のタイミングでも繰り返しテストが可能となり、問題を早期に発見して対応できます。この取り組みは、「シフトレフト(SHIFT LEFT)」と呼ばれ、開発工程の早い段階でセキュリティテストを行うことにより、後戻りのコスト削減につながります。

さらに、DASTは何度でも繰り返し実行できるため、コストを気にせず開発者自身が開発したWebアプリケーションに対して積極的にセキュリティテストを行えます。これにより、チーム全体のセキュリティ意識向上やノウハウの蓄積が期待できます。
また、外部の脆弱性診断に比べて費用や解析範囲の変動が少ないため、脆弱性検出の精度向上や修正後即時の再検証も効率よく実施できます。

GitLabは、開発からセキュリティ、運用までを一元管理する統合DevSecOpsプラットフォームとして、DASTをはじめとした多彩なセキュリティ機能を提供しています。本記事ではGitLabのDASTに焦点を当て、その特徴や導入メリットについて詳しく解説していきます。

DASTとは

DASTとは、実際に稼働しているアプリケーションを対象に外部から攻撃をシミュレーションし、脆弱性を検出するセキュリティテスト手法です。
ブラックボックス型の検査であり、攻撃者と同じ立場でリクエストを送り、レスポンスを解析することで潜在的なセキュリティ上の問題を洗い出します。

DASTとよく比較されるのが、ソースコードを静的に解析するSASTです。それぞれの特徴は下記の通りです。
 ・SASTは開発工程でソースコードを精査し、潜在的なバグや脆弱性を検出するのに適しています。
 ・DASTはアプリケーションが「実際に動作している状態(検証環境やステージング環境)」で脆弱性を検証します。設定ミスや外部連携の不具合など、コード解析だけではわからない問題も検出が可能です。
両者は対立するものではなく、SASTとDASTを併用することで、セキュリティテストの網羅性を高めることが重要です。

GitLab DASTの強み

GitLab DASTは、開発とセキュリティを密接に結びつけるための機能として設計されています。単なる脆弱性のスキャンに留まらず、開発サイクル全体に組み込めるセキュリティテストを実現できる点に強みがあります。
ここでは、GitLab DASTの強みを3つ紹介します。

脆弱性の検出と実用的なレポート

GitLab DASTの1つ目の強みは、幅広い脆弱性の検出と解析結果を視覚的に確認できる脆弱性レポートの提供です。GitLab DASTはアプリケーションを実際に実行しながら挙動を解析し、クロスサイトスクリプティング(XSS)やSQLインジェクションなど、実運用で問題となる脆弱性を幅広く検出します。

GitLab DASTの解析によって検出された脆弱性は脆弱性レポートとして確認が可能です。
脆弱性レポートは単なる脆弱性の羅列ではなく、リスクの深刻度(Critical/High/Medium/Low)や脆弱性の概要を含む形式で提供されます。
また、脆弱性レポートでは、パイプラインで実行されたSASTや依存関係スキャンなど他のセキュリティスキャン結果も併せて一元的に参照できるため、セキュリティ状況の全体像を把握しやすくなっています。

ブラウザベースのアナライザーによる高度な解析

GitLab DASTの2つ目の強みは、ブラウザベースのアナライザーによる解析です。GitLab DASTは独自のブラウザベースのアナライザーをスキャナーとして使用しており、実際のブラウザ挙動をシミュレートしてアプリケーションを解析します。
そのため、シングルページアプリケーション(SPA)やJavaScriptによる動的コンテンツにも脆弱性の解析が可能です。また、False-Positive(偽陽性)の削減にも力を入れており、高い精度の解析が可能です。
さらに、複数ステップにわたるログイン手順や多要素認証に対応しており、多様なアプリケーションに対して効果的な脆弱性の検出を実現しています。

CI/CDへの統合

GitLab DASTの3つ目の強みは、セキュリティテストを自動化して開発のフローに組み込める点です。
GitLabのCI/CDパイプラインにDAST実行のルールを設定することで、リポジトリへのプッシュやマージのタイミングで自動的にテストが実行され、脆弱性の解析が継続的に行われます。
さらに、DASTを組み込んだCI/CD定義ファイルを他のプロジェクトに適用することで、組織全体でDASTを標準的なセキュリティポリシーとして定着させやすい点も大きな魅力です。

GitLab DASTのテスト範囲や検出可能な脆弱性

GitLab DASTは、主に検証環境やステージング環境などリリース前の環境にデプロイされたWebアプリケーション、Webサイト、APIを対象に動作します。
SASTとは異なり、実際にサービスがユーザからのリクエストに応答している動作状態の振る舞いを検査することで、実環境に近い試験が可能となります。

GitLab DASTでは以下のような脆弱性の検出が可能になります。

  • クロスサイトスクリプティング(XSS)
  • SQLインジェクション
  • 識別と認証の失敗
  • 任意コード実行
  • OSコマンドインジェクション
  • パストラバーサル
  • クロスサイトリクエストフォージェリ(CSRF)

これらの脆弱性は、Webアプリケーションのセキュリティを著しく低下させるため、早期発見と対策が非常に重要です。GitLab DASTを活用することで、実際の動作環境における潜在的なリスクを効率的に検出・軽減できます。
検出可能な脆弱性の詳細については公式ドキュメントよりご確認ください。

また、GitLab DASTは以下の特徴によって他の脆弱性解析ツールと差別化されています。

  • 実際のハッキング手法をシミュレート
    攻撃者が行う手法をシミュレートし、より現実的な脆弱性検出を実現。
  • ソースコードを直接解析しない
    静的解析(SAST)とは異なり、ソースコードは分析対象外。動的に動いているアプリケーションの挙動をチェック。
  • 言語に依存しない
    使用しているプログラミング言語に関係なく検査可能なので、多様なプロジェクトで活用可能。
  • CWEベースの結果を提供
    共通脆弱性識別子(CVE)ではなく、共通脆弱性タイプ一覧(CWE)で報告し、脆弱性の種類に焦点を当てる。
  • 実動作環境での検証が可能
    実際に動作しているアプリケーションに対して検証を行い、動的な挙動を伴う脆弱性の検出が可能。

GitLab DASTのスキャンプロセスとテスト方法

GitLab DASTは自動的にWebアプリケーションの脆弱性を検出するために、以下のような複数の段階的な処理を行います。

1. 認証 (Authentication)
まず、スキャナーは対象アプリケーションに対して認証を試みます。これは認証が必要な機能や領域も含めて、できるだけ広範囲にテストを実施するためです。もし認証に失敗した場合は、スキャンは中断され、CI/CDのジョブも失敗として扱われます。

2. アプリケーション探索 (Discovery)
認証が成功すると、次にスキャナーはアプリケーションの画面UIやAPIエンドポイントなどを把握するためにクローリングを開始します。リンクの追跡、ボタンのクリック、フォームへの入力など、ユーザ操作を模倣しながら対象範囲を発見します。

3. パッシブスキャン (Passive Scan)
クローリング中に取得したHTTP通信やページの内容を解析し、既知の脆弱性や問題の兆候を探します。この段階は通信の内容を解析するだけなので、アプリケーションに影響を与えずに安全に実行できます。

4. アクティブスキャン (Active Scan)
発見したパラメータや入力ポイントに対して、実際に悪意あるペイロードを注入して脆弱性を検証します。この動的な検査により、SQLインジェクションやXSSなど、攻撃が成立するかどうかを実際の動作を通じて判断します。

このプロセスによって、攻撃者と同じ視点からWebアプリケーションを検査し、開発サイクルにフィードバックすることが可能になります。

また、GitLab DASTのテスト実行方法として、CI/CDパイプラインルールに基づく継続的な自動実行と任意のタイミングでのオンデマンド実行の2つがあります。
柔軟にDASTの実行ができることで、開発サイクルの早期段階からリリース直前・運用段階まで、セキュリティの継続的な担保が可能になります。

GitLab DASTが解決する課題

1. セキュリティテストの後回し

従来の開発プロセスでは、セキュリティテストはリリース直前にまとめて行われることが多く、発見が遅れた脆弱性の修正コストが高騰するケースがありました。
GitLab DASTではCI/CDパイプラインに組み込むことで、パイプラインのルールに基づいて自動でスキャンが実行されます。セキュリティは「後付け」ではなく、日常的な開発の一部として機能するようになります。
そのため、セキュリティの早期対策が可能となり、手戻りリスクやコストの削減が可能になります。

2. SASTでは見えないリスクへの対応

SASTはコードの品質や潜在的なバグ検出に有効ですが、アプリケーション実行時の挙動に依存する脆弱性まではカバーできません。
GitLab DASTはアプリケーションを実際に実行しながら検証を行うため、SASTでは発見できない脆弱性を検出可能です。
さらに、ブラウザベースのアナライザーによりSPAや複雑なフロントエンドも正しく扱うことができるため、様々なアプリケーションに対して精度の高い診断を実現します。

3. ツール分断と一元化

従来の開発工程では、ソースコード管理、CI/CD、セキュリティテストがそれぞれ別のサービスで運用されるケースが多く、結果が分散して管理が煩雑になりがちでした。複数のツール間で情報をやり取りする必要があり、調査や修正対応に多くの労力がかかっていました。
GitLabはソース管理からCI/CD、セキュリティテストまでを一つのプラットフォームで提供しています。
GitLab DASTの検出結果はそのままマージリクエストやイシューに連携ができるため、開発とセキュリティの情報を一元管理できます。
これにより、ツール分断の解消と効率的なワークフローを実現できます。

お問い合わせ

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

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

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

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

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

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

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

開発プロセスのセキュリティを強化するGitLab Advanced SASTの特徴とは? | aslead Magazine 野村総合研究所(NRI)