RASP

RASP (Runtime Application Self-Protection: 実行中のアプリケーションが自身を保護すること)

RASP とは

RASP とは、アプリケーションの実行環境に構築される、またはリンクされる、セキュリティを実現するためのテクノロジーです。アプリケーションの実行を制御したり、実行中にリアルタイムで攻撃されるのを防ぐため、攻撃を検知して阻止したりする機能があります。

RASP はなぜ必要なのか

RASP

分散環境、または信頼関係が確立されていない環境で、多数のアプリケーションが稼働する状況が増え続けています。また、セキュリティ上の脅威が発生する頻度、脅威の洗練度、深刻度も同様に高まる一方です。分散環境、または信頼関係が確立されていない環境で稼働しているアプリケーションの例を以下に示します。

  • モバイル アプリケーション (モバイル端末からのバンキング/支払い、業務用アプリ、健康管理、デジタル メディア、ゲームなど)
  • パッケージ ソフトウェア (ISV、ゲーム、デジタル メディアなど)
  • 埋め込み型ソフトウェア / モノのインターネット (IoT) (ウェアラブル端末との接続、コネクテッド ホーム、コネクテッド シティ、コネクテッドカーなど)
  • 信頼関係が確立されていない環境で稼働するソフトウェア (クラウド、サードパーティのデータセンター、新興市場など)

レガシー テクノロジーでは、上記のアプリケーションの実行時に、十分な保護を提供できません。RASP を導入しない場合、外部からもたらされた悪意のあるアプリが、正規のアプリケーションの動作を実行中に妨害し、アプリケーションを改変して不正なアクティビティを実行させるおそれがあります。

「インフラストラクチャやその周辺環境を保護するテクノロジーにはそもそも、アプリケーションのロジックと設定、イベント、データ フロー、命令の実行、データ処理などに対する知見は含まれていない。従ってこうしたテクノロジーには、アプリケーションの脆弱性を正確に検出することを保証したり、アプリケーションレベルの攻撃に対する保護を実行したりするために必要な手段が欠けている」– 「Gartner Maverick Research1」リポートより

SDLC (Security Development Life Cycle:セキュリティ開発ライフサイクル) の一環として、セキュアなコーディングと、アプリケーションに対するセキュリティの従来のベスト プラクティスを受け継ぎ、実行時の攻撃からアプリケーションを保護することを推奨します。ただし、セキュアなコーディングや従来のベスト プラクティスは、現在の洗練されたランタイム攻撃からアプリケーションを守るのに十分とは言えません。また、開発者は必ずしもセキュリティに関する専門家であるとは限りません。

有力なアナリストや業界の専門家が、RASP の必要性を盛んに強調するようになりました。RASP とは、アプリケーションの実行環境に構築される、またはリンクされる、セキュリティを実現するためのテクノロジーです。アプリケーションの実行を制御したり、実行中にリアルタイムで攻撃されるのを防ぐため、攻撃を検知して阻止したりする機能があります。

「アプリは、セキュリティの自己テスト、自己診断、自己防御機能を備えていなければならない。CISO (最高情報セキュリティ責任者) にとっての最優先事項とするべきだ」– 「Gartner Maverick Research1」リポートより

「アプリケーション強化とランタイム保護は、エンタープライズ向けソフトウェア、組み込みシステム、モバイル アプリ、そして盛んに議論されている『モノのインターネット』 (IoT) の安全を確保する戦略では、非常に重要なコンポーネントだ」– 451 Research

RASP の実現方法

Arxan のアプリケーション保護は、当社独自の検知対応 (Detect-React) 方式により、アプリケーション内部で RASP 機能を実現しています。多彩な技法を採用した積極的な対策でランタイム攻撃を検知し、攻撃に対して、きめ細かくカスタマイズした対応策を実行します。

Arxan の RASP には以下のセキュリティ施策を組み込んで、今日の巧妙化したランタイム攻撃に対処しています。

  • アプリケーション実行中にランタイムのコードとデータの完全性を検証する
  • アプリケーションのロジックとデータ フローの可視性を考慮し、攻撃を正確に特定して阻止する
  • アプリケーションが安全な環境で稼働していることを保証しているかどうかをチェックする (例:脱獄 (ジェイルブレイク) または root 化した端末上で稼働しているアプリがないか、またはデバッガが動作していないかを検出する。こうした状況は、攻撃者が標的のプログラムを調べていることを意味するため)
  • 稼働中の別のアプリから、Swizzling 攻撃 (メソッドの不正な入れ替え) またはシステム コールのフッキングによって実行されている、悪意のあるアクティビティを検出する
  • ランタイム攻撃に対して、例えば以下のような、カスタマイズした対策を実行
    • 実行中に、改ざんされたコードを本来の正しいコードとリプレースする
    • ランタイム攻撃が検出された場合は、稼働中のアプリケーションを安全に終了する
    • 攻撃を検出した旨の通知を監視システム宛てに送信する