Cloud One:RASP (Runtime Application Self Protection)
トレンドマイクロ:Cloud Oneセミナー聴講のまとめです。
テーマは、サーバレスサービスのランタイム防御を提供するRASP (Runtime Application Self Protection)です。
セミナー聴講して
くっきりとした姿が見えているわけではないけど、おぼろげながら、浮かんできたんです。“RASP”の機能が。
まず、Lambdaの責任共有モデルです。見てわかるとおり利用者の責任はアプリケーションレイヤが中心です。
こちらがRASPの概要です。聴講する前はアンチウィルスかと思っていたのですが、WAFのような機能が並んでいます。この後の説明で保護レイヤはアプリケーションレイヤがメインでその他は対象外とのこと。Apacheなどは見捨てられるようです。
対象言語はインタプリタ言語が並んでいる様子。
他の特徴は導入が簡単で、エージェントをダウンロードして、インポートするだけで機能するのだとか。
下記にインストール手順が載っていたので、確認。
Python
エージェントをインストールするには、次の手順に従います。
- Cloud One-ApplicationSecurityパッケージ
trend_app_protect
をrequirements.txtに追加します。 - pipを実行してパッケージをインストールします。
pip install -r requirements.txt
trend_app_protect.start
WSGIスクリプトの上部にあるモジュールをインポートします。import trend_app_protect.start
- エージェントキーとシークレット(
TREND_AP_KEY
およびTREND_AP_SECRET)
は、環境変数を介して構成できます。 - オプションで、プロジェクトのルートまたは/ etcの下のファイルtrend_app_protect.iniで構成を提供できますが、環境変数は引き続き優先されます。
[trend_app_protect]
key = my-key
secret = my-secret
php
1.PHPのバージョンとプラットフォーム用のエージェントパッケージをダウンロードします。
2.次のようにApacheを停止します
sudo service apache2 stop
3.Trend_app_protect-*.soをPHP拡張ディレクトリに移動します。
4.以下をphp.iniファイル(または、存在する場合は/etc/php.d/の新しい.iniファイル)に追加します。
extension = trend_app_protect.so ; Add key and secret from the Application Protection dashboard trend_app_protect.key = <your key> trend_app_protect.secret = <your secret>
; Enable the extension
確かに簡単そうです。インタープリタなどに寄生してAPIフック?しているようです。
スクリプトの実行実体ってスクリプトエンジンなんですよ。意外に知られていないですけど
ただ知りたいのは、RASPの存在意義。
スライドを見る限りだと、
アプリケーションセキュリティは今のままではいけないと思います。だからこそ、RASPを導入しないといけないと思っている。
TMによればWAFと両方導入して多層防御を実現してほしいとのことです。HTTPベースとAPIベースで片方だけ検出できるようなケースがあるのかもしれません。横展開のようにWAFを経由しない攻撃を防御できる点も挙げていました。
なお、Cloud OneはRASP以外にも複数のモジュールで構成されています。そのため、S3やIaaSのように、サービス単位で攻撃フローを遮断するのが真の目的で、RASPはその一つという位置づけみたいです。
結論としては、RASPはアンチウィルスのような仕組みでWAF機能を実現するモジュールでした。導入時はアンチウィルスと同等の機能があると勘違いしないようにしましょう。