
مُفَجِّر تطوري موجَّه بقواعد نحوية للتحليل الديناميكي لواجهات أوامر AT على هواتف أندرويد الذكية عبر بلوتوث وUSB، يكشف عن هجمات حجب الخدمة (DoS)، وتسريبات الخصوصية، وثغرات خفض مستوى البروتوكول.
"Opening Pandora's Box through ATFuzzer: Dynamic Analysis of AT Interface for Android Smartphones" تم قبولها في المؤتمر السنوي الخامس والثلاثين لتطبيقات أمن الحاسوب (ACSAC) 2019. https://syed-rafiul-hussain.github.io/wp-content/uploads/2019/11/atfuzz.pdf
تركز هذه الورقة على التحقق من صحة ومتانة واجهة أوامر AT التي يعرضها معالج النطاق الأساسي للهاتف الخلوي عبر Bluetooth وUSB. يستخدم معالج التطبيق في الجهاز هذه الواجهة لإصدار أوامر عالية المستوى (أو، أوامر AT) إلى معالج النطاق الأساسي لتنفيذ عمليات الشبكة الخلوية (مثل، إجراء مكالمة هاتفية). يمكن استغلال الثغرات الأمنية في هذه الواجهة من قبل الأجهزة الطرفية الخبيثة عبر Bluetooth لشن هجمات متنوعة بما في ذلك هجمات حجب الخدمة (DoS) وهجمات الخصوصية. لتحديد هذه الثغرات الأمنية، نقترح ATFuzzer الذي يستخدم نهج اختبار التطوّر القائم على القواعد النحوية والذي يقوم بتحوير قواعد الإنتاج لقواعد أوامر AT بدلاً من أوامر AT الملموسة. كشف التقييم التجريبي لـ ATFuzzer على 8 هواتف ذكية تعمل بنظام Android من 5 بائعين عن 4 قواعد أوامر AT غير صالحة عبر Bluetooth و13 عبر USB مع آثار تتراوح من حجب الخدمة، خفض إصدار البروتوكول الخلوي إلى تسريبات خصوصية خطيرة.
Python 2.7.15. يُرجى عدم استخدام Python 3 لأن هناك عدم توافق في المكتبات. تم تحديد المكتبات المطلوبة في الملف requirements.txt ويمكن تثبيتها بتنفيذ الأمر:
pip install -r requirements.txt
ملاحظة: الوحدة pybluez الخاصة بـ Python 2.7 غير متوافقة مع Windows. لتثبيت pybluez على Windows، من الضروري تنزيل إصدار سابق. قم بتنزيل PyBluez‑0.22‑cp27 من pybluez وقم بتثبيته بالأمر:
pip install <pybluez file.whl>
لتشغيل ATFuzzer، قم بتنفيذ الأمر التالي:
sudo python executeFuzzer.py <list_of_grammars> <device_name> <port (optional)>
بدلاً من ذلك، يمكن تنفيذ ATFuzzer مع قواعد نحوية متعددة يتم اختيارها عشوائياً باستخدام الأمر:
sudo python executeFuzzer.py multi <device_name> <port (optional)>
ثم يطلب البرنامج الاختيار من بين 4 خيارات:
تتيح هذه الخيارات للمستخدم اختيار نوع ATFuzzer الذي يريد تشغيله. وهذا أساسي لاختبار وتقييم فعالية المختبر الخاص بنا.
أخيراً، يتطلب ATFuzzer تحديد القناة التي سيتم استخدامها لنقل أوامر AT. من الممكن الاختيار من بين ثلاثة خيارات:
إذا تم اختيار خيار Bluetooth، يسأل البرنامج عن عنوان Bluetooth للجهاز المستهدف. يمكن للمستخدم إدخال عنوان MAC للجهاز بالتنسيق المحدد: XX:XX:XX:XX:XX:XX (مثال: 1A:2B:3C:4D:5E:6F).
يقوم التنفيذ الاختباري بتشغيل ATFuzzer مع معايير تقييم وهمية وبدون إرسال أي أمر إلى جهاز. هذا الخيار مخصص لأغراض الاختبار فقط، لذا لا تستخدمه لاختبار هاتف ذكي فعلي.
ملاحظة: إذا قمت بتشغيل ATFuzzer عبر Bluetooth على Linux، قد يكون من الضروري تنفيذ البرنامج باستخدام sudo، اعتماداً على إعدادات النظام.
فيما يلي نقدم وصفاً لهيكل تنفيذ ATFuzzer.
commandGrammar.json: ملف JSON يحتوي على مجموعة من القواعد النحوية لأكثر من 80 أمر AT. يتم تعريف القواعد النحوية باتباع هيكل محدد يسمح للبرنامج بقراءتها بكفاءة.
executeFuzzer.py: البرنامج الرئيسي الذي يتيح للمستخدم تشغيل ATFuzzer. يوفر خيارات مختلفة للتنفيذ (انظر كيفية التشغيل).
grammarFuzzer.py: ينفذ عملية الاختبار الفعلية. يقرأ القواعد النحوية لأوامر AT المقدمة من المستخدم ويقوم بحلقة الاختبار: توليد المدخلات - إرسال المدخلات - تقييم القواعد - تطوير القواعد.
multiGrammarFuzzer.py: ينفذ عملية الاختبار الفعلية. يقرأ القواعد النحوية لأوامر AT المختارة عشوائياً ويقوم بحلقة الاختبار: توليد المدخلات - إرسال المدخلات - تقييم القواعد - تطوير القواعد.
grammarModifier.py: ينفذ وظائف مرحلة التطوير. تشمل هذه الوظائف تهجين القواعد وطفرة القواعد.
inputGen.py: يولد مثيل أمر AT عشوائي باستخدام قاعدة نحوية معينة.
atCmdInterface.py: ينفذ الوظائف اللازمة للتفاعل مع واجهة AT للجهاز المستهدف. وهو مسؤول عن إعداد الاتصال مع الجهاز، إرسال مثيلات أوامر AT، وأخيراً جمع الردود وتقييمها.
afl_fuzzer.py: ينفذ الوظائف المستخدمة لتشغيل مختبر AFL في سياق أوامر AT.
utilityFunctions.py: ينفذ وظائف داعمة لتنفيذ البرنامج الرئيسي.
results: دليل يحتوي على نتائج كل تنفيذ لـ ATFuzzer.
https://www.youtube.com/watch?v=qR4Pq5i0IRE
إذا وجد بحثك أن أحد مكونات savior أو عدة مكونات مفيدة، يرجى الاستشهاد بالورقة التالية:
@inproceedings{karim2019opening,
title={Opening Pandora's box through ATFuzzer: dynamic analysis of AT interface for Android smartphones},
author={Karim, Imtiaz and Cicala, Fabrizio and Hussain, Syed Rafiul and Chowdhury, Omar and Bertino, Elisa},
booktitle={Proceedings of the 35th Annual Computer Security Applications Conference},
pages={529--543},
year={2019}
}