OWASP Top 10 لیستی از ۱۰ ریسک امنیتی برتر در برنامه های وب هستش که توسط OWASP منتشر میشه. این لیست، بطور خاص مهمترین ضعفها و آسیبپذیریهای موجود در برنامه های وب (و بطور غیرمستقیم، نرمافزارهای مرتبط با وب) ، که بیشترین تهدید رو برای امنیت برنامه ها ایجاد میکنن رو شناسایی و اولویت بندی میکنه.
OWASP (Open Web Application Security Project) یک سازمان غیرانتفاعی و بین المللی هستش که هدفش بهبود امنیت نرمافزار و آگاهی بخشی در جامعه ی توسعه دهندگان و متخصصان امنیت سایبری هستش.
این لیست 10 ریسک امنیتی برتر، در موارد زیر کاربردی هستش:
- آموزش و آگاهی بخشی: توسعه دهندگان، تیمهای امنیتی و مدیران فناوری اطلاعات میتونن با شناخت ۱۰ ریسک اصلی، اقدامات پیشگیرانه و طراحی امن رو در پروژهها پیادهسازی کنن.
- اولویت بندی ریسکها: سازمانها میتونن منابع و بودجه امنیتی خودشون رو روی خطرات واقعی و مهم متمرکز کنن.
- چارچوب و استانداردهای امنیتی: Top 10 بعنوان یک مرجع جهانی برای تست و ارزیابی امنیت برنامهها استفاده میشه و در فرآیندهای ممیزی و تست بکار میره.
- ابزارها و تستهای امنیتی: توسعه دهندگان و متخصصان AppSec از این فهرست برای طراحی تستها و اسکنهای امنیتی استفاده میکنن.
آخرین نسخه ی OWASP TOP 10 در سال 2021 منتشر شده بود، اما OWASP این لیست رو برای سال 2025 بروز کرده.
معمولا OWASP اینجوری کار میکنه که یک پیش نویس برای بررسی عمومی منتشر میکنه، بعدش یک نسخه با عنوان نامزد نهایی، RC (Release Candidate) برای بازبینی نهایی میاد و در نهایت نسخه ی نهایی یا Final Release منتشر میشه.
نسخه ی تقریبا نهایی، OWASP 2025 RC1، توسط OWASP برای بازخورد جامعه امنیت سایبری منتشر شده که تقریبا نسخه ی نهایی هستش. در این پست نگاهی به این نسخه انداختیم.
10 آسیب پذیری برتر برای سال 2025 موارد زیر هستن:
- A01:2025 – Broken Access Control
- A02:2025 – Security Misconfiguration
- A03:2025 – Software Supply Chain Failures
- A04:2025 – Cryptographic Failures
- A05:2025 – Injection
- A06:2025 – Insecure Design
- A07:2025 – Authentication Failures
- A08:2025 – Software or Data Integrity Failures
- A09:2025 – Logging & Alerting Failures
- A10:2025 – Mishandling of Exceptional Conditions
تغییرات نسخه ی OWASP Top Ten 2025:
در نسخهی ۲۰۲۵، دو دسته بندی جدید اضافه و یک مورد ادغام شده. تمرکزشون همچنان روی علت ریشهای آسیبپذیریهاست نه صرفا علامتهایی که دارن. با پیچیدگی روزافزون در مهندسی و امنیت نرمافزار، ایجاد تنها ۱۰ دسته، بدون همپوشانی، تا حدی غیرممکن هستش.
شکل زیر تغییرات موجود بین نسخه ی 2021 و 2025 رو نشون میده:

