2022年12月20日

DevSecOps

DevSecOpsはアプリケーションを保護するための戦略

このブログ投稿では、セキュリティーテストとDevSecOpsについて知っておく必要がある全ての重要な側面について説明します。

DevSecOps_1.png

今日の現代のビジネス環境では、各企業がソフトウェア企業です。従って、企業はソフトウェア開発ライフサイクルを最適化して、ソフトウェアエンジニアリングへの投資を最大限に活用する必要があります。これは、企業がソフトウェアエンジニアリングプロセスの効率と有効性を向上させるために、DevOpsと最新のクラウドネイティブな方法論を導入する必要があることを意味します。企業にはDevOpsチームがありますが、セキュリティーはなぜか取り残されたり、ほとんどの場合無視されたりしています。場合によっては、セキュリティーチームだけに任せていることもあります。

DevOpsが開発組織と運用チームを結び付けるのに対し、DevSecOps(開発とセキュリティーと運用)の文化は、セキュリティーチームの責任を共有するという目的を設定します。昨今では、ほとんど全ての組織が、何らかの形の業務に不可欠なテクノロジーを有しています。インフラのセキュリティーは不可欠なものであり、従業員向けのセキュリティー対策を追加するだけでは十分ではありません。DevSecOpsは、セキュアなコード、リリース管理、自動化されたセキュリティーチェック、セキュリティー制御などにより、セキュリティーを次のレベルに引き上げます。これらは全て、コードがユーザーに届けられる前の開発環境で行われます。つまりDevSecOpsは、開発・運用・セキュリティー担当者の間の橋渡し役を務めるのです。

多くの企業は、自社のソフトウェアシステムと方法とアプリケーションのセキュリティーを確保するのに必要な措置を講じていませんでした。そこで、業界ではDevSecOpsという新しい用語が生まれました。

DevSecOpsの方法論は、NetflixやEtsyやAmazon Web Servicesが、ビジネスの継続性を脅かす激しいサイバー攻撃に直面したときに生み出したものです。DevSecOpsの実装はこれらの企業を、事後対応型のITプラクティスから積極的なアプリケーション開発に移行させ、応答時間を改善しました。この方法論は、開発者がコードを本番環境にプッシュするのにかかる時間を短縮することも目的としています。DevSecOps環境は、規模や業界に関係なく、あらゆる企業で築けます。

 

ソフトウェア開発ライフサイクルにおけるDevSecOps

DevSecOpsは、アプリケーションセキュリティーにアプローチし、後付けではなく正面から取り組むための新しい方法です。これは、セキュリティーをソフトウェア開発ライフサイクル(SDLC)に統合することで、ソフトウェア開発プロセスとアプリケーションを保護するためのアプローチです。DevSecOpsの出現により、セキュリティーに対する考え方や脅威への対応方法が変化しました。SDLCでのシフトレフトにフォーカスする一方、セキュリティーが全員の仕事であることを明確にしています。
 DevSecOps_2.png

アーティファクトが作られる前でも、CIシステムを介してセキュリティーの脆弱性についてコードの変更をテストし、各ステージの間に再度テストして、真のアーティファクトが次のステージに渡されていることを確認できます。DevSecOpsは、より安全なコードを使ってSDLC全体にセキュリティーのベストプラクティスを実装することで、セキュリティーへの脅威の発生を予防することを目的としています。

DevSecOpsの利点

組織は、DevSecOpsプロセスを実装することで大きなメリットを期待できます。

最も共通するメリットは、次の通りです。

  • 開発者が脅威に対して取り組むようになり、ソフトウェアリリースに貢献するコードを認識していくにつれて、ソフトウェアの品質が向上し、セキュリティーが構築される。
  • アプリケーションのセキュリティーの穴を見つけて修正する。アプリケーションセキュリティーテストツールを統合した継続的インテグレーション(CI)ツールにより、コードの脆弱性をより明確に示せる。
  • テストプロセスを自動化して、最新の状態に保ち、全ての問題を迅速に解決できるようにする。
  • カスタマーエクスペリエンスと開発者の生産性を向上する。
  • シフトレフトアプローチにより、各組織は、初期段階から安全なソフトウェアを構築できる。これは、顧客がデータ漏洩について心配する必要がなく、より安全なソフトウェアのおかげで、使用しているソフトウェアを完全に信頼できることを意味します。
  • 市場投入までの時間の短縮。DevSecOps戦略により、組織は導入の遅延につながるボトルネックを解消できる。これは、企業がソフトウェアを予定通りに提供し、すぐに導入できることを意味します。
  • チームのコラボレーションの促進。DevOpsの実装により、開発チームと運用チームの間のコラボレーションが促進される。DevSecOps戦略は、セキュリティーやビジネスの利害関係者などの他のチームをプロセスに含めることで、このステップをさらに進めます。

