Slide 1

Slide 1 text

全てのエンジニアに伝えたい DevSecOpsのお話(入門) yuriemori 2023/12/23

Slide 2

Slide 2 text

Agenda 1. 自己紹介 2. Why DevSecOps Now? 3. ソフトウェアのライフサイクルの中でのDevSecOpsの実践 4. まとめ

Slide 3

Slide 3 text

Yurie Mori(森 友梨映)  Agile Specialist  お仕事  AgileとDevOpsの実践の支援  DevOpsソリューション( Azure DevOps/GitHub )の導入・構築  技術スタック  Azure DevOps, GitHub, Azure, .Net, C#  Please follow me

Slide 4

Slide 4 text

Why DevSecOps Now? DevOps • Dev(開発)とOps(運用)がコラボレーションによる 無駄のない(Lean)ソフトウェア開発 • 継続的に顧客に価値を届けるための人、プロセ ス、テクノロジーの集合 DevSecOps • DevOpsの取り組みにおいてセキュリティをどの ように担保するか • DevOpsの実践はソフトウェア開発、デリバリー を高速化するがその中でどのようにセキュリ ティを担保するかが重要になってくる Security/Complianceの担保 +

Slide 5

Slide 5 text

Maintenance Release Test Build ソフトウェアのライフサイクルの中でのDevSecOpsの 実践(1/3) Plan コラボレーション/ 開発環境の整備 開発 継続的 インテグレーション(CI) ユーザーフィードバック の収集・改善 ソースコード 管理計画 テスト 自動化 継続的 デリバリー(CD) パフォーマンス監視と最 適化 サポート提供/ トラブルシューティング コラボレーション/開発環 境は最小特権の原則に基 づいてアクセス管理がさ れているか シークレット情報をべた 書きしてないか? セキュリティアップデー トはちゃんとしてるか 静的コード解析でソース の中のセキュリティ的な 脆弱性はチェックしてる か? ペネトレーションテスト を定期的に実施している か インシデント発生時のワークフ ローは定義されているか Dev Ops

Slide 6

Slide 6 text

ソフトウェアのライフサイクルの中での DevSecOpsの実践(2/3)  コラボレーション/開発環境は最小特権の原則に基づいてアクセス管理 がされているか  開発チームのメンバーがシステムに対して必要最小限の権限のみを持つよ うにすることで、不正アクセスや権限の乱用を防ぐことができる  シークレット情報をべた書きしてないか?  シークレット情報(パスワードやAPI Key)をソースコードの中にそのまま 置くのは漏洩のリスクがあるので、ソースの中には入れない方がよい  静的コード解析でソースの中のセキュリティ的な脆弱性はチェックし てるか?  SAST(Static Application Security Testing): 実行前のコードを静的解析 して開発プロセスの早い段階でセキュリティリスクを特定して修正すること ができる  ツールでいうとSonarQube, bandit等

Slide 7

Slide 7 text

ソフトウェアのライフサイクルの中での DevSecOpsの実践(3/3)  ペネトレーションテストを定期的に実施しているか  DAST(Dynamic Application Security Testing):実行中のアプリケーションに 対して外部から攻撃を模倣し、セキュリティの弱点を探す  例えばペネトレーションテストで検出される問題は、A: 70%, B: 20%, C: 10% に分類されて、A と B は開発行為の中で解消可能なものだとしたら、 90% はちゃんと開発やってれば防げる)  セキュリティアップデートはちゃんとしてるか  ソフトウェアや依存ライブラリのセキュリティパッチとアップデートは、新 たに発見された脆弱性に対処するために定期的に実施することが必要  インシデント発生時のワークフローは定義されているか  なにかが起きないようにすることも大事だけれども、なにかが起きたときに 迅速に対応できるワークフローも同じぐらい大事。

Slide 8

Slide 8 text

まとめ  セキュリティを開発ライフサイクルに統合しよう  DevSecOpsは単なるSonarQubeとかGitHub Advanced Securityとかのツールセットではな く、セキュリティをソフトウェア開発のDNAに組み込む文化。  セキュリティは後から付け加えるものではなく、日々の開発ライフサイクルの中に 内在するもの。  攻めのセキュリティ  開発ライフサイクルの中で積極的にセキュリティを考慮して対処することで、修正 コストを削減し、信頼できるプロダクトを速やかにユーザーに提供することができ、 後戻りすることなく前進し続けることができる。  透明性の高いセキュリティ対策によってユーザーとの信頼を築く  明確で透明なセキュリティプロセスはユーザーにとって信頼の証となる