OWASP API Security Top 10: 0xaa insufficient monitoring

# API10:2019 پایش و نظارت ناکافی

|عوامل تهدید / مسیر حمله | ضعف امنیتی | پیامد |
| - | - | - |
| API خاص: قابلیت بهره‌برداری**2** | میزان شیوع**3** : قابلیت تشخیص**1** | پیامد فنی**2** : خاص کسب و کار |
| مهاجمین می توانند از فقدان فرایند ثبت وقایع و پایش برای سوءاستفاده پنهانی از سیستم‌ها بهره ببرند.| بدون ثبت وقایع و پایش آنها یا با ثبت و پایش ناکافی، رهگیری فعالیت‌های مخرب و پاسخ آنها در زمان مناسب تقریبا غیرممکن خواهد بود. | بدون پایش فعالیت‌های مخربی که در حال انجام است، مهاجمین زمان زیادی برای نفوذ به سیستم‌ها خواهند داشت.

## آیا API از نظر پایش و نظارت ناکافی  ‌آسیب‌پذیر است؟

در صورتی که یکی ازشرایط زیر وجود داشته باشد، API ‌آسیب‌پذیر خواهد بود:

* هیچگونه Logای توسط API تولید نشود، سطح ثبت وقایع  به درستی تنظیم نشده باشد یا پیام‌‌های Log، حاوی جزئیات کافی نباشند..
* جامعیت  Logها تضمین نشده باشد (مثلا [Log Injection][1] رخ دهد). 
* به طور پیوسته Logها پایش نشوند.
* زیرساخت API به طور پیوسته پایش نشود.

## مثال‌هایی از سناریوهای حمله

### سناریو #1

کلیدهای دسترسی به یک API مدیریتی در یک انباره  عمومی افشا شده و در اختیار همگان قرار گرفته است. مالک انباره از طریق یک ایمیل از این افشای احتمالی مطلع می‌شود اما بیش از 48 ساعت طول می‌کشد تا اقدام مقتضی انجام شود که در این حدفاصل، افشای کلید دسترسی ممکن سبب دسترسی غیرمجاز به داده حساس شده باشد. از آنجا که پایش کافی وجود نداشته است، سازمان نخواهد توانست بفهمد عوامل مخرب به چه داده‌ای دسترسی پیدا کرده‌اند.

### سناریو #2

یک پلتفرم اشتراک گذاری ویدئو با یک حمله درج هویت  در مقیاسی بزرگ مواجه می‌شود. علیرغم آنکه تلاش‌‌های ناموفق ورود ثبت می‌شوند، اما هیچگونه هشداری در طول زمان حمله اعلام نشده است؛ بلکه تنها در واکنش به شکایت‌‌های کاربران، Logهای API تحلیل و حمله کشف شده است. در نتیجه سازمان مجبور به صدور اعلامیه‌ای رسمی شده و از تمامی کاربران می‌خواهد که گذرواژه‌‌های خود را تغییر دهند. همچنین سازمان بایستی به مراجع نظارتی درخصوص این حادثه گزارش داده و پاسخگوی آنها باشد.

## چگونه از ‌آسیب‌پذیری پایش و نظارت ناکافی پیشگیری کنیم؟

* تمامی تلاش‌‌های ناموفق احراز هویت، دسترسی‌‌های غیرمجاز و خطاهای اعتبارستجی ورودی  بایستی ثبت  شوند.
* Logها باید به گونه ای تهیه شوند که توسط راهکارهای مدیریت Log قابل استفاده بوده و همچنین جزئیات کافی جهت شناسایی عامل مخرب را در خود داشته باشند.
* با Logها بایستی به عنوان داده حساس رفتار شده و جامعیت آنها هم در زمان ذخیره سازی و هم در زمان انتقال تضمین شود.
* یک سیستم پایش پیکربندی و راه اندازی شود تا بتوان بطور مداوم و پیوسته عملکرد زیرساخت، شبکه و API را پایش نمود.
* از یک سیستم مدیریت رویدادها و اطلاعات امنیتی (SIEM) برای تجمیع و مدیریت Logهای دریافتی از تمامی مولفه‌‌های پشته API و میزبان‌‌های آن استفاده شود.
* از Dashboardها و هشدارها یا اعلان‌‌های سفارشی‌سازی شده به منظور تشخیص و پاسخ سریع به فعالیت‌‌های مشکوک استفاده شود.

## مراجع

### OWASP

* [OWASP Logging Cheat Sheet][2]
* [OWASP Proactive Controls: Implement Logging][3]
* [OWASP Application Security Verification Standard: V7: Error Handling and Logging Verification Requirements][4]

### خارجی

* [CWE-1059: Incomplete Documentation][5]
* [OpenAPI Initiative][6]

[1]: https://owasp.org/index.php/Log_Injection
[2]: https://owasp.org/index.php/Logging_Cheat_Sheet
[3]: https://owasp.org/www-project-proactive-controls/
[4]: https://github.com/OWASP/ASVS/blob/master/4.0/en/0x15-V7-Error-Logging.md
[5]: https://cwe.mitre.org/data/definitions/1059.html
[6]: https://www.openapis.org/