استفاده از هوش مصنوعی برای یافتن باگ‌های سطح دسترسی (Authorization)

برنامه‌های باگ باونتی در حال بسته شدن هستند. Nextcloud پاداش‌های نقدی را به دلیل گزارش‌های بی‌کیفیت هوش مصنوعی متوقف کرد. Mattermost برنامه خود را پایان داد. Internet Bug Bounty پرداخت‌ها را ۸۰ درصد کاهش داد.

مشکل این نیست که هوش مصنوعی نمی‌تواند باگ پیدا کند. مشکل اینجاست که هوش مصنوعی گزارش‌های زیادی تولید می‌کند که واقعی به نظر می‌رسند اما اشتباه هستند. تیم‌های تریاژ در میان این حجم از نویز غرق شده‌اند.

در سال ۲۰۲۶، مهارتی که به آن نیاز دارید، یافتن باگ نیست. یک مدل قبل از ناهار، پنجاه ایده به شما می‌دهد. مهارت واقعی این است که ثابت کنید چرا چهل و نه مورد از آن‌ها نادرست هستند. شما به روشی نیاز دارید که «منفی‌های صحیح» (correct negatives) تولید کند.

از این روش دو مرحله‌ای برای کدهای با دسترسی به منبع (source-available) استفاده کنید:

۱. پخش گسترده (مدل‌های ارزان) سطح دسترسی (authorization surface) را به بخش‌های کوچک تقسیم کنید. هر بخش را به صورت موازی بخوانید. به دنبال قوانین شکسته بگردید. به دنبال جاهایی بگردید که یک شیء بدون بررسی مالکیت (owner check) بارگذاری می‌شود. به دنبال مسیرهایی بگردید که دروازه‌های امنیتی را دور می‌زنند. روی یافتن هر سرنخ احتمالی تمرکز کنید. انتظار مثبت‌های کاذب زیادی را داشته باشید.

۲. تایید مقابله‌ای (مدل‌های گران‌قیمت) هر سرنخ را بردارید و سعی کنید آن را رد کنید. با این فرض شروع کنید که سرنخ نادرست است. یک سرنخ تنها زمانی باقی می‌ماند که بتوانید دقیقاً خطوط کدی را نشان دهید که ثابت می‌کند نگهبان امنیتی وجود ندارد. شما باید ثابت کنید که مسیر قابل دسترسی است و هیچ چیز دیگری مانع حمله نمی‌شود.

مهم‌ترین خروجی، لیست ابطال‌ها (refutations) است. فهرستی از دلایلی که نشان می‌دهد چرا چیزی باگ نیست، اعتماد تیم‌های تریاژ را جلب می‌کند.

من Ory Kratos، یک سرور هویت را تست کردم. این سیستم اقدامات حساسی مانند تغییر رمز عبور یا ایمیل را مدیریت می‌کند. این یک حوزه پرخطر است.

مرحله اول یک سرنخ پیدا کرد. به نظر می‌رسید یک نقص بزرگ در نحوه مدیریت جریان‌های OIDC توسط سیستم وجود دارد. یک ابزار تطبیق الگو (pattern-matching)، این را یک باگ با شدت بالا می‌نامید.

من از مرحله دوم برای تایید آن استفاده کردم. متوجه شدم که بررسیِ از دست رفته منجر به اکسپلویت نمی‌شود. سیستم از کوکی‌های نشست (session cookies) زنده استفاده می‌کند و در مرحله نهایی دوباره دسترسی‌ها را بررسی می‌کند. آن نقص نقش حیاتی در امنیت نداشت.

اگر آن را گزارش می‌کردم، اعتبارم را از دست می‌دادم. ارزش واقعی در اعتماد به نفس برای سکوت کردن بود.

همین روش، یک باگ واقعی را در هدفی دیگر پیدا کرد. یک نقطه ورود ثانویه فراموش کرده بود بررسی سطح دسترسی را بازتاب (mirror) دهد. کاربر می‌توانست حتی پس از لغو دسترسی‌اش، از یک درِ جانبی وارد شود.

برندگان در شکار باگ، بر «سیگنال» تمرکز خواهند کرد، نه «حجم». از هوش مصنوعی برای خواندن کدی بیشتر از آنچه یک انسان می‌تواند، استفاده کنید. سپس از هوش مصنوعی استفاده کنید تا قبل از ارسال گزارش، اشتباه خود را ثابت کنید.

Source: https://dev.to/fdjedkdlsspec/using-ai-to-find-authorization-bugs-and-to-prove-the-ones-that-arent-real-3m7d

Optional learning community: https://t.me/GyaanSetuAi