حصل البرنامج على المركز الأول في DARPA Cyber Grand Challenge ، المكرس لأتمتة القرصنة الأخلاقية

في عام 2011 ، عندما قال المستثمر مارك أندريسن
إن "البرامج تأكل العالم" ، كانت هذه الفكرة جديدة. من الواضح الآن أن البرنامج يخترق جميع جوانب حياتنا. بدءًا من الأجهزة الإلكترونية المعقدة ، مثل المعدات الطبية والروبوتات إلى أبسطها ، مثل المصابيح الكهربائية المتصلة بالإنترنت ومقاييس الحرارة ، يحيط بنا البرنامج.
وهذا يعني أننا معرضون للهجمات على هذا البرنامج كما لم يحدث من قبل.
كل عام ، يتم إضافة
111 مليار سطر من التعليمات البرمجية إلى البرامج الحالية ، ويعمل كل منها كهدف محتمل جديد. يتوقع ستيف مورغان ، مؤسس ورئيس تحرير شركة الأبحاث
Cybersecurity Ventures ، أن اختراقات النظام التي ترتكب من خلال ثغرات أمنية لم تكن معروفة سابقًا - ما تسميه الصناعة "ضعف يوم الصفر" - سيحدث في الولايات المتحدة يوميًا بحلول عام 2021 ، على الرغم من حدوثها
أسبوعيًا في عام 2015 .
لحل هذه المشكلة ، قضيت أنا وزملائي من جامعة كارنيجي ميلون ما يقرب من 10 سنوات في ابتكار تقنية يمكن أن تجعل البرنامج آمنًا تلقائيًا. ثم في عام 2012 ،
أسسنا ForAllSecure لتقديم منتجاتنا إلى العالم. كنا بحاجة فقط لإثبات أننا يمكن أن نفعل ما نقول ، وفعلنا ذلك في شكل المشاركة في المسابقة.
The Magnificent Seven: تتألق أجهزة الكمبيوتر المنافسة أمام جمهور نهائي Cyber Grand Challenge ، الذي أقيم في لاس فيجاس في عام 2016.سريعًا حتى عام 2016: تراكمت مجموعتنا في دورة مياه أحد الفنادق في لاس فيجاس وتقوم بعث أظافرها ، مع التأكد من أنها خسرت المنافسة ، التي استغرقت عدة آلاف من الساعات للتحضير لها. كان DARPA Cyber Grand Challenge (CGC) ، أحد الأحداث العديدة (مثل مسابقة سيارات الروبوت في أوائل عام 2000) التي نظمتها مشاريع الأبحاث المتقدمة التابعة لوزارة الدفاع الأمريكية لتحفيز الاختراقات التكنولوجية لضمان الأمن القومي. تم إنشاء CGC لأن DARPA أدركت أن اليوم قد يأتي للولايات المتحدة عندما لا يكون لديهم عدد كاف من الأشخاص أو الأدوات لصد الهجمات الإلكترونية.
هناك قراصنة متقنون في ميدان المعركة من أجل الأمن السيبراني ، ومن أفضلهم أولئك الذين يمكنهم استغلال نقاط ضعف البرامج بشكل خلاق لاختراق دفاع المنظمة. يُطلق على المجرمين الذين يقومون بذلك لأغراضهم الشخصية قراصنة القبعة السوداء ، وغالبًا ما يقومون بإنشاء أدوات يمكن للأطفال النصيين بها ، الأشخاص الذين يستخدمون برامج جاهزة ، إنشاء فوضى ، كما حدث ، على سبيل المثال ، في عام 2016 عندما كانت شبكات الإنترنت أطلقت الأشياء هجومًا كبيرًا عبر الإنترنت ، حيث تمكنت من الوصول إلى كاميرات المراقبة في منازل الأشخاص العاديين. وعلى العكس من ذلك ، يستخدم المتسللون ذوو القوافل الأخلاقية أو القبعة البيضاء مهاراتهم لمنع مثل هذه الهجمات. لكن المتسللين الأخلاقيين ليسوا كافيين لحماية جميع البرامج ، التي ينمو عددها في العالم التجاري بسرعة ، ناهيك عن البنية التحتية المشتركة والمنصات العسكرية ، الحيوية للأمن القومي والعالمي.
في عام 2014 ، أعلنت DARPA عن Cyber Grand Challenge - وهو مشروع مدته سنتان لاختبار جدوى تطوير أنظمة الذكاء الاصطناعي التي يمكنها العثور على نقاط الضعف في البرامج والتحقق منها وتصحيحها. في عام 2015 ، دخل مائة فريق مرحلة التأهيل المسبق. في عام 2016 ، وصل سبعة منهم إلى النهائي ، حيث احتاجوا إلى تقديم نظام قادر على التفكير - نظام لا يلاحظ المشكلة فحسب ، بل يفترض أيضًا مصدرها. البطل يتلقى 2 مليون دولار ، والمركزين الثاني والثالث - 1 مليون دولار و 750،000 دولار.
بعد إصدار DARPA لهذه التفاصيل ، أدركت أنا وزملائي على الفور أن هذه ستكون فرصة عظيمة لإظهار أن نظام الأمن السيبراني الآلي الخاص بنا ليس لعبة نظرية بسيطة. عندما تحدثنا عن ForAllSecure ، كنا نواجه دائمًا شكوك حول التطبيق العملي لحلنا. قررنا أننا نحتاج إلى الفوز في المسابقة ، بالنظر إلى أننا كنا نعمل عليها منذ عقد من الزمان.
بدأ بحثنا في الجامعة بافتراض بسيط: يحتاج الناس إلى طريقة لاختبار البرنامج الذي يشترونه للتأكد من أنه آمن. سيبذل المبرمجون ، بطبيعة الحال ، كل جهد ممكن للقضاء على المشكلات الأمنية ، ولكن مهامهم الرئيسية أبسط: فهم بحاجة إلى إطلاق المنتج في الوقت المحدد والتأكد من قيامه بما يحتاج إليه. المشكلة هي أن المتسللين سيجدون طرقًا للحصول على برنامج للقيام بما لا ينبغي له فعله.
اليوم ، تتضمن أفضل الممارسات في مجال أمان البرنامج استخدام أدوات خاصة لمراجعة الكود المصدري وتحديد نقاط الضعف المحتملة. تنتج هذه العملية الكثير من النتائج الإيجابية الكاذبة - علامات الأماكن التي ليست ضعيفة حقًا - لذلك يجب على الشخص متابعة كل هذه الأمور والتحقق من كل منها. لتحسين سرعة اكتشاف الأخطاء ، تعتمد بعض الشركات على المتسللين الأخلاقيين الذين يقومون بإجراء تحليل لمرة واحدة أو يشاركون في برامج البحث عن الأخطاء مقابل رسوم ، ويدفعون لهم مقابل عدد الأخطاء التي تم اكتشافها وشدتها. لكن الشركات الأكثر نجاحًا هي وحدها القادرة على اختبار البرامج عالية الجودة. وتزداد المشكلة تعقيدًا فقط عندما يتم تضمين مختلف المكونات مفتوحة المصدر وغيرها من أعمال الأطراف الثالثة في المنتج النهائي.
قدمنا نظام الفوضى في المسابقة ، والتي تعمل على أتمتة عمل المتسللين الأخلاقيين. لم تشر فقط إلى نقاط الضعف المحتملة ، لكنها استغلت هذه الثغرات الأمنية ، مما أثبت ضعفها. كانت هذه أيضًا نقطة أساسية في CGC - إظهار دليل على الضعف وخلق استغلال العمل كانت بعض الطرق لكسب نقاط النصر. وبما أن الفوضى كانت آلة يمكن تحجيمها ، يمكن إجراء مثل هذا التحليل بسرعات يتعذر على البشر الوصول إليها.
الفوضى ، مثل منافسيها الستة ، تتطلب تبريد المياه. لكن الإحصاءات عن الاستهلاك ودرجة الحرارة أظهرت أن الفوضى عملت بنشاط أكبر من البقية.لقد اقتربنا من إنشاء Mayhem ، ولدينا نظام لتحليل البرامج الجاهزة تم تطويره من قبلنا في الجامعة ، واستناداً إلى تحليل رسمي لنص البرنامج. يمكن مقارنة هذه الطريقة مع صيغة رياضية تصف كل مسار يمكن أن يسلكه أي برنامج ، أي إصدار شجرة تحليل متفرعة باستمرار. يمكن أن تصبح هذه الشجرة كبيرة جدًا بحيث لا يمكن العمل معها ، لكننا توصلنا إلى طرق ذكية لإزالة بعض المسارات التي تقصر الشجرة بأكملها إلى عدة فروع. بعد ذلك ، يمكننا بالفعل دراسة الفروع المتبقية بمزيد من التفاصيل.
التنفيذ الرمزي ينشئ معادلة تشير إلى منطق البرنامج بالكامل - على سبيل المثال ، x + 5 = 7 - ثم تحل هذه المعادلة. قارن هذه الإستراتيجية مع طريقة أخرى لتحليل البرامج ، في حالة
غموض ، عند محاولة تغذية قيم عشوائية بالبرنامج في محاولة
لإسقاطها ، وبعد ذلك يمكنك بالفعل تحديد نقاط الضعف التي أدت إلى إيقاف التشغيل وكيف يمكن استخدامها في هجوم متعمد. يدخل Fuzzing بيانات عشوائية إلى أن تجعل قيمة المعادلة صحيحة ، مع تحديد x = 2.
تتمتع كلتا الطريقتين بنقاط قوة ، ولكن لسنوات عديدة كان للاستفادة من سهولة التنفيذ وسرعة معالجة بيانات الإدخال. كان الأداء الرمزي محفوفًا بإمكانيات هائلة وغير مستغلة لأي شخص يمكنه تدبيرها. في نظام الفوضى ، الذي بدأنا في إنشائه في عام 2010 ، تمكنا من تحقيق ذلك من خلال الجمع بين كلا النهجين.
Fuzzing عبارة عن محاولة لجعل افتراضات مستنيرة بسرعة هائلة حول أي نوع من بيانات الإدخال يمكن أن يتسبب في سلوك البرنامج بطريقة جديدة ، ثم تتبع نوع البيانات الذي يؤدي بالفعل إلى هذه النتيجة. التنفيذ الرمزي هو محاولة لسؤال عالم الرياضيات عن استنتاج رسمي لأي بيانات إدخال يمكن أن تساعد في خلق استغلال. وجدنا أنه من الأفضل العثور على بعض الأخطاء من خلال التخمينات السريعة ، والبعض الآخر يستخدم منهجًا رياضيًا. لذلك ، قررنا استخدام كلتا الطريقتين في نفس الوقت. ينفذ التنفيذ الرمزي في دراسة متتابعة لجزء واحد من البرنامج ، ويوفر مدخلات تدير هذا الجزء من الشفرة. بعد ذلك ، يقوم النظام بتمرير هذه البيانات إلى برنامج التصفيق ، الذي يبدأ في طرح هذا القسم من الكود بسرعة كبيرة ، مع التخلص من الثغرة الأمنية منه.
هناك قدرة أخرى على الفوضى تعمل مباشرة مع الكود الثنائي ، على عكس الأشخاص الذين يدرسون الملفات النصية ، أي الكود المصدري. هذا يعني أنه يمكن للنظام تحليل البرنامج دون مساعدة من قام بتطويره ، وهذا مهم جدًا في حالة البرامج التي تتضمن مكونات مكتوبة بواسطة مطوري الطرف الثالث الذين لم يعد بالإمكان العثور على الكود المصدري الخاص بهم. لكن من الصعب إصدار أحكام حول الكود الثنائي ، لأنه على عكس الكود المصدري ، فإنه لا يحتوي على وظائف ، ولا متغيرات منطقية ، ولا تجريدات للبيانات. يحتوي الرمز الثنائي على قطعة واحدة فقط من الذاكرة ونواقل بت ذات طول ثابت - بنية تخزين بيانات فعالة. للعمل مع مثل هذا الرمز ، يجب أن تكون آلة ، ولإنشاء آلة يمكنها العمل بهذه القيود ، كان على المهندسين أن يعملوا كثيرًا.
بعد تحديد مشكلة عدم الحصانة ، تنشئ الفوضى استغلالًا عمليًا - مثل هذه الشفرة التي يمكن لمتسلل القبعة السوداء استخدامها للقضاء عليها. الهدف هو إثبات أنه يمكن استخدام استغلال للحصول على وصول متميز إلى نظام التشغيل. نتيجة لذلك ، يحدد Mayhem نقاط الضعف بثقة تامة ، ولا يلاحظ فقط المشكلات المحتملة ، كما تفعل معظم أدوات تحليل الشفرة.
في عام 2014 ، قمنا باختبار Mayhem على جميع البرامج المدرجة في توزيع دبيان ، وهو إصدار شائع من Linux يستخدم في جميع أنحاء العالم لأجهزة الكمبيوتر والخوادم العاملة. وجد Mayhem ما يقرب من 14000 نقطة ضعف فريدة من نوعها ، ثم قام بتقليص القائمة إلى 250 نقطة جديدة تستحق الأولوية القصوى. استغرق الاختبار بأكمله أسبوعًا ، لأننا قمنا بتوسيع نطاق الفوضى للعديد من الخوادم في سحابة Amazon ، وعملياً لم نحتاج إلى تدخل بشري. لقد أرسلنا أهم الاكتشافات إلى مجتمع دبيان لمراجعتها. أحد أسباب قرارنا تحويل مشروع بحثي إلى شركة تجارية كانت رغبتنا في التعاون على هذا النطاق مع المطورين ، وتحليل آلاف البرامج بحثًا عن عدد كبير من نقاط الضعف.
فريق مشروع الفوضى: مهندسو ForAllSecure يشكلون خلفية من بنات أفكارهم في حفل ختامي. مؤلف المقال ، ديفيد براملي ، في الصف الأول ، الثالث من اليسار.في 3 يونيو 2015 ، تم قبول أكثر من مائة مشارك في جولة التأهيل ، وتم منحهم 131 مهمة فريدة ، كان لكل منها نقاط ضعف معروفة. وصلت الفرق السبعة التي حصلت على أكبر عدد من النقاط (الصادرة للعثور على نقاط الضعف والتصحيحات الخاصة بها) إلى نهائيات Cyber Grand Challenge. ForAllSecure أكثر من الضعف حقق المشارك الذي احتل المركز الثاني في نقاط. وسرعان ما مهدت لحظة الفرح القصيرة هذه الطريق لإدراك أن الضغط الحقيقي يبدأ الآن فقط!
تحولت مهمة إنشاء نظام اتخاذ القرارات السيبرانية المتمتعة بالحكم الذاتي بالكامل على أساس تكنولوجيا الفوضى إلى مؤسسة صعبة للغاية. على وجه الخصوص ، تمكنا من القيام بذلك بفضل حقيقة أن DARPA خصصت سبعة متسابقين ما يكفي من التمويل لدعم عام كامل من التنمية. من بين المكونات الرئيسية للتكنولوجيا مجموعة من الأدوات التي تترجم البرامج القابلة للتنفيذ إلى لغة يسهل فهمها وتحليلها ، بالإضافة إلى أدوات فعالة للعثور على الثغرات واستغلالها ، وأدوات واقية لإنشاء تصحيحات تلقائية للشفرة الثنائية المعيبة ، وبرنامج لتنسيق العمل بكفاءة.
استعدادًا للنهائيات ، واجهنا مشكلتين خطيرتين. بادئ ذي بدء ، على الرغم من أننا كنا سعداء بالطريقة التي تعاملت بها Mayhem مع البحث عن نقاط الضعف ، بدا لنا أن التصحيحات لن تكون فعالة بما فيه الكفاية. في المنافسة ، كما هو الحال في الواقع ، ليس من المنطقي أن تضيف رقعة تلتهم وقت معالج أكبر من تكلفة حل هذه المشكلة. لذلك ، عملنا لفترة طويلة جدًا على نظام لإضافة تصحيحات تلقائية تزيد الاستهلاك بنسبة لا تزيد عن 5٪.
ثانياً ، نحن بحاجة إلى استراتيجية رابحة. لنفترض أننا وجدنا ثغرة أمنية وقمنا بعمل تصحيح لها. ربما لا ينبغي أن تتدحرج على الفور إذا كان يبطئ البرنامج أكثر من اللازم. في بعض الأحيان ، يستحق الأمر الانتظار وتطبيق التصحيح فقط كملاذ أخير. لقد قمنا بتطوير نظام خبير يتخذ قرارًا بشأن وقت تصحيح البرنامج.
عندما دخل فريقنا إلى قاعة لاس فيغاس ، حيث جرت النهائيات في 5 أغسطس 2016 ، شاهدنا سبعة رفوف ضخمة بأضواء ساطعة تقع على خشبة المسرح ، حيث كان يوجد خزان يحتوي على 180 طنًا من الماء الذي يبرد أجهزة كمبيوتر المشاركين. احتاج المشاركون إلى إعداد السيارات في الليلة التي تسبق بدء المسابقة ، ثم قام DARPA بنقل كل الوصول إليها. انقطعت السيارات عن الإنترنت وبصفة عامة عن العالم الخارجي. يمكننا فقط مراقبة كيفية عمل الفوضى ، ومراقبة استهلاك الطاقة ودرجة حرارة النظام ، حيث تم عرض إحصائيات بجانب كل حامل. عملت Mayhem باستمرار بنشاط أكثر من المنافسين - وكنا نأمل أن تكون هذه علامة جيدة.
لنحو 100 جولة ، تلقت الأنظمة المتنافسة برامج جديدة ، وكان عليها تحليل كود نقاط الضعف وإصدار التصحيحات اللازمة للحماية في بضع دقائق فقط. تم إعطاء نقاط في كل جولة من أجل قدرة الماكينة على العثور على وجود ثغرة أمنية وإثبات وجودها ، بالإضافة إلى فعالية الرقع.
النصر بهامش واسع: تمكن الفوضى من إنشاء هامش كبير ، ثم انخفض بعد الجولة الأربعين. لكن الفريق لم يعرف أي شيء عن هذه الفجوة حتى نهاية المسابقة.لجعل العرض أكثر إثارة للاهتمام ، قرر المنظمون إبلاغ النقاط النهائية فقط في نهاية المسابقة. هذا يعني أنه في العملية لم نكن نعرف ما إذا كنا نربح أو نخسر ، لم نر سوى Mayhem يرسل رسائل حول نقاط الضعف التي تم العثور عليها. ومع ذلك ، بعد ساعات قليلة من بدء المنافسة ، وبعد الجولة الأربعين ، أصبح من الواضح لنا أن Mayhem توقف عن إرسال الرسائل. تعطل البرنامج.
تقلص كل شيء بداخلنا ، لأنه بدا لنا أن أسوأ كابوس لدينا يتحول إلى حقيقة واقعة. لقد طلبنا من المنظمين فرصة لإعادة تشغيل البرنامج ، لكنهم لم يسمحوا لنا بذلك. ومنذ أن تم الانتهاء من نصف المنافسة فقط ، بدأنا الاستعداد لهزيمة مخزية.
بدأ المنظمون في التعليق على الموقف في نهاية المسابقة ، وأظهرت لنا تصورات جميلة كيف وجدت آلات كل فريق مشاكل أمنية ثابتة في البرامج خلال ثوانٍ ، مقارنة بالأشهر أو السنوات التي كان الناس يقضونها فيها. حضر القاعة أكثر من 5000 شخص ، وقد أبدى المعلقون الضيوف - عالم الفيزياء الفلكية والمتسللين المشهورين - اهتمامهم. نحن على استعداد لهم للإعلان عن هزيمتنا وتأكيدها بمعلومات على الشاشة.
ومع ذلك ، عند مشاهدة النقاط التي تمت إضافتها بعد كل جولة ، أدركنا فجأة أن الفجوة الأولية في Mayhem كانت كافية للاحتفاظ بالمركز الأول ، على الرغم من أنه أنهى عمله بعد الجولة الأربعين. بعد الإعلان عن نتائج الجولة الأخيرة ، يبدو الأمر وكأن الجبل قد سقط على أكتافنا. لقد فزنا.
قال مايك ووكر ، مدير برنامج DARPA ، إن هذه المظاهرة المستقلة للدفاع السيبراني كانت "مجرد بداية لثورة" في عالم أمن البرمجيات. وقارن النتائج بالرحلات الأولى للأخوين رايت ، الذين لم يطيروا بعيدًا ، لكنهم أظهروا الطريق إلى رحلات عبر القارات.
حتى الآن ، تبيع ForAllSecure الإصدارات الأولى من خدمتها الجديدة للعملاء الأوائل ، بما في ذلك الحكومة الأمريكية وشركات التكنولوجيا الفائقة والطيران. في هذه المرحلة ، تحدد الخدمة بشكل أساسي ما إذا كانت هناك مشكلات تم إصلاحها من قبل خبراء بشريين. لبعض الوقت ، ستعمل أنظمة مثل Mayhem مع أشخاص وخبراء أمن ، مما يجعل عالم البرمجيات مكانًا أكثر أمانًا. لكننا نعتقد أنه في المستقبل البعيد ، ستكون الاستخبارات الآلية قادرة على التعامل مع هذه المهمة بمفردها.