シフトレフトは金融サービスにおける安全なソフトウェアデリバリーの一部にすぎません

By 清水 孝郎 - JULY 30, 2023

SHARE:

本文の内容は、2023年7月27日にERIC CARTER が投稿したブログ(https://sysdig.com/blog/financial-services-beyond-shift-left-security/)を元に日本語に翻訳・再構成した内容となっております。

お金の管理方法は劇的に変化しました。この10年あまりの間に、支店主導のサービスから、24時間365日いつでもお金にアクセスできる機能豊富なアプリへと変化しました。オープン・バンキングは商品イノベーションを促進し、フィンテックはお客様中心の体験の新たな基準を設定し、AIはパーソナライゼーションを新たなレベルに引き上げています。金融サービスがこれほど身近で便利になったことはありません。

この驚くべき進歩は、ソフトウェア開発、デリバリー、運用における比較的最近の進歩なしには起こり得ませんでした。

こうした進歩の中には、DevOpsプラクティスの採用、継続的インテグレーションと継続的デプロイ(CI/CD)パイプライン、クラウド技術の利用、インフラストラクチャーのプロビジョニングからテスト、品質保証までの自動化などがあります。これらの進歩により、開発者はソフトウェアをより迅速に提供できるようになり、設計や開発の早い段階でセキュリティやコンプライアンスについて考え、より安全なソフトウェアを提供できるようになります。

”シフト・レフト”とは何ですか?

”シフト・レフト”とは、従来のウォーターフォール型開発の落とし穴に対処するための哲学です。ウォーターフォールでは、多くのITチームが何週間も何ヶ月もかけて作業を行い、最終的に大きく美しいソフトウェアをリリースします。もちろん、人々はミスを犯し、物事を忘れ、お互いのコミュニケーションがうまくいかないかもしれません。アプリケーションの要素がうまく相互運用できないことが判明すると、チームは必死になって可能なものは修正し、そうでないものは切り捨てようとします。本番環境は、必然的に遅れて提供され、多少は壊れたままで、セキュリティは後回しにされます。

シフトレフトするということは、設計・開発フェーズの早い段階でセキュリティプロセスとツールを導入するということです。セキュリティは、機能や品質と同じくらい重要であるべきです。なぜなら、重要な依存関係の上に何十もの機能をビルドした後で、ビルドに失敗するような致命的な脆弱性を発見することは、何かをビルドする前に発見されるよりもずっと痛いからです。問題を修正するのは、新しいバージョンの依存関係を使うのと同じくらい簡単かもしれませんが、カスタマイズしたものすべてがまだ意図したとおりに動作することを確認しなければなりません。

アプリケーション・セキュリティ・テスト(AST)には、システムの開発ライフサイクル(SDLC)の早い段階で、コードレベルの問題 を検出することを目的とした、多くの形式があります。シフトレフトするときのアプリケーションセキュリティテストの2つの一般的なタイプは、ソフトウェア構成分析(SCA)と静的アプリケーショ ンセキュリティテスト(SAST)です。簡単に言えば、SAST は、開発者が書いたカスタムコードをテストし、SCA は、開発者がコードに含めた依存関係をテストします。

最新のアプリケーションのセキュリティを評価するためには、両方のテストタイプが必要です。もし、シフトレフトが、問題を発見するだけでなく、修正することも意味すると考えるのであれば、開発者フレンドリーなツールが必要です。それが何を意味するかは、組織内の開発者のワークフローによって主観的なものになる可能性がありますが、少なくとも、開発者は、セルフサービス、既存の CI/CD ツールチェーンへのシームレスなインテグレーション、および実用的な結果を必要としています。ほとんどの開発者はセキュリティの専門家ではないので、セキュリティ調査結果は、開発者に自分で探させるのではなく、最もリスクの高い問題に優先順位をつけ、問題の原因を指摘し、文脈に沿った修正を提供しなければなりません。

ASTをランタイムインテリジェンスで補強

多くの初期テスト(特に、セキュリティテスト)を実施するときの1つの課題は、テストをすればするほど、より多くの発見があるということです。残念ながら、結果の中には、偽陽性もあれば、比較的低リスクの真陽性もあります。セキュリティに関する高度な専門知識を有する開発チームは、発見された欠陥の中から、重大で対処可能な欠陥に優先順位をつけるために、選別と吟味を行わなければなりませんが、そのような専門家は不足しており、この種の作業は退屈です。

セキュリティテストの落とし穴に対処することは単純ではなく、各発見に関連するリスクを推論し始めるために、できるだけ多くの文脈情報を収集することが必要です。

脆弱性のリスクを推論することは簡単ではありません。私たちは、アクションを決定するために、問題のクリティカリティをランク付けしようとします。問題を2つの部分に分けることができます:

  1. 脆弱性自体のコンテキストには、CVSS スコアのような重大性のメトリクスと、エクスプロイトが一般に公開されているかどうかや攻撃が野放しになっているかどうかのような脅威インテリジェンスが含まれます。これらの情報は、スキャンツールやNVD、MITRE、CISAなどのサードパーティ・ソースから容易に入手できます。
  2. しかし、被害を受けた資産の環境コンテキストは、アプリケーションとインフラストラクチャーに固有のものです。この部分を本当に埋めることができるのは、あなたの組織だけです。例えば、アプリケーションとデータはPCI-DSSやGDPRのような特定のコンプライアンス基準の対象ですか?影響を受けるアプリケーションは、緩和的なセキュリティ管理によって保護されていますか?インターネットに公開されていますか?脆弱なコンポーネントは全く使用されていないのでしょうか?このようなことは、アプリケーションが意図した本番環境で実行されるまでは、知ることは困難か不可能です。

シフトレフトは、現代のサイバーセキュリティを前進させる方法ですが、ランタイム・インサイト(Runtime Insights)を取り入れることで、このアプローチを大幅に強化することができます。これにより、最初に何を修正すべきかの優先順位付けができ、摩擦がなくなり、多数のITチームのサイクルが節約され、組織の脆弱性リスクが軽減されます。

Sysdigのお客様であるWorldPayにとって、ランタイムコンテキストは、チームが収益を生み出す作業に集中できるようにする上で非常に貴重なものです。チームがログインして500の脆弱性を見た場合、彼らは “私は私たちの脆弱性を修正するのか、それともお金を生み出す何かを開発することに時間を費やすのか “と考えます」とWorldPayのプリンシパル・コンテナ・プラットフォーム・エンジニアであるBernd Malmqvist氏は述べています。「何が重要で、どう修正すべきかを示してくれることが、リスクを減らす鍵なのです」。

リリース後はどうなりますか?

シフトレフトの要点は、安全でコンプライアンスに準拠したソフトウェアをより早くリリースすることですが、その次に何が起こるのでしょうか?あなたの完璧で美しいコードは、その見事な機能セットと印象的なパフォーマンスでお客様を喜ばせています。そして、長い連休になるはずだった金曜日の午後、恐ろしいゼロデイに見舞われます。

このような事態が発生した場合、環境内で実行されている影響を受けるワークロードをすべて迅速に特定し、優先順位をつけて修復する必要があります。パッチが利用できなかったり、デプロイに時間がかかりすぎる場合は、直ちにパッチを適用するためにワークロードをオフラインにしたり、ネットワークアクセスを制限したり、問題を緩和する必要があるかもしれません。本番環境の保護、検出、および修復活動は、組織の安全性と成功にとって極めて重要です。

まとめ

しかし、信頼性が高く、高速で、安全なソフトウェアデリバリーパイプラインの基盤を構築することはできます。セキュリティチームも開発チームも、ノイズの洪水に悩まされることが多く、有用なシグナルはほとんどありません。彼らが本当に必要としているのは、リスクについて適切な判断を下すための、一貫性のある規定的な方法なのです。ランタイムの洞察を含むスタックの複数のレイヤーを通して複数のソースからコンテキストを収集することは、DevSecOpsチームがツールから受け取り、それに基づいて行動しなければならない情報の質を大幅に向上させます。

シフトレフトとシールドライトのベストプラクティスを組み合わせることで、金融機関はセキュリティとコンプライアンスを損なうことなく、DevSecOpsの効率を改善し、ソフトウェア開発を加速することができます。

開発者は、軽微な脆弱性の修正やコンプライアンスの維持に費やす時間を減らすことができるため、お客様により良いデジタル体験を提供することに集中することができます。

この記事は、Snyk の製品担当ディレクターである Effi Goldstein 氏が共同執筆しました。Sysdig と Snyk の 2022 年コンテナ・セキュリティ・トレンドをご覧ください: 詳細については、Sysdig と Snyk の「2022 Container Security Trends: Expert Panel Livestream」をご覧ください。