در حال بارگذاری...
تست زمانبندی فرآیند (Process Timing) برای اطمینان از اینکه مهاجم نمیتواند با سوءاستفاده از زمانبندی، عملیات غیرمجاز انجام دهد.
اهداف این درس
حملات زمانبندی شامل سوءاستفاده از فاصله زمانی بین دو عمل هستند. رایجترین نوع آن Race Condition است که در آن دو عمل همزمان نتیجه غیرمنتظره ایجاد میکنند.
وضعیتی که در آن رفتار سیستم به ترتیب یا زمانبندی رویدادهای غیرقابل کنترل بستگی دارد.
| نوع | توضیح | مثال |
|---|---|---|
| Race Condition | دو عمل همزمان | خرید همزمان آخرین محصول |
| TOCTOU | فاصله بررسی و اجرا | بررسی موجودی و کسر آن |
| Replay Attack | تکرار درخواست معتبر | تکرار درخواست پرداخت |
عملیاتی که شامل بررسی و سپس اجرا هستند شناسایی کنید: بررسی موجودی و کسر آن، بررسی موجودی حساب و انتقال وجه.
1// ارسال دو درخواست همزمان2// درخواست 1: خرید محصول (موجودی=1)3POST /api/buy4{"product_id": 1}56// درخواست 2: خرید محصول (موجودی=1)7POST /api/buy8{"product_id": 1}910// اگر هر دو درخواست قبل از کسر موجودی11// بررسی شوند، هر دو موفق خواهند بود.هشدار
Race Condition میتواند منجر به ضرر مالی جدی شود. مثلاً خرید همزمان آخرین محصول یا انتقال وجه بیش از موجودی.
توصیه عملی
از ابزارهایی مثل Burp Suite Intruder یا Turbo Intruder برای تست Race Condition استفاده کنید.
Race Condition یکی از خطرناکترین آسیبپذیریهای منطق تجاری است.
استفاده از Lock و Transaction از Race Condition جلوگیری میکند.
بررسی و اجرا باید در یک عملیات اتمیک انجام شود.
تست Race Condition نیاز به ابزارهای خاص و تکرار بالا دارد.
Race Condition چگونه پیشگیری میشود؟
Race Condition چیست و چگونه رخ میدهد؟
Race Condition زمانی رخ میدهد که دو یا چند عمل همزمان بدون هماهنگی مناسب انجام شوند و نتیجه غیرمنتظره ایجاد کنند.
TOCTOU چیست؟
TOCTOU (Time of Check to Time of Use) نوعی Race Condition است که در آن بین بررسی شرط و استفاده از نتیجه، وضعیت تغییر میکند.