Broken Function Level Authorization (BFLA)


what is:

  • يتعلق الأمر بتوفير functional access غير مضمون أو غير مطلوب من قبل مستخدم معين

  • في العديد من الحالات، ما سيفعله المهاجم هو look at an endpoint توفر طلب GET حميدًا - طلب نوع البحث - ومحاولة استخدام أشياء مثل PUT وDELETE

  • إنهم يتطلعون إلى اكتشاف ما إذا كانت هذه الأنواع من الأوامر يتم تنفيذها بالفعل أم لا

  • الكشف هنا هو أنه يمكنك manipulate information وإجراء المعاملات بطرق are not authorized

  • قد يسمح لك هذا escalate privileges وتعديل account details وما إلى ذلك


Example:

  • استبدال طرق GET بـ PUT. لذا بدلاً من مجرد البحث my record باستخدام طلب GET، أحاول بالفعل تعديله - على سبيل المثال، changing my role from a user to an admin . أو يمكنني الدخول واستخدام أمر DELETE لحذف فاتورتي (invoice) أو تعيين الرصيد المستحق to zero or to a negative number

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


Prevention:

  • should look at those business flows, those functions that are especially sensitive

  • business flows that could result in a manipulation of data, an escalation of privilege, or performing transactions that shouldn't be authorized to anyone but the legitimate user

  • implement controls and testing للتأكد من أنك تفحص endpoints هذه بشكل صحيح عبر كل مجموعة ممكنة من أنواع الطلبات - and doing that on a continuous basis, on every release, on every push to production

Last updated