في الأسبوع الماضي، أكملت Microsoft أخيرًا تحقيق Solorigate، وخلصت إلى أنه بينما تم الوصول إلى بعض ملفات التعليمات البرمجية لـ Azure و Intune و Exchange، لم يتم اختراق أي بيانات للعميل. تسبب الهجوم الإلكتروني في قلق كبير في جميع أنحاء العالم لأنه استهدف الإدارات الفيدرالية في الولايات المتحدة والمملكة المتحدة والبرلمان الأوروبي وآلاف المنظمات الأخرى. تم تنفيذ هجمات سلسلة التوريد على SolarWinds و Microsoft و VMware، حيث وصفها Brad Smith رئيس Microsoft بأنها "لحظة حساب a moment of reckoning".
الآن، قامت Microsoft بفتح مصادر استعلامات CodeQL التي استخدمتها في تحقيق Solorigate.
بالنسبة لأولئك غير المدركين، يعد CodeQL محرك تحليل التعليمات البرمجية الذي يعتمد على دلالات الكود وبناء الجملة. يقوم بتطوير قاعدة بيانات مبنية على نموذج رمز التجميع، والتي يمكن الاستعلام عنها بعد ذلك تمامًا مثل قاعدة البيانات العادية. يمكن استخدامه للتحليل الثابت والتفتيش بأثر رجعي للشفرة.
تم استخدام استعلامات CodeQL بواسطة Microsoft في تحقيق Solorigate الخاص بها من أجل تحليل التعليمات البرمجية بطريقة قابلة للتطوير وتحديد مؤشرات الاختراق (ndicators of compromise IoCs) وأنماط الترميز الأخرى التي يستخدمها مهاجمو Solorigate مباشرة على مستوى الكود.
قامت Microsoft بشكل أساسي ببناء قواعد بيانات CodeQL متعددة من خطوط أنابيب بناء مختلفة، ثم قامت بتجميعها في بنية أساسية واحدة لتمكين إمكانات الاستعلام على مستوى النظام. مكن هذا الشركة من اكتشاف نشاط ضار في الكود في غضون ساعات من وصف نمط الترميز.
نظرًا لأن هذا يعد أسلوبًا نحويًا ودلاليًا يعتمد على تحديد أوجه التشابه في أنماط الترميز مثل أسماء المتغيرات المستخدمة، فقد أكدت Microsoft أنه إذا وجدت نفس الأنماط في قاعدة التعليمات البرمجية الخاصة بك، فهذا لا يعني بالضرورة أنه تم اختراقها. يمكن للمبرمجين المتعددين بالطبع أن يكون لديهم نفس أسلوب الترميز.
في الوقت نفسه، من المهم أيضًا أن تتذكر أن الفاعل الضار غير مقيد بأسلوب تشفير واحد. بشكل أساسي، إذا انحرف المهاجم بشكل كبير عن نمط الزرع المعتاد، فسيكون قادرًا على التحايل على استعلامات Microsoft CodeQL. فيما يتعلق بقدرات تحديد نمط الكود النحوي والدلالي لمحرك CodeQL، يلاحظ عملاق Redmond التقني أن:
الآن، قامت Microsoft بفتح مصادر استعلامات CodeQL التي استخدمتها في تحقيق Solorigate.
بالنسبة لأولئك غير المدركين، يعد CodeQL محرك تحليل التعليمات البرمجية الذي يعتمد على دلالات الكود وبناء الجملة. يقوم بتطوير قاعدة بيانات مبنية على نموذج رمز التجميع، والتي يمكن الاستعلام عنها بعد ذلك تمامًا مثل قاعدة البيانات العادية. يمكن استخدامه للتحليل الثابت والتفتيش بأثر رجعي للشفرة.
تم استخدام استعلامات CodeQL بواسطة Microsoft في تحقيق Solorigate الخاص بها من أجل تحليل التعليمات البرمجية بطريقة قابلة للتطوير وتحديد مؤشرات الاختراق (ndicators of compromise IoCs) وأنماط الترميز الأخرى التي يستخدمها مهاجمو Solorigate مباشرة على مستوى الكود.
قامت Microsoft بشكل أساسي ببناء قواعد بيانات CodeQL متعددة من خطوط أنابيب بناء مختلفة، ثم قامت بتجميعها في بنية أساسية واحدة لتمكين إمكانات الاستعلام على مستوى النظام. مكن هذا الشركة من اكتشاف نشاط ضار في الكود في غضون ساعات من وصف نمط الترميز.
نظرًا لأن هذا يعد أسلوبًا نحويًا ودلاليًا يعتمد على تحديد أوجه التشابه في أنماط الترميز مثل أسماء المتغيرات المستخدمة، فقد أكدت Microsoft أنه إذا وجدت نفس الأنماط في قاعدة التعليمات البرمجية الخاصة بك، فهذا لا يعني بالضرورة أنه تم اختراقها. يمكن للمبرمجين المتعددين بالطبع أن يكون لديهم نفس أسلوب الترميز.
في الوقت نفسه، من المهم أيضًا أن تتذكر أن الفاعل الضار غير مقيد بأسلوب تشفير واحد. بشكل أساسي، إذا انحرف المهاجم بشكل كبير عن نمط الزرع المعتاد، فسيكون قادرًا على التحايل على استعلامات Microsoft CodeQL. فيما يتعلق بقدرات تحديد نمط الكود النحوي والدلالي لمحرك CodeQL، يلاحظ عملاق Redmond التقني أن:
"من خلال الجمع بين هذين النهجين، تكون الاستعلامات قادرة على اكتشاف السيناريوهات التي قام فيها الفاعل الخبيث بتغيير تقنياته ولكنه استخدم بناء جملة مشابهًا، أو تم تغيير بناء الجملة ولكنه استخدم تقنيات مماثلة. نظرًا لأنه من الممكن أن يتمكن الفاعل الضار من تغيير كل من البنية والتقنيات، لم تكن CodeQL سوى جزء واحد من جهودنا الاستقصائية الأكبر".
يتوفر المزيد من المعلومات حول استخدام استعلامات Microsoft CodeQL هنا. يمكنك معرفة المزيد حول كيفية نشر الاستعلامات هنا.