Skip to content

従来のAppSecツールの危険性とランタイムセキュリティの優位性:PodCast記事

    
従来のAppSecツールの危険性とランタイムセキュリティの優位性:PodCast記事

従来のAppSecツールはソフトウェアの進歩に追いついているだろうか?

アプリケーションセキュリティPodcastのホスト、Chris Romeo最近、Contrast Securityの共同設立者で最高技術責任者(CTO)のJeff Williams尋ねた質問だ。

TL;DRの答え:いいえ。

静的アプリケーション・セキュリティテスト(SAST)、動的アプリケーション・セキュリティテスト(DAST)、静的ソフトウェア構成分析(SSCA)、Webアプリケーション・ファイアウォール(WAF)など、従来のアプリケーションセキュリティ(AppSec)ツールで直面している課題と、AppSecのバックログが急増しほとんどの場合、未対策・未解決の問題が驚くほど多く含まれていることを見て対談はスタートした。

Jeffはランタイムセキュリティはこれらの課題を解決し、健全な企業のAppSecプログラムを作成するのに最適なソリューションだと主張する。ソフトウェア開発と運用プロセスを中断させることなく、迅速かつ正確でスケーラブルなアプリ/アプリケーション・プログラミング・インターフェース(API)のテストと保護を提供できることから、ランタイムセキュリティはゲームチェンジャーだ。

PodcastではJeffがランタイムセキュリティの利点について語った。以下は会話のハイライトである。

問題の根源:

SASTDASTSSCAWAFの欠点

根本的にSAST、DAST、SSCA、WAFツールは、企業にとって十分な速さ、正確さ、スケーラビリティを備えていないとJeffは説明する。今日のソフトウェアの複雑により企業がこれらのソリューションに依存することにより危険にさらされている。

SASTツールはソースコードを見ているため、完全に組み立てられたアプリケーションが実際にどのように動作するかを見ることはできません。カスタムコードがランタイム・プラットフォーム、アプリ/APIサーバー、ライブラリ、フレームワーク、他のレポジトリのコードとどのように相互作用しているかは分かりません。ほとんどの脆弱性はカスタムコードとこれら全てのコンポーネントの両方に跨るため、SASTツールでは理解できず多くの間違いが発生します。

一方、DASTツールは、完全に組み立てられた実行中のアプリケーションを実際に分析します。しかし、DASTツールはアプリケーションの外部から内部に向けて動作するため、実際に悪用できる脆弱性しか検出できず、HTTPレスポンスから検出することもできません。おそらく最悪の部分です:DASTツールが検出できるのは"フロントドア"だけで、最新のアプリケーションのバックエンドのインターフェイスや接続をすべて検出できるわけではありません。結論はDASTは多くの労力を要し多くのことを見落としてしまいます。

SSCAツールは、SASTと同様の制限に悩まされている。SSCAツールはアプリケーション全体を分析するのではなく、単一のレポの依存関係だけを一度に分析する。つまりこれらのライブラリがソフトウェアによって実際にどのように使用されているかを判断することはできない。SSCAができるのはせいぜいコードが理論的に実行可能かどうかを推定する「到達可能性分析」くらいだ。残念ながら、SSCAツールによって指摘される脆弱性の90%は、利用不可能な誤報であるというのが業界のコンセンサスである。

WAF長い間、管理の煩雑さ、アプリケーションやAPIの破壊、実際の攻撃を見逃し、バイパスされる可能である、といった批判を受けてきた。この問題の根本的な原因はWAFが何を保護しているのかを全く理解していないことだ。HTTPトラフィックを分析し可能性のある攻撃のパターンを照合することしかできない。問題はアプリケーションやAPIが非常に複雑であることだ。このカスタムコードに対する可能性のある攻撃のパターンをすべて把握する方法は無い。

これらのケースでは、十分なコンテキストを持たない従来のAppSecツールを使用してもビジネスに重要なソフトウェアに必要な結果は得られない。単一のアプリ/APIだけを考えている場合、このパターンを見るのは難しいかもしれない。しかし、これらのツールに依存している企業に尋ねれば、開発の遅れ、長い脆弱性の修正時間、高価なトリアージコスト、膨大なバックログを目にすることになるだろう。これらは、健全なAppSecプログラムに必要な成果ではない。