注目すべきDevSecOps戦略

DevSecOpsは、セキュリティーを開発プロセスに統合することで、これらの問題に対処するのに役立ちます。また、開発環境を保護するのにも役立ちます。これは、サイバー攻撃から保護するための重要なステップです。セキュリティーの問題に取り組み、軽減するためのDevSecOps戦略を以下に示します。

セキュリティー脆弱性の自動テスト

DevSecOpsを実装する際の最大の課題の1つは、セキュリティーテスト段階をSDLCに統合することです。何年もの間、コードのテストは、プロジェクトが終了するまで放置されていました。以前は無視されていたか、自動化されていたとしても、うまくいかないことがよくありました。

DevSecOpsでは、テストをSDLCに統合して自動化する必要があります。コードスキャナーは脆弱性の特定に役立ちますが、正確性に欠けます。また、手動の侵入テストは時間とコストがかかります。自動化されたツールを使用して、脆弱性を検出し、ポリシーとともにセキュリティー基準を適用できます。さらに、セキュリティーツールを使ってコードの脆弱性を特定できます。

DevSecOpsのツールとプラクティスには次のようなものがあります。

  • コードレベルのテストは、コードを検査し、危険なパッケージ、安全でない構成、危険なパラメーターを探すことによって行われる。
  • コードスキャナーは、strcpyなどの安全でない関数や、システムコマンドへのセキュリティーで保護されていない呼び出しを見つけるのに役立つ。
  • 構成管理は、許可されていないユーザーが機密データにアクセスする可能性がある問題を防ぐ。
  • 動的アプリケーションセキュリティーテスト(DAST)を通じて、悪意のあるアクションを引き起こすために操作される可能性のある潜在的に危険なパラメーターが関数に渡される。

Harness Security Testing Orchestration(STO)は、各組織がアプリケーションセキュリティーの脆弱性データに優先順位を付け、非常に安全なアプリケーションを提供しながら、デプロイメントの速度を維持し、再作業を最小限に抑えるのに役立つツールの1つです。

DevSecOps_3.png

DevSecOpsと継続的インテグレーションと継続的デリバリー(CI/CD)

DevSecOps_4.png

DevSecOpsのもう1つの重要な概念は、CI/CDの採用です。CI/CDは、開発チームがコードのコミットを自動化し、コードをビルドしてテストし、指定された環境にデプロイするのに役立ちます。さらに開発者は、本番環境のパイプラインの一部としてアプリケーションセキュリティーを統合することにより、テストを自動化し、アプリケーションコードのセキュリティー問題を見つけることができます。従って、堅牢なCI/CDプラットフォームを備えることはDevSecOpsを実行するための必須かつ前提となる条件です。これは、継続的な監視を開発サイクルに統合するためです。DevOpsパイプラインのさまざまな段階で、脆弱性スキャン、JIRAでの承認、ガバナンスとセキュリティーポリシーの順守、ソフトウェア構成分析などのセキュリティーチェックポイントを設定できます。

開発チームはハードかつスマートにテストする

開発チームは、ハッカーやセキュリティー侵害者のように振る舞う必要があり、SDLCの敷地内に侵入する機会を与えてはなりません。可能な全てのセキュリティー分析およびテストツールを使って開発サイクルを構築します。Harnessのようなプラットフォームがあれば、あらゆるテストスイートとの統合が可能です。CI/CDパイプラインが攻撃を受けないように、簡単なテストからロードテスト、可用性テストまでを構成してください。

 

DevSecOps_5.png

上記のCI/CDパイプラインは、アプリケーションのセキュリティーを保証するさまざまなテストスイートで構成されていることが分かります。

自動化とオーナーシップの文化

