AST-Level Semantic Watermarking Framework for AI-Generated Code: Robust Provenance Attribution via Structural Invariants
تقترح هذه الورقة إطار عمل جديداً للعلامات المائية على مستوى شجرة الإعراب المجردة (AST) ومستقلاً عن النموذج، يقوم بدمج تواقيع قابلة للتحقق تشفيرياً في الطوبولوجيا النحوية للكود المُنشأ بواسطة الذكاء الاصطناعي من خلال طفرات هيكلية محافظة على الدلالات، مما يحقق إسناداً قوياً للمصدر ويتفوق بشكل كبير على الأساليب الحالية القائمة على النصوص ضد التحويلات الشائعة للكود مثل التنسيق، وإعادة التسمية، وحقن الكود الميت.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
في العصر الحديث لإنشاء البرمجيات، ثورة هادئة تجري تحت السطح. فقد أصبحت النماذج اللغوية الكبيرة، وهي أنظمة الذكاء الاصطناعي القوية القادرة على كتابة الأكواد البرمجية، أدوات قياسية للمطورين، واعدةً بتسريع بناء التطبيقات الرقمية. ومع ذلك، فإن هذه السهولة تجلب تحديًا كبيرًا: فعندما تكتب الآلة برنامجًا، يصبح من شبه المستحيل معرفة من الذي أنشأه بالفعل. إن الخطوط الفاصلة بين الجهد البشري والتوليد الآلي تتلاشى، مما يترك شركات البرمجيات والباحثين عرضة للسرقة، والانتحال، وانتشار الأكواد غير المتحقق منها. ولحل هذه المشكلة، حاول الخبراء لفترة طويلة إخفاء التوقيعات الرقمية، أو العلامات المائية، داخل نص الكود نفسه. لكن هذه الطرق التقليدية هشة؛ فهي تشبه كتابة رسالة سرية في المسافات بين الكلمات، والتي تُدمر بمجرد أن يقوم شخص ما بإعادة كتابة المستند أو تغيير الخط. يظل الكود كما هو، لكن الرسالة المخفية تتلاشى.
يغير نهج جديد، فصّله بحث حديث، الاستراتيجية من سطح النص إلى المنطق الأساسي للبرنامج. فبدلاً من إخفاء رسالة في الكلمات، يخفي هذا النهج الرسالة في بنية الكود. طور الباحثون نظامًا يعامل برنامج الكمبيوتر ليس كسطر من النص، بل كخريطة هرمية لمنطقه الخاص، والمعروف باسم "شجرة بناء الجملة المجردة" (Abstract Syntax Tree). توضح هذه الخريطة كيف تتصل الأجزاء المختلفة من الكود وتتفاعل، بغضًا عن كيفية تنسيق الكود أو تسميته. ومن خلال إجراء تغييرات طفيفة ومضمونة رياضيًا على هذه البنية — مثل تبديل ترتيب رقمين في عملية حسابية لا يهم ترتيبهما، أو تحويل نوع معين من الحلقات التكرارية إلى نوع آخر مكافئ له — يقوم النظام بدمج توقيع تشفيري مباشرة في "الحمض النووي" للبرنامج. هذه التغييرات غير مرئية للكمبيوتر الذي يشغل الكود ولا تغير ما يفعله البرنامج، لكنها تترك علامة دائمة يمكن اكتشافها، وتصمد حتى لو تم تعديل الكود أو إعادة كتابته بشكل مكثف.
يعتمد جوهر هذا الإطار على أداة تسمى "tree-sitter"، والتي تعمل كمحلل عالي الدقة قادر على قراءة الكود وإعادة بناء هيكله المنطقي دون فقدان أي تفاصيل. وخلافًا للأدوات القياسية التي قد تتجاهل التنسيق أو التعليقات، يحافظ هذا النظام على التخطيط الدقيق لكل بايت من ملف المصدر مع بناء شجرة تمثل منطق الكود. استخدم الباحثون هذا لتحديد نقاط محددة في الكود حيث يمكنهم إجراء تغييرات آمنة دون كسر البرنامج. وقد ركزوا على ثلاثة أنواع رئيسية من التحويلات: أولاً، بحثوا عن العمليات التبادلية، حيث لا يغير ترتيب عنصرين النتيجة، مثل جمع رقمين معًا؛ فتبديل ترتيب هذين الرقمين هو طريقة آمنة لتشفير بت واحد من البيانات. ثانيًا، حددوا العبارات المستقلة، أو أسطر الكود التي لا تعتمد على بعضها البعض، وأعادوا ترتيبها. ثالثًا، قاموا بتحويل هياكل تحكم معينة، مثل تغيير حلقة تكرارية عادية تعد تصاعديًا إلى رقم ما إلى نوع آخر من الحلقات يحقق النتيجة ذاتها تمامًا.
لتضمين علامة مائية، يستخدم النظام مفتاحًا سريًا لتوليد تسلسل محدد من هذه التغييرات الهيكلية. ثم يقوم بمسح الكود، ويجد المواضع المؤهلة، ويطبق التغييرات التي يمليها المفتاح السري. على سبيل المثال، إذا كان المفتاح يقتضي تبديل ترتيب عملية جمع معينة، يقوم النظام بذلك. وإذا كان المفتاح يقتضي الإبقاء على الترتيب، فإنه يتركه كما هو. ولأن هذه التغييرات تعتمد على منطق اللغة وليس على الكلمات المستخدمة تحديدًا، فإنها تصمد أمام أدوات التنسيق القياسية التي تقوم ببساه تنظيف المسافات أو إعادة تسمية المتغيرات. وحتى لو قام مطور بتشغيل الكود عبر أداة تنسيق تعيد تنظيم الملف بأكل، فإن البنية المنطقية تظل سليمة، ويستمر التوقيع المخفي. لقد صُمم النظام ليكون قويًا ضد محاولات مسح العلامة المائية، بما في ذلك الهجمات حيث يُطلب من ذكاء اصطناعي ثانٍ إعادة كتابة الكود لإزالة التوقيع.
للتحقق مما إذا كان الكود يحتوي على علامة مائية، بنى الباحثون محرك كشف يعمل بشكل عكسي. فهو يأخذ قطعة من الكود، ويعيد بناء شجرته المنطقية، ويبحث في نفس المواضع التي كان يمكن إجراء تغييرات فيها. ثم يتحقق من حالة تلك المواضع مقابل النمط المتوقع الناتج عن المفتاح السري. إذا كان الكود يحمل علامة مائية، فإن نمط التغييرات سيطابق المفتاح السري بشكل أكبر بكثير مما هو متوقع بالصدفة العشوائية. استخدم الباحثون اختبارًا إحصائيًا لقياس هذا الاحتمال، مقارنين المطابقات المرصودة بخط أساس من التباين العشوائي. إذا كان عدد المطابقات مرتفعًا بما يكفي، يستنتج النظام بثقة عالية أن الكود تم توليده بواسطة نموذج الذكاء الاصطناعي المحدد الذي طبق العلامة المائية. هذه العملية صارمة ورياضية، مما يضمن أن الكشف ليس مجرد تخمين بل هو نتيجة ذات دلالة إحصائية.
اختبر الباحثون إطار عملهم ضد مجموعة واسعة من الهجمات لمعرفة مدى صموده. لقد قاموا بمحاكاة سيناريوهات يتم فيها تمرير الكود المحمل بالعلامة المائية عبر أدوات التنسيق، أو تغيير أسماء متغيراته، أو إعادة كتابته بواسطة نموذج ذكاء اصطناعي آخر لتنظيفه. في هذه الاختبارات، فشلت طرق العلامات المائية التقليدية القائمة على النص بشكل شبه كامل؛ فعندما تم تنسيق الكود، دُمرت التوقيعات القائمة على النص، وانخفض معدل الكشف إلى جزء ضئيل مما كان عليه في الكود النظيف. في المقابل، حافظ النهج الهيكلي الجديد على معدل كشف يقارب تسعة وتسعين بالمائة حتى بعد التنسيق. وعندما تعرض الكود لإعادة تسمية المتغيرات، لا يزال النهج الهيكلي يكتشف العلامة المائية في معظم الحالات، بينما عانت الطرق الهيكلية القديمة. وحتى عندما استُخدم ذكاء اصطناعي ثانٍ لإعادة صياغة وإعادة كتابة الكود، وهي تقنية يصعب الدفاع ضدها، احتفظ الإطار الجديد بمعدل كشف يزيد عن أربعة وثمانين بالمائة. وتعود هذه المرونة إلى قيام النظام بتضمين نسخ عديدة من التوقيع عبر الكود؛ فحتى لو دمرت عملية إعادة الكتابة بعض العلامات، تظل هناك علامات كافية لإثبات الأصل.
كما تناول البحث المخاوف من أن هذه التغييرات قد تكسر الكود أو تبطئه. فقد تحقق الباحثون من أن كل تحويل طبقوه يحافظ على المخرجات الدقيقة للبرنامج ولا يغير سرعته أو استهلاك الذاكرة. لقد تم تجميع الكود وتشغيله بشكل مثالي، مع انعدام أي تدهور وظيفي. وهذا تميز حاسم عن الطرق الأخرى التي تحاول توجيه الذكاء الاصطناعي أثناء عملية الكتابة، والتي يمكن أن تؤدي أحيانًا إلى أخطاء أو أكواد غير صالحة. ومن خلال العمل على الكود النهائي وإجراء عمليات تبديل آمنة رياضيًا فقط، يضمن الإطار بقاء البرمجيات تعمل بكامل طاقتها. كما أن عملية الكشف نفسها فعالة، حيث تعتمد على اختبار إحصائي يمكن تشغيله بسرعة للتحقق من مصدر كميات كبيرة من الأكواد.
تمتد آثار هذا العمل إلى ما هو أبعد من مجرد حماية حقوق الملكية. فمع زيادة تكامل الذكاء الاصطناعي في سلسلة توريد البرمجيات، يصبح القدرة على التحقق من أصل الكود مسألة أمنية. فإذا كان الكود يحتوي على ثغرة أمنية مخفية أدخلها ذكاء اصطناعي، فإن معرفة مصدره أمر ضروري لإصلاح المشكلة. يوفر هذا الإطار طريقة لتتبع ذلك الأصل، مما يضمن إمكانية فحص وتوثيق البرمجيات ذات المهام الحرجة. وقد أظهر الباحثون أن طريقتهم تعمل عبر مجموعة بيانات تضم آلاف النصوص البرمجية، مما يوضح أنها قابلة للتوسع وجاهزة للاستخدام في العالم الحقيقي. وبينما أُجريت الدراسة على لغة بايثون، فإن مبادئ الثبات الهيكلي تنطبق على العديد من لغات البرمجة، مما يشير إلى مسار واسع نحو تأمين الأدوات الرقمية المستقبلية.
تشير النتائج إلى تحول جذري في كيفية حماية الملكية الفكرية في عصر الذكاء الاصطناعي. فمن خلال نقل العلامة المائية من سطح النص الهش إلى الهيكل القوي للمنطق، خلق الباحثون نظامًا يصعب محوه وسهل التحقق منه. وتشير النتائج إلى أن هذا النهج ليس مجرد إمكانية نظرية بل هو حل عملي يمكنه الصمود أمام التحرير وإعادة الكتابة المكثفة التي تميز تطوير البرمجيات الحديثة. ومع استمرار تلاشي الخط الفاصل بين الكود البشري والآلي، توفر هذه العلامة المائية الهيكلية طريقة موثوقة للحفاظ على الشفافية والمسؤولية في البرمجيات التي نبنيها. ويؤكد البحث أنه من الممكن دمج توقيع دائم وغير قابل للكسر في صميم منطق البرنامج، مما يضمن بقاء الأصل الحقيقي للكود مرئيًا، مهما تغير السطح.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.