結果:ジュラシック時代に遡るバックログ

結局のところ、レガシーなAppSecテクノロジーは「現実の多くのことを見逃しがち多くの過検出を生み出しがちだ」とJeffは言う。「ツールが不正確なのは十分なコンテキストがないからでツールが正確でないときはいつでも、人が関与しなければならないが、残念なことにこのような時間の浪費に対処するための十分な人員や時間があるわけではない。「この問題は、企業がソフトウェアを追加すればするほど大きくなる。

その結果、修復に非常に時間がかかり大量のバックログと重大なリスクが発生する。Jeffは、Veracodeが公表している自社のデータについて、SASTを使用した場合の平均修復日数は298日、DASTを使用した場合の平均修復日数は305日であることを指摘している。「もしあなたの一番の懸念がセキュリティだとしたら、脆弱性が緩和されるまで1年近く待たなければならないと想像してみてください。

Jeffは最近、某最高情報セキュリティ責任者(CISO)と話をしたが、彼の組織には170万件の脆弱性のバックログがあり、CISOはそれを"机上の空論"だと考えている。「どの企業のCISOやAppSecのリーダーにAppSecのバックログについて聞いても、面白い答えは返ってこない」と彼は打ち明ける。

「バックアップを取れば、こうなることは明らかだろう?とジェフは尋ねる。「ノイズが大量に発生するツールを使えば、トリアージが必要なものが山のように出てくる。そのため巨大なバックログが生成され、ただそこに放置されることになる」。どんなに管理をしてもこれを解決することはできない。残念ながら、「それを成功とみなす企業もある」と彼は嘆く。「莫大なバックログを抱えることには莫大なコストがかかり、実際に重要な問題の改善を妨げている。

従来のAppSecツールは進化の限界に達しているとJeffは続ける。それが問題なんだ。テクノロジーが進化し続け脅威が加速する中、セキュリティ分析には、企業が実際に悪用可能な脆弱性や実際に被害をもたらす可能性のある攻撃に焦点を当てるための、より多くのコンテキストが必要です。組織が従来のAppSecツールにビジネスを賭けるのは、単純に安全ではない。そして、そのギャップを埋めるための専門家チームを構築することは、ほとんどの組織にとっておそらく不可能だろう。

ランタイムセキュリティの紹介

ソフトウェア開発者としてスタートし、脅威モデリング、侵入テスト、セキュリティ・コードレビュー、AppSecツールの作成など、25年にわたるセキュリティキャリアを積んだJeffはソフトウェアコードに精通している。従来のSAST(静的解析)、DAST(動的解析)でも解明できないことは山ほどある」と彼はコメントする。「私たちの洞察では、より良いコンテキストを得る唯一の方法は、実行中の実際のコードを見ることです。そうすることで全てが組み立てられ、全てが文脈の中にあり、何が起こるかを実際に見ることができる。

ランタイムをプロダクション"と混同してはならない。開発者は、コンパイル時(ソフトウェアがビルドされている間)とランタイム(ソフトウェアが実行されている間)を区別する。言い換えれば、「ランタイムセキュリティ」は、開発、パイプライン、テスト、そして本番稼動において、当然のことなのである。

ランタイムセキュリティの使い方は簡単だ:ワークロードにインストールするだけで、バックグラウンドで動作し脆弱性や攻撃を防ぐ。ランタイムセキュリティはアプリケーションやAPIの構築、テスト、デプロイ、運用方法を変更する必要はありません。

その名の通り、ランタイムセキュリティは完全なランタイムコンテキストを持ち、それを使って実行中のコードを解析保護する。ランタイムセキュリティにはスキャンもファイアウォールも必要ない。すべての分析、テスト、保護は、通常の開発と運用の間にバックグラウンドで実行される。ランタイムセキュリティでは、手動、自動にかかわらず、すべての品質保証(QA)テスト中にバックグラウンドでセキュリティテストが実施される。また各ワークロードは個別に保護されるため、ランタイムセキュリティは大規模なソフトウェアポートフォリオにも自然に対応できる。

ランタイムセキュリティの価値

