[Prisma Cloud Compute Edition] ECS Fargate-Aufgaben werden bei der Verarbeitung großen Datenverkehrs mit dem Exitcode 255 beendet
432
Created On 07/31/24 08:21 AM - Last Modified 02/19/26 16:54 PM
Symptom
- Sie haben Defenders auf Ihren ECS Fargate-Aufgaben installiert
- Diese geschützten Aufgaben werden bei der Verarbeitung größeren Datenverkehrs mit dem Code 255 beendet.
- Derselbe Bereitstellungstyp, aber mit geringerem Datenverkehr, scheint nicht den gleichen Fehler zu melden
- Ohne den Verteidiger funktionieren die Aufgaben auch bei größerem Verkehr einwandfrei
Environment
- Prisma Cloud Compute Edition
- AWS ECS Fargate
Cause
- Die maximale Größe der Befehlszeilenargumente beträgt in den meisten Linux-Systemen 128 KB Daten (abhängig von der Größe der Speicherseite). Siehe hier - https://elixir.bootlin.com/linux/v4.15/source/include/uapi/linux/binfmts.h
- Wenn das Argument größer als diese Größe ist, kann der Defender die Argumentzeichenfolge nicht lesen und bricht die Ausführung ab (er kann das NULL-Zeichen nicht innerhalb der Größenbeschränkung finden):
failed to fetch execve arguments: failed to read argument: failed to find string in <ArgString>
- Das Problem hier ist also, dass die Argumentbefehlszeile zu lang ist und das Limit von 128 KB erreicht, und der Verteidiger kann die Ausführung nicht wie vorgesehen verarbeiten.
- Da der Defender auf 128 KB beschränkt ist und die Beschränkung im Defender nicht geändert werden kann, schlägt die Aufgabe fehl.
Resolution
- Eine mögliche Workaround kann hier darin bestehen, das codierte JSON über eine andere Datei zu übergeben, sodass die Argumentzeichenfolge ein Dateipfad zu diesem JSON sein kann, was es viel kürzer macht.
- Oder suchen Sie nach einer anderen Lösung für kürzere Argumente.
- Defender wird repariert, um diese 128-KB-Beschränkung für die Argumentgröße zu entfernen, da moderne Linux-Systeme Argumentgrößen von mehr als 2 MB unterstützen können, wie hier dokumentiert: https://man7.org/linux/man-pages/man2/execve.2.html