DevOpsのテキスト研修
DevOpsで情報セキュリティをどう確保するか
多くの組織では、情報セキュリティへの懸念が、DevOps導入に反対する最も一般的な理由の一つです。しかし、DevOpsは世界で最も安全なシステムを提供するための優れた手法の一つです。
おそらくあなたの組織も含め、多くの組織では、ソフトウェアエンジニアリングチーム全体に占める情報セキュリティの専門家の割合は100分の1です。つまり、100人のチームに、通常は専門家が一人しかいません。その結果、ソフトウェアのセキュリティ問題を解決するまでに時間がかかり、デリバリーが遅れ、さらに悪いことに、顧客に十分な情報セキュリティを提供できなくなります。
ソフトウェアデリバリーの経験から一つだけ学ぶとすれば、プロジェクト終盤で進行を止める問題は厄介で、セキュリティが原因ならさらに深刻だということです。情報セキュリティは、プロジェクトの終わりにチェックを付けるかどうか決める項目ではありません。DevOpsチームの全員が、日々のエンジニアリング業務に取り入れるべきです。
情報セキュリティの専門家にエンジニアリングの初期段階から参加してもらう
情報セキュリティの問題がソフトウェアのデプロイ直前に進行を止め、ボトルネックにならないよう、エンジニアリングの初期段階から専門家に参加してもらいます。デモや初期の計画、レビューの場に招き、ソフトウェアが関わる事業を理解してもらいます。そうすれば、潜在的な情報セキュリティのリスクや問題をより的確に判断でき、エンジニアリングの過程で対応すべきセキュリティとコンプライアンスの目標をDevOpsチームが定める際に、力になってもらえます。
情報セキュリティは日常業務の一部
セキュリティ機能とセキュリティインシデントは、チームがあまり見ないコンプライアンス管理ツールに押し込むのではなく、普段のタスク計画とインシデント管理のツールで追跡します。アーキテクチャ、設計、稼働中のシステムで情報セキュリティの問題が起きたときは、チームにその内容を伝えて学んでもらいます。根本原因を理解し、今後似た状況でどう考え、どう対応すれば同じ問題を繰り返さないかを理解してもらいます。
DevOpsチームが取る情報セキュリティ上の具体策を挙げます。
- セキュリティ上のミスの再発を防ぐ。
- プロジェクトの目標、計画、進捗管理ツールにセキュリティ目標を組み込む。
- デプロイメントパイプラインの自動テストにセキュリティテストを組み込む。
- 特定の製品やサービスの機能をあらゆる角度から包括的にセキュリティ分析したうえで、組織の情報セキュリティのベストプラクティスをまとめた、再利用可能なセルフサービスツールやソフトウェアライブラリを定義する。
- 情報セキュリティを必ずしも専門としないDevOps開発者やDevOps運用エンジニアを育成し、信頼して任せる。
ソフトウェア向けにセキュアなライブラリ、手順、ひな型、アーキテクチャ、設計を作る
再利用可能な資産を作り、次のような重要な領域の情報セキュリティを標準化します。
- クライアントとソフトウェア間の通信とデータ転送。
- データストレージ。
- 安全な実行環境。
- 脆弱性を防ぐためのOS、データベース、サードパーティ製ツール、コンポーネント、その他のインターフェースの設定。
- パスワードの保管。
- パスワードを忘れた場合の対応。
- 顧客の機密情報をログに記録する際の取り扱い。
- クロスサイトスクリプティング(XSS)の防止。
- SQLインジェクション。
- 事業や、事業を行う法制度に固有のその他の情報セキュリティ上の脆弱性。
DevOpsで推奨される情報セキュリティの手法
- 静的解析 コードを解析してバックドアやセキュリティ上の脆弱性を見つけます。
- 動的解析 システムの実行中にバックドアと脆弱性を分析します。本番以外の環境と本番環境の両方で、CPU、RAM、ネットワークI/O、ディスクI/Oの動作を継続的に監視し、分析します。
- 依存関係の分析 自分たちでは制御できないソースコードを含む、外部ツールや依存関係を静的および動的に解析します。サードパーティのツール、ライブラリ、サービスを利用する組織は、それらの情報セキュリティの問題も引き継ぎます。サードパーティ製コンポーネントの未解決のセキュリティインシデントと、ベンダーがそうした問題をどれほど早く解消してきたかも確認してください。
- ソースコードへのアクセスを保護する DevOpsチームは公開鍵基盤を利用し、全員が公開鍵と秘密鍵を一つずつ持つべきです。これにより、コードリポジトリのすべてのチェックイン、チェックアウト、読み取りを認可し、監視でき、すべての変更にそれぞれの実施者が署名します。
- 各環境にセキュリティ監視(テレメトリ)を組み込む システムの利用状況を詳しく調べ、セキュリティ侵害を見つけます。侵害の兆候には、ログインの失敗、パスワードの再設定リクエスト、同じユーザーによる異なる複数のクレジットカードを使った購入など、重要なユーザーイベントが過度に発生することがあります。
まとめ
この章では、DevOpsで情報セキュリティに取り組む方法をいくつか紹介しました。情報セキュリティは、それ自体が技術と科学を要する分野です。この章は専門家になるためのものではなく、DevOpsによるソフトウェア開発・デリバリーが情報セキュリティにどう取り組むかを解説するものです。
DevOpsでは、情報セキュリティを組織全員の仕事にすることで、組織の情報セキュリティとコンプライアンスの目標を支え、エンジニアの日常業務に効果的に組み込めます。世界の特に機動力のある企業が、これが顧客に安全なサービスを提供する方法であることを実証しています。
