Jannah Theme License is not validated, Go to the theme options page to validate the license, You need a single license for each domain name.

ما هي ثغرة Use-After-Free (UAF)؟ التهددات التي يجب أن تعرفها

Use-After-Free (UAF) هي ثغرة أمنية بدائية لتلف الذاكرة والتي لا تزال تُشكل تهديدًا كبيرًا لجميع أنواع البرمجيات من أنظمة التشغيل إلى التطبيقات. يحدث هذا الخلل الأمني الخطير عندما يُحاول أحد مُكوِّنات التطبيق الوصول إلى البيانات الموجودة في عنوان ذاكرة تم تحريره بالفعل ، ومن هنا جاء الاسم — Use-After-Free.

يُمكن أن تحدث ثغرات UAF في أي نوع من التطبيقات ، ولكن من المُرجح أن تحدث في البرمجيات التي تتعامل مع كميات كبيرة من البيانات ، مثل أنظمة التشغيل وقواعد البيانات وتطبيقات الويب. يُمكن أن تؤدي ثغرات UAF إلى مجموعة مُتنوعة من المشكلات.

يُمكن أن تؤدي ثغرات UAF إلى الاستغلال المُحتمل للتطبيقات أو حتى اختراق النظام. إليك ما هي ثغرة UAF ، ولماذا تحدث ، وكيف يُمكنك تأمين تطبيقك من ثغرة UAF. تحقق من ما هي الإيجابيات/السلبيات الخاطئة لتطبيق مُكافحة الفيروسات؟ هل يُمكنك منع حدوثها؟

صورة لـ ما هي ثغرة Use-After-Free (UAF)؟ التهددات التي يجب أن تعرفها | 1HeWejXXQmWxMoefdySJBJA-DzTechs

ما هي ثغرة Use-After-Free (UAF)؟

صورة لـ ما هي ثغرة Use-After-Free (UAF)؟ التهددات التي يجب أن تعرفها | 1QUFArUlaOTZipbIhxYlsGQ-DzTechs

قبل التعمق في تفاصيل ثغرة Use-After-Free ، دعنا نعود خطوة إلى الوراء ونفهم بعض أساسيات إدارة الذاكرة. عند تنفيذ تطبيق ما ، يتم تحميل بياناته وكوده في الذاكرة.

إدارة الذاكرة هي عملية تُدير كيفية تخزين (تُسمى تخصيص الذاكرة) وإزالة (يسمى إلغاء تخصيص الذاكرة) البيانات والكود في الذاكرة بالطريقة المثلى. مقطعا الذاكرة الأساسيان أين يتم تخزين بيانات التطبيق هما المكدس (Stack) والكومة (Heap).

يُمكن تخصيص مساحة ذاكرة للتطبيقات بشكل ثابت على المكدس وديناميكيًا على الكومة. تحدث الثغرة الأمنية بعد الاستخدام عندما لا يقوم المُبرمج بإدارة تخصيص الذاكرة الديناميكية وإلغاء التخصيص بشكل صحيح في تطبيقاته. هذا يعني أنَّ فئة الثغرات الأمنية من UAF هي نوع من استغلال ذاكرة الكومة. لفهم هذه الثغرة بشكل أفضل ، من المفيد أن يكون لديك فهم قوي لكيفية عمل المؤشرات في البرمجة.

Use-After-Free (UAF) كما يوحي الاسم ، هي نوع من ثغرات تلف الذاكرة البدائية التي تحدث عندما يتم الوصول إلى كائن تم إلغاء تخصيصه من الذاكرة مرة أخرى مما يُؤدي إلى حدوث أعطال أو عواقب غير مقصودة مثل تسرب الذاكرة أو تصعيد الامتيازات (EOP) أو تنفيذ التعليمات البرمجية التعسفية. دعونا نتعلم كيف تحدث هذه الحالة في المقام الأول وكيف يتم استغلالها. تحقق من ما هو هجوم تجاوز سعة المخزن المؤقت وكيف يُمكنك منعه؟

كيف يتم استغلال Use-After-Free (UAF)؟

صورة لـ ما هي ثغرة Use-After-Free (UAF)؟ التهددات التي يجب أن تعرفها | 10__OEkwCP1Wkz3txJCs5Bg-DzTechs

Use-After-Free (UAF) ، كما يُلمح الاسم ، هي ثغرة تحدث عندما يستمر أحد التطبيقات في الوصول إلى أماكن الذاكرة التي تم تحريرها. دعنا نلقي نظرة على مثال كود:

#include <stdio.h>
#include <stdlib.h>

int main() {
 int *DZTECHS = malloc(sizeof(int));
 *DZTECHS = 69420;
 printf(“Value: %d\n”, *DZTECHS);
 free(DZTECHS);
 printf(“Value?: %d\n”, *DZTECHS);
 return 0;
}

هل يُمكن تحديد الضعف البرمجي؟ كما ترى ، في هذا الكود ، يتم إلغاء تخصيص مؤشر DZTECHS من الذاكرة باستخدام دالة free () ، ومع ذلك يتم استدعاؤه مرة أخرى في السطر التالي باستخدام دالة printf (). ينتج عن هذا سلوك غير مُتوقع للتطبيق واعتمادًا على مكان وجود الثغرة الأمنية ، قد يتم الاستفادة منها للحصول على تصعيد الامتياز وتسرب الذاكرة.

كيفية التخفيف من آثار Use-After-Free؟

تحدث UAF بسبب أخطاء في برمجة التطبيق. هناك بعض الاحتياطات التي يُمكنك اتخاذها لتجنب الثغرات الأمنية في تطبيقك.

