セキュアな開発(DevSecOps):コードからのセキュリティ
セキュリティ侵害の多くは、ネットワークやサーバーからではなく、ソフトウェアそのものから生じます。欠けた検証、古くなったライブラリ、コード内の秘密情報などです。長年、ソフトウェアのセキュリティは本番リリース前のレビューとして最後に扱われ、その頃には修正はすでに高くつき、時間もかかりました。セキュアな開発、そしてDevSecOpsとして知られるアプローチはそれを変えます。設計から展開まで、開発ライフサイクル全体にセキュリティを組み込むのです。
この記事では、DevSecOpsとは何か、どのような実践で構成されるか、そしてなぜ最初からセキュアに作る方が後で修正するよりはるかに安く済むのかを説明します。
DevSecOpsとは何か
DevSecOpsは、セキュリティを最後の管理工程として扱うのではなく、ソフトウェア開発の各段階に組み込む実践です。中心となる考え方は、セキュリティを左へ寄せること(シフトレフト)です。プロセスの早い段階で問題を検知するほど、解決はより安く、容易になります。最後にレビューしてリリースを止めるセキュリティチームの代わりに、セキュリティは開発を妨げずに伴走する、共有され自動化された責任になります。
セキュアな開発の主要な実践
セキュアな開発は、互いを補強し合ういくつかの実践を組み合わせます。
- 脅威モデリング:作る前にどう攻撃されうるかを考える。
- 静的解析(SAST):コードを自動的に走査して不具合を探す。
- 依存関係の解析:脆弱なサードパーティライブラリを検出する。
- 動的解析(DAST):実行中のアプリケーションをテストする。
- シークレット管理:鍵やパスワードがコードに紛れ込まないようにする。
- セキュリティレビュー:重要なポイントに人間の判断を加える。
パイプライン内の自動化されたセキュリティ
セキュリティがチームを妨げないための鍵は、統合・展開のパイプライン(CI/CD)の中でそれを自動化することです。コードがアップロードされるたびに、コード解析、依存関係のスキャン、その他のチェックが自動的に実行され、問題は数週間後ではなく即座に検知されます。この自動化は、セキュリティを、急いでいるときに飛ばされる手続きではなく、ワークフローの自然な一部に変えます。
依存関係という環
現代のソフトウェアは大部分がサードパーティのコンポーネントで構築されており、そこに巨大なリスクが潜んでいます。脆弱性を持つ人気のライブラリが、一度に何千ものアプリケーションに影響を与えうるのです。だからこそ依存関係の管理(何を使っているかを把握し、最新に保ち、既知の脆弱性を監視すること)は、今日最も重要なセキュリティの実践の一つです。コンポーネントの目録とその継続的な監視は、知らないうちに他者の不具合を継承するのを防ぎます。
チームの文化と教育
テクノロジーと自動化は不可欠ですが、開発者がそれを押し付けられた障害と感じれば、セキュアな開発は失敗します。だからこそ、すべてを支える要は文化です。チームを教育し、最も一般的な脆弱性を理解させ、セキュリティを重んじ、他部署の仕事ではなく自分の仕事の一部として引き受けてもらうのです。開発者がコードを書きながら安全でないパターンを見抜けるようになれば、最も安いタイミングである発生源で不具合を防げます。継続的な教育と良質な社内ガイドへの投資は、セキュリティを絶え間ない戦いではなく、共有された習慣に変えます。
予防は修正より安い
セキュアな開発の経済的な論拠は明白です。設計段階で不具合を修正するコストは、本番で修正するコストのほんの一部であり、法的・評判上の影響を伴う実際の侵害に対処するコストよりはるかに少なくて済みます。最初からセキュアに作ることへの投資は出費ではなく節約です。最も高くつくインシデントを避け、保守の労力を減らします。きちんと統合されたセキュリティは、ソフトウェアの品質も高めます。
AxiomTechでは、脅威モデリング、パイプラインでの自動解析、依存関係の管理によって、最初から最後までセキュリティを組み込んだソフトウェアを構築します。パッチではなく設計によってセキュアなソフトウェアにしたい方は、ご相談いただければ次の一歩をご提案します。
blogPage.ctaTitle
構築したい内容をお聞かせください。24時間以内に明確なプランをご返信します(ご相談は無料です)。
- コードはお客様のもの — ベンダーロックインなし
- 24時間以内に返信
- シニアチーム、グローバルB2Bパートナー