AWS - Lambda拡張の悪用
Reading time: 7 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Lambda拡張
Lambda拡張は、さまざまな監視、可視性、セキュリティ、およびガバナンスツールと統合することで関数を強化します。これらの拡張は、Lambdaレイヤーを使用した.zipアーカイブを介して追加されるか、コンテナイメージのデプロイメントに含まれるもので、内部と外部の2つのモードで動作します。
- 内部拡張は、ランタイムプロセスと統合し、言語固有の環境変数やラッパースクリプトを使用してその起動を操作します。このカスタマイズは、Java Correto 8および11、Node.js 10および12、.NET Core 3.1を含むさまざまなランタイムに適用されます。
- 外部拡張は、別のプロセスとして実行され、Lambda関数のライフサイクルに合わせて動作を維持します。これらは、Node.js 10および12、Python 3.7および3.8、Ruby 2.5および2.7、Java Corretto 8および11、.NET Core 3.1、およびカスタムランタイムと互換性があります。
Lambda拡張の動作方法についての詳細はドキュメントを確認してください。
永続性のための外部拡張、リクエストの盗難およびリクエストの変更
これは、この投稿で提案された技術の要約です: https://www.clearvector.com/blog/lambda-spy/
Lambdaランタイム環境のデフォルトのLinuxカーネルは、“process_vm_readv”および“process_vm_writev”システムコールでコンパイルされていることがわかりました。そして、すべてのプロセスは同じユーザーIDで実行され、新しいプロセスも外部拡張のために作成されます。これは、外部拡張が設計上、Rapidのヒープメモリに対して完全な読み取りおよび書き込みアクセスを持つことを意味します。
さらに、Lambda拡張は呼び出しイベントにサブスクライブする能力を持っていますが、AWSはこれらの拡張に生データを公開しません。これにより、拡張がHTTPリクエストを介して送信される機密情報にアクセスできないことが保証されます。
Init (Rapid)プロセスは、http://127.0.0.1:9001でのすべてのAPIリクエストを監視し、Lambda拡張は初期化され、Rapidの後に任意のランタイムコードの実行前に実行されます。
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.default.png
変数**AWS_LAMBDA_RUNTIME_API
は、子ランタイムプロセスおよび追加の拡張に対してRapid APIのIPアドレスとポート**番号を示します。
warning
AWS_LAMBDA_RUNTIME_API
環境変数を私たちがアクセスできるport
に変更することで、Lambdaランタイム内のすべてのアクションを傍受することが可能です(中間者攻撃)。これは、拡張がRapid Initと同じ特権で実行され、システムのカーネルがプロセスメモリの変更を許可するため、ポート番号の変更が可能です。
拡張が任意のランタイムコードの前に実行されるため、環境変数を変更すると、ランタイムプロセス(例:Python、Java、Node、Ruby)の起動に影響を与えます。さらに、私たちの後に読み込まれる拡張は、この変数に依存しているため、私たちの拡張を経由してルーティングされます。この設定により、マルウェアがセキュリティ対策やログ拡張を完全にバイパスすることができる可能性があります。
.png)
https://www.clearvector.com/blog/content/images/size/w1000/2022/11/2022110801.rapid.mitm.png
ツールlambda-spyは、メモリ書き込みを実行し、Lambdaリクエストから機密情報を盗む、他の拡張のリクエストを変更するために作成されました。
参考文献
- https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/
- https://www.clearvector.com/blog/lambda-spy/
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。