مدت زمان مطالعه:
0

وقتی درباره امنیت وب صحبت میکنیم، یکی از اولین اسمهایی که باید بشناسیم OWASP Top 10 است. OWASP Top 10 یک لیست محصولی یا ابزار امنیتی نیست؛ یک سند آگاهیبخشی و مرجع برای شناخت مهمترین ریسکهای امنیتی وباپلیکیشنهاست. بنابراین وقتی میگوییم FortiWeb در برابر OWASP Top 10 چه راهکاری دارد، نباید انتظار داشته باشیم فقط با روشن کردن یک گزینه، همه ضعفهای برنامه، کد، معماری، احراز هویت و لاگینگ حل شود.
در این مقاله ابتدا خود OWASP و آخرین نسخههای Top 10 را بررسی میکنیم، بعد برای هر ریسک توضیح میدهیم FortiWeb با چه قابلیت یا ترکیبی از قابلیتها میتواند ریسک را کاهش دهد. در پایان هم واقعبینانه بررسی میکنیم که آیا محدودیتهایی مثل SSRF فقط مشکل FortiWeb است یا اصولاً تمام Web Application Firewallها در بعضی ریسکهای OWASP محدودیت ذاتی دارند.
تمرکز فنی مقاله روی FortiWeb نسخههای جدید، مخصوصاً FortiWeb 7.6 و 8.0 است. بعضی مسیرهای GUI یا نام دقیق گزینهها ممکن است بین Patch Versionها کمی تفاوت داشته باشد، اما منطق طراحی و انتخاب کنترلها ثابت است.
مروری بر این مقاله
OWASP مخفف Open Worldwide Application Security Project است؛ یک جامعه و مرجع باز در حوزه امنیت نرمافزار و وب. معروفترین پروژه آن OWASP Top 10 است که بهعنوان یک سند مرجع برای توسعهدهندگان، تیمهای امنیت، ارزیابها و ادمینهای زیرساخت استفاده میشود.
نکته مهم این است که OWASP Top 10 لیست «حملههای قابل بلاک با WAF» نیست؛ بلکه لیست «ریسکهای مهم امنیت وب» است. بعضی از این ریسکها مثل Injection یا XSS معمولاً با WAF بهتر قابل کنترل هستند. اما بعضی موارد مثل Insecure Design، Broken Access Control یا Vulnerable Components ریشه در کد، معماری، مدیریت Patch، احراز هویت و منطق برنامه دارند و WAF فقط میتواند بخشی از ریسک را کم کند.
نسخه OWASP Top 10:2021 هنوز در بسیاری از WAFها، گزارشهای امنیتی، داشبوردها و ابزارهای ارزیابی استفاده میشود. در مقابل، OWASP Top 10:2025 نسخه جدیدتر و فعلی این لیست است. خود OWASP اعلام کرده که نسخه 2025، نسخه فعلی منتشرشده OWASP Top 10 است و مانند نسخههای قبلی یک سند Awareness برای توسعهدهندگان و امنیت وب محسوب میشود.
| کد | عنوان | توضیح کوتاه |
|---|---|---|
| A01:2021 | Broken Access Control | کاربر به منابع، عملیات یا دادههایی دسترسی میگیرد که نباید دسترسی داشته باشد. |
| A02:2021 | Cryptographic Failures | ضعف در رمزنگاری، TLS، نگهداری یا انتقال داده حساس. |
| A03:2021 | Injection | تزریق ورودی مخرب مثل SQLi، XSS، Command Injection، LDAP Injection یا NoSQL Injection. |
| A04:2021 | Insecure Design | ضعف در طراحی امنیتی، نبود Threat Modeling یا نبود کنترل امنیتی در معماری. |
| A05:2021 | Security Misconfiguration | تنظیمات اشتباه، سرویس اضافه، Header امنیتی ناقص، Error Page افشاگر یا Debug فعال. |
| A06:2021 | Vulnerable and Outdated Components | استفاده از کتابخانه، فریمورک، CMS یا Component آسیبپذیر و قدیمی. |
| A07:2021 | Identification and Authentication Failures | ضعف در Login، Session، MFA، Reset Password و مدیریت هویت. |
| A08:2021 | Software and Data Integrity Failures | ضعف در Update، CI/CD، Integrity داده و Deserialization. |
| A09:2021 | Security Logging and Monitoring Failures | نبود لاگ، Alert، مانیتورینگ و فرآیند Incident Response کافی. |
| A10:2021 | Server-Side Request Forgery | مجبور کردن سرور به ارسال Request به مقصدهای داخلی، غیرمجاز یا حساس مثل Metadata سرویسهای Cloud. |
| کد | عنوان | تغییر مهم نسبت به 2021 |
|---|---|---|
| A01:2025 | Broken Access Control | همچنان مهمترین ریسک است و SSRF نیز در همین محدوده ادغام شده است. |
| A02:2025 | Security Misconfiguration | رتبه بالاتری گرفته و برای ادمینها بسیار مهم است. |
| A03:2025 | Software Supply Chain Failures | تمرکز جدیتر روی وابستگیها، Build، Update و زنجیره تأمین نرمافزار. |
| A04:2025 | Cryptographic Failures | ضعفهای رمزنگاری همچنان جزو ریسکهای اصلی است. |
| A05:2025 | Injection | هنوز از مهمترین ریسکهای قابل کنترل در لایه WAF است. |
| A06:2025 | Insecure Design | ریسک طراحی ناامن همچنان نیازمند اصلاح معماری و توسعه امن است. |
| A07:2025 | Authentication Failures | تمرکز روی ضعفهای احراز هویت و Session. |
| A08:2025 | Software or Data Integrity Failures | ریسک Integrity در نرمافزار، داده و فرآیند انتشار. |
| A09:2025 | Security Logging and Alerting Failures | تأکید بیشتر روی Alerting، نه فقط Logging. |
| A10:2025 | Mishandling of Exceptional Conditions | مدیریت ضعیف خطاها، شرایط غیرمنتظره و رفتارهای استثنایی. |
FortiWeb یک Web Application Firewall است که برای محافظت از سرویسهای HTTP و HTTPS طراحی شده است. Fortinet در مستندات FortiWeb، بخش مشخصی برای WAF solutions against OWASP Top 10 risks دارد و توضیح میدهد که FortiWeb مجموعهای از قابلیتها را برای کاهش ریسکهای OWASP ارائه میکند.
در عمل، FortiWeb برای مقابله با OWASP Top 10 معمولاً از یک قابلیت تنها استفاده نمیکند؛ بلکه ترکیبی از Server Policy، Web Protection Profile، Signature، ML Anomaly Detection، API Protection، URL Access، Parameter Validation، Cookie Security، Session Security، Rate Limit، Bot Mitigation، DLP، Logging و FortiAnalyzer لازم است.
Client / Internet
|
FortiGate
|
FortiWeb
|
Web Server / API Server
بهترین حالت این است که FortiWeb در مسیر اصلی ترافیک Web و API قرار بگیرد؛ مخصوصاً در Reverse Proxy یا True Transparent Proxy. اگر FortiWeb فقط در Offline Protection باشد، برای Detection و یادگیری خوب است، اما برای Blocking قطعی و Enforcement کامل نباید روی آن حساب کرد.
FortiWeb یک بخش به نام OWASP Top 10 Compliance دارد که وضعیت Server Policyها را از نظر همراستایی با کنترلهای پیشنهادی OWASP نشان میدهد. این داشبورد جایگزین تست نفوذ یا Code Review نیست، اما برای ادمین FortiWeb خیلی مفید است چون سریع نشان میدهد کدام Policyها از نظر تنظیمات WAF ضعیفتر هستند.
مسیر GUI:
اگر این Dashboard را نمیبینید، ابتدا باید قابلیت مربوطه را فعال کنید:
معادل CLI:
config system advanced
set owasp-top10-compliance enable
end
Broken Access Control زمانی رخ میدهد که کاربر بتواند بدون مجوز به مسیر، داده، عملیات یا نقش دیگری دسترسی بگیرد. FortiWeb میتواند جلوی بخشی از این ریسک را بگیرد، مخصوصاً وقتی مسیرهای حساس، Admin Pathها، Methodها، Cookieها و Sessionها قابل تشخیص باشند.
| نیاز امنیتی | قابلیت FortiWeb | نکته عملیاتی |
|---|---|---|
| جلوگیری از دسترسی مستقیم به مسیرهای حساس | URL Access Rule، Custom Policy، Allow/Deny URL | برای مسیرهایی مثل /admin یا /management باید Rule جدا ساخته شود. |
| کنترل Session و Cookie | Cookie Security، Session Management، User Tracking | برای جلوگیری از Cookie Manipulation و Session Abuse کاربرد دارد. |
| کنترل Method | HTTP Method Policy | Methodهایی مثل DELETE، PUT یا PATCH نباید روی همه URLها آزاد باشند. |
| کنترل API | API Gateway، JWT Validation، API Protection | برای APIها فقط WAF کلاسیک کافی نیست؛ Schema و Authorization هم مهم است. |
مسیرهای GUI بسته به طراحی:
محدودیت مهم این است که FortiWeb همیشه منطق Role داخل برنامه را نمیفهمد. اگر برنامه به کاربر عادی اجازه تغییر Role بدهد یا API بدون Authorization درست عمل کند، WAF فقط در صورتی کمک میکند که الگوی سوءاستفاده قابل تعریف باشد.
FortiWeb میتواند در لایه TLS کمک زیادی بکند: SSL Offloading، Re-encryption، انتخاب Certificate، حذف پروتکلها و الگوریتمهای ضعیف، HSTS و Secure Cookie از جمله کنترلهای مهم هستند.
| ریسک | راهکار FortiWeb | محدودیت |
|---|---|---|
| TLS ضعیف | SSL/TLS Profile، غیرفعال کردن نسخههای ضعیف و Cipherهای ناامن | باید با نیاز کلاینتهای قدیمی تطبیق داده شود. |
| Cookie ناامن | Secure Cookie، HttpOnly، SameSite در صورت پشتیبانی و طراحی درست | اگر برنامه Cookie را اشتباه بسازد، باید سمت برنامه هم اصلاح شود. |
| انتقال داده حساس | HTTPS Enforcement و HSTS | رمزنگاری داخل دیتابیس یا منطق ذخیرهسازی را حل نمیکند. |
مسیرهای رایج:
Injection یکی از حوزههایی است که WAFها معمولاً در آن قویتر هستند. FortiWeb میتواند SQL Injection، XSS، Command Injection، LDAP Injection، Local File Inclusion و الگوهای مشابه را با Signature، Syntax Detection، Input Validation و ML-based Anomaly Detection کاهش دهد.
| نوع کنترل | قابلیت FortiWeb | کاربرد |
|---|---|---|
| تشخیص شناختهشده | Signature Protection | برای Payloadهای معروف SQLi/XSS/Command Injection. |
| کنترل ورودی | Input Rule، Parameter Validation | برای محدود کردن عدد، طول، فرمت، Regex، نوع داده و مقدار مجاز. |
| رفتار غیرعادی | ML-based Anomaly Detection | برای تشخیص درخواستهای غیرعادی نسبت به رفتار عادی برنامه. |
| API | OpenAPI Schema Validation، API Protection | برای APIهایی که Schema دارند و ورودی باید دقیقاً طبق قرارداد باشد. |
مسیرهای رایج:
نمونه CLI مفهومی برای فعال کردن Profile روی Server Policy:
config server-policy policy
edit "APP-POLICY"
set web-protection-profile "WPP-OWASP"
next
end
Insecure Design یعنی مشکل از طراحی است، نه صرفاً از یک ورودی مخرب. مثال: برنامه اساساً اجازه میدهد بدون بررسی منطق کسبوکار، تراکنش حساس انجام شود. FortiWeb میتواند بعضی نشانههای سوءاستفاده را محدود کند، اما طراحی ناامن را خودش اصلاح نمیکند.
| راهکار کمکی FortiWeb | چه کمکی میکند؟ |
|---|---|
| Rate Limit و Brute Force Protection | سوءاستفاده از فرآیندهای حساس را محدود میکند. |
| Bot Mitigation | اسکریپتها، Scraperها و اتوماسیون مخرب را کاهش میدهد. |
| Custom Policy و URL Access | بعضی مسیرهای پرریسک را فقط برای IP، Header یا شرایط خاص مجاز میکند. |
| Logging و FortiAnalyzer | برای کشف الگوهای سوءاستفاده از منطق برنامه کمک میکند. |
اما راهکار اصلی برای Insecure Design، Threat Modeling، Secure Design Review، تست نفوذ و اصلاح معماری است.
FortiWeb میتواند بخشی از Misconfigurationهای رایج را در لایه HTTP/HTTPS کاهش دهد؛ مثل Headerهای امنیتی، Methodهای اضافه، Error Messageهای افشاگر، Directory Browsing یا Policyهای باز.
| مشکل | قابلیت FortiWeb |
|---|---|
| HTTP Methodهای غیرضروری | HTTP Method Policy |
| Headerهای امنیتی ناقص | HTTP Header Security، HSTS، Header Rewrite |
| افشای اطلاعات در Response | Data Leak Prevention، Error Page Customization، Information Disclosure Protection |
| مسیرهای حساس باز | URL Access، IP Restriction، Client Certificate |
مسیرهای رایج:
اگر برنامه از WordPress، Joomla، Apache Struts، Log4j، کتابخانه قدیمی یا CMS آسیبپذیر استفاده کند، راهکار اصلی Patch و Upgrade است. FortiWeb میتواند برای Exploitهای شناختهشده Signature داشته باشد و Virtual Patching انجام دهد، اما Component آسیبپذیر را از روی سرور حذف نمیکند.
| راهکار FortiWeb | کاربرد |
|---|---|
| Signature Update | کاهش ریسک Exploitهای شناختهشده. |
| FortiGuard Updates | بهروز نگه داشتن دیتابیس حملات. |
| Virtual Patching | محافظت موقت تا زمان Patch واقعی. |
| Log و Alert | تشخیص تلاش برای Exploit. |
FortiWeb میتواند برای Login Protection، Brute Force، Credential Stuffing، Session Abuse و Bot Login کمک کند. اگر سامانه MFA ندارد یا منطق احراز هویت اشتباه است، WAF نمیتواند بهتنهایی آن را کامل اصلاح کند.
| ریسک | قابلیت FortiWeb |
|---|---|
| Brute Force روی Login | Rate Limit، Threshold، Brute Force Protection |
| Credential Stuffing | Bot Mitigation، Known Bots، Biometrics، Threshold |
| Session Manipulation | Cookie Security، Session Management، User Tracking |
| Admin Login حساس | URL Access، Source IP Restriction، Client Certificate، Authentication Policy |
پیشنهاد عملیاتی برای صفحه Login:
این ریسک بیشتر به زنجیره انتشار نرمافزار، Update، Dependency Integrity، Deserialization و تغییر غیرمجاز داده مربوط است. FortiWeb میتواند در بخش HTTP/API کمک کند، اما CI/CD ناامن یا Dependency آلوده را خودش اصلاح نمیکند.
| راهکار FortiWeb | کاربرد |
|---|---|
| API Schema Validation | جلوگیری از ارسال فیلدها یا ساختارهای غیرمجاز در API. |
| Hidden Fields Protection | جلوگیری از تغییر فیلدهای مخفی HTML در سناریوهای خاص. |
| Parameter Validation | کنترل دقیق ورودیهایی که روی منطق داده اثر میگذارند. |
| Signature و Anomaly Detection | تشخیص Payloadهای Deserialization یا Injection شناختهشده. |
در این بخش FortiWeb و FortiAnalyzer میتوانند خیلی ارزشمند باشند. FortiWeb لاگ Attack، Traffic، Event و Bot را تولید میکند و FortiAnalyzer میتواند آنها را نگهداری، جستوجو، گزارشگیری و Alert کند.
| نیاز | راهکار Fortinet |
|---|---|
| ثبت حملات WAF | FortiWeb Attack Log |
| ثبت رفتار کاربران و ترافیک | Traffic Log و Event Log |
| گزارشگیری و نگهداری بلندمدت | FortiAnalyzer |
| Alert و Incident | FortiAnalyzer Event Handler و Notification |
| تحلیل حملات Bot یا Login | Dashboard، Log Filter، Report |
مسیرهای رایج:
SSRF یکی از سختترین موارد برای WAF است. در SSRF، مشکل اصلی این است که سرور به درخواست کاربر، خودش یک Request به مقصد دیگر میزند. WAF معمولاً Request ورودی کاربر را میبیند، اما همیشه نمیداند سرور بعداً قرار است به کجا Request بزند.
| کاری که FortiWeb میتواند انجام دهد | توضیح |
|---|---|
| Parameter Validation | اگر پارامترهایی مثل url، redirect، callback یا webhook دارید، میتوان برای آنها Allowlist ساخت. |
| URL Access و API Schema | برای APIهایی که Schema دارند، ورودی باید فقط طبق Schema پذیرفته شود. |
| Signature و Threat Protection | بعضی Payloadهای شناختهشده، IPهای داخلی، Metadata URLها یا الگوهای خطرناک قابل تشخیص هستند. |
| Rate Limit و Logging | اسکن داخلی، تلاشهای پرتکرار یا رفتار غیرعادی را قابل تشخیص میکند. |
اما کنترل اصلی SSRF باید در خود برنامه و شبکه انجام شود:
سه موردی که در نسخه 2025 باید جداگانه به آنها توجه کنیم، برای WAFها چالشبرانگیزتر هستند؛ چون فقط به ترافیک HTTP ورودی محدود نمیشوند و به فرآیند توسعه، زنجیره تأمین، خطاهای برنامه و IAM هم ارتباط دارند.
این دسته فقط «کتابخانه قدیمی» نیست. در 2025 بحث گستردهتر شده و شامل وابستگیهای نرمافزاری، Packageهای مخرب، Build Pipeline، Repository، Artifactهای دستکاریشده، Dependency Confusion و ضعف در Provenance میشود.
نقش FortiWeb: FortiWeb میتواند Exploitهای وبی ناشی از یک کامپوننت آسیبپذیر را با Signature، Virtual Patching، Rate Limit، Bot Detection و File Upload Control کاهش دهد. اما تشخیص اینکه Package در CI/CD آلوده شده یا Maintainer یک کتابخانه compromise شده، کار WAF نیست.
کنترلهای مکمل: SCA، SBOM، Dependency Scanning، Code Signing، Artifact Signing، کنترل Repository، Pipeline Security، Secret Scanning و Patch Management.
این مورد ادامه همان ریسک احراز هویت در نسخه 2021 است، اما در 2025 نام آن سادهتر شده است. ضعف در Login، Session Fixation، Credential Stuffing، Password Reset، Token Handling و استفاده از Credentialهای پیشفرض یا Hard-coded در همین دسته قرار میگیرد.
نقش FortiWeb: FortiWeb میتواند روی Login Pathها Rate Limit بگذارد، Brute Force و Credential Stuffing را کاهش دهد، Bot Mitigation و CAPTCHA/Challenge اعمال کند، Cookie Security را تقویت کند و لاگهای حملات Login را به FortiAnalyzer بفرستد.
محدودیت: اگر برنامه MFA ندارد، Token را اشتباه تولید میکند، Session را امن نمیچرخاند یا Password Reset ناامن دارد، FortiWeb فقط بخشی از ریسک را کم میکند و اصلاح اصلی باید در برنامه یا IAM انجام شود.
این دسته جدید 2025 است و به مدیریت بد شرایط غیرعادی اشاره دارد؛ مثل Fail Open، Error Handling ضعیف، خطای منطقی در شرایط خاص، نمایش اطلاعات حساس در Error، قطع شدن سرویس هنگام ورودی غیرمنتظره یا ادامه پردازش در وضعیتی که برنامه باید متوقف شود.
نقش FortiWeb: FortiWeb میتواند ورودیهای غیرعادی را با Size Limit، Parameter Validation، HTTP Protocol Validation، File Upload Restriction، Rate Limit و Signatureها کنترل کند. همچنین میتواند Error Pageهای Backend را کمتر در معرض دید کاربر قرار دهد و لاگ رخدادهای غیرعادی را ثبت کند.
محدودیت: اگر برنامه در شرایط خاص Fail Open میشود، Transaction ناقص را Commit میکند یا Exception را در Business Logic اشتباه مدیریت میکند، WAF نمیتواند منطق داخلی را کامل بفهمد. تست سناریوهای خطا، Chaos Testing کنترلشده، Unit/Integration Test و Error Handling امن لازم است.
برای اینکه FortiWeb واقعاً در برابر OWASP Top 10 مفید باشد، بهتر است بهجای فعال کردن یک گزینه عمومی، سناریو را مرحلهای اجرا کنید.
داخل Web Protection Profile، قابلیتهایی مثل Signature، Input Validation، URL Access، Cookie Security، Bot Mitigation، DLP و Logging باید طبق نیاز فعال شوند.
برای سامانههای حساس، پیشنهاد میشود ابتدا Ruleهای جدید در حالت Alert/Monitor بررسی شوند. بعد از چند روز تحلیل لاگ و رفع False Positive، Action به Block یا Alert & Deny تغییر کند.
بدون لاگ و تحلیل، WAF فقط یک دیوار خاموش است. Attack Logها، Eventها و Traffic Logهای مهم باید به FortiAnalyzer ارسال شوند تا تیم SOC بتواند روندها، حملات پرتکرار، False Positiveها و رخدادهای واقعی را تحلیل کند.
بله، تا حد زیادی. هر WAF، چه FortiWeb باشد، چه F5 Advanced WAF، Imperva، Cloudflare WAF، AWS WAF یا ModSecurity، در برابر بخشی از OWASP Top 10 ذاتاً محدودیت دارد. دلیلش ساده است: OWASP Top 10 فقط حمله HTTP ساده نیست؛ مجموعهای از ریسکهای طراحی، توسعه، احراز هویت، لاگینگ، پیکربندی و زنجیره تأمین است.
| ریسک | وضعیت عمومی در اکثر WAFها |
|---|---|
| Injection | معمولاً پوشش خوب؛ چون Payload در Request ورودی قابل تشخیص است. |
| XSS | پوشش خوب تا متوسط؛ وابسته به Context و False Positive. |
| Broken Access Control | پوشش متوسط؛ اگر URL/Role/API قابل تعریف باشد کمک میکند، ولی منطق برنامه را کامل نمیفهمد. |
| SSRF | پوشش محدود تا متوسط؛ نیازمند Allowlist، کنترل Egress و اصلاح برنامه. |
| Insecure Design | پوشش محدود؛ مشکل ریشهای باید در طراحی حل شود. |
| Vulnerable Components | Virtual Patching کمک میکند، اما Patch واقعی لازم است. |
| Logging Failures | WAF لاگ خودش را میدهد، اما لاگ داخلی برنامه و Business Eventها را جایگزین نمیکند. |
| OWASP 2021 | قابلیتهای FortiWeb | سطح پوشش WAF | کنترل مکمل لازم |
|---|---|---|---|
| Broken Access Control | URL Access، Cookie Security، Method Control، API Protection | متوسط | Authorization در کد، RBAC، تست دسترسی |
| Cryptographic Failures | SSL/TLS Profile، Certificate، HSTS، Secure Cookie | خوب برای Transport | رمزنگاری داده، مدیریت Key، Secure Storage |
| Injection | Signature، Input Validation، ML، API Schema | خوب | Prepared Statement، Validation سمت برنامه |
| Insecure Design | Rate Limit، Custom Policy، Bot Mitigation، Logging | محدود | Threat Modeling، Secure Design، تست نفوذ |
| Security Misconfiguration | Method Policy، Header Security، DLP، URL Access | متوسط تا خوب | Hardening سرور، حذف Debug، Patch |
| Vulnerable Components | Signature، Virtual Patching، FortiGuard Update | متوسط | Patch Management، SCA، Upgrade |
| Authentication Failures | Rate Limit، Bot Mitigation، Session/Cookie Security | متوسط | MFA، Password Policy، Secure Session Design |
| Software/Data Integrity Failures | API Schema، Hidden Fields، Parameter Validation | متوسط | CI/CD Security، Signing، Dependency Control |
| Logging/Monitoring Failures | Attack Log، Event Log، FortiAnalyzer | خوب برای لایه WAF | App Log، SIEM، Incident Response |
| SSRF | Parameter Validation، API Schema، Signature، Logging | محدود تا متوسط | App Allowlist، Egress Filtering، Cloud Metadata Protection |