ワークロードでランタイムセキュリティを有効にすると、これらの機能がすべて自動的に提供:

  • ランタイム・アプリケーション・セキュリティ・テスト(InteractiveApplicationSecurityTesting、IASTと呼ばれることもある)-DASTの一形態で、カスタムコードとライブラリの両方においてゼロデイ脆弱性を自律的に発見。コードが開発段階でテストされている間、高精度の結果がリアルタイムで表示。

  • ランタイムソフトウェア構成分析-実行中のアプリケーションまたはAPI環境に存在するすべてのライブラリを自動で特定し脆弱性の有無を分析し、それらのライブラリがアプリ/APIで実際にどのように使用されているかを可視化し、高精度のソフトウェア部品表(SBOM)を生成します。

  • RASP(Runtime Application Self Protection)-カスタムコードとサードパーティライブラリの両方の脆弱性が本番環境で悪用されるのを自動的に防ぐ。攻撃者、攻撃ベクトル、標的となるシステムをコードレベルまで完全に可視化し設定無しで非常に高速かつ高精度に防御。

  • ランタイム・アプリケーション・セキュリティ-アプリケーションがどのように動作するかを示すデジタルセキュリティの青写真を提供。この青写真には攻撃対象領域、各ルートがどのようにセキュリティ・メカニズムを呼び出すか、危険な技術を使用するか、バックエンド接続を行うかなどが含まれる。

言い換えれば、ランタイムセキュリティは、AppSecツールの全範囲をカバーする単一のテクノロジーである。ランタイムセキュリティは、従来のAppSecツールほど多くの設定を必要としない:基本的には、インストールして通常のソフトウェア開発プロセスを行うだけだ。ランタイムセキュリティは既に多くの導入実績がある。ランタイムセキュリティは、世界有数の大企業において、開発および運用の両方で何十万ものWebアプリケーションやAPIで活用されています。

ランタイムセキュリティを使えばAPIセキュリティを別のものとして考える必要はない。従来のAppSecテクノロジーは、複雑なAPIフレームワークやデータフォーマット、プロトコルではうまく機能しない。多くの新しいAPIセキュリティ製品は、「実際にはDASTとWAFを一緒に押し込んだだけ」だとJeffは言う。幸いなことにランタイムセキュリティはAPIに対して"完璧に"アプリケーション内部から外部に機能する。

ランタイムセキュリティの機能

ランタイムセキュリティをワークロードにインストールするだけで、そのワークロードがデータセンター、クラウド、コンテナのいずれにあるかにかかわらず、ランタイムセキュリティがインストールされたアプリケーションやAPIは、社内のデータセンターからクラウドに移動することができ、保護も同時に行われる。「ランタイムセキュリティは、コードがどこに移動しても動作し続けます」とJeffは言う。「根本的にシンプルでスケーラブルです。だから私は、"あなたのスタックにランタイムセキュリティを組み込めばいい"と言っているのです」とJeffは言う。

ランタイムセキュリティは、NewRelicやAppDynamicsのようなツールと同じインスツルメンテーション技術を使用しますが、パフォーマンスモニタリングではなくセキュリティのために使用します。ランタイムセキュリティはスタック内の潜在的に危険なすべてのメソッドを保護する。これらのメソッドはXMLの解析、SQLクエリの作成、コードの評価、ネイティブプロセスの開始など、強力な処理を行います。開発者が安全に使用できるようにチェックを行い悪用されないように保護します。とてもシンプルだ。

ランタイムセキュリティは、脆弱なライブラリを見つけ、アプリケーションやAPIのカスタムコードでライブラリがどのように使用されているかを自動的に検出することもできます。また、プロジェクトのコード・リポジトリやマニフェストにあるライブラリだけではありません。ランタイムセキュリティは、スタック全体のすべてのライブラリを見ることができ、どのライブラリが実際に使用されているのかあるいはどのライブラリが単なる"デッドコード"なのかを正確に詳細を知ることができる。平均してライブラリの62%は一度も使用されておらず、メモリに読み込まれることすらない。そして、SSCAツールがこれらのライブラリで報告した脆弱性はすべて過検出であり悪用することはほとんど不可能である。ランタイムSCAによってチームは実際に利用されている重要な38%のライブラリのみに集中することができる。

