
Falco Feedsは、オープンソースに焦点を当てた企業に、新しい脅威が発見されると継続的に更新される専門家が作成したルールにアクセスできるようにすることで、Falcoの力を拡大します。

本文の内容は、2021年5月11日に Sysdig CTO Loris Degioanni が投稿したブログ (https://sysdig.com/blog/aws-fargate-runtime-security-ptrace-ld_preload) を元に日本語に翻訳・再構成した内容となっております。
Fargateは、AWSユーザーに大きな価値を提案しています。仮想マシンのことは忘れて、コンテナをプロビジョニングするだけです。アマゾンが基盤となるホストの面倒を見てくれるので、ユーザーはLinuxインスタンスのメンテナンスやアップグレードの代わりに、ソフトウェアの開発に集中することができます。
Fargateは、小さなメンテナンスオーバーヘッド、攻撃対象を狭め、きめ細かな価格設定など、多くのメリットをもたらします。しかし、他のクラウド資産と同様に、AWS Fargateのタスクを放置しておくと、厄介なことになります。漏洩した場合、誰かがインフラをクリプトマイニングに使用した後に莫大な請求書を受け取ることになるかもしれません。
あるいは、攻撃者がクラウドのラテラルムーブメントを実行して、データに完全にアクセスする可能性もあります。
このような問題を検出するには、従来のインフラでアプリケーションを実行する場合とまったく同じように、Fargateワークロードのアクティビティを深く可視化する必要があります。

残念ながら、OSへのアクセスができないため、Fargateでそのようなレベルの可視性を得ることは非常に困難です。幸いなことに、Sysdigはこの問題に対する完璧なソリューションを提案しています。しかし、ソリューションについて話す前に、問題について説明しましょう。
現在のディープインストルメンテーションのアプローチ
商用、オープンソースを問わず、十分な粒度とコンテナへの対応を備えたランタイムセキュリティ製品を実行する場合、ptrace、LD_PRELOAD、カーネルインストルメンテーションの3つの主要な技術のいずれかを採用することがほぼ確実です。
これらの技術は、システムの活動(ファイルI/O、ネットワークなど)を細かい粒度で観察することを可能にし、真のセキュリティに必要なものです。これらを比較する際は「精度」と「オーバーヘッド」という2つの要素を考慮します。
1. LD_PRELOAD
LD_PRELOADは、環境変数LD_PRELOADを使用して、オペレーティングシステムに異なるバージョンのlibcダイナミックライブラリを読み込むように指示する手法です。Libcは、open()やconnect()などのカーネル関数を呼び出すために大半のプログラムで使用されています。
LD_PRELOADでロードされるバージョンには、これらの関数の呼び出しとパラメータを記録するインスツルメンテーションが含まれている場合があります。LD_PRELOADは比較的効率的ですが、正確ではありません。Goで書かれたプログラムなど、多くのアプリはlibcを使用せずカーネルを直接呼び出すためです。
また、LD_PRELOADはユーザーレベルの技術であるため、libcを使わないシステムコールには対応できません。さらに、システムライブラリの置き換えはリスクが高く、計測対象アプリに安定性の問題を引き起こす可能性があります。
2. ptraceとその仲間たち
ptrace は、Linux カーネルが提供する最も高度で複雑な機能の一つです。適切な権限を持つプロセスが他のプロセスを一時停止・調査・制御できます。
inotify や fanotify も同様の技術で、同じ特権要件を持ちます。これらの技術は非常に正確ですが効率的ではありません。カーネルとユーザープロセス間のコンテキストスイッチが多く必要なため遅いのです。
遅さを解消するには収集データを減らすしかありませんが、それでは精度が落ちます。つまり、ptraceは「遅いか不正確か」のどちらかになります。
3. カーネルインスツルメンテーション
この技術は、カーネルモジュールまたはeBPFを利用してカーネル内で安全にコードを実行します。カーネルインスツルメンテーションは、システムアクティビティを収集する最も効率的で正確な方法です。
カーネル内でアクションを直接収集するため、低オーバーヘッドであり、しかも「カーネルは嘘をつかない」ため高精度です。この理由から、Falco、Sysdig Secure、Sysdig Monitor はこの技術に基づいています。
Fargateの問題点
Fargateではホストにアクセスできないため、カーネルインスツルメンテーションを利用できず、LD_PRELOADかptraceを選ぶ必要があります。その結果、精度か性能、またはその両方を犠牲にすることになります。
Sysdigの高度なFargateインストルメンテーションの紹介
Sysdig SecureとSysdig MonitorのFargateサポートのリリースに伴い、Sysdigはpdig フレームワークの上に構築された新しい特許技術を提供しています。
カーネルキャプチャーと同等のデータ精度、Goプログラムを含む全ての実行ファイルのフルサポート、従来のコンテナ環境と同等の低オーバーヘッドを実現しました。

この厳しいシナリオでも、カーネルインスツルメンテーションによるアプリの速度低下は最小限です。一方で、ptraceは4倍以上の速度低下を示します。SysdigのFargateインスツルメンテーションは、カーネル方式と同等の低オーバーヘッドを維持しつつ、完全なI/OキャプチャとGo対応を実現しました。
まとめ
Fargateのセキュリティを真剣に考えるなら、Sysdigの高度なFargateインスツルメンテーションは妥協なく深い可視性を提供します。
Sysdigは、この技術に基づいた AWS Fargateのランタイムセキュリティ を発表しました。今すぐ 30日間の無料トライアル をお試しください。数分でセットアップが完了します。