OWASP Top 10 چیست؟ پروژه امنیت برنامه Open Web یا OWASP یک سازمان غیرانتفاعی است که برای بهبود امنیت نرمافزار اختصاص پیداکرده است. OWASP بر اساس یک رویکرد عمل میکند، این رویکرد جامعه باز تضمین میکند که هرکسی و هر سازمانی میتواند امنیت برنامه وب خود را بهبود ببخشد. موادی که ارائه میکند شامل اسناد، رویدادها، انجمنها، پروژهها، ابزارها و فیلمها، مانند OWASP Top 10، پروتکل وب OWASP CLASP و OWASP ZAP، که یک اسکنر برنامه open-source web است.
OWASP برای سازمانها مهم است زیرا توصیههای آن توسط حسابرسان مورداحترام قرار میگیرد. کسبوکارهایی را که نتوانستهاند میان فهرست 10 کسب کار برتر OWASP قرار بگیرند، میتوان در نظر گرفت که استانداردهای انطباق را ندارند. بنابراین سازمانها باید توصیههای حفاظتی OWASP را در چرخه عمر توسعه نرمافزار خود بسازند و از آن برای شکل دادن به policy ها و همچنین بهترین شیوههای خود استفاده کنند.
OWASP Top 10 چیست
OWASP Top 10 یک گزارش یا “سند آگاهیبخش” است که نگرانیهای امنیتی در مورد امنیت برنامههای کاربردی وب را تشریح میکند. درواقع بهطور مرتب بهروز میشود تا اطمینان حاصل شود که بهطور مداوم 10 خطر مهمی که سازمانها با آن مواجه هستند را نشان میدهد. OWASPبه همه سازمانها توصیه میکند که اسناد یافت شده خود را در فرآیندهای شرکتی خود بگنجانند تا اطمینان حاصل کنند که آخرین خطرات امنیتی را به حداقل رساندهاند و کاهش دادهاند.
گزارش آسیبپذیریهای OWASP بر اساس اجماع کارشناسان امنیتی در سراسر جهان شکلگرفته است. این گزارش ریسکها را بر اساس تکرار نقص امنیتی، شدت آسیبپذیری و تأثیر بالقوه آنها رتبهبندی میکند. این گزارش به توسعهدهندگان و متخصصان امنیتی بینشی در مورد برجستهترین خطرات ارائه میدهد و آنها را قادر میسازد تا پتانسیل رخ دادن خطرات را در اقدامات امنیتی سازمان خود به حداقل برسانند.
بیشتر بخوانید: معرفی 12 شیوه کدنویسی ایمن توسط OWASP
10 آسیبپذیری برتر OWASP
در آخرین گزارشOWASP ده آسیبپذیری برتر را به شرح زیر فهرست بندی میکند:
1. Injection
2. احراز هویت خراب
3. قرار گرفتن در معرض دادههای حساس
4. موجودیتهای خارجی XML (XXE)
5. کنترل دسترسی خراب
6. تنظیمات اشتباه امنیتی
7. اسکریپت بین سایتی یا XSS
8. deserializationغیر ایمن
9. استفاده از مؤلفههایی با آسیبپذیریهای شناختهشده
10. ثبت و نظارت ناکافی
1. Injection
حملات INJECTION زمانی اتفاق میافتند که دادههای غیرقابلاعتماد از طریق Form Input یا انواع دیگر ارسال داده به برنامههای کاربردی وب INJECT میشوند. یک نوع رایج Injection Attack، inject زبان پرسوجو ساختاریافته SQLi است، که زمانی اتفاق میافتد که مجرمان سایبری کد پایگاه داده SQL را به یک فرم آنلاین که برای متنی ساده استفاده میشود، INJECT میکنند. این نوع حملات را میتوان با پاکسازی و اعتبارسنجی دادههای ارسالشده توسط کاربران ناکارآمد کرد. اعتبارسنجی دادهها اطمینان میدهد که دادههای مشکوک رد میشوند و پاکسازی دادهها به سازمانها کمک میکند تا دادههایی را که مشکوک به نظر میرسند پاک کنند. مدیران پایگاه داده همچنین میتوانند کنترلهایی را اتخاذ کنند که حملات injection اطلاعات را به حداقل برساند.
برای مشاوره رایگان جهت (باز)طراحی امنیت شبکه و یا انجام تست نفوذ مطابق با الزامات افتا با کارشناسان شرکت APK تماس بگیرید. |
2. احراز هویت خراب یا Broken authentication
آسیبپذیریهای احراز هویت میتوانند مهاجمان را قادر سازند تا به حسابهای کاربری، ازجمله حسابهای مدیریتی که میتوانند از آنها برای به خطر انداختن و کنترل کامل دستگاههای شرکتی استفاده کنند، دسترسی پیدا کنند.
وبسایتها معمولاً از احراز هویت خراب رنج میبرند، که عموماً درنتیجه مشکلاتی در مکانیسم تأیید اعتبار برنامه رخ میدهد. این شامل مدیریت بد جلسه است که میتواند توسط مهاجمان با استفاده از تکنیکهای brute-force برای حدس زدن یا تأیید حسابهای کاربری و اعتبارنامههای login مورد سوءاستفاده قرار گیرد.
آسیبپذیریهای احراز هویت OWASP 10
1. اجازه حملات مانند پر کردن اعتبار
2. مجاز کردن رمزهای عبور ضعیف یا پیشفرض
3. استفاده کردن از فرآیندهای ناموفق کاربری و رمز عبور گمشده
4. ازدسترفته یا از احراز هویت چندعاملی بیاثر یا MFA استفاده میشود
5. شناسههای جلسه را در مکانیاب منبع یکسان URL در معرض نمایش قرار دهید، شناسههای جلسه را نچرخانید، و شناسههای جلسه و نشانههای احراز هویت را پس از یک دوره عدم فعالیت به شکل کامل باطل نکنید.
بیشتر بخوانید: معنای XSS یا اسکریپت بین سایتی چیست؟ انواع حملات XSS کدامند؟
این آسیبپذیریها معمولاً توسط نرمافزارهای ناامن ایجاد میشوند، که اغلب ناشی از نوشتن برنامهنویسان بیتجربه، فقدان آزمودن امنیتی و انتشار سریع نرمافزار است. آسیبپذیریهای احراز هویت خراب را میتوان با استقرار روشهای MFA کاهش داد، که اطمینان بیشتری به کاربر ارائه میدهد و از حملات خودکار و Bruteforce جلوگیری میکند. همچنین میتوان از این آسیبپذیریها جلوگیری کرد و اطمینان حاصل کرد که توسعهدهندگان بهترین شیوهها را برای امنیت وبسایت به کار میگیرند و یک دوره زمانی مناسب برای آزمایش صحیح کدها قبل از تولید برنامهها اختصاص داده میشود. تاکتیکهای دیگر عبارتاند از بررسی رمزهای عبور ضعیف، اطمینان از محافظت کاربران از حسابهای خود با رمزهای عبور قوی و منحصربهفرد، و استفاده از جلسه امن برای مدیران.
3. قرار گرفتن در معرض دادههای حساس
در معرض انتشار قرار گرفتن دادههای حساس یا درز دادهها یکی از رایجترین اشکال حمله سایبری است. اگر از یک برنامه وب بهطور مؤثر محافظت نشود، دادههای حساس مانند اطلاعات کارت اعتباری، جزئیات پزشکی، شمارههای تأمین اجتماعی و گذرواژههای کاربر میتوانند افشا شوند. مهاجمانی که قادر به دسترسی و سرقت این اطلاعات هستند، میتوانند از آن بهعنوان بخشی از حملات گستردهتر استفاده کنند یا آن را به اشخاص ثالثی بفروشند.
حفاظت از دادههای حساس با توجه به قوانین و مجازات سختگیرانِ دادهها و مقررات حفظ حریم خصوصی، مانند مقررات عمومی حفاظت از دادههای اتحادیه اروپا GDPR اهمیت فزایندهای دارد. برای انجام این کار، سازمانها باید بتوانند از دادهها در حالت Rest و دادههای در حال انتقال بین سرورها و مرورگرهای وب محافظت کنند. دادههای یک وبسایت را میتوان با استفاده از گواهی secure sockets layer یا SSL محافظت کرد، که یک پیوند رمزگذاری شده بین مرورگر وب و سرور ایجاد میکند. همچنین از یکپارچگی دادهها در هنگام انتقال بین سرور یا فایروال و مرورگر وب محافظت میکند. همچنین میتوان با رمزگذاری دادهها از طریق فرآیندهای رمزگذاری ایمن، محافظت از رمزهای عبور ذخیرهشده با یک عملکرد Hashing قوی و اطمینان از وجود الگوریتمها، کلیدها و پروتکلهای قوی و بهروز شده، از قرار گرفتن در معرض دادههای حساس جلوگیری کرد.
4. موجودیتهای خارجی XML (XXE)
حملات XXE برنامههای کاربردی وب را هدف قرار میدهند که زبان نشانهگذاری توسعهپذیر یا XML را تجزیه میکنند. آنها زمانی رخ میدهند که یک ورودی XML که حاوی ارجاع به یک موجودیت خارجی، مانند هارددیسک است، توسط یک تجزیهکننده XML با پیکربندی ضعیف پردازش میشود. تجزیهکنندههای XML اغلب بهطور پیشفرض در برابر XXE آسیبپذیر هستند، به این معنی که توسعهدهندگان باید آسیبپذیری را بهصورت دستی حذف کنند.
OWASP Top 10 بیان میکند که حملات XXE معمولاً پردازندههای آسیبپذیر XML، کدهای آسیبپذیر، dependencies و integrations را هدف قرار میدهند. میتوان با اطمینان از پذیرش برگههای پیچیده دادهها مانند نشانههای وب جاوا اسکریپت یا JSON، وصله تجزیهکنندههای XML یا غیرفعال کردن استفاده از entitieهای خارجی، از حملات XXE جلوگیری کرد. سازمانها همچنین میتوانند با استقرار دروازههای امنیتی رابط برنامهنویسی یا API، وصلههای مجازی و برنامه فایروالهای تحت وب یا WAF از خود در برابر حملات XXE دفاع کنند.
5. کنترل دسترسی خراب
کنترل دسترسی به دادهها، وبسایتها، پایگاههای داده، شبکهها یا منابع خاصی اشاره دارد که کاربران مجاز به بازدید یا دسترسی به آنها هستند. کنترلهای دسترسی خراب منجر به دسترسی کاربران به منابعی فراتر ازآنچه نیاز دارند میشود. این به مهاجمان امکان میدهد محدودیتهای دسترسی را دور بزنند، به دستگاهها و دادههای حساس دسترسی غیرمجاز پیدا کنند، و بهطور بالقوه به حسابهای کاربری مدیریت و دارای امتیاز دسترسی پیدا کنند.