ランタイムセキュリティとSQLインジェクション

ランタイムセキュリティはSASTやDASTが検出できるあらゆる種類の脆弱性を検出することができる。一例としてランタイムセキュリティがどのようにSQLインジェクションを防御するかを考えてみましょう。

SQLクエリをデータベースに送信するメソッドから始めよう。開発者や攻撃者による悪用からこれらのメソッドを保護するものは何もない。これらの保護が欠けていることがほとんどのAppSec問題の根本原因である。

ランタイムセキュリティは、開発者と攻撃者の両方による悪用を防ぐために2つの重要なチェックによってソフトウェア・スタックを保護:

1.開発者はこの方法を安全に活用できていますか?

最初のチェックでは開発者が適切にエスケープまたはパラメータ化することなく、クエリに信頼できないデータを含んでいないかどうかを確認することだ。このチェックが失敗した場合開発者はすぐににSQLインジェクションの脆弱性をHTTPリクエスト、コードの正確な行、スタックトレース、アプリ/APIを流れた実際のデータ、そしてもちろん詳細な修正アドバイスなど、すべての詳細を含む豊富なトレースとともに通知される。開発者は自分のコードを攻撃する必要もなく、セキュリティについて何も知る必要もなく、余分なステップを強いられることもない。このアラートによって開発者は迅速に修正を行い、クリーンなコードをチェックすることができる。

2.攻撃者はこの方法を悪用しようとしているか?

本番環境ではユーザーからのデータがクエリのセマンティクス(意味)を変更するかどうかをチェックする。これを検出した場合、直ちに関連するすべての状態をキャプチャし、運用セキュリティチームに警告を発し、クエリがデータベースに到達するのを阻止する。この保護はWAFとは異なりコード内部で行われるため、攻撃が本物かどうかを判断するための豊富なコンテキストを持つ。ランタイムプロテクションは、余分なホップを必要とせず、WAFのように単純なパターンマッチングに依存しないため非常に高速である。またWAFとは異なり事実上すべての顧客がランタイムセキュリティをブロックモードで使用している。

ランタイムセキュリティでは、脆弱性検出、ライブラリのチェック、攻撃の防御ができる。一つのエージェントで3つを同時に実現。

このように考えてみよう:ランタイムセキュリティはSQLインジェクションに強くなるようにスタックを強化し本来あるべきチェックを追加するだけだ。企業内の何千ものSQLクエリをすべて修正しようとする(そしておそらく失敗する)のではなく、ランタイムセキュリティは、データベースへのアクセスに使用するライブラリの、あるべき場所に正確に保護を追加することができる。またパラメータ化されたクエリなど従来のSQLインジェクションの「修正」とは異なり、ランタイムセキュリティは、アプリケーションやAPIを悪用しようとしているユーザーを可視化する。攻撃者が成功するまでソフトウェアの中で遊ばせておくのではなく、攻撃者に対してプロアクティブな対応ができる。

ランタイムセキュリティは、Java、.NET、.NETCore、Node.js、Ruby、Python、Golang、Kotlin、Scala、PHPなど、多くの企業で使用されている主要なテクノロジー・プラットフォームのほとんどにおいて、カスタムコードの脆弱性、共通脆弱性(CVE)、攻撃に幅広く対処することができる。

アプリ/APIのデジタルセキュリティ設計図作成

ランタイムオブザーバビリティは、ランタイムセキュリティに追加された最新の機能である。この機能には、すべてのアプリとAPIのデジタルセキュリティ・ブループリントを作成する機能が含まれる。これらのブループリントは、ソフトウェアが実際にどのように動作するのか、セキュリティに関連する詳細をキャプチャします。ランタイムセキュリテは、コードの実行を監視することでこのデータを収集:ランタイムセキュリティは、攻撃対象全体を把握。すべてのエントリーポイントについて、セキュリティ防御、危険なテクノロジーの使用、バックエンド接続などを可視化。

