Insecure design

بسم الله والصلاه والسلام علي رسول الله ف البدايه كد صلي ع النبي و عايزك تركز معانا حاجه حلوه انهادره متنساش ورد انهارده يوم 4 رمضان ومعانا ورد من صفحه (62) الي (82) معانا انهارده ثغره مهمه بس قبل اما تبدأ تعمل كود ودي الي تفرق بينك وبين اي مبرمج تاني معانا ومعاكوا

🔥 التصميم غير الآمن (Insecure Design) 🔥

Press enter or click to view image in full size

Insecure Design OWASP Category Diagram
Insecure Design OWASP Category Diagram

4/30 Insecure Design

🛠 ايه هو التصميم غير الآمن؟

التصميم غير الآمن هو لما يكون التطبيق نفسه معمول بطريقة تخليه عُرضة للاختراق، حتى لو الكود مفيهوش ثغرات تقليدية زي SQL Injection أو XSS. المشكلة هنا بتكون في التخطيط والتصميم مش في التنفيذ بس.

بمعنى تاني، التطبيق ممكن يكون شغال بدون أخطاء تقنية واضحة، لكن بسبب ضعف التصميم، المهاجم يقدر يستغله بطرق غير متوقعة!

Get Jooexploit’s stories in your inbox

Join Medium for free to get updates from this writer.

Subscribe

Remember me for faster sign in

💡 مثال واقعي:
تخيل عندك موقع بيقدم خدمة تحويل الأموال بين المستخدمين، لكن بدون أي تأكيد على الهوية لما حد يطلب تحويل مبلغ كبير!

  • المفروض لما حد يطلب تحويل مبلغ كبير (زي 10000$)، يكون فيه خطوة تحقق إضافية زي إدخال OTP أو المصادقة الثنائية (2 FA).
  • لكن في بعض الأنظمة اللي فيها تصميم غير آمن، المستخدم ممكن يحول الفلوس بضغطة زر بدون أي تحقق إضافي.
  • في الحالة دي، لو حساب المستخدم اتعرض للاختراق أو حتى لو حد استخدم جهازه بدون إذنه، ممكن يخسر كل فلوسه بسهولة.

وده بيكون خطأ في التصميم مش في البرمجة! 🤯

🔎 إزاي ممكن نلاقيها؟

👀 ابحث عن غياب التحقق من الصلاحيات:

  • جرب الدخول بحساب مستخدم عادي، وحاول تنفيذ أوامر خاصة بالإدارة وشوف لو عندك الصلاحيات ولا لأ.
  • لو مفيش تحقق، يبقى فيه تصميم غير آمن يسمح بأي حد يعمل حاجات مش من حقه.

كمثال لو عندك لوحة تحكم للادمن في الموقع على الرابط ده:

https://example.com/admin

لكن مفيش تحقق حقيقي من صلاحيات المستخدم، ممكن أي حد يدخل على الرابط ويشوف بيانات حساسة!

🕵️ اختبر مسار العمليات في الموقع (Business Logic Flaws):

  • شوف لو فيه خطوات مفقودة أو تحقق ناقص قبل تنفيذ عمليات حساسة.
  • جرب التلاعب في الـ requests لمعرفة هل التطبيق بيحمي العمليات المهمة ولا لأ.

عشان تفهم عايزك تتخيل إن عندك نظام خصومات في موقع بيع إلكتروني، بيدي 20% خصم لأول عملية شراء لكل مستخدم جديد.

  • لو النظام مصمم بطريقة غير آمنة، ممكن حد يستغل ده ويسجل أكثر من حساب وياخد الخصم كل مرة!
  • لو مفيش تحقق حقيقي على إن الحسابات دي حقيقية، ممكن المهاجم يستغل النظام بسهولة.

⛔️ الحل:

  • لازم الموقع يعتمد على طرق تحقق قوية زي التحقق من رقم الهاتف أو بيانات الدفع بدل ما يعتمد على البريد الإلكتروني بس.

🎯 إزاي نقدر نستغلها؟

🔥 1️⃣ استغلال غياب الحماية في مسارات العمليات:

  • لو فيه خطوات مفقودة في التحقق، جرب تنفيذ الطلبات يدويًا عبر أدوات زي Burp Suite.
  • جرب التعديل على الـ requests قبل إرسالها للسيرفر، وشوف هل التطبيق بيتحقق من صحة البيانات ولا لا.

🔥 2️⃣ استغلال ضعف الصلاحيات (Broken Access Control):

  • جرب الدخول بحساب عادي، وابعت request لصفحات المشرفين وشوف هل عندك صلاحية ولا لأ.
  • استخدم IDOR (Insecure Direct Object References) لمحاولة الوصول لبيانات غيرك بدون إذن.

💡 مثال عملي:
لو عندك رابط بيدي تفاصيل طلبات الشراء:

https://example.com/orders/12345

  • جرب تغيّر الـ ID في الرابط لـ طلب يخص مستخدم تاني، وشوف لو تقدر تشوف بياناته ولا لأ!
  • لو تقدر تشوف الطلبات بتاعت ناس تانية، يبقى فيه تصميم غير آمن يسمح بتجاوز الصلاحيات.

🛡 إزاي نحمي الموقع منها؟

✅ تخطيط أمني من البداية:

  • لازم الأمان يكون جزء أساسي من تصميم التطبيق مش مجرد إضافة بعدين.
  • حل أي مشاكل في تدفق العمليات (Business Logic) قبل تنفيذ الكود.

✅ تفعيل التحقق من الصلاحيات:

  • لازم كل طلب يتم التحقق منه على السيرفر قبل تنفيذه.
  • عدم الاعتماد على التحقق من الصلاحيات في الـ Frontend بس.

✅ استخدام MFA (المصادقة متعددة العوامل):

  • أي عملية حساسة لازم يكون فيها خطوة تحقق إضافية زي OTP أو 2 FA.

✅ تطبيق قيود صارمة على الإدخال:

  • أي بيانات بيدخلها المستخدم لازم يتم التحقق منها بشكل دقيق عشان تمنع أي ثغرات محتملة.

✅ مراجعة الأمان بانتظام:

  • إجراء اختبارات اختراق دورية عشان تكتشف أي مشاكل في التصميم قبل المهاجمين.

📂 كام Writeup عشان تشوف حاجات على أرض الواقع + POC:

🔗 Insecure Design Writeup 1
🔗 Insecure Design Writeup 2
🔗 Insecure Design POC Video

💻 لابات تحلها عشان تتمكن من الثغرة:

🎯 Lab 1 — Insecure Design Testing

🎯 الخلاصة:

يا اخويا يسباك يمحترم خلي شغلك نضيف وابدا كد ظبط ال logic بتاع ال application وامشي واحده واحده وجرب كل الحالات كونك بتلاقي ثغرات ف موقعك افضل من كون حد تاني يلاقيها وهنا نكون قد انتهينا متنساش تتابعني عشان بكرا باذن الله هتكلم عن Security Misconfiguration — سوء التهيئة الأمنية