OWASP چیست و چه کاربردی دارد؟

OWASP چیست و چه کاربردی دارد؟
Open Web Application Security Project یک سازمان غیر انتفاعی است که به بهبود امنیت نرم افزارها رسیدگی می کند.
اساس کار موسسه OWASP به این گونه است که تمام یافته های خود را به صورت رایگان و از طریق وب سایت خود، در دسترس عموم قرار می دهد. پیدایش این رویکرد بر این اصل بوده که تمام افراد و سازمان ها، بتوانند امنیت web application خود را بهبود بخشند. مواردی که توسط این سازمان ارائه می شود، عبارتند از documentها، حوادث، فروم، پروژه، ابزارها و ویدئو مانند OWASP Top 10، CLASP web protocol، OWASP ZAP و open-source web application scanner.
این موسسه از جایگاه خاصی در بین سازمان ها برخوردار است، و توصیه ها و مواردی که ارائه می دهد، برای سازمان های ممیزی بسیار مهم و معتبر است. در واقع سازمان هایی که به لیست “ده آسیب پذیری مهم اپلیکیشن های تحت وب” یا همان OWASP Top 10 توجه نکنند، قادر به دریافت استاندارد مربوطه از سازمان های ممیزی نمی باشند. در نتیجه سازمان ها می بایست توصیه های امنیتی ارائه شده از سوی OWASP را برای توسعه نرم افزارهای خود پیاده نموده و از آن ها برای تعیین پالیسی های امنیتی استفاده کنند.
منظور از OWAS Top 10 چیست؟
OWSA Top 10 یک گزارش یا به بیان دقیق تر “اطلاعاتی با هدف آگاه سازی” است که به چالش های امنیتی در خصوص web application می پردازد. بدیهی است که چنین لیستی به طور مداوم به روز رسانی می شود تا همواره ۱۰ مورد از خطرناک ترین تهدیداتی که ممکن است سازمان ها مواجه گردند را نشان دهد. موسسه OWASP به همه سازمان ها توصیه می کند توجه خاصی به لیست مذکور داشته باشند تا تهدیدات امنیتی را به حداقل برسانند.
گزارش آسیب پذیری های OWASP نتیجه ی اجماع و توافق متخصصان امنیتی سراسر جهان می باشد. رتبه بندی این لیست بر اساس فراوانی، شدت و تاثیر بالقوه ی آسیب پذیری ها صورت می گیرد. به این ترتیب کارشناسان امنیت، بینشی نسبت به جدی ترین تهدیدات پیدا کرده و اقدامات لازم را در پیش می گیرند.
آسیب پذیری های OWASP Top 10
جدیدترین گزارش OWASP به شرح ذیل می باشد:
- Injection
- Broken authentication
- Sensitive data exposure
- XML external entities (XXE)
- Broken access control
- Security misconfigurations
- Cross-site scripting (XSS)
- Insecure deserialization
- Using components with known vulnerabilities
- Insufficient logging and monitoring
Injection and OWASP
حملات injection زمانی رخ می دهد که کدهای تایید نشده و غیر مجاز، وارد اپلیکیشن های تحت وب شده و به عنوان یک query یا command تعریف شوند. Structured Query Language injection (SQLi) یکی از رایج ترین حملات injection است و زمانی اتفاق می افتد که مهاجمان سایبری از آسیب پذیری های مبتنی بر SQL استفاده نموده و کد دلخواه خود را به کوئری های SQL وارد کنند. برای جلوگیری از این نوع حملات، می توان داده های ارسال شده توسط کاربران را اعتبارسنجی نمود.
Broken Authentication
آسیب پذیری های احراز هویت می تواند منجر به دسترسی مهاجمان سایبری به اکانت های کاربران و مدیران شده تا از آن ها برای به خطر انداختن و کنترل کامل سیستم های سازمانی استفاده کنند.
OWASP Top 10، لیستی از آسیب پذیری های احراز هویت برای اپلیکیشن های تحت وب ارائه داده:
- Permit attacks like credential stuffing
- Permit weak or default passwords
- Employ ineffective user credential and lost password processes
- Are missing or use ineffective multi-factor authentication (MFA)
- Expose session IDs in the Uniform Resource Locator (URL), do not rotate session IDs, and do not properly invalidate session IDs and authentication tokens after a period of inactivity
این آسیب پذیری ها معمولا در اثر نرم افزارهای نا ایمن به وجود می آیند، که ممکن است ناشی از کم تجربگی برنامه نویس و یا فقدان ابزارهای تست امنیت باشد و یا انتشار سریع نرم افزار.
آسیب پذیری های احراز هویت را می توان با استفاده از روش MFA کاهش داد و مانع از حملات brute-force و خودکار شد. با اطمینان خاطر از به کار گیری بهترین اقدامات توسط برنامه نویس، می توان مانع از این آسیب پذیری ها شد.
Sensitive Data Exposure in OWASP
نشت داده ها (data leakage) یکی از رایج ترین حملات سایبری است. چنانچه اپلیکشین تحت وب، از نقص امنیتی برخوردار باشد، داده های مهم مانند اطلاعات کارت های بانکی، اطلاعات پزشکی و پسوردها به سادگی افشا می شوند. مهاجمانی که قادر به دسترسی به اطلاعات هستند، از آن به عنوان هموار کردن مسیری برای حملات گسترده تر و یا قرار دادن اطلاعات در اختیار فرد یا سازمان دیگر استفاده می کنند.
با توجه به قوانین سختگیرانه ی حفاظت از داده ها مانند قوانین GDPR، به یک موضوع پراهمیت تبدیل شده است. از این رو سازمان ها به ناچار باید از داده های ذخیره شده و همچنین داده های در حال مبادله بین سرورها و مرورگرهای وب، به شدت محافظت کنند.
داده های یک وب سایت را می توان با استفاده از گواهی secure socket layer (SSL) که بین مرورگر وب و سرور را رمزنگاری می کند، محافظت نمود. در ضمن SSL می تواند یکپارچگی داده ها به هنگام انتقال بین سرور یا فایروال و یک مرورگر وب را حفظ کند.
XML External Entities (XXE)
در حملات XXE، یک مهاجم سایبری می تواند توسط یک web application فرایند پردازش XML را تغییر دهد. این آسیب پذیری، مهاجمان سایبری را قادر به مشاهده filesystem سرور اپلیکیشن ها نموده و امکان تعامل با هر سیستم back-end یا خارجی که خود اپلیکیشن به آن دسترسی دارد را میسر می کند. در اصل این حملات زمانی رخ می دهند که یک XML input که خود حاوی رفرنس به یک entity خارجی مانند هارد درایو است توسط پارسرهای یک XML و با پیکربندی ضعیف، پردازش شود. پارسرهای XML به طور پیش فرض در برابر XXE آسیب پذیر هستند، به عبارت دیگر آسیب پذیری ها باید توسط برنامه نویس به صورت دستی کنترل و حذف شود.
OWASP Top 10 عنوان می کند حملات XXE به طور معمول پردازنده های آسیب پذیر XML و کدهای آسیب پذیر را هدف قرار می دهند.
با حصول اطمینان از پیچیده نبود فرم داده ها (مانند JavaScript Object Notation (JSON) web tokens)، patching XML parsers یا غیرفعال نمودن entity خارجی می توان مانع از حملات XXE شد. از دیگر راهکارهای ممانعت از این حملات می توان به استفاده از درگاه های امنیتی API، virtual patching و فایروال های مخصوص به اپلیکیشن های تحت وب (WAF) اشاره نمود.
Broken Access Control
Access control به داده های خاص، وب سایت ها، پایگاه داده ها، شبکه ها یا منابعی اشاره دارد که کاربران مجاز به دسترسی و یا بازدید از آن ها هستند. عدم موفقیت در access control منجر به دسترسی کاربران به منابعی بیش از حد مجاز خواهند شد. به این ترتیب، مهاجمان سایبری با نادیده گرفتن محدودیت ها، به داده ها و سیستم ها و حتی اکانت ادمین نیز دسترسی می یابند.
میزان خطر access control را می توان با اعطا حداقل میزان دسترسی، ممیزی منظم سرورها و وب سایت ها و همچنین اعمال MFA در کنار حذف کابران غیر فعال و خدمات غیر ضروری از سرور کاهش داد. از طرفی سازمان ها می توانند access control را با استفاده از توکن های احراز هویت به هنگام لاگین شدن کاربران به اپلیکیشن های تحت وب و رد تاییدیه آن ها پس از logout کردن، بهبود بخشند.
Security Misconfigurations
Security misconfigurations نیز یکی از رایج ترین حملاتی است که در ردیف ششم از لیست OWASP Top 10 قرار دارد. این چالش معمولا برای سازمان هایی رخ می دهد که از پیکربندی های پیش فرض وب سایت ها یا content management system (CMS) استفاده می کنند که به طور ناخواسته، آسیب پذیری های اپلیکیشن نمایان می شود. پیکربندی های نادرست شامل عدم دریافت پچ های آپدیت، صفحات وب استفاده نشده، دایرکتوری ها و فایل های نا ایمن، مجوزهای پیش فرض برای به اشتراک گذاری داده ها بر روی تجهیزات فضای ابری و همچنین خدمات غیر ضروری می باشد.
Security misconfiguration ممکن است در سرورهای وب و اپلیکیشن ها، دیتابیش، خدمات شبکه، کدهای سفارشی، قالب ها و تجهیزات مجازی از پیش نصب شده رخ دهد.
با تغییر تنظیمات پیش فرض webmaster یا CMS، حذف کدهای غیر ضروری و نظارت بر کاربران می توان مانع از این تهدیدات شد.
Cross-site Scripting (XSS)
طی آسیب پذیری cross-site scripting، وب اپلیکیشن ها به کاربران اجازه ی ارسال کدهای سفارشی خود را به مسیر URL یا وب سایت های عمومی می دهند. بنابراین حملات XSS زمانی اتفاق می افتاد که مهاجمان، اسکریپت های مخربی را به یک وب سایت اعمال نموده، به طوری که آن ها را قادر به تغییر در محتوای سایت کند. در مرحله بعد مهاجم، با اجرای کد مخرب و از طریق مهندسی اجتماعی اقدام به ارسال لینک های مخرب و یا ایمیل های فیشینگ می کند. آسیب پذیری XSS می تواند به مهاجم، امکان نظارت کامل بر روی مرورگرها را داده و آن ها را قادر به ارسال کدهای مخرب جاوا اسکریپت به وب سایت نماید.
سازمان ها می توانند با انتخاب راهکار WAF برای کاهش و مسدودسازی حملات XSS قدم بردارند؛ این در حالی است که برنامه نویسان نیز می توانند داده های تایید نشده را از مرورگرهای فعال جدا سازند.
Insecure Deserialization in OWASP
Data serialization به فرایندی گفته می شود که طی آن یک object به مجموعه ای از بایت ها تبدیل شده تا ذخیره سازی و انتقال آن ساده تر شود. Deserialization نیز به معنای تبدیل مجموعه بایت ها به object است. Deserializationی که به صورت نا ایمن صورت گیرد، شامل دستکاری داده ها پیش از اتمام فرایند مربوطه می باشد.
توصیه هایی ایمنی که OWASP در حوزه deserialization نا ایمن ارائه می کند حول سوپر کوکی هایی می چرخد که حاوی اطلاعات serialized شده در مورد کاربران می گردد. چنانچه مهاجمان سایبری موفق به deserialize کردن یک object شود، در آن صورت می توانند نقش ادمین گرفته و داده ها را serialize کنند. در این مرحله است که کل اپلیکیشن تحت وب، در معرض خطر قرار می گیرد.
با ممنوع کردن serialize کردن object ها و همین طور ممنوع کردن deserialize کردن داده هایی که دارای منابع نامعتبر هستند، می توان به جلوگیری از این تهدیدات کمک کرد. سایر توصیه هایی که از طرف OWASP ارائه می شود عبارتند از نظارت بر فعالیت های deserialize کردن، بررسی یکپارچگی برای هر serialized object به منظور جلوگیری از دستکاری و تغییر در داده ها، جداسازی کد deserialize شده، حصول اطمینان از ثبت تمامی استثناها و موارد خرابیِ deserialization و همین طور محدودسازی و نظارت بر فعالیت های شبکه و سرورهایی که داده ها را deserialize می کنند.
Using Components with Known Vulnerabilities in OWASP
المان های یک نرم افزار مانند framework و library غالبا در اپلیکیشن های تحت وب، استفاده می شوند تا قابلیت های خاصی را ایجاد کنند. قابلیت هایی مانند به اشترک گذاری ایکون ها و A/B testing. ناگفته نماند این المان ها می توانند منجر به آسیب پذیری هایی شوند که برای برنامه نویسان کاملا ناشناخته می باشند و همین نقطه ضعف های امنیتی ممکن است منجر به بروز حملات سایبری گردد.
این امر غالبا برای اپلیکیشن هایی رخ می دهد که به روز نگه داشتن آن، توسط برنامه نویس مورد توجه قرار نگرفته و یا از کدهای قدیمی برای آپدیت های جدید در آن ها استفاده شده. با این حال مهاجمان همچنان در جستجوی آسیب پذیری هایی هستند که توسط توسعه دهندگان آن، شناسایی نشده اند؛ که به طور معمول از آن به عنوان حملات zero-day یاد می شود.
سازمان ها می توانند با دریافت پچ های آپدیت از این مشکل اجتناب کنند. در ضمن حذف المان های غیر قابل استفاده و تنها به کارگیری المان های معتبر در راستای محقق شدن این هدف، نقش دارند.
Insufficient Logging and Monitoring
اکثر وب اپلیکشن ها فاقد عملکردهای کافی برای شناسایی نقض داده ها هستند. به این ترتیب علاوه بر این که مهاجمان، دسترسی غیر مجاز به سیستم پیدا می کنند، تاثیر طولانی مدت هم خواهند گذاشت. بنابراین سازمان ها می بایست بر روی اپلیکیشن های خود، نظارت داشته باشند تا موارد مشکوک و مخرب را به سرعت شناسایی نموده تا مانع از بروز تهدیدات گردند. نقش OWASP در این زمینه بسایر پررنگ بوده و همواره در جهت ارتقای امنیت سازمانی فعالیت نموده است .
در ضمن بهتر است سازمان ها گزارشات ممیزی خود را نگهداری نموده تا از هر گونه تغییرات مشکوک، فعالیت های غیر معمول و دسترسی های غیر مجاز مطلع شوند.
تامین امنیت سازمانی توسط تجهیزات فورتی نت
خوشبختانه فورتی نت با در نظر گرفتن چالش های فوق، راهکار فایروال اپلیکیشن های تحت وب (FortiWeb) را ارائه داده که از web application ها در برابر حملات شناخته شده و ناشناخته محافظت به عمل می آورد. نکته جالب توجه در خصوص این فایروال این است که بر اساس سطوح حملاتی که ممکن است سازمان ها با آن ها مواجه شوند، تکامل می یابد و به سازمان ها کمک می کند از وب اپلیکیشن ها به هنگام به روز رسانی محافظت نموده، قابلیت های جدید را به کار گیرند و web APIهای جدیدی را ارائه دهند.
فورتی وب از رویکرد پیشرفته multi-layer استفاده می کند تا اقدامات ویژه ای برای مقابله تا تهدیدات OWASP Top 10 و حتی بیشتر ارائه دهد. از طرف دیگر با بهره گیری از مزایای machine learning فعالیت های مشکوک و رفتارهای غیر معمول را شناسایی و مسدود می کند.
علاوه بر این، فایروال های نسل جدید فورتی نت با فیلتر کردن ترافیک شبکه، قادر به مقابله با تهدیدات داخلی و خارجی می باشند. این فایروال ها با یکپارچه سازی قابلیت های خاص مانند packet filtering، Internet Protocol security (IPsec) و SSL virtual private network با دقت بالاتری اقدام به بررسی محتوا می کنند.