San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
DevSecOps

What is DevSecOps?

DevSecOpsは、アプリのセキュリティ分野で最近登場した新しい概念で、開発サイクルの早い段階でセキュリティを取り入れることを目指しています。これは、DevOpsの開発・運用チーム間の密な連携により、セキュリティチームも統合して実施する方法です。開発、セキュリティ、テスト、運用など、コアなチーム全体での文化、組織、ツールの変革が求められます。基本的には、セキュリティは全員の責任であり、開発サイクルに関わる全員がその統合に寄与するという考え方です。 DevOps CI/CDのプロセスにセキュリティを組み込むことが肝要です。

展開の速度と頻度が増す中、従来のアプリセキュリティチームだけでは、すべての展開が安全であることを保証するのは難しくなっています。

著者
What is DevSecOps?

この問題に対処するため、組織は開発サイクル全体でセキュリティを一貫して実施し、DevOpsチームが迅速かつ高品質なアプリを提供できる体制を整える必要があります。早期にセキュリティを業務に取り込むことで、問題点を早く把握し修正することが可能となります。この考え方は「左シフト」において重要であり、セキュリティテストを初期段階に移すことで、開発中にコード中のセキュリティの問題を迅速に対処できるようにします。

DevSecOpsを活用すれば、組織は継続的インテグレーションや継続的デリバリー(CI/CD)のプロセスにセキュリティをしっかりと組み込むことができます。DevSecOpsは、計画、開発、構築、テスト、運用と、開発サイクル全体で自動化とフィードバックを継続的に行う仕組みです。

devsecops abbreviation

How does DevSecOps work?

世界はDevOpsに囲まれていますが、実際には何を意味しているのでしょうか?DevOpsは、関係者によって多少異なる意味を持ちますが、基本的にはクラウド組織のビジネス変革を促す文化や考え方を指しています。

組織内の変革は、共通のビジョンを持つチームの形成から生まれます。技術革新は、開発、デリバリー、運用全体の自動化を進めることで、より早く高品質かつ安全なコードを提供するのに役立ちます。

しかし、DevOpsに関する議論は複雑になりがちです。計画作業では、解決すべき問題や目的よりも、プロセスやツールの細部に気を取られることがあり、結果として、開発の本来の目的である迅速かつ安全な製品提供が見失われることがあります。

セキュリティを組み込む表現として、DevOpsやOpsDevという言葉よりも、DevSecOps、SecDevOps、DevOpsSecの3種類が存在する点が興味深いところです。当初は全体像を捉えず、やがて業界標準となり、クラウド組織の継続的かつ安全な運用を実現するための戦略に繋がるものと考えていました。しかし、よく考えると、この3つの呼び方それぞれが、製品開発サイクルにセキュリティを組み込む際の異なる課題を示しているのだと感じるようになりました。

DevOpsプロセスにセキュリティを取り入れる重要性についても触れておくべきです。従来、セキュリティは開発やテスト工程の一部とみなされることが多く、あまり重視されていませんでした。また、セキュリティは開発やデリバリーを妨げる要因と捉えられ、別チームが脆弱性修正に当たるという状況でした。

DevSecOps work

かつては、1人でアプリ開発を行い、リリースサイクルが1年程度で、アプリは複数の安全装置の背後で提供される環境では、この考え方も機能していました。しかし、複数の関係者が参加するクラウド環境では、1つの脆弱性が多くの顧客や組織の信用を脅かす可能性があります。それにもかかわらず、従来の方法に頼り、安全なコーディングやテストのプロセスを十分に取り入れられていませんでした。セキュリティ対策を最後の工程まで後回しにし、多くの脆弱性を放置していたのです。やがて、誰かが脆弱性を突くと、全てが混乱に陥りました。

Key Elements of DevSecOps

