
ماسح ثغرات تطبيقات iOS/Android دون فك التجميع (مختبر عرض DC25، CB17)
trueseeing هو ماسح ثغرات أمنية سريع ودقيق ومرن لتطبيقات iOS/Android. نعمل على مستوى جهاز Dalvik الافتراضي لنظام Android – أي لا نهتم إذا كان التطبيق المستهدف مشفرًا أم لا.
حاليًا يمكننا:
ملاحظة:
نقدم حاويات لتتمكن من الاستخدام مباشرة كما يلي؛ هذا هو الآن الطريقة الموصى بها، والطريقة الوحيدة إذا كنت على Windows للتشغيل:
$ docker run --rm -v $(pwd):/out -v ts2:/cache ghcr.io/alterakey/trueseeing
إذا كنت تريد التشغيل بدون حالة، يمكنك حذف تثبيت المجلد على /cache (غير موصى به للاستخدام اليومي رغم ذلك؛ راجع أيضًا #254):
$ docker run --rm -v $(pwd):/out ghcr.io/alterakey/trueseeing
بدلاً من ذلك، يمكنك تثبيت حزمةنا باستخدام uv كما يلي. قد يكون شكل التثبيت uv tool install مفيدًا بشكل خاص للإضافات (انظر أدناه)، لأنه يمنحها أكبر قدر من الحرية. فقط تذكر أنك بحاجة إلى JRE وAndroid SDK (اختياريًا؛ للتعامل مع الأجهزة):
$ uvx trueseeing
$ uv tool install trueseeing
$ trueseeing
بالطبع يمكنك دائمًا استخدام pip القديم الجيد إذا اضطررت:
$ pip install trueseeing
يمكنك فحص/تحليل/تطبيق التصحيحات/إلخ. على التطبيقات بشكل تفاعلي - مما يجعله الخيار المثالي للتحليل اليدوي:
$ trueseeing target.apk
[+] trueseeing x.y.z
ts[target.apk]> ?
...
ts[target.apk]> i # عرض المعلومات العامة
...
ts[target.apk]> pf AndroidManifest.xml # عرض ملف البيان
...
ts[target.apk]> a # تحليل الموارد أيضًا
...
ts[target.apk]> /s something # بحث عن نص
...
ts[target.apk]> as # فحص
...
[+] done, found 6403 issues (174.94 sec.)
ts[target.apk]> gh report.html
نقبل أمرًا مضمنًا (-c) أو ملف سكريبت (-i) للتشغيل قبل إعطائك الموجه، بالإضافة إلى الخروج فورًا بدلاً من العرض (-q; لا نحتاج إلى tty في هذا الوضع!).
يمكنك استخدام الميزات لإجراء فحص دفعي، كما يلي مثلاً لإلقاء النتائج مباشرة على stderr:
$ trueseeing -eqc 'as' target.apk
لإنشاء ملف تقرير بصيغة HTML:
$ trueseeing -eqc 'as;gh report.html' target.apk
لإنشاء ملف تقرير بصيغة JSON:
$ trueseeing -eqc 'as;gj report.json' target.apk
للحصول على التقرير في stdout، احذف اسم الملف من أمر g* النهائي:
$ trueseeing -eqc 'as;gh' target.apk > report.html
$ trueseeing -eqc 'as;gj' target.apk > report.json
تقليديًا، يمكنك فحص التطبيقات باستخدام سطر الأوامر التالي للحصول على النتائج المدرجة في stderr:
$ trueseeing --scan target.apk
لإنشاء تقرير بصيغة HTML:
$ trueseeing --scan --scan-output report.html target.apk
$ trueseeing --scan --scan-report=html --scan-output report.html target.apk
لإنشاء تقرير بصيغة JSON:
$ trueseeing --scan --scan-report=json --scan-output report.json target.apk
للحصول على التقرير في stdout، حدد '-' كاسم الملف:
$ trueseeing --scan --scan-output - target.apk > report.html
$ trueseeing --scan --scan-report=html --scan-output - target.apk > report.html
$ trueseeing --scan --scan-report=json --scan-output - target.apk > report.json
يمكنك كتابة أوامرك وتوقيعاتك الخاصة كإضافات. توضع الإضافات تحت /ext (حاويات) أو ~/.trueseeing2/extensions/ (uv/pip). بدلاً من ذلك يمكنك توزيع إضافاتك كحزم wheels. نقدم معلومات الأنواع حتى تتمكن ليس فقط من التحقق من أنواع إضافاتك باستخدام zuban ولكن أيضًا الحصول على مساعدة جيدة من بيئات التطوير المتكاملة. راجع قسم التفاصيل للحصول على التفاصيل.
يمكنك بناؤه كما يلي:
$ docker build -t trueseeing https://github.com/alterakey/trueseeing.git#main
لبناء حزم wheels يمكنك استخدام flit، كما يلي:
$ flit build
لتطويره، تحتاج إلى إنشاء بيئة بناء مناسبة. باستخدام uv يمكنك فقط القيام بما يلي:
$ git clone https://github.com/alterakey/trueseeing.git wc
$ uv sync --locked --dev
$ (... hack ...)
$ uv run trueseeing ... # للتشغيل
$ uv run zuban check trueseeing && uv run ruff trueseeing # للتحقق
Success: no issues found in XX source files
$ uv run flit build # للبناء (wheel)
$ docker build -t trueseeing . # للبناء (حاوية)
باستخدام pip، لإنشاء واحدة، قم أولاً بإعداد venv، وقم بتثبيت flit وأدوات التحقق (zuban و ruff) فيه، واجعل flit يسحب التبعيات. باختصار، افعل شيئًا كهذا:
$ git clone https://github.com/alterakey/trueseeing.git wc
$ python3 -m venv wc/.venv
$ source wc/.venv/bin/activate
(.venv) $ pip install flit zuban ruff
(.venv) $ flit install --deps=develop -s
(.venv) $ (... hack ...)
(.venv) $ trueseeing ... # للتشغيل
(.venv) $ zuban check trueseeing && ruff check trueseeing # للتحقق
Success: no issues found in XX source files
(.venv) $ flit build # للبناء (wheel)
(.venv) $ docker build -t trueseeing . # للبناء (حاوية)
يمكننا حاليًا اكتشاف الفئات التالية من الثغرات، ومعظمها مغطى في قائمة OWASP Mobile Top 10 - 2016:
سوء استخدام المنصة (M1)
بيانات غير آمنة (M2)
اتصالات غير آمنة (M3)
تشفير غير كافٍ (M5)
مشكلات جودة كود العميل (M7)
العبث بالكود (M8)
الهندسة العكسية (M9)
توجد واجهة برمجة تطبيقات الإضافات الخاصة بنا تحت حزمة trueseeing.api. نظرًا لأننا نقدم معلومات الأنواع معها، سيساعدك بيئة التطوير المتكاملة عند كتابة إضافاتك. فقط تأكد من أن PYTHONPATH الخاص بها (أو خاص بخادم لغتها) يغطي venv حيث توجد حزمةنا؛ راجع uv tool list --show-paths إذا قمت بتثبيتها باستخدام uv tool install. إذا قمت بالتثبيت باستخدام uvx، فكر في إعادة تثبيتها باستخدام uvx install. إذا قمت بالتثبيت باستخدام pip، فأنت تعرف بالفعل مكانها.