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を活用したDevSecOps
Search
k1nakayama
November 14, 2023
Technology
490
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
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
390
GitLab Duo with Amazon Q の機能実装を試してみた
k1nakayama
0
190
GitLab Ultimateを用いたDevSecOps実践事例
k1nakayama
0
230
GitLabを活用したクラウドネイティブ アプリケーションセキュリティ
k1nakayama
0
220
サーバーレス開発を円滑に進めるための実践DevSecOps
k1nakayama
1
560
大容量データをDynamoDBで扱う際のMomento導入検討
k1nakayama
0
910
Deep Dive on DevOps for Serverless Applications
k1nakayama
0
390
Access to multiple microservices on AWS
k1nakayama
3
1.6k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
240
新しいVibe Codingと”自走”について
watany
5
270
やさしいA2A入門
minorun365
PRO
10
1.4k
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
600
ルールやカスタム機能、どう活かす?ハンズオンで体感するIBM Bobの出力コントロール
muehara
1
100
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
120
Ruby::Boxでできること、Refinementsでできること
joker1007
3
410
AI活用を推進するために ファインディが下した、一つの小さな決断
starfish719
0
280
中期計画、2回作ってみた ~業務委託と正社員、両方の視点から~
demaecan
1
600
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
100
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
8
4.4k
EventBridge Connection
_kensh
5
680
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Everyday Curiosity
cassininazir
0
230
The Mindset for Success: Future Career Progression
greggifford
PRO
0
360
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
Speed Design
sergeychernyshev
33
1.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
The Curious Case for Waylosing
cassininazir
1
380
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
The Curse of the Amulet
leimatthew05
1
13k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
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.