[Prisma Cloud Compute Edition] 大規模なトラフィックを処理すると、ECS Fargate タスクが終了コード 255 で終了する

[Prisma Cloud Compute Edition] 大規模なトラフィックを処理すると、ECS Fargate タスクが終了コード 255 で終了する

725
Created On 07/31/24 08:21 AM - Last Modified 02/19/26 16:54 PM


Symptom


  • ECS Fargateタスクにディフェンダーがインストールされています
  • 防御されたタスクは、より大きなトラフィックを処理するときに、コード255で終了します。
  • 同じデプロイメントタイプですが、トラフィックが少ない場合は同じエラーが報告されないようです
  • ディフェンダーがなければ、トラフィック量が多くてもタスクは正常に動作します



Environment


  • Prisma クラウド コンピューティング エディション
  • AWS ECS ファーゲート


Cause


  • ほとんどの Linux システムでは、コマンドライン引数の最大サイズは 128kb のデータです (メモリ ページ サイズによって異なります)。こちらを参照してください - https://elixir.bootlin.com/linux/v4.15/source/include/uapi/linux/binfmts.h
  • 引数がこのサイズより大きい場合、防御側は引数文字列の読み取りに失敗し、実行を中止します (サイズ制限内で NULL 文字を見つけることができません)。
failed to fetch execve arguments: failed to read argument: failed to find string in <ArgString>
  • ここでの問題は、引数のコマンドラインが長すぎて128kbの制限に達し、防御側が設計どおりに実行を処理できないことです。
  • ディフェンダーは128kbに制限されており、ディフェンダー内で制限を変更することはできないため、タスクは失敗します。


Resolution


  • ここでの 1 つの回避策は、エンコードされた JSON を別のファイルで渡すことです。これにより、引数文字列をその JSON へのファイル パスにすることができ、大幅に短くなります。
  • または、より短い引数のための別の解決策を探してください。
  • 最近の Linux システムは 2MB を超える引数サイズをサポートできるため、Defender は引数サイズの 128kb 制限を削除するように修正されます。詳細は、https://man7.org/linux/man-pages/man2/execve.2.html を参照してください。


Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA14u000000HDluCAG&lang=ja&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language