Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【GitLab】SAST と Advanced SAST を比べてみた😎
Search
Yosuke Yamashita
March 14, 2025
Technology
0
130
【GitLab】SAST と Advanced SAST を比べてみた😎
Yosuke Yamashita
March 14, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
380
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
420
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
300
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
140
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
140
Greatest Disaster Hits in Web Performance
guaca
0
310
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
210
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
170
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.4k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
230
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
220
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
The Limits of Empathy - UXLibs8
cassininazir
1
220
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
58
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
110
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
410
Automating Front-end Workflow
addyosmani
1371
200k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
67
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
How to build a perfect <img>
jonoalderson
1
4.9k
We Are The Robots
honzajavorek
0
170
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
株式会社ウーブ SAST と Advanced SAST を比べてみた😎 山下 洋輔 @yokucho GitLab
Meetup Hybrid #2
自己紹介 / トピック 山下 洋輔 @yokucho EC事業会社の営業、 受託開発会社のバックエンドエンジニアを経て 現在、株式会社ウーブで色々やるマン トピック
SASTとは Advanced SAST のご紹介 比べてみた!
社内ツール開発でGitLabのSASTを使っていました
SASTとは? Static Application Security Testing = 静的 実行中のアプリケーションではなく、ソースコードがテストの対象 アプリのビルド・デプロイは不要 コードコミットごとに実行可能
つまり、 早期に・低コストで 脆弱性に対応できる
SASTとは? 検知できる脆弱性 SQLインジェクション コマンドインジェクション クロスサイトスクリプティング (XSS) パストラバーサル バッファオーバーフロー XML外部エンティティの脆弱性 GitLabでの有効化
templateを1行追加するだけ!
バージョンアップでAdvanced SASTが追加されました 17.1 実験的機能として導入 17.3 一般機能として提供開始 サポート言語 C# Go Java JavaScript(TS) Python
Ruby 対応予定 C C++ Kotlin PHP Scala
Advanced SAST、使ってみました SASTのテンプレートに加えて 変数を一つ追加するだけ! Advanced SASTの有効化
Advanced SAST、使ってみました 実行時間が長くなったような、 、 、正直よくわからない ジョブ名が advanced に変わった! analyzerが [GitLab
Advanced SAST] に変わった!
一体、何が違うのか? Advanced SAST を「Advanced」たらしめるもの: SAST (semgrep) 分析対象 単一ファイル・関数が主体 Advanced SAST
複雑な脆弱性検出に限界あり 限られたコンテキストにより、 偽陽性(false-positive)が発生しやすい 精度 分析の深さ 複数のファイル・関数を俯瞰 複数のファイル・関数に及ぶ、 複雑な脆弱性の検出が可能 真に悪用可能な脆弱性にフォーカス 偽陽性(false-positive)が少ない クロスファイル・クロス関数 解析
一体、何が違うのか? コードフロー:脆弱性までのフローを視覚化
この機能の背景には... クラウドセキュリティスタートアップの Oxeyeのコードスキャン技術を活用
実際に試してみた 実験用のサンプルコード 脆弱性:コマンドインジェクション
実際に試してみた 関数横断 エンドポイントから到達可能 エンドポイントから到達不可 ①cross-function-vulnerability ③not-cross-funciton-vulnerablity ファイル横断 ②cross-file-vulnerability ④not-cross-file-vulnerability この2つの関数は偽陽性
エンドポイントから 関数を呼び出す
まず、通常のSASTを試してみる 全てのos.system()が 脆弱性として検知された
SASTの実行結果 関数横断 エンドポイントから到達可能 エンドポイントから到達不可 ①cross-function-vulnerability ③not-cross-funciton-vulnerablity ファイル横断 ②cross-file-vulnerability ④not-cross-file-vulnerability 脆弱性レポートとして検知されてしまう=偽陽性
⇨semgrep(パターンマッチ)の限界
一方、Advanced SASTはどうか... 偽陽性の脆弱性が消えた!
①cross-function-vulnerability ③not-cross-funciton-vulnerablity ②cross-file-vulnerability ④not-cross-file-vulnerability 一方、Advanced SASTはどうか... 関数横断 エンドポイントから到達可能 エンドポイントから到達不可 ファイル横断
APIエンドポイントから到達可能な実質的な脆弱性に絞られた
コードフロー それぞれの脆弱性のページから、コードフローを確認できる
まとめ クロスファイル・クロス関数 解析により正確性が向上! 偽陽性が減少し、本当に対処すべき脆弱性への対応に集中できる Advanced SAST:
ありがとうございました