درباره owasp (پروژه باز امنیت برنامه های تحت وب) :
انجمنی است که به سازمانها ها اجازه توسعه، خریداری و نگهداری نرم افزارها و API را به صورت امن میدهد
در OWSAP موارد زیر به صورت ازاد و رایگان وجود دارد :
برای اطلاعات بیشتر به سایت https://owasp.org/ مراجعه کنید.
همه ابزارها، اسناد ،انجمن ها و مقالات OWASP برای همه رایگان و باز است.OWASP به هیچ شرکت فناوری وابسته نیست ،ولی استفاده آگاهانه از فناوری های امنیتی تجاری را حمایت میکند.OWASP مانند بسیاری از پروژه های نرم افزاری منبع باز است و انواع مختلفی از منابع اصلی را به صورت مشارکتی و ازاد تولید می کند.
سازمان OWASP یک نهاد انتفاعی نیست که موفقیت درازمدت پروژه اش را تضمین کند .تقریبا تمامی افراد مرتبط با OWASP ازجمله اعضای هیئت مدیره، مشاوران مقاله ، مشاوران و اعضای پروژه، به صورت داوطلبانه کار می کنند.
ضعف تزریق، مانند OS ,NoS,SQL و تزریق LDAP زمانی رخ می دهد که داده های نامعتبر به عنوان بخشی از فرمان یا پرس و جو به یک مفسر ارسال شوند. داده های مخرب مهاجم می تواند مفسر را به اجرای دستورات غیرمنتظره یا دسترسی به داده ها بدون مجوز مناسب منجر کند.
توابع درخواست مربوط به احراز هویت و مدیریت نشست اغلب به اشتباه اجرا می شوند، و به مهاجمان اجازه میدهند رمزهای عبور، کلید ها یا نشانه های نشست به خطر بیافتد یا از ضعف های دیگر پیاده سازی استفاده کنند تا از هویت های دیگر کاربران به طور موقت یا دائمی بهره برداری کنند.
بسیاری از برنامه های کاربردی وب و API ها از اطلاعات حساس مانند مالی، سلامت و PII به درستی محافظت نمی کنند. مهاجمان ممکن است این اطلاعات به درستی محافظت نشده را، سرقت یا برای سایر مقاصد مورد استفاده قرار داده، و یا تغییر دهند. داده های حساس ممکن است بدون حفاظت اضافی، مانند رمزگذاری در حالت استراحت یا درحین حمل، به خطر بیافتد.
بسیاری از پردازنده های قدیمی تر یا ضعیف پیکربندی شده XML ارجاعات موجودیت بیرونی را در اسناد XML ارزیابی می کنند. موجودیت بیرونی می تواند به افشای فایل های داخلی با استفاده از فایل URL فایل، اشتراک فایل های داخلی، اسکن پورت داخلی ، اجرای کد از راه دور و حمات انکار سرویس منجر شود.
محدودیت هایی که کاربران مجاز به انجام آن مجاز هستند اغلب به درستی اعمال نمی شوند. مهاجمان میتوانند از این ضعف ها برای دسترسی به قابلیت های غیر مجاز و یا داده ها مانند دسترسی به حساب های دیگر کاربران، مشاهده فایل های حساس، تغییر دادن داده های کاربران دیگر، تغییر حقوق دسترسی و غیره استفاده کنند.
تنظیمات امنیتی اشتباه یکی از رایج ترین مسائل امنیتی موجود است . که معمولا نتیجه ای از تنظیمات پیش فرض ناامن، پیکربندی های ناقص و غیر مجاز، ذخیره سازی ابر باز، هدر های HTTP غلط تنظیم شده و پیام های خطای حاوی اطلاعات حساس است. نه تنها تمام سیستم عامل ها، چارچوب ها، کتابخانه ها و برنامه های کاربردی باید به صورت ایمن پیکربندی شوند، بلکه باید آنها را به موقع اعمال و به روز رسانی کرد.
نقص های xss زمانی رخ می دهد که برنامه شامل اطلاعات غیر قابل اعتماد در یک صفحه وب جدید بدون اعتبارسنجی مناسب باشد یا یک صفحه وب موجود را با داده های ارائه شده توسط کاربر با استفاده از یک API مرورگر که می تواند HTML یا جاوااسکریپت ایجاد کند، به روز می کند. XSS به مهاجمان امکان اجرای اسکریپت ها در مرورگر قربانی را می دهد که می تواند جلوی کاربر را بگیرد، وب سایت ها را خراب کند یا کاربر را به سایت های مخرب هدایت کند.
در deserialization نا امن منجر به اجرای کد از راه دور می شود. حتی اگر معایب deserialization باعث اجرای کد از راه دور نباشند، از آنها می توان برای انجام حمات استفاده کرد، از جمله حمات تزریق و حملات تشدید امتیاز.
اجزاء مانند کتابخانه ها، چارچوب ها و دیگر ماژول های نرم افزاری، دارای دسترسی هایی مشابه با برنامه می باشند.اگر یک جزء آسیب پذیر مورد سوء استفاده قرار گیرد، حمله می تواند باعث از دست رفتن اطلاعات جدی باشد.
نظارت و ثبت وقایع ناقص، همراه با عدم واکنش صحیح به حادثه، به مهاجمان اجازه می دهد تا به سیستمهای بیشتری حمله کنند، یا اقدام به استخراج و یا نابودی اطلاعات کنند. بیشتر مطالعات نشان می دهد زمان برای تشخیص آسیب بیش از 200 روز است، که معمولا توسط شرکت های بیرونی، نه از طریق نظارت داخلی کشف میشوند.
تقریباً هر منبع داده ای می تواند یک عامل تزریق باشد.
پارامترها، متغیرها، سرویس های وب داخلی و خارجی، و همه انواع کاربران نیز میتوانند عامل تزریق باشند.
نقض تزریق زمانی رخ میدهد که یک نرم افزار داده های غیرقابل اعتماد را به مفسر ارسال کند.
نقض تزریق بسیار شایع است به ویژه در کدهایی که در ارثبری وجود دارد. این نقص اغلب در qurey های xPath,SQL,LDAP یا NoSQL ; دستورات OS پارامتر های XML و .. وجود دارد.
تشخیص نقص تزریق هنگام بازبینی کد راحت است، اما هنگام تست کد بسیار دشوار است .اسکنرها و فازرها، مهاجمان را برای پیدا کردن نقصهای تزریق، یاری میکنند.
تزریق میتواند باعث تخریب یا از دستدادن اطلاعات، عدم پاسخگویی یا رد دسترسی شود. تزریق میتواند گاهی موجب تصاحب کامل میزبان نیز شود .تاثیر تجاری بستگی به نیازهای برنامه و داده دارد.
مهاجمان به صدها میلیون نام کاربری و رمز عبور برای استفاده به عنوان لیست کاربران ادمین پیش فرض، حمات پسورد خودکار و ابزارهای حمله دسترسی دارند.
شیوع این حمله به دلیل نحوه طراحی و پیاده سازی کنترل دسترسی و احراز هویت ها بسیار گسترده است.مدیریت نشست، پایه و اساس احراز هویت و کنترل دسترسی است و در تمامی برنامه های stateful وجود دارد.
مهاجم با استفاده از ابزارهای دستی و بهره برداری از آنها با ابزارهای خودکار و استفاده از لیست رمزهای عبور و حملات کتابخانه ای قادر به تشخیص احراز هویت شکسته! خواهد بود.
مهاجمان برای نفوذ به یک سیستم باید به تعدادی حساب کاربری و یا یک حساب کاربری ادمین دسترسی پیدا کنند.بر اساس ناحیه برنامه، این می تواند منجر به پولشویی،کلاهبرداری امنیتی اجتماعی و سرقت هویت و یا انتشار اطلاعات بسیار حساس محافظت شده شود.
مهاجمان بجای حمات مخفیانه به صورت مستقیم، اقدام به سرقت کلیدها، اجرای حملات مرد میانی، یا سرقت اطلاعات رمز نشده سمت سرور یا کاربر، هنگام انتقال اطلاعات میکنند. برای مثال مرورگر. معمولاً یک حمله دستی لازم است.
قباً بانک های داده رمز عبور بازیابی شده باید توسط GPU ها مورد حمله brute force قرار می گرفت.
در طول چند سال گذشته این به یکی از حمات رایج پرآسیب تبدیل شده است. بزرگترین اشتباه رایج هم رمز
نکردن اطلاعات حساس است.
برای اطلاعات در حال انتقال، ضعف های سمت سرور به راحتی قابل تشخیص هستند.
یک شکست امنیتی عموماً تمامی داده هایی که باید محافظت شوند را به خطر می اندازد.
به طور معمول، این اطلاعات شامل اطلاعات شخصی حساس (PII) مانند پرونده های بهداشتی، اعتبارنامه، اطلاعات شخصی و کارت های اعتباری است که اغلب نیاز به حفاظت بر اساس قوانین یا مقرراتی مانند GDRP اتحادیه اروپا یا قوانین حفظ حریم خصوصی محلی دارند.
اگر مهاجمان بتوانند XML بارگذاری کنند یا محتوای آلوده در یک سند XML وارد کنند، از کد ها ، وابستگی ها یا ادغام های آسیب پذیر استفاده کنند، می توانند از پردازنده های XML آسیب پذیر برای مقاصد خود بهره برداری کنند.
به طور پیش فرض، بسیاری از پردازنده های قدیمی تر XML اجازه تعیین یک موجود خارجی را می دهند ( یک URL که در هنگام پردازش XML ارزیابی میشود) ابزار های SAST می تواند این مسئله را با بررسی وابستگی ها و پیکربندی کشف کند. ابزارهای DAST نیاز به مراحل دستی بیشتر برای شناسایی و بهره برداری از این مسئله دارند. آزمایش کنندگان دستی باید برای چگونگی آزمایش XXE آموزش ببینند، زیرا معمولا از سال 2017 آزمایش نشده اند.
این نقص ها می تواند برای استخراج داده ها، اجرای یک درخواست ریموت از سمت سرور، اسکن سیستم های داخلی،انجام حمله اختال در سرویس و همچنین اجرای سایرحملات استفاده شود.تاثیر کسب و کار بستگی به الزامات حفاظتی همه برنامه های کاربردی متاثر و داده ها دارد.
بهره برداری از کنترل دسترسی یک مهارت اصلی مهاجمان است. ابزارهای SAST ,DAST می توانند فقدان کنترل دسترسی را تشخیص دهند اما اگر کنترل دسترسی وجود داشته باشد، عملکرد آن را نمی توانند تأیید کنند. کنترل دسترسی با استفاده از ابزار دستی و یا احتمالا از طریق خودکار سازی برای فقدان کنترل دسترسی ها در چارچوب های خاص قابل شناسایی است.
ضعف های کنترل دسترسی عموماً به دلیل نقص در تشخیص خودکار و نقص در تست عملکردی مؤثر توسط توسعه دهندگان نرم افزار وجود دارند.
تأثیر فنی این است که مهاجمان به عنوان کاربران یا ادمین ها عمل می کنند، یا استفاده کاربران از توابع با دسترسی خاص ، و یا ایجاد، دسترسی، به روز رسانی و یا حذف هر رکورد. تاثیر کسب و کار بستگی به الزامات حفاظتی برنامه و داده ها دارد.
مهاجمین خارجی ناشناس و همچنین کاربران مجاز را که ممکن است تلاش کنند تا سیستم را به خطر اندازند در نظر بگیرید. همچنین افراد داخلی را که مایل به انجام اقداماتشان هستند را در نظر بگیرید. مهاجمین به حساب های پیشفرض، صفحات استفاده نشده، نقص های ناخواسته ،فایلها و دایرکتوریهای محافظت نشده دسترسی پیدا میکنند تا دسترسی غیرمجاز به سیستم یا دانش آن را کسب کنند.
تنظیمات اشتباه امنیتی در هر سطحی از یک پشته نرم افزار، ازجمله پلتفرم، سرور وب، سرور برنامه، پایگاه داده، چارچوب و کد سفارشی،ممکن است رخ دهد .توسعه دهندگان و مدیران سیستم باید باهم کار کنند تا اطمینان حاصل شود که کل پشته به درستی پیکربندی شده است. اسکنرهای خودکار برای تشخیص پچ های ازدست رفته، غلط بودن تنظیمات، استفاده از حسابهای پیشفرض، سرویسهای غیرضروری و غیره مفید هستند.
این سیستم، بدون اطاع شما میتواند به طور کامل به خطر بیفتد. تمام اطلاعات شما میتواند در طول زمان به سرقت رفته و یا تغییر کند. هزینه های بازیابی میتواند گران باشد.
نقصهای XSS زمانی رخ میدهد که یک برنامه حاوی اطلاعات غیرقابل اعتماد در یک صفحه وب جدید بدون مجوز باشد یا یک صفحه وب موجود را با داده های ارائه شده توسط کاربر با استفاده از یک مرورگرAPI که میتواند جاوا اسکریپت تولید کند ،به روزرسانی کند XSS به مهاجمین امکان اجرای اسکریپتها در مرورگر قربانی را میدهد که میتواند جلوی کاربر را بگیرد، وب سایتها را خراب کند یا کاربر را به سایت های مخرب هدایت کند.
زمانی رخ میدهد که برنامه یک صفحه وب را با شیوع اطلاعات کنترل شده مهاجم، بدون بازگشت از آن محتوا یا بدون بسیار شایع استفاده از یک API جاوا اسکریپت امن ،به روز میکند. معایبXSS ضعف امنیتي شامل دودسته اصلی: ذخیرهشده و بازتاب شده است و هرکدام از آنها میتوانند بر روی سرور یا کلاینت ایجاد شوند. تشخیص اکثر نقصهای XSS از طریق تست یا تجزیه و تحلیل کد بسیار راحت است. شناسایی XSS سمت کلاینت بسیار دشوار است.
مهاجمان میتوانند اسکریپتها را در مرورگر قربانی اجرا کنند تا کاربر را مسدود کنند، وب سایتها را از بین ببرند، محتوای خصمانه خود را متعادل وارد کنند، کاربران را هدایت کنند و مرورگر کاربر را با استفاده از برنامه های مخرب بشکنند.
بهره برداری از diserialization تا حدودی دشوار است.
برخی از ابزارها می توانند نقاط ضعف را بیابند، اما تست های انسانی اغلب برای اعتبارسنجی مشکل ضروری است. انتظار می رود که داده های شایع برای نقص های خنثی سازی افزایش یابد، زیرا ابزار توسعه برای کمک به شناسایی و رفع آن کمک می کند.
تاثير ضعفهایDeserialization را نمی توان نادیده گرفت. این نقص ها می تواند به حمات کد های راه دور منجر شود، که یکی از جدی ترین حمات ممکن است. تاثیر تجاری به نیازهای حفاظت از برنامه و داده ها بستگی دارد.
در حالی که پیدا کردن اکسپلویت های نوشته شده برای بسیاری از آسیب پذیر یهای شناخت هشده بسیار آسان است اما آسیب پذیریهای دیگر بدنبال ایجاد اکسپلویت سفارشی هستند.
بسیاری از نرم افزارها این مسائل را دارند، چون گروه های توسعه دهندهی آنها به بروزبودن مولفه و کتابخانه ها توجه نکرده اند. در برخی موارد، حتی تمام مولفه های مورداستفاده خود را نمیدانند، و هرگز به نسخه های آنها توجه نمی کنند برخی ابزارهانظیر retire.js به شناسایی کمک می کنند ولی تعیین توان اکسپلویت زدن نیازمند تاش بیشتر است.
در حالی که برخی از آسیب پذیریهای شناخته شده تنها به اثرات جزئی منتهی می شوند ، برخی از بزرگ ترین رخنه ها تا به امروز بر بهره برداری از آسیب پذیر یهای شناخته شده در قطعات تکیه کرده اند. بسته به داراییهایی که از آن محافظت م یشود ، شاید این ریسک باید در بالای لیست باشد.
اکسپلویت از نظارت و ثبت رویداد ناکافی تقریبا بستر اصلی هر اتفاق مهم است مهاجمان به عدم نظارت و پاسخ به موقع ،برای رسیدن به اهداف خود بدون شناسایی شدن متکی هستند.
یک استراتژی برای تعیین اینکه آیا شما نظارت کافی دارید، بررسی مجدد رویدادهای مربوط به تست نفوذ است اقدامات تست کنندگان باید به اندازه کافی ثبت شود تا بدانند که چه آسیبی به آنها وارد شده است.
اکثر حملات موفق با کاوش آسیب پذیری آغاز می شوند. اجازه دادن به این کاوشگرها م بتوانند احتمال اکسپلویت موفق را تقریبا تا 100 درصد افزایش دهد.