A01:2025 – Broken Access Control:
این دسته همچنان در جایگاه اول باقی مونده و جدی ترین ریسک امنیتی برنامه ها محسوب میشه. در این دسته ۴۰ ضعف امنیتی (CWE) قرار گرفته که بطور میانگین ۳٫۷۳٪ از برنامه های تست شده، حداقل یکی از این ضعف ها رو داشتن. همچنین آسیب پذیری Server-Side Request Forgery (SSRF) در این دسته ادغام شده.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده | تعداد کل آسیب پذیریهای CVE |
| 40 | 20.15% | 3.74% | 100.00% | 42.93% | 7.04 | 3.84 | 1,839,701 | 32,654 |
بصورت کلی کنترل دسترسی، سیاستی رو اعمال میکنه که کاربر نمیتونه، خارج از مجوزهای که بهش اعطا شده، عمل کنه. شکستن این سیاستها میتونه منجر به افشای اطلاعات، تغییر یا تخریب داده ها و … بشه.
CWEهای رایج در این دسته:
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
- CWE-201: Insertion of Sensitive Information Into Sent Data
- CWE-918: Server-Side Request Forgery (SSRF)
- CWE-352: Cross-Site Request Forgery (CSRF)
A02:2025 – Security Misconfiguration:
از رتبهی پنجم در سال ۲۰۲۱ به رتبهی دوم در سال ۲۰۲۵ صعود کرده. در این دسته 16 ضعف امنیتی (CWE) در نظر گرفته شده و ۳٪ از برنامه های تست شده حداقل یکی از این CWEها رو داشتن. افزایش وابستگی نرمافزارها به پیکربندیها، دلیل رشد این مورد هستش.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 16 | 27.70% | 3.00% | 100.00% | 52.35% | 7.96 | 3.97 | 719,084 | 1,375 |
آسیب پذیری Security Misconfiguration ، زمانی اتفاق می افته که یک سیستم، برنامه یا سرویس ابری از منظر امنیتی، بطور نادرست تنظیم و منجر به ایجاد آسیب پذیری بشه.
CWEهای رایج:
- CWE-16: Configuration
- CWE-611: Improper Restriction of XML External Entity Reference (XXE)
A03:2025 – Software Supply Chain Failures:
در نسخه ی 2021 با عنوان A06:2021-Vulnerable and Outdated Components بود. این دسته شامل تهدیداتی در وابستگی ها، سیستمهای ساخت و زیرساختِ توزیع، میشه. این دسته با قاطعیت به عنوان نگرانی اصلی در نظرسنجی جامعه انتخاب شده. این دسته دارای پنج CWE و حضور محدودی در دادههای جمعآوری شده داره، اما محققا معتقد هستن که این به دلیل چالشهای موجود در تستهاست و امیدوارن که تست در این زمینه پیشرفت کنه. این دسته کمترین موارد وقوع رو در دادهها داره، اما همچنین بالاترین میانگین نمره قابلیت اکسپلویت و تأثیر رو از CVEها داره.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 5 | 8.81% | 5.19% | 65.42% | 28.93% | 8.17 | 5.23 | 215,248 | 11 |
Software Supply Chain Failures، خرابی یا سایر موارد نقض در فرآیند ساخت، توزیع یا بروزرسانی نرمافزار هستن و اغلب ناشی از آسیبپذیریها یا تغییرات مخرب در کد، ابزارها یا سایر وابستگیهای شخص ثالث هستن که سیستم به اونا متکی است.
CWEهای رایج:
- CWE-477: Use of Obsolete Function
- CWE-1104: Use of Unmaintained Third Party Components
- CWE-1329: Reliance on Component That is Not Updateable
- CWE-1395: Dependency on Vulnerable Third-Party Component
A04:2025 – Cryptographic Failures:
از رتبهی دوم به چهارم سقوط کرده. ۳٫۸٪ از برنامهها شامل حداقل یکی از ۳۲ ضعف مرتبط هستن. معمولا منجر به افشای دادههای حساس یا نفوذ به سیستم میشه.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 32 | 13.77% | 3.80% | 100.00% | 47.74% | 7.23 | 3.90 | 1,665,348 | 2,185 |
Cryptographic Failures به ضعفهایی مربوط هستش که باعث میشن دادههای حساس (مثل پسورد، شماره کارت اعتباری، یا اطلاعات کاربر) افشا یا قابل دسترسی بشن، چون رمزنگاری نادرست، ضعیف یا ناقص پیاده سازی شده.
CWEهای رایج در این دسته:
- CWE-327: Use of a Broken or Risky Cryptographic Algorithm
- CWE-331: Insufficient Entropy
- CWE-1241: Use of Predictable Algorithm in Random Number Generator
- CWE-338: Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
A05:2025 – Injection:
از رتبهی سوم به پنجم سقوط کرده. یکی از بیشترین دستههای تست شده هستش و شامل ۳۸ ضعف (CWE) میشه. از XSS (تعداد بالا/تأثیر پایین) تا SQLi (تعداد پایین/تأثیر بالا) رو شامل میشه.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 37 | 13.77% | 3.08% | 100.00% | 42.93% | 7.15 | 4.32 | 1,404,249 | 62,445 |
آسیبپذیری Injection، یک نقص سیستمی است که به مهاجم اجازه میده کد یا دستورات مخرب (مانند SQL یا شلکد) رو در فیلدهای ورودی برنامه وارد کنه و سیستم رو فریب بده تا کد یا دستورات رو طوری اجرا کنه که گویی بخشی از سیستم هستن. این میتونه منجر به عواقب واقعا وخیمی بشه.
CWE رایج این دسته:
- CWE-79 Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)
A06:2025 – Insecure Design:
از رتبهی چهارم به ششم سقوط کرده. از سال ۲۰۲۱ تاکنون، پیشرفت قابل توجهی در مدلسازی تهدید و طراحی امن در صنعت دیده میشه.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 39 | 22.18% | 1.86% | 88.76% | 35.18% | 6.96 | 4.05 | 729,882 | 7,647 |
Insecure Design یک دسته بندی گسترده است که نقاط ضعف مختلفی رو شامل میشه. Insecure Design منبع سایر دسته بندیهای TOP 10 نیست. نکته ای که وجود داره، بین Insecure Design و پیادهسازی ناامن تفاوت وجود داره. دلایلی که باعث میشه بین نقصهای طراحی و نقصهای پیاده سازی تمایز قائل بشیم، علل ریشهای متفاوتی دارن، در زمانهای مختلفی در فرآیند توسعه رخ میدن و راهحلهای متفاوتی دارن. یک طراحی امن، همچنان میتونه دارای نقصهای پیادهسازی باشه که منجر به آسیبپذیریهایی بشه که ممکنِ مورد اکسپلویت قرار بگیره.
CWEهای رایج این دسته:
- CWE-256: Plaintext Storage of a Password
- CWE-269: Improper Privilege Management
- CWE-434: Unrestricted Upload of File with Dangerous Type
- CWE-501: Trust Boundary Violation
- CWE-522: Insufficiently Protected Credentials
A07:2025 – Authentication Failures:
در جایگاه هفتم باقی مونده. نامش از Identification and Authentication Failures به Authentication Failures تغییر کرده تا ۳۶ ضعف مرتبط رو دقیقتر نشان بده. استفادهی گسترده از چارچوبهای استاندارد احراز هویت باعث کاهش بروز این آسیب پذیری شده.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 36 | 15.80% | 2.92% | 100.00% | 37.14% | 7.69 | 4.44 | 1,120,673 | 7,147 |
وقتی یک مهاجم بتونه سیستمی رو فریب بده تا یک کاربر نامعتبر یا نادرست رو بعنوان کاربر قانونی تشخیص بده، آسیبپذیری Authentication Failures رخ داده.
CWEهای رایج این دسته:
- CWE-259: Use of Hard-coded Password
- CWE-297: Improper Validation of Certificate with Host Mismatch
- CWE-287: Improper Authentication
- CWE-384: Session Fixation
- CWE-798: Use of Hard-coded Credentials
A08:2025 – Software or Data Integrity Failures:
در جایگاه هشتم باقی مونده. این دسته بر عدم بررسی درستی و اعتماد به داده یا کد، در سطحی پایین تر از زنجیره تأمین تمرکز داره.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 14 | 8.98% | 2.75% | 78.52% | 45.49% | 7.11 | 4.79 | 501,327 | 3,331 |
Software or Data Integrity Failures مربوط به کد و زیرساختی است که در برابر کد یا دادههای نامعتبر یا غیرقابل اعتماد که به عنوان قابل اعتماد و معتبر در نظر گرفته میشن، محافظت نمیشن. مثلا برنامه به افزونهها، کتابخانهها یا ماژولهای منابع، مخازن و CDNهای غیرقابل اعتماد متکی هستش.
از جمله CWEهای این دسته:
- CWE-426 Untrusted Search Path
- CWE-427 Uncontrolled Search Path Element
- CWE-502 Deserialization of Untrusted Data
A09:2025 – Logging & Alerting Failures:
در رتبهی نهم باقی مونده. نامش رو از Security Logging and Monitoring Failures به Logging & Alerting Failures تغییر دادن تا اهمیت هشداردهی در کنار ثبت رویدادها رو برجسته کنه. لاگ گیری بدون هشدار، ارزشی در کشف رویدادهای امنیتی نداره.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 5 | 11.33% | 3.91% | 85.96% | 46.48% | 7.19 | 2.65 | 260,288 | 723 |
بدون لاگ گیری و نظارت، حملات و نقضها قابل تشخیص نیستن و بدون هشدار، واکنش سریع و مؤثر در طول یک حادثه امنیتی بسیار دشوار هستش.
CWEهای رایج این دسته:
- CWE-117: Improper Output Neutralization for Logs
- CWE-532: Insertion of Sensitive Information into Log File
- CWE-778: Insufficient Logging
A10:2025 – Mishandling of Exceptional Conditions:
دستهی جدید سال ۲۰۲۵ که شامل ۲۴ ضعف (CWE) مرتبط با مدیریت نادرست خطاها، خطاهای منطقی، Fail Open و سایر سناریوهای ناشی از شرایط غیرعادی سیستم میشه.
| تعداد CWE ها | بیشترین نرخ وقوع در تستها | میانگین نرخ وقوع در تستها | بیشترین میزان پوشش در تستها | میانگین پوشش تستها | میانگین وزنی نمره ی قابلیت اکسپلویت | میانگین وزنی نمرهی تأثیر آسیبپذیری | مجموع موارد مشاهده شده در داده ها | تعداد کل آسیب پذیریهای CVE |
| 24 | 20.67% | 2.95% | 100.00% | 37.95% | 7.11 | 3.81 | 769,581 | 3,416 |
Mishandling of Exceptional Conditions زمانی اتفاق می افته که برنامهها در پیشگیری، شناسایی و پاسخ به موقعیتهای غیرمعمول و غیرقابل پیشبینی شکست میخورن که منجر به خرابی، رفتار غیرمنتظره و گاهی آسیبپذیریها میشه.
CWEهای رایج:
- CWE-209: Generation of Error Message Containing Sensitive Information
- CWE-234: Failure to Handle Missing Parameter
- CWE-274: Improper Handling of Insufficient Privileges
- CWE-476: NULL Pointer Dereference
- CWE-636: Not Failing Securely (‘Failing Open’)
متدلوژی:
این نسخه از OWASP Top 10 بر پایهی دادهها تنظیم شده، اما 100 درصد داده محور هم نیست. محققا 12 دستهبندی رو بر اساس دادههای جمع آوری شده رتبهبندی کردن و اجازه دادن دو دسته دیگه بر اساس نتایج نظرسنجی جامعهی امنیتی ارتقا یا برجسته بشن.
دلیل اصلی این کار این است که بررسی دادههای جمع آوری شده در واقع نگاهی به گذشته است. محققین امنیت نرمافزار، زمان زیادی رو صرف شناسایی آسیبپذیریهای جدید و توسعهی روشهای نوین تست، میکنن. ادغام این آزمونها در ابزارها و فرآیندهای امنیتی ممکن است هفته ها تا حتی سالها طول بکشه. تا زمانیکه بشه یک ضعف امنیتی رو بصورت گسترده و قابل اعتماد تست کنیم، شاید چند سال گذشته باشه. همچنین، برخی ریسکهای مهم وجود دارن که ممکنِ هرگز نشه اونارو بطور کامل تست یا در دادهها مشاهده کرد. برای ایجاد تعادل در این وضعیت، از نظرسنجی جامعه (Community Survey) استفاده کردن تا از کارشناسان امنیت نرمافزار و توسعه دهندگانی که در خط مقدم هستن، بپرسن: چه ریسکهایی رو در عمل مشاهده میکنن که در دادههای تست بخوبی بازتاب نیافتن؟. به این ترتیب، هم دیدگاه دادهمحور و هم تجربهی میدانی متخصصان در فهرست نهایی لحاظ میشه.
ساختار دستهبندیها:
چند دسته از OWASP Top 10 در این نسخه نسبت به نسخهی قبلی تغییر کرده. در ادامه، خلاصهای از این تغییرات آورده شده.
در این نسخه، از ارائه دهندگان داده خواستن تا اطلاعات خودشون رو بدون محدودیت در نوع CWE (برخلاف نسخهی ۲۰۲۱) ارسال کنن. اونا باید تعداد برنامههای بررسی شده در هر سال (از ۲۰۲۱ به بعد) و تعداد برنامههایی که حداقل یک مورد CWE در اونا پیدا شده بود رو اعلام میکردن. این روش امکان میده میزان شیوع هر CWE در بین کل برنامهها رو اندازه گیری کنن.
در این تحلیل، تکرار یا فراوانی (Frequency) رو نادیده گرفتن، چون تمرکز بر اون ممکنِ تصویر نادرستی از شیوع واقعی ضعفها ایجاد کنه. مثالا، اینکه یک برنامه چهار بار یا چهار هزار بار دچار یک CWE مشابه شده باشه، در رتبه بندی نهایی تأثیری نداره. بویژه که تست کنندگان دستی معمولا تنها یک نمونه از یک آسیبپذیری رو گزارش میکنن،در حالیکه ابزارهای خودکار هر مورد تکراری از اون ضعف رو بعنوان یک نمونه جداگانه ثبت میکنن.
در سال ۲۰۱۷ تنها حدود ۳۰ نوع CWE بررسی میشد، در سال ۲۰۲۱ این تعداد به ۴۰۰ CWE رسید و در نسخهی جدید ۲۰۲۵ این عدد به ۵۸۹ CWE افزایش یافته. این رشد زیاد، نیاز به تغییر در نحوهی ساختاربندی دستهها رو ایجاد کرده. چندین ماه رو صرف گروه بندی و دسته بندی CWEها کردن و البته میتونستن این روند رو بیشتر هم بکنن، اما در نقطهای متوقف شدن. CWEها دو نوع کلی دارن:
- علت ریشهای (Root Cause): مانند Cryptographic Failure یا Misconfiguration
- علامت (Symptoms): مانند Sensitive Data Exposure یا Denial of Service
تصمیم گرفتن تا جای ممکن بر علت ریشهای تمرکز کنن، چون برای شناسایی و رفع آسیبپذیریها منطقی تر هستش. این رویکرد جدید نیست، نسخههای قبلی OWASP Top 10 هم ترکیبی از علامتها و علل ریشهای بودن، اما در این نسخه، این تمایز بصورت آگاهانه و هدفمندتر اعمال شده.
در این نسخه، بطور میانگین ۲۵ CWE در هر دسته وجود داره. حداقل تعداد CWE در یک دسته ۵ مورده (مثلا در A02:2025 – Software Supply Chain Failures و A09:2025 – Logging and Alerting Failures) و حداکثر تعداد ۴۰ مورد است (در A01:2025 – Broken Access Control).
تعداد CWE در هر دسته بصورت آگاهانه تا ۴۰ مورد محدود شده. این ساختار جدید به شرکتها اجازه میده تا آموزشها و تمرکز امنیتی خودشون رو متناسب با زبان برنامهنویسی یا چارچوب خاصشان تنظیم کنن.
برخی از متخصصان پرسیدن چرا OWASP مانند MITRE Top 25، بجای دسته ها، فقط ۱۰ CWE مشخص رو منتشر نمیکنه. دو دلیل اصلی برای این تصمیم وجود داره:
- همه CWEها در تمام زبانها یا فریمورکها وجود ندارن. بنابراین اگه فقط ۱۰ CWE خاص انتخاب بشه، بخشی از فهرست برای برخی زبانها بیفایده خواهد بود.
- برای بسیاری از آسیبپذیریها چندین CWE متفاوت وجود داره. مثلا برای Injection، XSS، Hardcoded Passwords، Lack of Validation، Buffer Overflow و غیره، CWEهای متعددی تعریف شده.
بسته به نوع پروژه یا تست کننده، ممکنِ از CWE متفاوتی استفاده بشه. با ترکیب چند CWE در هر دسته، میشه درک جامعتری از خانوادهی آسیبپذیریها ارائه و سطح آگاهی عمومی رو افزایش داد.
در OWASP Top 10 2025 در مجموع ۲۴۸ CWE در قالب ۱۰ دسته وجود داره. در حالیکه در زمان انتشار این نسخه، 968 مورد در فهرست CWE مربوط به MITRE، ثبت شده.
نحوه استفاده از دادهها برای انتخاب دستهها:
مشابه آنچه در نسخهی ۲۰۲۱ OWASP Top 10 انجام شد، در نسخهی ۲۰۲۵ هم از دادههای CVE برای ارزیابی دو شاخص کلیدی استفاده شده:
- قابلیت اکسپلویت شدن (Exploitability)
- تأثیر فنی (Technical Impact)
برای این منظور، تیم OWASP از ابزار OWASP Dependency Check استفاده کرده و دادههای مربوط به امتیازهای CVSS (Common Vulnerability Scoring System) رو استخراج کرده. بعدش این امتیازها بر اساس CWEهای مرتبط با CVEها گروهبندی شدن. این فرآیند نیازمند تحقیق و بررسی گسترده بود، چون تمام CVEها دارای امتیاز CVSSv2 هستن، اما این نسخه دارای نقصهایی است که در نسخهی CVSSv3 اصلاح شده. بعد از گذشت مدتی، تمامی CVEهای جدید علاوه بر امتیاز CVSSv2، دارای امتیاز CVSSv3 هم شدن. علاوه بر این، فرمولها و بازههای امتیازدهی در CVSSv3 نسبت به CVSSv2 تغییر کردن.
در CVSSv2، هر دو نمره ی Exploitability و Impact میتونن تا ۱۰.۰ باشن، اما فرمول نهایی مقدار واقعی رو کاهش میداد، حدود ۶۰٪ برای Exploitability و حدود ۴۰٪ برای Impact.
در CVSSv3، از نظر تئوری حداکثر امتیاز برای Exploitability به 6.0 و برای Impact به 4.0 محدود شده. با اعمال وزن دهی جدید، امتیاز Impact بطور میانگین حدود ۱.۵ واحد افزایش یافته، در حالیکه Exploitability حدود ۰.۵ واحد کاهش یافته.
در دیتابیس NVD (National Vulnerability Database) حدود ۱۷۵ هزار رکورد CVE وجود داره (در سال 2021 این مقدار برابر ۱۲۵ هزار بود) که به CWEها نگاشت شدن. همچنین ۶۴۳ نوع CWE منحصر به فرد با CVEها مرتبط هستن (در سال ۲۰۲۱ این عدد ۲۴۱ بود).
در مجموع نزدیک به ۲۲۰ هزار CVE استخراج شدن که شامل موارد زیر بودن:
- ۱۶۰٬۰۰۰ مورد با امتیاز CVSS v2
- ۱۵۶٬۰۰۰ مورد با امتیاز CVSS v3
- ۶٬۰۰۰ مورد با امتیاز CVSS v4
برخی CVEها چند امتیاز مختلف دارن، به همین دلیل جمع کل از ۲۲۰ هزار بیشتر هستش.
برای نسخهی ۲۰۲۵، میانگین نمرات Exploit و Impact به روش زیر محاسبه شده:
- همهی CVEهای دارای امتیاز CVSS، بر اساس CWE گروه بندی شدن.
- بعدش امتیازها بر اساس درصد استفاده از CVSSv3 در مقابل CVSSv2 وزن دهی شدن.
- در نهایت، میانگین حاصل برای هر CWE بعنوان امتیاز Exploitability و Impact در نظر گرفته شده و در تحلیل نهایی ریسک مورد استفاده قرار گرفته.
چرا از CVSSv4 استفاده نشده؟ چون الگوریتم نمره دهی در نسخهی CVSSv4.0 بصورت بنیادی تغییر کرده و دیگه به راحتی امکان استخراج نمرات مستقل برای Exploit و Impact مانند نسخه های قبلی وجود نداره.
OWASP اعلام کرده که در نسخههای آیندهی Top 10، به دنبال راهی برای استفاده از CVSSv4 خواهد بود، اما در نسخهی ۲۰۲۵ این کار از نظر زمانی ممکن نبوده.
چرا از نظرسنجی از جامعه استفاده شده:
نتایج موجود در دادهها عمدتا محدود به آنچه صنعت قادر به تست خودکار است، هستش. اگه با یک متخصص با تجربه امنیت برنامهها (AppSec) صحبت کنید، اون به شما خواهد گفت که چه آسیبپذیریها و روندهایی رو مشاهده میکنه که هنوز در دادهها ثبت نشدن. توسعه روشهای تست برای برخی انواع ضعفها زمانبرِ و بعدش زمان بیشتری لازمِ تا این تستها خودکار بشه و روی جمعیت بزرگی از برنامهها اجرا بشه. بنابراین، همهی آنچه در دادهها می بینیم، نگاهی به گذشته است و ممکنِ روندهای جدید سال اخیر که هنوز در دادهها ثبت نشدن، نادیده گرفته بشن.
به همین دلیل، تنها هشت دسته از ده دسته رو بر اساس دادهها انتخاب کردن، چون دادهها کامل نیستن. دو دستهی دیگه رو از نظرسنجی جامعه انتخاب شدن. این کار به متخصصانی که در خط مقدم امنیت برنامهها هستن، اجازه میده تا پرخطرترین ریسکهایی که ممکنِ در دادهها نمایان نباشن رو انتخاب و به فهرست اضافه کنن.
تشکر از مشارکت کنندگان دادهها:
سازمانها و تعدادی اهدا کننده ناشناس، دادههای بیش از ۲.۸ میلیون برنامه رو در اختیار OWASP قرار دادن تا بزرگترین و جامعترین مجموعه داده امنیت برنامهها ایجاد بشه. بدون مشارکت، این امر ممکن نبود. لیست مشارکت کنندگان:
- Accenture (Prague)
- Anonymous (multiple)
- Bugcrowd
- Contrast Security
- CyptoNet Labs
- Intuitor SoftTech Services
- Orca Security
- Probley
- Semgrep
- Sonar
- usd AG
- Veracode
- Wallarm
این پست، بسته به نسخه ی نهایی، ممکن تغییراتی داشته باشه.