不正確で不完全な調査やインタビューを使ってこのような情報を集めようとするよりも、チームは実際の脅威モデル分析に集中することができる。ブループリントはまた、侵入テストを効率化し、どの脆弱性についてどこをテストすべきかをテスターに正確に示す。すべての脆弱性をソフトウェアの完全なコンテキストの中で評価できるため、高度なコンテキストのリスク評価と優先順位付けも可能になる。インシデントレスポンスも同様だ:本番環境では、ブループリントによって、侵害調査中の迅速で文脈に沿った対応が可能になります。

すべてのアプリケーションとAPIについて、常に最新のデジタルセキュリティ設計図を持つ必要があります。ランタイムセキュリティはそれを自動化します。

ランタイムセキュリティでAppSecプログラムを更新する

ランタイムセキュリティを活用するAppSecプログラムは、従来のAppSecプログラムと比較して作業を効率化し、はるかに優れた結果を生み出すことができる。

IDCこのケーススタディでは、Floor&Decor社がAppSecプログラムでランタイムセキュリティをどのように使用しているか?そして同社が経験したメリットについて詳しく説明しています。Floor&Decor社のAppSecチームリーダによると、ランタイムセキュリティを使用することで、最近のLog4jインシデントのような潜在的に影響力のあるセキュリティイベントをより適切に特定、修正、回避できるようになったという。彼らは、Log4Shellが公に知られる何年も前から、自社のアプリケーションはLog4Shellから保護されていたと述べています。

ランタイムセキュリティは、Floor&Decor社のセキュリティ脆弱性保護と修復能力、特にAPI環境に関して、より成熟した効果的なAppSecプログラムの構築を支援しました。その結果、同チームは、費用対効果が高く効率的な方法で業務全体に包括的かつ効果的なセキュリティを提供し、拡大する業務が成長できる強固なセキュリティ基盤を確立しました。

プログラムの合理化に加え、Floor&Decor社は3年間のROIを258%達成し、5か月で投資を回収することができました。硬質フローリングの小売業者は、ランタイムセキュリティによってAppSecチームの効率が30%向上し開発チームの生産性が13%向上しました。ランタイムセキュリティの導入により、開発環境に関連する重大なセキュリティ問題の処理に必要なスタッフの時間が94%削減されセキュリティ問題のスキャンに必要なスタッフの時間も88%削減された。また脆弱性のあるアプリケーションの発見も92%減少している。

これらの結果は、従来のAppSecツールで苦労している企業にとって重要かつ達成可能なものだ。

今後のトレンド

ソフトウェアのスピード、複雑性、接続性、重要性のすべてが、信じられないほど急速に加速している。アプリケーションがどのように組み立てられ実際にどのように動作するのかについて最小限の理解しか持たない「外部から内部」のAppSecツールでは、到底追いつくことはできない。またツールを実行し続け不正確な結果に対処し続ける労力は耐え難く、さらに悪化する運命にある。最も重要なことは、これらのツールの結果は、単にあなたのビジネスを信頼するには十分ではないということだ。

幸いなことにランタイムセキュリティは、企業がソフトウェアを構築する方法とはるかに互換性のある単一のテクノロジーで、より高速で正確かつスケーラブルなAppSecを実現することができる。ランタイムセキュリティはすでに、あらゆる分野の大企業で何十万もの重要なアプリケーションを保護している。銀行、保険、ヘルスケア、ソーシャルメディア、政府機関、ソーシャル・アプリケーションなどで、ランタイムセキュリティによって保護されたアプリやAPIをすでに利用しているはずです。

私たちは、すべてのスタックにランタイムセキュリティが含まれ、ソフトウェア開発組織が健全なAppSecプログラムを持ち、迅速な脆弱性修復、最小限のセキュリティバックログ、高速なイノベーションを実現する未来を見ています。

詳細

ランタイムセキュリティとIASTについて、Jeffの見解も含めPodcastでお聞きください:

  • DASTがIASTに置き換えられやすい理由
  • WAFを捨てる時かどうか
  • IASTがDevOpsのスピードで動作する理由
  • 開発者なら誰でもIASTを使ってアプリケーションの脆弱性を発見できる理由
  • RASPとIASTの検知・ルール技術の違い
  • ランタイム・セキュリティが新たな脆弱性の発生率を劇的に削減する理由
  • RASPとIASTAppSecの万能薬か?

Contrast Security Japan