DevSecOpsの手法には、以下の主要な要素が含まれます。

  1. Application/API Inventory
  • ポートフォリオ内のコードの検出、プロファイリング、継続的なチェックを自動化します。これには、サーバーファーム、仮想環境、プライベートクラウド、パブリッククラウド、コンテナ、サーバーレスなどのコードが含まれます。自動検出ツールとセルフ登録ツールを組み合わせることで、保有するアプリやAPIを明確に把握できます。セルフ登録ツールは、各アプリが自ら登録し、メタデータを一元管理に報告することを可能にします。
  1. Custom Code Security
  • 開発、テスト、運用の各段階でコードの脆弱性を継続的にチェックします。コードは頻繁にデプロイし、更新ごとに脆弱性を早期に発見できるようにします。
  • 静的アプリセキュリティテスト(SAST)は、ソースコードを解析し、問題の原因を特定して基本的なセキュリティ欠陥を改善します。
  • 動的アプリセキュリティテスト(DAST)は、稼働中のウェブアプリやAPIに対して制御された攻撃をシミュレートし、悪用可能な脆弱性を特定します。
  • 対話型アプリセキュリティテスト(IAST)は、エージェントやセンサーを用いてアプリの内部、フレームワーク、設定、データフロー、コード全体を詳細に解析した結果を提供します。
  1. Open Source Security
  • オープンソースコード(OSS)はしばしば脆弱性を含むため、OSSライブラリを追跡し、脆弱性やライセンス違反を報告する仕組みが必要です。
  • ソフトウェア構成分析(SCA)は、OSSの可視化を自動化し、リスク、セキュリティ、ライセンスの整合性を評価します。
  1. Runtime Prevention
  • 稼働中のアプリを守ります。新たな脆弱性が見つかる場合もあれば、既存のアプリが更新されないこともあります。
  • ログは、どの攻撃経路や手法が狙われているかを知らせ、脅威インサイトが攻撃の兆候やセキュリティ対策を明らかにします。
  • Runtime Application Self-Protection(RASP)は、アプリ自体を計測し、内部からの攻撃を検知、防止します。
  1. Compliance monitoring
  • GDPR、CCPA、PCIなどのコンプライアンスを維持するため、常時監視が行える体制を整えます。
  1. Cultural factors
  • セキュリティ推進者を特定し、エンジニア向けのセキュリティ教育を実施します。

5 Advantages DevSecOps in an Organization

DevSecOpsの大きな利点は、スピードとセキュリティにあります。開発チームは、より迅速に安全なコードを提供でき、その結果、コスト削減にも寄与します。

Advantages DevSecOps

「DevSecOpsの背景と目的は、全員がセキュリティに責任を持ち、最も現場に近い人々に対して、速度と規模を持って安全にセキュリティの判断を分散させる点にあります。これにより、必要なビジネス成果を損なうことなくセキュリティ対策が可能となります」と、DevSecOpsマニフェストの共同作成者であるShannon Lietzは述べています。

  • Rapid, practical programming conveyance

DevSecOpsでない環境では、コード作成時にセキュリティ問題が発生すると大幅な遅延が生じ、修正に多大な時間と費用がかかることがあります。DevSecOpsの迅速かつ安全なデリバリーは、セキュリティ問題のために再度サイクルを回す必要を減らし、時間とコストを節約します。

この仕組みは、不要な再検査や無駄なパッチを防ぎ、安全なコードを実現するため、効率的かつ経済的です。

  • Improved, proactive security

DevSecOpsでは、開発サイクルの初期からセキュリティ対策が組み込まれ、コードは評価、解析、検査、追跡されます。問題は発見されるとすぐにモニタリングされ、追加の変更前に修正されるため、早期対処が容易になります。

さらに、開発、セキュリティ、運用チームの連携が強化され、インシデント発生時の対応力が向上します。DevSecOpsは、欠陥の改善機会を提供するとともに、セキュリティチームがより価値のある業務に集中できる環境を作り出します。これにより、後付けのセキュリティ対応を回避できます。

  • Accelerated security weakness fixing

DevSecOpsの大きな利点は、セキュリティ上の脆弱性を迅速に特定・修正できる点です。開発と運用のサイクルに脆弱性チェックと修正を組み込むことで、一般的な問題(CVE)の発見と修正が速まり、攻撃者が悪用する時間が短縮されます。

  • Automation viable with current turn of events

信頼性の高い開発パイプラインを活用している組織なら、セキュリティテストを自動化されたテストスイートとして実施することが可能です。

セキュリティチェックの自動化は、開発とシステム全体の統一目標に依存します。自動テストにより、コードが適正な修正レベルに達していることが確認され、セキュリティユニットテストに合格していることが証明されます。さらに、静的および動的なテストで、本番リリース前にコードの品質を確保できます。

  • A repeatable and versatile cycle

