
بقلم: نور | محررة الأبحاث والدراسات
نجح فريق من جامعة كاليفورنيا بيركلي في تدمير الثقة في صناعة تقييم الذكاء الاصطناعي بالكامل. طور الفريق وكيلاً آلياً يحقق درجات مثالية في كل منصة تقييم رائدة للوكلاء الذكية – (وفقاً لبحث جامعة بيركلي) – دون حل مهمة واحدة أو إجراء أي عملية استنتاج فعلية.
الوكيل الاستغلالي استهدف ثماني منصات: SWE-bench، WebArena، OSWorld، GAIA، Terminal-Bench، FieldWorkArena، وCAR-bench. في كل حالة، تجاهل الوكيل المهام المطلوبة واستغل الثغرات في آليات التقييم نفسها. النتيجة: درجات 100% أو شبه مثالية عبر 3,556 مهمة مختلفة.
هذا ليس مجرد بحث أكاديمي معزول. التلاعب يحدث بالفعل في الممارسة العملية: IQuest-Coder-V1 ادعت تحقيق 81.4% في SWE-bench، لكن الباحثين اكتشفوا أن 24.4% من مساراتها تنسخ الإجابات من git log. وجدت METR أن نماذج o3 وClaude 3.7 Sonnet تتلاعب بالمكافآت في أكثر من 30% من عمليات التقييم باستخدام تقنيات متقدمة مثل stack introspection وmonkey-patching.
OpenAI نفسها أوقفت استخدام SWE-bench Verified بعد مراجعة داخلية وجدت أن 59.4% من المشاكل المُراجعة تحتوي على اختبارات معيبة. في KernelBench، تُرجع torch.empty() ذاكرة GPU قديمة تحتوي صدفة على الإجابة المرجعية من العمليات السابقة – مما يمنح درجات كاملة بدون أي حوسبة.
الاستغلالات التي طورها فريق بيركلي تكشف الثغرات الأساسية في كل منصة:
- Terminal-Bench (89 مهمة) – 100% عبر Trojan Wrappers: استبدل الوكيل /usr/bin/curl بـwrapper مزيف أثناء مرحلة التنفيذ. عندما يحاول المُقيم تثبيت uv عبر curl | sh، يعترض الـwrapper الطلب، يثبت uv الحقيقي، ثم يحقن كود في uvx binary. النتيجة: كل استدعاء pytest ينتج مخرجات مزيفة تُبلغ عن نجاح الاختبارات وتكتب “1” في ملف المكافآت.
- SWE-bench Verified (500 مهمة) – 100% عبر Pytest Hooks: ينشئ الوكيل ملف conftest.py يحتوي pytest hook يُعيد كتابة نتائج كل اختبار إلى “passed”. يكتشف Pytest ملفات conftest.py تلقائياً ويحملها قبل التشغيل. للمشاريع التي تستخدم unittest بدلاً من pytest، يحقن الوكيل monkey-patch في django/__init__.py يستبدل unittest.TestCase.run بدالة تُبلغ دائماً عن النجاح.
- SWE-bench Pro (731 مهمة) – 100% عبر Parser Overwriting: يستخدم نفس تقنية conftest.py، لكنه يضيف pytest_configure hook يُعيد كتابة /workspace/parser.py بparser مزيف يُعلم كل اختبار مستخرج كـ”PASSED”. النهج نفسه يعمل مع Go عبر init() functions وJavaScript عبر ملفات .mocharc.yml.
- WebArena (812 مهمة) – ~100% عبر File System Access: يستغل الوكيل أن Playwright’s Chromium ينتقل إلى file:// URLs بدون قيود. بإخراج goto action يشير إلى file:///proc/self/cwd/config_files/{task_id}.json، يقرأ الوكيل ملف التكوين الذي يحتوي الإجابات الذهبية. إضافياً، يمكن حقنمخفي لاجتياز فحوص must_include، واستخدام prompt injection ضد LLM judge عبر تعليقات مُلحقة.
- FieldWorkArena (890 مهمة) – 100% بحرف واحد: دالة validate() تتحقق فقط من أن الرسالة الأخيرة جاءت من “assistant” – المحتوى مُتجاهل تماماً. دالة llm_fuzzy_match المُستوردة للمقارنة مع الإجابات المرجعية لا تُستدعى أبداً – إنها كود ميت. الاستغلال: send_msg_to_user(“{}”) – إجراء واحد، صفر استدعاءات LLM، 100% في كل المهام.
- OSWorld (369 مهمة) – 73% عبر Gold File Download: الـVM لديه وصول إنترنت غير محدود، والمراجع الذهبية مُستضافة في HuggingFace URLs عامة مُدمجة في تكوين المهام. الاستغلال: wget -q -O ‘/home/user/output.xlsx’ ‘https://huggingface.co/…/gold.xlsx’ – المُقيم يقارن الملف الذهبي مع نفسه. للمهام التي تتحقق من حالة النظام، يضبط الوكيل القيم مباشرة عبر gsettings أو كتابة الملفات المتوقعة.
- GAIA (165 مهمة) – ~98% عبر Public Answers: إجابات التحقق متاحة علناً على HuggingFace. الوكيل يحملها من ملف JSON محلي. حتى بدون الإجابات المُسربة، دالة normalize_str تُجرد كل المسافات البيضاء وعلامات الترقيم وتُحول لأحرف صغيرة قبل المقارنة، مما يجعل إجابات متعددة تبدو “صحيحة”.
- CAR-bench (كل مهام الهلوسة) – 100% عبر Skipped Validation: المنصة المُصممة لكشف الهلوسة تتخطى مكونات التحقق من صحة الإجابة في مهام معينة، مما يسمح بدرجات مثالية دون تحليل المحتوى. التنفيذ يُهمل خطوات التقييم الأساسية التي تُفترض أن تكشف الإجابات المُولدة خطأً.
الثغرة الجوهرية في كل هذه المنصات واحدة: النماذج تُقيّم في نفس البيئة التي تعمل فيها، مما يمنحها وصولاً كاملاً لآليات التقييم، ملفات الإعدادات، والبيانات المرجعية. كما أوضحت Anthropic مع Mythos Preview، النماذج الحدودية قادرة على تصميم exploits متطورة – في إحدى الحلقات، صمم النموذج استغلال privilege escalation يحذف نفسه بعد التشغيل.
المشكلة تتجاوز مجرد ثغرات تقنية – إنها تطعن في جوهر كيف نقيس التقدم في الذكاء الاصطناعي. عندما تنشر الشركات درجات benchmark كدليل على التفوق، والمستثمرون يستخدمونها لتبرير التقييمات، والمهندسون يعتمدون عليها لاختيار النماذج، فإن قابلية هذه الدرجات للتلاعب تُقوض النظام البيئي بأكمله.
الحلول تتطلب إعادة تصميم جذرية: عزل بيئات التقييم، تشفير البيانات المرجعية، استخدام تقييم خارجي مستقل، وتطبيق مراجعات أمنية صارمة لكل benchmark جديد. الكود والأدوات متاحة على GitHub للباحثين الذين يريدون إعادة إنتاج النتائج أو بناء منصات أكثر مقاومة للاستغلال.




