The Secure Developer:MicrosoftのVictoria Almazovaと語るAzureにおけるDevSecOps
Hayley Denbraver
2019年9月26日
0 分で読めます今年2月、Snykは立ち上げました。教育的で、特定のベンダーに依存せず、セキュリティに重点を置いた新しいコミュニティ、The Secure Developerです。Snykは、開発プロセス全体で開発者がセキュリティを意識できるよう支援したいと考えています。The Secure Developerコミュニティは、まさにそれを実現する場です。専門家からセキュリティのベストプラクティスを、親しみやすく前向きな形で学べます。
この7か月間、The Secure Developerでは2週間ごとにオンラインセッションを開催し、マイクロサービスのセキュリティからOWASP Top 10のプロアクティブな対策まで、幅広いテーマを取り上げてきました。
オンラインセッションの価値に懐疑的な方に、最近開催したSecure Developerセッションを簡単にご紹介しましょう。次回のオンラインセッションにぜひご参加ください。
MicrosoftのVictoria Almazovaと語るAzureにおけるDevSecOps
Victoria AlmazovaはMicrosoftのクラウドソリューションアーキテクトです。Azureクラウドでプロジェクトを計画、設計、デプロイする人々を支援しています。その過程で常にセキュリティを念頭に置いており、最近のセッションではまさにその点について話しました。Victoriaは、次のような取り組みについて解説しました。
サブスクリプションレベルでのAzureセキュリティの実装
セキュアなアプリケーションの開発
アプリケーションの安全なデプロイ
コンプライアンスとセキュリティのための本番環境の定期的なスキャン
DevOpsが広まり始めた頃、Victoriaはセキュリティが軽視されるように思えたため、この考え方に懐疑的でした。しかしやがて、DevOpsはセキュリティをより包括的に組み込む機会になると考えるようになりました。VictoriaはDevOpsを、エンドユーザーに価値を継続的に届けるための、人・プロセス・テクノロジーの連携と定義しています。「DevSecOps」という流行語が好きかどうかにかかわらず、セキュリティはDevOpsプロセスの最初から最後まで関与できます。それによって、最終的な成果物の価値をさらに高められます。
DevOpsプロセスにセキュリティを組み込むのは大変に思えるかもしれません。そこでVictoriaが、まず始めるためのポイントをいくつか紹介してくれました。
インフラストラクチャから始めるのは、取り組みやすい方法の一つです。Victoriaは、Azureのサブスクリプションを「プロジェクトごと」「環境ごと」に分けて考えることを勧めています。これにより、プロジェクトや環境ごとに適切な権限と設定を確保できます。ポリシーを透明性のある、先回りしたものにすることも重要です。さらにVictoriaは、初日からAzure Security Centerを活用することを提案しました。
インフラストラクチャに関する提案の締めくくりとして、VictoriaはInfrastructure as Code(IaC)のアプローチが不可欠だと強調しています。IaCとは、DevOpsチームがソースコードに使用するものと同じバージョン管理を用いて、宣言的なモデルでインフラストラクチャを管理することです。IaCモデルによって環境のドリフトを防ぎ、一貫性のある環境を実現できます。
Victoriaが最後に紹介したセキュアなインフラストラクチャのポイントは、本番環境の更新を継続的インテグレーション/継続的デリバリー(CI/CD)パイプライン経由に限定し、手作業での更新を決して行わないことです。CI/CDパイプラインは、セキュリティ施策の要です。続いてアプリケーションセキュリティの話に移り、CI/CDパイプラインの各段階でセキュリティがどう関わるのかを解説しました。Victoriaによると、CI/CDパイプラインは次の段階で構成されます。
コミット前
コミット(CI)
受け入れ(CD)
本番
運用
以下の各段階にセキュリティ対策を組み込むことで、セキュリティを強化できます。
コミット前
コミット前の段階では、開発者が新しいコードを書いたり、既存のコードを変更したりします。この段階でセキュリティに投資すると、後々大きな効果が得られます。パイプラインの早い段階ほど変更が容易だからです。脅威モデリングの実施、セキュリティ関連のIDEプラグインの利用、チームのセキュアコーディング規約の順守、ピアレビューの実施に適したタイミングです。
コミット(CI)
コミット段階では、さまざまなプロセスを自動実行するよう設定できます。CI/CDパイプラインのこの段階で考慮すべきセキュリティ対策には、静的コード解析、セキュリティユニットテスト、依存関係の管理などがあります。
受け入れ(CD)
受け入れ段階で検討すべきセキュリティ対策には、IaC、セキュリティスキャン、クラウド設定、セキュリティ受け入れテストなどがあります。本番環境にリリースする前に、QA/ステージング環境でこれらのテストを実施できます。
本番
本番環境で有効なセキュリティ対策には、セキュリティスモークテスト、設定チェック、ペネトレーションテストなどがあります。
運用
運用段階では、継続的なモニタリング、脅威インテリジェンス、ペネトレーションテスト、責任追及を伴わない事後分析を続けることで、適切なセキュリティ態勢と文化を強化できます。
The Secure Developer
Victoriaはデモと質疑応答でセッションを締めくくりました。プレゼンテーションの全編はこちらからご覧いただけます。Azureクラウドやその他のソリューションにプロジェクトをデプロイする際に、開発者がセキュリティを強化するさまざまな方法を紹介したVictoriaの視点は、とても参考になりました。
The Secure Developerコミュニティは、Victoria Almazovaのような素晴らしいスピーカーをオンラインセッションやポッドキャストにお迎えしています。セキュリティのあらゆる側面について学びたい方は、ぜひコミュニティにご参加ください。皆さまのご参加をお待ちしています。


