公開:2025年10月21日

7分で読めます

高度なSASTでより高速かつスマートなスキャンを実現

新たに実現した精度とスピードの向上により、デベロッパーエクスペリエンスが改善され、導入が促進されます。

静的アプリケーションセキュリティテスト(SAST)は、セキュアなソフトウェアを構築する上で不可欠なものであり、コードの脆弱性が悪用される前に特定できるよう、組織を支援します。昨年、GitLab 17.4で高度なSASTをリリースし、開発ワークフローに直接、より高品質なスキャン結果を提供できるようになりました。それ以来、高度なSASTは10万を超えるコードベースで数百万回のスキャンを実行し、リスクを軽減するとともに、お客様が最初からよりセキュアなアプリケーションを構築できるよう支援してきました。

今回、この基盤の強化として、精度とスピードを向上させる一連のパフォーマンス改善を実施しました。これにより、デベロッパーは既存のフローを妨げられることなく、信頼できる結果が得られるようになります。新機能には、すぐに使える精度の向上、カスタム検出ルールの追加機能、そしてマルチコアスキャン・アルゴリズム最適化・差分ベーススキャンの3つの改善によるスキャン時間の短縮が含まれます。これらの改善により、高度なSASTはよりスマートかつ高速になり、設計段階からデベロッパーフレンドリーなセキュリティを実現します。

SAST導入の鍵は精度とスピードの両立

ほとんどのSASTプログラムが失敗する原因は、脆弱性検出の精度が低いからではなく、デベロッパーがセキュリティツールを採用しないからです。多くの場合、SASTのようなアプリケーションセキュリティソリューションは、デベロッパーエクスペリエンスを犠牲にして精度を追求するか、精度を犠牲にしてデベロッパーエクスペリエンスを追求するかのどちらかです。実際には、両方が必要です。精度が低ければ、デベロッパーは結果を信頼しません。スピードと使いやすさがなければ、導入は遅れます。

この両方が揃ったとき、セキュリティは開発プロセスに自然に組み込まれます。これこそが、セキュリティチームが大規模なSASTの導入を成功させる唯一の方法です。そしてこの考え方が、GitLabの高度なSASTロードマップを導いています。

カスタム検出ルールでさらに高い精度を実現

組み込みの高度なSASTルールは、GitLab社内のセキュリティ研究チームの知見に基づいており、初期状態で最大限の精度を実現するよう設計されています。これまでは、ルールの無効化や、ルールの名前、説明、重大度を調整することはできましたが、新たな検出ロジックを追加することはできませんでした。GitLab 18.5では、組織は独自のカスタムパターンベースのルールを定義して、禁止された関数呼び出しのフラグ付けなど、組織固有の問題を検出できるようになりました。その際、GitLabが厳選したルールセットをベースラインとして使用することもできます。カスタムルールの違反は、GitLabの組み込みルールと同じ場所で報告されるため、デベロッパーは1つのダッシュボードから情報を収集できます。

カスタムルールは、組織にとって重要な単純な問題を効果的に検出しますが、高度なSASTがインジェクションや類似の欠陥を検出するために使用する汚染解析には影響しません。カスタマイズは、他のSASTルールセット設定と同様に、シンプルなTOMLファイルで管理されます。その結果、組織のコンテキストに合わせて調整された、より高品質なスキャン結果が得られ、セキュリティチームはより多くのコントロールが、デベロッパーはより明確で実行可能な発見が得られます。

デベロッパーの作業フローを妨げない高速スキャン

SASTスキャンに時間がかかりすぎると、デベロッパーは別のタスクに切り替えることが多く、導入率の低下を導くため、スピードは重要です。

そのため、いくつかのパフォーマンス機能強化に投資し、精度を損なうことなくスキャン時間を大幅に短縮しました。具体的に強化された点は次の通りです:

  • マルチコアスキャン: GitLab Runnerで複数のCPUコアを活用
  • 差分ベーススキャン: マージリクエスト内の変更されたコードのみをスキャン
  • 継続的な最適化: よりスマートなアルゴリズムとエンジンの機能強化

これらの改善は相互に作用し、高速スキャンを実現することで次のような大きな効果をもたらします:

  • マルチコアスキャンにより、通常のスキャン実行時間が最大50%短縮
  • 差分ベーススキャンは、変更ごとに修正されるコードが少ない大規模なリポジトリで最も効果を発揮します。マージリクエストでの高速なスキャンにより、コードレビュープロセスでより迅速なフィードバックを提供するように特別に設計されています。当社のテストでは、多くの大規模リポジトリにおいて、以前は20分以上かかっていたスキャンが、マージリクエストで10分未満で結果を返すようになりました。
  • 最近の社内テストでは、アルゴリズムの最適化により、大規模なオープンソースコードベースでのスキャン時間が最大71%短縮され、Apache Lucene(Java)で最も大きな改善が確認されました。Django(Python)、Kafka、Zulipを含む他のプロジェクトでも、シングルコアモードで50%以上のパフォーマンス向上が確認されました。詳細結果は下記でご確認いただけます。

デベロッパーにとって、これらの改善は、マージリクエストでのより迅速なフィードバック、セキュリティ結果待ち時間の短縮、そして導入プロセスの円滑化を意味します。そして、マルチコアスキャンと差分ベース分析を組み合わせることで、さらなる効果が見込めます。

Pythonスキャン時間を示すグラフ

Javaスキャン時間を示すグラフ

これらのパフォーマンス向上は、プラットフォーム全体でデベロッパーエクスペリエンスを向上させるというGitLabの幅広い取り組みを反映しています。例えば、あるお客様は最近、GitLabのパイプライン実行ポリシー(PEP)に移行し、パイプライン内でのセキュリティスキャン実行方法に対して、より高度な制御性と柔軟性を獲得しました。テンプレートの標準化、キャッシュの追加、パイプラインロジックの最適化により、チームは依存関係スキャンの実行時間を1つのジョブあたり15〜60分かかっていたところが、わずか1〜2分に短縮し、15,000回のスキャン全体で1日あたり約100,000コンピューティング時間(分)を節約しました。これは、よりカスタマイズ可能で効率的なパイプライン実行ポリシーが、より速いフィードバックループ、より高い生産性、そしてより広範な導入につながる明確な事例です。

これらの最新の機能強化により、高度なSASTは、セキュリティチームと開発チームが現代のソフトウェア開発に対応するために必要な精度、スピード、柔軟性を提供します。誤検出を減らし、カスタム検出を可能にし、スキャン時間を短縮することで、セキュリティをデベロッパーにとっての障害ではなく、推進力へと変えます。

GitLabのアプリケーションセキュリティ機能のすべてと同様に、高度なSASTはDevSecOpsプラットフォームに直接組み込まれており、デベロッパーがソフトウェアを構築、テスト、デプロイ、保護するプロセスにおいて、セキュリティが自然な一部となります。

その結果、導入が迅速化され、ボトルネックが減少し、最初からよりセキュアなアプリケーションを提供できます。

今すぐ高度なSASTを使ってみましょう!GitLab Ultimateの無料トライアルをぜひご利用ください。

詳細はこちら

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
Share your feedback

フォーチュン100企業の50%以上がGitLabを信頼

より優れたソフトウェアをより速く提供

インテリジェントなDevSecOpsプラットフォームで

チームの可能性を広げましょう。