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を活用したクラウドネイティブ アプリケーションセキュリティ
Search
k1nakayama
October 25, 2023
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitLabを活用したクラウドネイティブ アプリケーションセキュリティ
k1nakayama
October 25, 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
240
GitLabを活用したDevSecOps
k1nakayama
1
490
サーバーレス開発を円滑に進めるための実践DevSecOps
k1nakayama
1
560
大容量データをDynamoDBで扱う際のMomento導入検討
k1nakayama
0
920
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
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5.3k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
12
1.8k
ゼロをイチにする仕事が終わったあと
smasato
0
320
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4k
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
2.8k
SRE Next 2026 何でも屋からの脱却
bto
0
100
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
2.9k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
AI Driven AI Governance
pict3
0
290
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
220
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
150
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
320
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
340
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Invisible Side of Design
smashingmag
301
52k
Embracing the Ebb and Flow
colly
88
5.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
270
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Practical Orchestrator
shlominoach
191
11k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Bash Introduction
62gerente
615
220k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Transcript
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. GitLabを活用したクラウドネイティブ アプリケーションセキュリティ 〜IaCからAIまでモダンな開発手法の実践〜
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. 企業が抱える課題 クラウドを活用した開発内製化を進める
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 開発内製化を進める上での課題 Ø 社内のエンジニアリソースが限られる
Ø クラウドを活用できるだけの専門的な知見を持っていない Ø 少人数で継続的な開発・運用を行うことは難しい サーバーレス等のクラウドネイティブアプリケーションで構築 GitLabを活用したDevSecOpsを導入する
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. なぜサーバーレス(≒クラウドネイティブ)か AWS Lambda
の セキュリティの概要 アプリケーション自体や関連する設定等における責任範囲に限定 されており、アプリケーション開発・運用に集中することができる 責任共有モデル
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. なぜGitLabを活用したDevSecOpsか AI-powered DevSecOps
Platform GitLabはDevSecOpsのプラットフォームであり、ソフトウェア開発 ライフサイクル(SDLC)全体を通じて一気通貫で管理が行える
© 2023, CHARA-WEB Co.,Ltd. All rights reserved. 既にセキュリ ティテストは やってるから
OK? DevSecOpsっ てDevOpsと 何が違うの? 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. 導入効果 Ø コード品質が向上
脆弱性対応を進めやすくするためにも、コード品質を上げてコー ド修正がしやすい形に変えていこうとするため、コード品質が向 上する Ø スキル向上 脆弱性対応を進めるために、自分たちが持っていない知識を調 べて対応するため、広い範囲での知識が身につきやすい Ø 手戻りが少なくなる 早い段階で網羅的にテストするため、手戻りが少なくなり生産性 向上していく?
© 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. まとめ Ø変化の早いマーケットに対し、柔軟に対応するためには、クラウド ネイティブなアプリケーションを、内製で開発するべき
Øセキュリティ対応を含めてスムーズに開発を進めるためには、 DevSecOpsを導入する ØDevSecOpsの実践には、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とのインテグレーション支援
Accelerate your business with the cloud.