組織が成長するにつれて、セキュリティ対策も進化します。DevSecOpsは、繰り返し可能かつ柔軟なサイクルに適合し、環境の変化や新たな要件に応じて常に一貫したセキュリティを提供します。適切にDevSecOpsを実行すれば、強固な自動化体制、設定管理、組織、ポリシー、さらにはサーバーレスな連携環境が整備されます。

Common Types of SecDevOps

Security as Code (SaC)

Security as Code(SaC)とは、DevOpsパイプライン内のツールにセキュリティを組み込むことを意味します。これは、手動作業ではなく自動化を前提とし、全コードベースではなく変更部分に対して静的解析ツールを使用するアプローチです。ここで、セキュリティがツールやプロセスに統合されます。

この手法では、構築済みのアプリが通常、静的アプリセキュリティテスト(SAST)や動的アプリセキュリティテスト(DAST)ツールでチェックされます。自動化が基本となりますが、セキュリティ上重要な部分については手動チェックも必要です。Security as CodeはDevOpsツールチェーンとプロセスの中心的要素であり、これらのツールと自動化は継続的デリバリーフレームワーク内に組み込む必要があります。

Infrastructure as Code (IaC)

Infrastructure as Code(IaC)とは、DevOpsツールを用いてインフラの設計や更新を行う手法です。Ansible、Chef、Puppetなどのツールが利用されます。IaCでは、システムに問題が発生した際、問題の部分を隔離し、速やかに新しいものを展開して補います。これにより、安定した管理環境を維持します。

従来の手作業や使い捨てスクリプトによる変更ではなく、Puppet、Ansible、Chefなどのツールを用い、共通のソースコード管理システムで設定変更を管理します。インフラに問題が生じた場合は、個別に修正するのではなく、設定管理システムのワーカーを展開することで対応します。

For what reason Do We Need DevSecOps?

結局のところ、DevSecOpsは開発サイクルの初期から意識的にセキュリティを取り入れるために不可欠です。開発組織が最初からセキュリティを考慮してコードを書くことで、製品が大きく進む前あるいはリリース後に脆弱性を修正する手間や費用を削減できます。各事業部は、開発、セキュリティ、運用のリポジトリを分離することで、より安全なソフトウェアを迅速に提供できます:

  • Automotive

自動車業界では、開発期間を短縮しつつ、MISRAやAUTOSARなどのコンプライアンス基準を遵守します。

  • Healthcare

医療業界では、HIPAAなどの規則に従い、機微な患者情報のセキュリティを維持しながらイノベーションを推進します。

  • Financial, retail, and web based business

金融、小売、オンラインビジネスでは、OWASPトップ10のウェブアプリケーションのセキュリティリスクを改善し、PCI DSSに基づく決済カード規約を守りながら、データ保護とコンプライアンスを維持します。

  • Embedded, arranged, committed, customer, and IoT devices

組み込み、エンタープライズ、ミッションクリティカル、顧客向けおよびIoTデバイスでは、CWEトップ25の重大なソフトウェアエラーのリスクを低減する安全なコード作成が求められます。

What application security tools do you need to implement DevSecOps?

Static application security testing (SAST)

静的アプリセキュリティテスト(SAST)ツールは、コードの書き方や設計上の欠陥を検査し、悪用される恐れのある脆弱性を特定します。SASTツールは、主にコード作成、ビルド、開発段階で使用されます。Coverityなどがその例です。

Static application security testing

Software composition analysis (SCA)

SCAツール(例:Black Duck)は、ソースコードやライブラリをスキャンし、オープンソースやサードパーティ製コンポーネントの既知の脆弱性を特定します。また、セキュリティやライセンスリスクに関する情報を提供して、対策の優先順位付けと修正作業を支援します。さらに、CI/CDプロセスにシームレスに統合し、ビルド統合から本番前リリースまで新たなオープンソース脆弱性を継続的に検出します。

Interactive application security testing (IAST)

