شناسایی نقصهای API با ابزار رایگان Free Autoswagger
APIها: همچنان اهدافی آسان در سال ۲۰۲۵
APIها ستون فقرات برنامههای مدرن هستند ـ و در عین حال یکی از در معرضترین بخشهای زیرساخت یک سازمان محسوب میشوند. این موضوع آنها را به هدفی ایدهآل برای مهاجمان تبدیل میکند.
یکی از نمونههای پرسروصدای این مسئله، رخنه Optus در سال ۲۰۲۲ بود که در آن مهاجمان از طریق یک unauthenticated API endpoint میلیونها رکورد اطلاعات مشتریان را سرقت کردند؛ رخدادی که ۱۴۰ میلیون دلار استرالیا خسارت برای این شرکت مخابراتی بههمراه داشت.
نگرانکنندهتر اینکه چنین آسیبپذیریهایی بهقدری ساده قابل بهرهبرداری هستند که میتوان در عرض یک روز به فردی بدون پیشزمینه فنی آموزش داد تا از آنها سوءاستفاده کند. با گذشت سه سال، تیم امنیتی Intruder همچنان همان مشکلات را در APIهای سازمانهای بزرگ ـ از جمله اعضای S&P 500 ـ شناسایی میکند.
به همین دلیل ما ابزار Autoswagger را توسعه دادیم؛ ابزاری رایگان و متنباز که APIها را برای یافتن ضعفهای broken authorization اسکن میکند. در ادامه بخوانید تا ببینید این ابزار چگونه کار میکند و چه موارد شگفتانگیزی را در زمان آزمایش آشکار کرده است.
Autoswagger چیست و چگونه کار میکند؟
Autoswagger دامنهها را برای شناسایی مستندات افشاشدهی API ـ مانند OpenAPI یا Swagger schemas ـ اسکن میکند و سپس با تجزیهی این مستندات، فهرستی از endpointها برای آزمون تولید میکند. این ابزار درخواستهایی را با پارامترهای معتبر (مطابق مستندات) ارسال میکند و هر endpointی را که بدون کنترل دسترسی مناسب داده بازمیگرداند (یعنی بدون ۴۰۱ یا ۴۰۳) علامتگذاری میکند.
اگر پاسخ شامل دادههای حساس ـ مانند اطلاعات هویتی یا credentials ـ باشد و endpoint بهدرستی ایمنسازی نشده باشد، در خروجی گزارش خواهد شد.
Autoswagger رایگان است و از طریق GitHub قابل دانلود و نصب میباشد.
برای انجام تستهای پیشرفتهتر، میتوان Autoswagger را با فلگ –brute اجرا کرد تا تلاش شود بررسیهای اعتبارسنجی دور زده شود. این قابلیت به شناسایی ضعفهایی کمک میکند که در آنها endpoint ورودیهای عمومی را رد میکند اما مقادیر یا قالبهای خاصی را میپذیرد.
امنیت همیشگی API بدون آلودگی اطلاعات اضافی
APIها یکی از سادهترین راههای نفوذ به سامانهها هستند ـ و مهاجمان این را بهخوبی میدانند.
هزاران تیم به پلتفرم always-on exposure management شرکت Intruder اعتماد دارند تا اپلیکیشنها و APIهای خود را ایمن نگهدارند و پیش از آنکه مهاجمان آسیبپذیریهای حیاتی را کشف کنند، آنها را رفع کنند. API schema خود را بارگذاری کنید و در عرض چند دقیقه از امنیت آن اطمینان حاصل نمایید.
شروع آزمایش رایگان
Broken Authorization در عمل: چهار آسیبپذیری واقعی که Autoswagger شناسایی کرد
ما Autoswagger را روی اهدافی از چندین برنامه بزرگ Bug Bounty اجرا کردیم و در مقیاس وسیع بهدنبال APIهای آسیبپذیر گشتیم.
در ادامه چند نمونه واقعی آورده شده است که نشان میدهد broken authorization در دنیای واقعی چگونه بهنظر میرسد.
Microsoft MPN Credentials
در یکی از آسیبپذیریها، endpointی بهسادگی با نام config وجود داشت که credentials و API keys مرتبط با ذخیرهسازهای داده Microsoft Partner Program را افشا میکرد. در میان دادههای افشاشده، مجموعهای معتبر از credentials برای پایگاه داده Redis یافت شد که شامل PII شرکای برنامه ـ از جمله دورهها و گواهینامههای اخذشده توسط آنان ـ بود.
این endpoint آسیبپذیر در شش لایه مسیر (/۱/dashboard/mpn/program/api/config/) پنهان شده بود و حدس زدن یا کشف آن از طریق brute-force تقریباً غیرممکن بود؛ تنها دلیل شناسایی آن افشای OpenAPI schema مربوط به API بود.
۶۰,۰۰۰+ رکورد Salesforce
در یک مورد دیگر، یک API متصل به یک Salesforce instance در یک شرکت بزرگ فناوری کشف شد. این API رکوردهای مشتری ـ شامل نام، اطلاعات تماس و سفارشات محصول ـ را بازمیگرداند که با تغییر پارامتر ByDate در URL، امکان استخراج انبوه ۱,۰۰۰ رکورد در هر درخواست فراهم میشد.
دسترسی SQL در اپلیکیشن آموزش داخلی
همچنین یک API آموزش داخلی در یک شرکت مشهور نوشیدنی کشف شد که در محیط Azure Functions اجرا میشد و به کاربران بدون احراز هویت اجازه اجرای کوئریهای دلخواه SQL روی پایگاه داده را میداد.
اگرچه دادهها محدود به رکوردهای آموزشی داخلی بود، اما شامل نامها و ایمیلهای کارکنان میشد ـ جزئیاتی که یک مهاجم میتواند از آن برای طراحی حمله phishing استفاده کند.
بهطور معمول Azure Functions APIs مستندات خود را افشا نمیکنند، اما یک توسعهدهنده افزونهای را مستقر کرده بود که این کار را انجام میداد. هرچند ممکن است این مستندات برای سرویس دیگری استفاده شده باشد، اما دلیل مشخصی برای دسترسی عمومی به آن وجود نداشت، چرا که اپلیکیشن برای استفاده داخلی طراحی شده بود.
Active Directory (AD) Enumeration (Octopus Deploy)
در نهایت، Autoswagger آسیبپذیری CVE-2025-0589 را شناسایی کرد که به یک مهاجم بدون احراز هویت اجازه میداد اطلاعات کاربران Active Directory را در صورتی که AD با سرور Octopus Deploy یکپارچه شده باشد، استخراج کند.
مستندسازی خودکار = ریسک سطح حمله
مستندسازی خودکار API برای توسعهدهندگان فوقالعاده است ـ اما به همان اندازه برای مهاجمان نیز کارآمد است. وقتی schema یک API افشا میشود، نقشهی کاملی از تمام endpointها در اختیار مهاجم قرار میگیرد. بدون این نقشه، بیشتر آنها حتی تلاشی نمیکنند ـ زیرا fuzzing کورکورانه بسیار زمانبرتر است.
مخفی کردن مستندات جایگزین مدیریت صحیح آسیبپذیریهای API نیست، اما افشای عمومی مستنداتی که نیازی به انتشار آنها ندارید، ریسکی غیرضروری است. بیشتر آسیبپذیریهای شناساییشده در APIهایی بود که هرگز قرار نبود عمومی باشند ـ اما مستندات آنها بههرحال افشا شده بود.
محیط خود را بررسی کنید: اگر APIهای داخلی شما مستند و به اینترنت متصل باشند، ممکن است دقیقاً همان چیزی را که مهاجمان نیاز دارند، در اختیارشان قرار داده باشید.
Intruder بهطور مداوم API endpointها را برای شناسایی طیف وسیعی از آسیبپذیریها ـ از جمله مستندات افشاشده ـ اسکن میکند.