فيما يلي بعض أفضل المُمارسات التي يمكنك اعتمادها لتقليل نقاط ضعف تلف الذاكرة في تعليماتك البرمجية:

  1. استخدام لغات برمجة آمنة للذاكرة مثل Rust مع آليات مُدمجة لمنع الثغرات الأمنية البدائية لتلف الذاكرة مثل UAF و Buffer Overflows وما إلى ذلك. إذا كنت تستخدم لغات برمجة مثل C/C++ ، فمن المرجح أن تقوم بإدخال أخطاء في الذاكرة في تعليماتك البرمجية. للسبب نفسه ، حتى أنظمة التشغيل مثل Windows و Linux تنتقل ببطء إلى Rust. يجب أن تفكر أيضًا في التعرف على Rust إذا قمت بإنشاء تطبيقات مُنخفضة المستوى.
  2. إلى جانب استخدام لغة آمنة للذاكرة ، يوصى باتباع أفضل المُمارسات مثل تعيين مؤشر إلى قيمة NULL بعد تحريرها لتجنب أي مُقدمة للثغرة الأمنية Use-After-Free.
  3. يُمكنك أيضًا تنفيذ تقنيات مثل One Time Allocation (OTA) التي تمنع المهاجمين من الوصول إلى كائنات الذاكرة المُحررة وسياسة دورة حياة الكائن الصارمة ، والتي تُساعد في تتبع كل كائن ذاكرة يتم تخصيصه وإلغاء تخصيصه. ضع في اعتبارك أنَّ هذه التطبيقات قد تزيد من استخدام الذاكرة والأداء.

أمثلة من العالم الحقيقي على الثغرات الأمنية لـ Use-After-Free (UAF)

تم اكتشاف ثغرة Use-After-Free (UAF) واستغلالها في سيناريوهات مُختلفة في العالم الحقيقي من متصفحات الويب إلى نواة Android إلى التطبيقات اليومية. هذا يدل على الحاجة إلى تدابير أمنية استباقية. تتضمن بعض الأمثلة الواقعية على UAF ما يلي:

  1. متصفحات الإنترنت: تم استغلال ثغرات UAF في متصفحات الويب لتنفيذ تعليمات برمجية عشوائية وتعريض خصوصية المستخدم للخطر وتنفيذ هجمات لتنفيذ التعليمات البرمجية عن بُعد. ومن الأمثلة الحديثة على ذلك CVE-2021–38008 ، الذي استغل ثغرة UAF في Google Chrome ، مما سمح للجهات الفاعلة في التهديد بتنفيذ تعليمات برمجية عشوائية عن بُعد على الجهاز الضحية.
  2. أنظمة التشغيل: سمحت ثغرات UAF الموجودة في نواة Windows / Linux / Android للمُهاجمين بالحصول على امتيازات عالية ، وتجاوز آليات الأمان ، واكتساب الثبات. هناك عدد كبير من ثغرات UAF التي تم العثور عليها ولا تزال موجودة في نواة نظام التشغيل حتى هذا التاريخ. في وقت كتابة هذه السطور ، تم التعرف على CVE-2023–3269 ، ثغرة أخرى في UAF في نواة Linux تؤدي إلى تصعيد الامتياز علنًا. CVE-2022–23270 هي مثال على ثغرة أمنية لـ UAF في نواة Windows.
  3. التطبيقات البرمجية: تم استغلال ثغرات UAF في التطبيقات للتلاعب بسلوكه ، مما أدى إلى الكشف عن المعلومات ، وتنفيذ التعليمات البرمجية التعسفي ، وتعطل التطبيق ، وفي أسوأ الحالات ، تصعيد الامتيازات. كانت التطبيقات المُتعددة ولا تزال عرضة لهجمات UAF. تم تطوير هذه التطبيقات في الغالب بلغات C/C ++ باستخدام أساليب إدارة ذاكرة غير فعَّالة وغير آمنة.

لمعرفة المزيد حول ثغرات Use-After-Free في استخدامات العالم الحقيقي ، يُمكنك التحقق من صفحة قائمة MITER CVE الرسمية والفرز حسب الكلمة الأساسية Use-After-Free. تحقق من الطرق الشائعة التي يستخدمها القراصنة لاختراق حسابك المصرفي.

يُساعد التخصيص الفعَّال للذاكرة في تأمين التطبيقات

يقطع التخصيص الأمثل والمدروس للذاكرة شوطًا طويلاً لحماية تطبيقاتك من الوقوع فريسة لنقاط الضعف الشائعة في تلف الذاكرة البدائية.

تُعد UAF جنبًا إلى جنب مع وقت الفحص لوقت الاستخدام (TOCTOU) و تجاوز سعة المخزن المُؤقت (BOF) من أكثر نقاط الضعف شيوعًا في الذاكرة. يمكن تجنب كل ذلك من خلال تعلم كيفية إدارة ذاكرة التطبيق من خلال النظام الأساسي الذي يعمل عليه. يمنحك هذا وضوحًا حول كيفية تخصيص نظام التشغيل لتطبيقك في الذاكرة ويُزوِّدك بالأدوات اللازمة لتصميم التطبيقات للحصول على الأداء الأمثل والأمان.

إذا لم تكن قد قمت بذلك بالفعل ، فيمكنك البدء بفهم كيفية إدارة الذاكرة على Linux ، نظام تشغيل الخادم الأكثر استخدامًا في العالم.

زر الذهاب إلى الأعلى