هک ارتقای هتل: آسیبپذیری تخصیص انبوه در APIها
آسیبپذیری «تخصیص جمعی» (Mass Assignment) در APIها یکی از آن مشکلاتیست که خیلی ساده رخ میدهد ولی عواقب سنگینی دارد. وقتی یک API تمام فیلدهایی که کاربر فرستاده بدون بررسی مستقیم به سیستم پشتیبان میفرستد، هکر میتونه فیلدهای مخفی مثل سطح دسترسی یا قیمت سفارش رو به درخواست اضافه کنه و از راه درب پشتی وارد بشه.
چرا مهمه؟
خیلی از توسعهدهندهها وقتی API مینویسند، بهصورت خودکار هر چیزی که کاربر بفرسته رو روی سرور اعمال میکنند. این یعنی یه هکر میتونه فیلدهایی که قرار نبوده کاربر ببینه یا تغییر بده — مثل نقش کاربری، قیمت، یا وضعیت سفارش — رو مستقیم دستکاری کنه. توسعهدهندهها و تیمهای امنیت باید فوراً بررسی کنند که APIهاشون فقط فیلدهای مجاز رو قبول میکنند. نادیده گرفتن این مشکل میتونه به سرقت داده، سوءاستفاده مالی و نفوذ به سیستمهای حساس منجر بشه.
به درد کی میخوره؟
توسعهدهندگان وب و موبایل مهندسان Backend و API متخصصان امنیت اطلاعات تیمهای DevOps و معماری نرمافزار مدیران فنی شرکتهای SaaS
تو عمل چی کار کنیم؟
اولین قدم اینه که تمام APIهای فعلی رو بازبینی کنید و مطمئن بشید فقط فیلدهای تعریفشده در مدل داده پذیرفته میشوند. از راهکارهایی مثل whitelist کردن فیلدها، استفاده از DTO و غیرفعال کردن bind خودکار در فریمورکها استفاده کنید. اگه اپلیکیشنی دارید که کاربران درش ثبتنام یا پرداخت میکنند، اولویت بازبینی با APIهای احراز هویت و پرداخت باشد.
نظر Blue IT News
نکته مهمی که خیلیها نادیده میگیرند اینه که آسیبپذیری Mass Assignment فقط مخصوص زبان یا فریمورک خاصی نیست. Ruby on Rails قربانی مشهورش بوده ولی هر فریمورکی که bind خودکار داشته باشه — از Django گرفته تا Laravel — در خطر قرار داره. کد سادهایست ولی عواقبش گاهی میلیونها دلار خسارت داشته.