Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
GitLabを活用したDevSecOps
Search
k1nakayama
November 14, 2023
Technology
500
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitLabを活用したDevSecOps
k1nakayama
November 14, 2023
More Decks by k1nakayama
See All by k1nakayama
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
2
230
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
410
GitLab Duo with Amazon Q の機能実装を試してみた
k1nakayama
0
190
GitLab Ultimateを用いたDevSecOps実践事例
k1nakayama
0
250
GitLabを活用したクラウドネイティブ アプリケーションセキュリティ
k1nakayama
0
240
サーバーレス開発を円滑に進めるための実践DevSecOps
k1nakayama
1
570
大容量データをDynamoDBで扱う際のMomento導入検討
k1nakayama
0
940
Deep Dive on DevOps for Serverless Applications
k1nakayama
0
390
Access to multiple microservices on AWS
k1nakayama
3
1.7k
Other Decks in Technology
See All in Technology
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
0
140
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
900
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.3k
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
200
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
1
530
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
1.9k
SREは、MCPとAutopilotをこう使え!
kazumax55
2
820
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
29
24k
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
160
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
GitHub's CSS Performance
jonrohan
1033
470k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Faster Mobile Websites
deanohume
310
32k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Chasing Engaging Ingredients in Design
codingconduct
0
310
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Optimizing for Happiness
mojombo
378
71k
Transcript
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを活用したDevSecOps Keiichi Nakayama
Vice General Manager Cloud Partner Group CHARA-WEB Co., Ltd.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 自己紹介 • 中山
桂一 ( @k1nakayama ) • 株式会社キャラウェブ クラウドパートナーグループ 副部長 • クラウドインテグレーション事業をリード • AWS Community Builders (Serverless) • AWS x Serverless / GitLab / DevSecOps
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 会社概要 ISO/IEC 27001:2013
& JIS Q 27001:2014 クラウドに関するコンサルティング、設計、 構築、運用、管理 における認証
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLab Features AI-powered
DevSecOps Platform GitLabはDevSecOpsのプラットフォームであり、ソフトウェア開発 ライフサイクル(SDLC)全体を通じて一気通貫で管理が行える
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabの主な機能 Ø ソースコード管理(SCM)
Ø CI/CD Ø イシュートラッキング/ Portfolio Management Ø コードレビュー Ø Wiki Ø Pages Ø タイムトラッキング Ø セキュリティテスティング Ø Review Apps Ø 各種レジストリ Ø サービスデスク Ø 依存パッケージ管理/SBOM Ø バリューストリーム分析 Ø Web IDE / Remote Development
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. CI/CD GitLabのCI/CDは、`.gitlab- ci.yml`に、ジョブの定義を指定
することで、様々なテスト、ビル ド、デプロイを実現することが可 能です。 ジョブ毎にそのジョブが適用さ れるルールを設定できるほか、 実行環境として使用するDocker Imageを指定したり、ジョブの依 存関係や依存するファイル等を 定義することが可能です。
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. ポートフォリオマネジメント GitLabでは、イシュートラッキン グの機能と併せて、Epicやマイ
ルストーンという機能を提供して います。 Epicでは、イシューよりも大きな テーマに対するスケジュールや 関連するイシューを管理し、マイ ルストーンではリリースに向け た期間内で処理するべきイ シューの進捗等を管理すること ができます。 出典:GitLab
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. DevSecOpsとは セキュリティへの取り組みを早い段階に組み込み(シフトレフト)、 手戻りを最小限に抑える
セキュリティ診断 セキュリ ティ診断
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. シフトレフトによる効果の具体例 Ø ストレージの暗号化をせずデプロイし、公開してしまったが、リ
リース後の監査により、社内のセキュリティポリシーに違反して いることが判明 u既にデータが入り始めており、過去データのマイグレーション と、暗号化設定済みのストレージに移行することになり、本来 必要なかった作業が大幅に発生 ü IaCスキャンを設計後の早い段階などで実施していたら、 暗号化設定を追加するだけで済んでいた
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. シフトレフトによる効果の具体例 Ø 自社のSaaSサービスに対して、AGPLライセンスを使用してい
る疑いがある旨の問い合わせと、その場合にサービス全体の コード開示を要求する指摘が入った u1つの依存ライブラリのライセンスを管理できていなかったこ とで、ビジネスにおいて致命的な問題に発展した ü テスト段階において、依存関係スキャンや依存ライブラリに おけるライセンスチェックを行っていたら、公開前に他のラ イブラリに差し替えることが出来ていた
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを使ったセキュリティテスト uSAST(Static Application
Security Testing) ソースコードを解析し、脆弱性を検出する 25種類もの言語やフレームワークに対応 uDependency Scanning パッケージマネージャーの依存関係から、既存のライブラリの脆 弱性を検出する 併せて、各パッケージのライセンスをチェックする uSecret Detection ソースコード内のシークレット等の秘匿情報漏えいをチェックする
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを使ったセキュリティテスト uContainer Scanning
Dockerベースのアプリケーションについて、イメージや使用され ているライブラリ等についての脆弱性を検出します uInfrastructure as Code Scanning(IaC Scan) CloudFormationテンプレートやTerraform、OpenAPI、 Dockerfileなど、IaCを解析し、ベストプラクティスに沿っていない 点を検出します AWS CDKやServerless Framework等もCloud Formationテン プレートとして出力することで解析可能
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを使ったセキュリティテスト uDAST(Dynamic Application
Security Testing) URLに対しWebアプリをクローリングし、動的に様々なリクエスト を実際に行うことで、脆弱性を検出する uAPI Fuzz Testing OpenAPIドキュメントに沿って、実際にランダムなリクエストを APIに行うことで、脆弱性を検出する
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを使ったその他のテスト uCode Quality
ソースコードを解析し、ソースコードの保守性やスタイル等のコー ド品質をチェックします uBrowser Performance Testing Webサイトのレンダリングパフォーマンスを測定します
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabでのセキュリティテスト実施設定 GitLabのCIの設定を記述する 「.gitlab-ci.yml」に、右記のよう
なGitLabが提供するテンプレー トの読み込み設定を追加するだ けで、各種セキュリティテストが 有効化され、実施される ※ DAST、Browser Performance Testな どは、CIの中でアプリケーションをデプロイ し、結果のURLを渡す必要がある stages: - build - test - deploy - dast - performance - cleanup include: - template: Code-Quality.gitlab-ci.yml - template: Jobs/SAST.latest.gitlab-ci.yml - template: Jobs/Secret-Detection.latest.gitlab-ci.yml - template: Jobs/SAST-IaC.latest.gitlab-ci.yml - template: Jobs/Dependency-Scanning.gitlab-ci.yml - template: DAST.latest.gitlab-ci.yml - template: Verify/Browser-Performance.gitlab-ci.yml 上記は、Code Quality、SAST、Secret Detection、IaC Scanning、Dependency Scanning、DAST、Browser Performance Testingを実施する場合の設定
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. マージ前にテスト結果を確認し判断 フィーチャーブランチで変更を行 い、マージリクエスト
(MR,GitHub等でいうところのプ ルリクエスト)を行う画面上で、 それぞれのセキュリティテストの 結果を確認でき、このままマー ジを承認してよいかを判断する ことができる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. セキュリティポリシー、コンプライアンス テスト結果に応じて、特定のライ センスが使用されていることが
検出された場合や、脆弱性が検 出された場合などに、特定の人 や一定のロールを持つ人の承 認を一定数得られなければマー ジできない、といったルールを設 定できます。 また、特定のテストを実行してい なければマージ出来ないという ポリシーも設定できます。
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. マージ後も継続的に脆弱性を一元管理 マージ後にプロジェクトに残され た脆弱性について、脆弱性ダッ
シュボードにて一元管理でき、 それぞれの脆弱性について、ト リアージして管理することが可 能。 必要に応じてワンクリックで Issue化することもできる。
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. AIを活用した脆弱性対応 脆弱性として検出される内容は 多種多様なものがあり、セキュ
リティの専門家であっても、その 脆弱性についての説明や対応 方法を全て提示することは難し いです。 GitLabは、AIを活用し、ボタン1 つで脆弱性の説明、脅威の内 容、対応策を説明します • レビュアーの提案 • コードの提案(Visual Studio Code等 のIDE上で、コード提案を受けながら コーディングを進められる) • コードの説明(選択したコード部分が 何をしているコードかを説明する) • GitLab Chat • マージリクエストのサマリー • マージリクエストに対するレビューの サマリー • マージリクエスト時のコードに対する テストコードの生成 • イシューのディスカッションについて のサマリー
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. デプロイまでの基本フロー コードプッシュ毎に セキュリティテストの実行
マージ後も再度 セキュリティテストの実行 コードプッシュ毎にReviewAppを デプロイし、実際のアプリを対象 にDAST等も行える ※マージしたら ReviewAppやフィー チャーブランチは自動的 に削除する まずはマージリクエストを作成し、 同時にフィーチャーブランチ作成
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 設計段階の成果物としてIaC Ø IaCでインフラのセキュリティを固める
クラウド上でのイベントフローなどを設計した上で、全体的なアー キテクチャを設計したら、AWS CDKやTerraform等で全体的な コンポーネントを定義し、APIについてもOpenAPIドキュメント (Swagger)を作成しIaCスキャンにかける ü アプリケーション構築前から、足回りのセキュリティを考慮して おくことで、アプリケーション開発時に実装するべき内容が明 確になり、セキュリティ対応に掛ける時間が短縮できる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. ReviewAppを必ずデプロイ Ø 実際にデプロイすると網羅的にチェックできる
マージリクエスト時に変更されたコードだけ見ても、本当に意図し た通り動くかを正確に見極めることは難しく、マージした後で実 際にデプロイしたら動かないだと、全体的な手戻りが発生する ü 実際のデプロイされた環境があれば、コードと併せて実際の 意図した動きをするかを確認できるだけでなく、ReviewAppに 対するDASTやPerformance Test、Fuzz Testなどを実行する ことができる ü クラウド上の各種サービスに対する権限設定が正しいかも、 実際の動きをみて確認できる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. WAF等での対応策も検討 Ø 全部の脆弱性を潰してからリリースは非現実的
プロジェクトの規模感によっては、最初からDevSecOpsを実践し、 初期段階からセキュリティテストをしていても、大量の脆弱性の 指摘がでることも ü 全部対応することが絶対ではなく、市場への価値提供のリー ドタイムを優先するべき状況もあり得る ü AIによる脆弱性の説明機能を活用し、脅威や攻撃手法の把 握を行い、必要に応じてWAF等で軽減処置を行うことも検討 するべき
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. まずはセキュリティテストから始めてみる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. DevSecOpsが上手く進められているか Four Keys
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. Four Keys
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 自サービスの状態を知る GitLab Blog
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 開発フェーズで改善できるところはないか? 上記は、とあるプロジェクトのバリューストリーム分析をカスタム設 定により、開発フェーズ毎に分析したものです。
イシューがBacklogに入った後、1日程度後で着手され、そのイ シューは7時間で構築が完了しレビューに移行しています。そして、 レビュー状態が1日経過して、ようやくリリース出来る状態になって いることが分かります。 これを見ることで、このチームは、レビューをもっと早く進められれ ば、市場への価値提供が1日早く改善できることが分かります。
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 導入効果 Ø コード品質が向上
脆弱性対応を進めやすくするためにも、コード品質を上げてコー ド修正がしやすい形に変えていこうとするため、コード品質が向 上する Ø スキル向上 脆弱性対応を進めるために、自分たちが持っていない知識を調 べて対応するため、広い範囲での知識が身につきやすい Ø 手戻りが少なくなる 早い段階で網羅的にテストするため、手戻りが少なくなり生産性 向上していく
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 導入効果 Ø マージ時の心理的ハードルが下がる
ReviewAppにより実際に動くことをマージ前に確認できることや、 様々なテストの結果、指摘がない状態でレビュー依頼ができると、 レビューイ側も自信をもってリクエストできる。 レビュアー側も同様に、自分の確認漏れによるマージ後の問題 を気にすることが少なくなり、スムーズにレビューが行える Ø クラウドのベストプラクティスに対応できる IaCスキャンの結果に対応していくことで、必然とクラウドのベス トプラクティスに対応していくことができる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. まとめ ØGitLabはSDCL全般に必要な、網羅的な機能を提供している ØDevSecOpsの実践には、GitLabを使うことで一気通貫で解決
ØGitLabのセキュリティテスティングは、アプリケーションセキュリ ティのテストに必要な各種テストを実行できる ØIaCにより、クラウドのベストプラクティスに対応 ØAIの活用で、セキュリティ専門家不在でも内製で対応可能 Øバリューストリーム分析で、開発生産性を向上させられる
© 2023, CHARA-WEB Co.,Ltd. All rights reserved.
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLab導入支援 • GitLabを活用したCI/CDの構築支援
• GitLab Self-Managed版 環境構築 (AWS上での構築) • GitLab Runner(Specific Runner)構築(AWS上での構築) • GitLab活用についてのコンサルティング • ラベル運用の自動化支援 • AWSとのインテグレーション支援 • 各種ハンズオンやFree Trialのご提供
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. AWS導入支援 • サーバーレス関連を中心としたアドバイザリー
AWS Lambda SDP 取得済み • 開発内製化支援(顧客と共創する形での開発支援など) • AWSアカウントリセール Solution Partner Program 取得済み • Momento x AWSのインテグレーション Momento リセラー
Accelerate your business with the cloud.