DevSecOpsのもう1つの重要な側面は、自動化とオーナーシップの文化です。開発者には、プロセスを個別に自動化する自由が与えられる必要がありますが、コードを所有する必要もあります。これは、セキュリティーリスクを含め、コード内の全ての責任を負うことを意味します。開発者には、プロセスを効率的に自動化するためのツールも提供する必要があります。例えばテストを自動化する場合は、これらのテストを実行するための手順とツールが必要です。OWASP ZAP、Burp Suite、Twistなど、多くのツールが自動化に役立ちます。これらのツールをコード配信プロセスに統合し、さまざまな段階で自動化されたセキュリティーテストをトリガーできます。

アセットの重要度に基づいてリスクを決定する

DevSecOps_6.png

DevSecOpsのさらに重要な側面は、アセットの重要度に基づいてリスクを判断することです。全ての変更を同じように扱うことはできません。大きなリスクをもたらすものもあれば、そうでないものもあります。セキュリティーに関しては、アプリケーションにどんなリスクがあるかを知る必要があります。これは、リスクベースのアプローチを使って実施できます。リスクと影響のマトリックスを使って、リスクを特定し、アプリケーションへの影響に基づいて重大度を割り当てることができます。また、リスクを特定して優先度を設定するのに役立つリスクグレードモデルを使うこともできます。これは全て、HarnessのSTO(Security Testing Orchestration)などのプラットフォームを使って実施できます。

Harness STOには、40以上のセキュリティースキャナーからのセキュリティーログと結果を、結果の単一のダッシュボードに一元化する機能があります。データの一元化により、継続的な改善イニシアチブを始めることもできます。データがサイロ化されていると、開発の結果を分析することがはるかに困難になり、改善の質が低下します。

 

シークレット管理を実施する

アプリケーションには、ある種の貴重な認証情報があります。シークレット管理を通じて、このような認証情報と貴重な情報を確実に暗号化することが非常に重要です。これは、GitHubリポジトリーの認証シークレット、データベースの認証情報などです。そういったものが漏洩すれば、攻撃者は簡単に悪用してセキュリティーに脅威を与えられます。Harnessのようなプラットフォームでは、Harness secret managerを通じて暗号化されるため、アプリケーションの秘密を保持することが非常に簡単になります。また、HarnessシステムによるOOBセキュリティー管理だけでなく、外部セキュリティー管理もサポートします。

DevSecOps_7.pngDevSecOps_8.png

コード変更のセキュリティーレビュープロセスを確立する

アプリケーションにどんなリスクがあるかが分かったら、コード変更のセキュリティーレビュープロセスを確立することが重要です。これは変更を追跡し、各変更を担当するチームメンバーを特定するのに役立ちます。また、コード内のパターンを特定して、脆弱性がないかどうか、最後のコードレビュー以降に未解決の問題が残っていないかどうかを確認するのにも役立ちます。

脅威と異常をリアルタイムで監視

脅威インテリジェンスと異常検出を利用して、脅威と異常をリアルタイム監視できます。脅威インテリジェンスは、サイバー脅威情報をリアルタイムで収集・分析・周知するプロセスです。これには、マルウェアアラートや問題のあるネットワークシグネチャーや悪意のあるIPアドレスが含まれます。脅威インテリジェンスは、観測された脅威を特定するのに役立ち、リアルタイムで機能することが証明されています。脅威は進化しており、できるだけ早く解決する必要があるため、脅威と異常をリアルタイム監視することが不可欠です。

 

DevSecOpsの必要性

企業はDevSecOpsを実装する必要があります。なぜなら、ソフトウェアとアプリケーションを安全に保ちながら、市場投入までの時間を短縮するのに役立つからです。この記事で前述したように、DevSecOpsの導入には多くのメリットがあります。DevSecOpsプラクティスにより、セキュリティーの問題に取り組み、一般的な脆弱性にパッチを適用することが可能になりました。DevSecOpsの原則を採用するときは、コードの記述とテストからアプリケーションのデプロイまで、全てに新しい角度からアプローチする必要があります。Harnessのようなプラットフォームを使用すると、これらの複雑な脆弱性を処理し、SDLCにセキュリティーを統合し、ソフトウェア配信を合理化することが現実になります。

HarnessとDevSecOpsソフトウェア配信の使用について詳しく知りたい場合は、無料で試してみてください。詳細なチュートリアル、ビデオ、リファレンスドキュメントについては、Developer Hubチェックしてください


この記事はHarness社のウェブサイトで公開されているものをDigital Stacksが日本語に訳したものです。無断複製を禁じます。原文はこちらです。

Harnessに関するお問い合わせはお気軽にお寄せください。

お問い合わせ