対話型アプリセキュリティテスト(IAST)ツールは、手動または自動の機能テスト中にバックグラウンドで動作し、アプリの実行時の挙動を解析します。例えば、Seeker IASTは計測機能を用いて、アプリのリクエスト/レスポンスのやり取りや、処理、データフローを検査します。実行時の脆弱性を検出した後、その結果を再現・検証し、問題が発生している正確なコード行まで明確に示すため、開発者は重要な問題に注力できます。

IAST pros cons

Dynamic application security testing (DAST)

動的アプリセキュリティテスト(DAST)は、自動化された脆弱性検出技術で、開発者がウェブアプリやAPIと関わる方法を模倣します。ネットワークを通じてアプリをテストし、クライアント側の挙動をシミュレートします。DASTツールは、ソースコードやカスタムコードへのアクセスを必要としません。

これらのツールはウェブサイトと連携し、誤検知を最小限に抑えながら脆弱性を特定します。例えば、Tinfoil SecurityのDASTは、ウェブアプリやAPI、さらにはバックエンドサービス、IoTデバイス、RESTfulGraphQL APIなどにおける問題を検出します。

Dynamic application security testing

DevSecOps Best Practices

  1. Shift left

『Shift left』はDevSecOpsのマントラであり、開発者にセキュリティを工程の初期段階、すなわち左側に移すことを促します。DevSecOps環境では、セキュリティが開発工程の最初から組み込まれており、組織はネットワーク保証エンジニアやアーキテクトを開発チームに統合しています。彼らの役割は、スタック内の各コンポーネントが安全に構成され、問題がないことを確認することです。

左側へのシフトにより、セキュリティリスクや脆弱性を早期に特定し、迅速に対策を講じることが可能になります。開発チームは、効率的に製品を作ると同時に、セキュリティも実装していきます。

  1. Security training

セキュリティはプロセスとコンプライアンスの組み合わせです。組織は、開発、運用、コンプライアンス各チーム間で、全員がセキュリティポリシーとベストプラクティスを共有する合意を形成する必要があります。

セキュリティ対策は一部門だけの責任ではなく、全員がセキュリティポリシーを遵守する文化を作ることが大切です。開発者、システムアーキテクト、テスターなど、各担当者が最終的にセキュリティに対して責任を負うようになります。

開発プロセスに関与する全員が、安全なコーディング、OWASPトップ10、アプリセキュリティテストなどの基本事項を理解する必要があります。開発者は、正規表現やコンプライアンステスト、脆弱性評価、対応策、セキュリティコントロールの実施方法について知識を持つことが求められます。

  1. Culture: Communication, people, processes, and technology

優れたリーダーシップは、組織内で変革を促す文化を育みます。DevSecOpsでは、プロセスや製品の所有権の面でもセキュリティを浸透させることが重要です。これにより、開発者やエンジニアが各自の担当部分の所有者となり、責任を持つことが可能になります。DevSecOps実践チームは、自身に適した開発プロセスやツールを選定し、作業環境を整えることで、プロジェクト成果に積極的に関与できるようになります。

  1. Discernibility, auditability, and perceivability

DevSecOpsサイクルにおいて、可視性、監査可能性、トレーサビリティを実装することで、透明性が高まり、より安全な環境が実現されます:

  • トレーサビリティにより、開発サイクル全体で行われた変更を追跡し、コードに反映された箇所を確認できます。これは、コンプライアンスの強化、バグ削減、安全なコード作成、コードの透明性向上に大きく寄与します。
  • 監査可能性は、セキュリティコントロールの遵守を確認するために重要です。具体的かつ手順に沿ったセキュリティ対策は、適切に記録され、全ての関係者が遵守する必要があります。
  • 可視性は、どの組織においても望ましいですが、DevSecOps環境では特に必須です。組織は、運用状況の監視、アラート送信、インシデントやサイバー攻撃の早期検知、そしてアプリケーションライフサイクル全体での責任追及を行える体制を整える必要があります。

Final words

SecDevOpsは、セキュリティチームがより良い対策を模索する中で、活力をもたらし、イノベーションを促進しています。組織が部門ごとに閉じこもるのではなく協力して作業することで、継続的な革新が実現されます。

NetflixやGoogleなどの著名な組織は、すでにDevOps文化の中でセキュリティを基本要素として取り入れ、前例のない成果を上げています。貴社のチームも、セキュリティを初期段階から導入し、SecDevOpsを採用することで一歩前進できるでしょう。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック