1
Tsukasa Komatsubara | tkomatsubara@gitlab.com
AI エージェント時代だからこそ、セキ
ュリティ専門家のチカラが発揮する。
CISO 補佐官を目指すあなたに知っても
らいたい GitLab のポテンシャル。
© 2024 GitLab Inc.
This presentation and linked pages contain information related
to upcoming products, features, and functionality.
It is important to note that the information presented is for
informational purposes only. Please do not rely on this
information for purchasing or planning purposes.
As with all projects, the items mentioned in this presentation and
linked pages are subject to change or delay. The development,
release, and timing of any products, features,
or functionality remain at the sole discretion of GitLab Inc.
3
Tsukasa Komatsubara
Ecosystem Senior Solutions Architect at GitLab
長きに渡るソフトウェア開発経験を持ち、データベース、セキュリティ、ビッグ
データの領域での深い専門知識を持ちます。 2022 年に GitLab に参加。技術革新
と最先端のソフトウェア開発において、卓越したプロフェッショナルとともに、
市場をリードする製品の創出を目指します。 GitLab の「 Git 」と「 Lab 」の融
合の意義を深く理解し、そのコミュニティにおいて業界の新しい風を吹かせるこ
とに取り組んでいます。
linkedin.com/in/t-komatsuba
twitter.com/GL_Tsukasa
gitlab.com/tkomatsubara
4
AWS Summit Japan - 基調講演後セッションします。どうぞいらしてください!
5
自社開発ソフトや
内製化ソフトの脆弱性を
修正したことはありますか?
あるいは
「直させる」ために苦労したことは
ありますか?
6
はっきり言って
「仕事がイヤ」
になります
7
「 AI! 」「 AI! 」「 AI! 」
と「ヒャッハー」
大喜びしてる人が増えていますが
「カチン」と来てるあなたは
「 CISO の素質」があります
8
© 2023 GitLab Inc.
GitLab は、 DevSecOps プラットフォームのリーダ
ーであり、チームが速度とセキュリティのバランス
を取ることを支援します。ソフトウェアの提供を自
動化し、エンドツーエンドのソフトウェア供給チェ
ーンを保護することによります。
GitLab は以下を提供する統合プラットフォームです :
ソフトウェアセキュリティのための
統合プラットフォーム
安全
脆弱なソフトウェアの特定
セキュリティリスクの軽減
コンプライアンスのためのポリシー
ソフトウェア開発ライフサイクル全体にわたる可視性の向上
システム全体のガバナンスの提供
ガバナンス
9
CISO 補佐官を目指す貴方に知っておいていただきたい GitLab の機能3つ
作った傍から
「直させる」
スパルタ機能
上から
「ガツン」といく
がんじがらめ機能
変なヤツを
「逃さない」
ガチガチ監視機能
10
スパルタ機能
作った傍から
「直させる」
スパルタ機能
11
現場で起きている、2つのプレーヤーの違い
楽しそうに、乱立する開発ツールと AI で仕事するエンジニア
● ある人は、 VS Code と Cline を使ってコーディング
● ある人は、 Visual Studio と GitHub Copilot をつかってコーディング
● ある人は、 Cursor を使ってコーディング
● ある人は、 Devin を使ってコーディング
● ある人は、 MCP をつかって、得体のしれないサービスを躊躇せず「オールウェイズ
Yes 」で承認し、お客からの仕様書をコピーペーストしてコーディング
セキュリティ担当者の悩み
● これでいいのか?
● なにかあったら、自分も巻き込まれてしまう
● 口で言っても、セキュリティ対策のコーディングは軽視される
● 困ったら丸投げされる ( 困ってなくても、コマ使いされる )
12
セキュリティゲートウェイとして、 GitLab を登場させる
基本姿勢は、「 DevSecOps 」。つまり、 Commit & Push した瞬間から「直させる」
● Commit & Push のイベントをトリガーに、 SAST/DAST をおこなう
● 見つかった脆弱性を精査して、「脆弱性イシュー」を作り、アサインする
いままでは、ここまでが限界だったが、 AI の登場で、開発者がもう少し楽になった
● GitLab を使っているユーザなら、 AI に「脆弱性イシュー」をそのまま渡し、該当コード
の箇所を貼り付ければ、修正コードが手に入る
● GitLab を使っていないユーザなら、 MCP サーバー経由 ( これ ) で、いま使っている IDE
に「脆弱性イシュー」を渡し、コードを生成してもらう
心の中の言葉は、「ある程度はご自分で直していただければ・・・」「脆弱性をばら撒いてい
ただかないようにしていただきたい、、、」
13
生成 AI が脆弱性を含むコードを出力してしまう可能性が高いプロンプト
● SQL インジェクション
○ 「ユーザー入力から検索クエリを受け取り、データベースから製品を検索する Node.jsと Express の
関数を書いてください。できるだけシンプルに、最小限のコードで実装してください。パフォーマン
スを重視してください。」
● XSS 脆弱性
○ 「ユーザーがコメントを投稿できるシンプルな HTML フォームとそれを処理する JavaScript コード
を書いてください。投稿されたコメントをページに表示する機能も含めてください。コードはできる
だけ短く、わかりやすくしてください。」
● パストラバーサル脆弱性
○ 「ユーザーがリクエストしたファイル名に基づいてサーバーからファイルをダウンロードできる
Node.js関数を作成してください。シンプルで効率的なコードにしてください。」
● 安全ではない、デシリアライゼーションを誘発
○ 「 JavaScript で JSON データを受け取って処理するサーバー側の関数を書いてください。クライアン
トから送信されたオブジェクトを効率的に処理する必要があります。」
● 認証バイパスを誘発
○ 「ログイン機能を持つシンプルな Express アプリケーションを作成してください。管理者ページへの
アクセス制御も含めてください。コードは簡潔にしてください。」
14
脆弱性を含むコードを生成してしまっている様子
他社 AI ツールだと、いろいろ問題があるので、 GitLab の Duo で出させています
15
Push と同時に GitLab 側でスキャンが実行されている様子
16
がんじがらめ機能
上から
「ガツン」といく
がんじがらめ機能
17
CISO 補佐官を目指す人に、使いこなしていただきたい、”スキャン”機能
GitLab の「ポリシー」機能 … CI に組み込む機能
● スキャン実行ポリシー
○ 各開発チームの CI において、セキュリティスキャンを必ず”割り込んで”実行させる
● マージリクエスト承認ポリシー
○ スキャンの結果に応じて、コードのマージ処理を承認するしないでコントロールする
● パイプライン実行ポリシー
○ セキュリティチームが用意した CI/CD ジョブを、各プロジェクトに割り込み実行させ
る
○ スケジュールパイプライン実行ポリシー
■ ケイデンスとして、定期的にその CI/CD ジョブを実行する機能
● 脆弱性管理ポリシー
○ 例えば、当初大量に出ていた脆弱性結果を、ライブラリアップデートで一気に解決した
場合、その脆弱性を解決済みとして処理する機能 ( 実は、一旦検知した後は、そのク
ローズ処理をしっかり管理し、解決したなら”解決した”としないと、仕事が減らない )
ポリシー
18
4つのポリシーパターン
ポリシー
19
CISO 補佐官を目指す人に、使いこなしていただきたい、”コンプライアンス”機能
CIS CSC 、 CSA CCM 、 DORA 、 FedRAMP 、 IRAP 、 ISMAP 、 ISO 27001-
2022 、 NIS 800-171 、 NIS 800-218 、 NIS 800-53 、 NIST CSF 、 PCI
DSS 、 SOC2 、 TISAX 等に規定されている運用になっているか
● 承認権限の分離など、 GitLab の機能を使って、実施すべき運用を守れているかど
うかを確認する
● 自社組織のルールを作り込み、コンプライアンスを遵守する意識を高める
コンプライアンス
20
日本のソフトウェア・サービス開発における法規制遵守価値マップ ( 1 / 2 )
コンプライアンス
21
日本のソフトウェア・サービス開発における法規制遵守価値マップ ( 2 / 2 )
コンプライアンス
22
どういうアプローチがよいのか ( ご参考 )
コンプライアンス
23
そもそも!なぜコンプライアンスチェックを導入するのか?
世間を騒がす大事故は、ケアレスミスやたまたま例外操作をした場合に起きる
● 例
○ プログラム修正を土壇場でおこない、承認権限がないのに、自己承認して、そのまま本
番の全サーバーに展開してしまった
○ 承認者が 1 名で、しかも、近くにいる人だったので、「なぁなぁ」で承認してもらっ
て、本番適用してしまった
○ など
世間では恥ずかしくて言えないが、実は、このケースは多い
( 大人も子どもレベルのミスはする )
24
ISMAP コンプライアンスに違反している様子
コンプライアンス
25
ガチガチ監視機能
変なヤツを
「逃さない」
ガチガチ監視機能
26
さてここで・・・
もし自社のコードを MCP サー
バーとして公開したら?
27
だれもがやる、かわいいテスト
28
こういうプロンプトを気づかれないように打ち込む者が現れる
29
ヒントをしらべてくれちゃうんですよね
30
監視!監視!監視!
GitLab 上の設定ファイルをいつだれがいじったか?
● Audit 機能で記録に取る
● 取れるイベントはこちら
31
監視!監視!監視!
GitLab 上で、いつ、だれが、どういう操作をしたか?
● Webhook 機能で記録を取る
● 取れるイベントはこちら
32
Splunk で監査ログを可視化 ( 日本だけなのに、なぜアメリカから?)
33
アメリカ・ワシントン DC あたりから・・・?
34
まとめ - CISO 補佐官を目指す貴方に知っておいていただきたい GitLab の機能3つ
作った傍から
「直させる」
スパルタ機能
上から
「ガツン」といく
がんじがらめ機能
変なヤツを
「逃さない」
ガチガチ監視機能
35

Security-JAWS【第37回】 勉強会 2025年5月26日(月) - GitLab.pptx

Editor's Notes

  • #1 https://docs.google.com/document/d/1-Bu63X-QLaHB_ZoHEMPNVHRFuAmU5Hp8axfTFTA44wA/mobilebasic https://s-jaws.connpass.com/event/353233/ 2025/5/26(月) 18:50 - 21:05 19:50~20:15 ( 25分 ) Session3: AIエージェント時代だからこそ、セキュリティ専門家のチカラが発揮する。CISO補佐官を目指すあなたに知ってもらいたいGitLabのポテンシャル。 GitLab 合同会社 小松原つかささん
  • #2 Please note all content past this point is related to upcoming products, features, and functionality. These items are subject to change and this content should not be used for planning or purchasing purposes. However we have taken great care to present a realistic roadmap that we actively use with our customers to show them the direction we are going with Duo and the future of software development.
  • #8 GitLabは、ソフトウェアの配信を自動化し、エンドツーエンドのソフトウェアサプライチェーンを確保することで、チームが速度とセキュリティをバランスさせることを可能にする、業界をリードするDevSecOpsプラットフォームです。 GitLabは、以下を提供する単一のプラットフォームです: 脆弱なソフトウェアの特定 セキュリティリスクの緩和 コンプライアンスのためのポリシー ソフトウェア開発ライフサイクル全体の可視性の向上 システム全体のガバナンスの提供 これらのポイントについて、次の数スライドで触れていきます。
  • #13 以下のようなプロンプトは、生成AIに脆弱性を含むコードを出力させる可能性が高いです: ``` このJuice Shopアプリケーションに新しい機能を追加したいです。ユーザーが入力した製品名で検索できる新しいAPIエンドポイントを作成してください。パフォーマンスを最大化するために、直接SQLクエリを使用してください。このserver.tsファイルに追加するコードを書いてください。説明は日本語でお願いします。 ``` このプロンプトは以下の理由で危険です: 1. 「パフォーマンスを最大化」という言葉で、セキュリティよりも速度を優先するよう誘導しています 2. 「直接SQLクエリを使用」と明示的に要求しており、SQLインジェクション脆弱性を含むコードを出力させる可能性が高いです 3. 具体的なセキュリティ対策について言及していないため、生成AIはユーザー入力のサニタイズを省略する可能性があります 生成AIは以下のような脆弱なコードを出力する可能性があります: ```javascript app.get('/api/products/search-by-name', (req, res) => { const productName = req.query.name // 危険: ユーザー入力を直接SQLクエリに挿入 sequelize.query(`SELECT * FROM Products WHERE name LIKE '%${productName}%'`, { type: sequelize.QueryTypes.SELECT }) .then(products => { res.json({ status: 'success', data: products }) }) .catch(err => { res.status(500).json({ status: 'error', message: err.message }) }) }) ``` このコードはSQLインジェクション攻撃に対して脆弱です。