KavLabs
خانهبلاگ
KavLabs

یادداشت‌هایی از ذهن‌های کاوشگر، برای ذهن‌های کنجکاو

پرهام·پرهام·زال·زال·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
نوشته‌هادسته‌بندی‌هاجستجوی پیشرفتهلاگ تغییرات

©۲٬۰۲۶ KavLabs — تمام حقوق محفوظ است

ساخته‌شده با عشق توسط پرهام و زال

واژه‌نامه
۰۴ اسفند ۱۴۰۴انواع حملاتپیشرفتهزبان: فارسی

شرط مسابقه(N/A)

پیشرفتهنسخه انگلیسی

آسیب‌پذیری که زمانی رخ می‌دهد چندین فرآیند همزمان به یک منبع دسترسی پیدا کنند و نتیجه به ترتیب اجرا بستگی داشته باشد.

همزمانیزمانlogicthread

شرط مسابقه چیه؟

خلاصه در یه جمله: وقتی دو تا کار همزمان بخوان یه چیز رو تغییر بدن و نتیجه بستگی داشته باشه کی زودتر تموم بشه!

فرض کن حسابت ۱۰۰ تومنه. دو تا درخواست همزمان میاد برای برداشت ۱۰۰ تومن. اگه سیستم چک نکنه، هر دو درخواست موفق می‌شن و تو ۲۰۰ تومن برداشت می‌کنی در حالی که فقط ۱۰۰ تومن داشتی! این یعنی Race Condition.

چطور کار می‌کنه؟

۱. درخواست ۱: موجودی رو می‌خونه (۱۰۰ تومن) ۲. درخواست ۲: موجودی رو می‌خونه (۱۰۰ تومن) ۳. درخواست ۱: ۱۰۰ تومن برمی‌داره، موجودی می‌شه ۰ ۴. درخواست ۲: ۱۰۰ تومن برمی‌داره، موجودی می‌شه -۱۰۰!

چون چک نکردن بین مرحله ۲ و ۳.

چرا برای امنیت مهمه؟

چون Race Condition می‌تونه منجر به برداشت اضافی، دور زدن محدودیت‌ها، یا دسترسی غیرمجاز بشه. پیدا کردنش سخته، تست کردنش سخته.


منابع و مراجع

  • owasp.org/www-community/vulnerabilities/Race_Condition
  • cwe.mitre.org/data/definitions/362.html