حملات XSS چیست؟ یکی از تهدیدهای سایبری به وبسایتها یا اپلیکیشنها، حملات XSS میباشد. XSS خلاصه عبارت Cross-Site Scripting است به معنای اسکریپتنویسی متقابل.
در دنیای امروز برنامههای کاربردی تحت وب بسیار محبوب هستند. از آنجا که تقریبا تمامی کاربران به شبکه اینترنت متصل هستند و به وب دسترسی دارند، پیدا کردن مشتری و کاربر برای اپلیکیشنها در وب، بسیار آسانتر است.
طبق آمار منتشر شده در BroadbandSearch در سال 2021 تقریبا 4.93 میلیارد نفر در سراسر جهان به اینترنت متصل هستند که این عدد 63.2% از جمعیت کل را تشکیل میدهد. آمار فوق مهر تایید محکمی بر اهمیت توسعه برنامههای تحت وب در صنعت فناوری اطلاعات و ارتباطات میباشد.
از سوی دیگر این تکنولوژی محبوب، توجه عناصر مخرب فراوانی را نیز به خود جلب میکند. حملات امنیتی برنامههای تحت وب مکرراٌ تکرار میشوند. حملات تحت وب بالغ بر 128 گروه اصلی میباشند، که هر گروه به چندین زیرگروه دستهبندی میگردند.
جالب است بدانید که این عناصر مخرب از دو طریق موجب اخلال در روند سرویسدهی و خدمترسانی میگردند؛ در شیوه اول با آسیب رساندن به وب سایت پذیرنده، موجبات اختلال را فراهم میآورند و در شیوه دوم کاربرانِ برنامههای تحت وب را مورد هدف قرار میدهند.
در این مقاله به جزییات حملات XSS که از طریق تزریق کد (code injection) عمل میکند، میپردازیم و به سوالات زیر پاسخ میدهیم:
هدف از XSS Attacks چیست؟
انواع مختلف XSS Attacks کدام است؟
چگونه میتوان از سایتها و اپلیکیشنها در مقابل XSS Attacks جلوگیری کرد؟
حمله XSS چیست؟
حمله اسکریپتنویسی متقابل (XSS) یک نوع رایج از حمله تزریق کد (code injection) است که برنامههای تحت وب را با تشخیص آسیبپذیری آنها و تزریق کد مخرب، هدف قرار میدهد.
در این حمله، برنامههای تحت وب تحت تأثیر مستقیم قرار نمیگیرند و در عوض، کاربرانی که با چنین سایتها یا برنامههایی ارتباط برقرار میکنند، هدف بالقوه هستند.
حملات XSS زمانی رخ میدهد که یک هکر با استفاده از سبکِ اسکریپت سمت مرورگر، یک کد مخرب را از طریق یک برنامه تحت وب برای قربانی ارسال میکند. مهاجمان از آسیب پذیری برنامههای تحت وب، که باعث ایجاد حمله موفق میشوند، استفاده میکنند.
در اینجا توجه شما را به یک مثال جلب مینمایم؛
تصور کنید فردی پشت کامپیوتر نشسته است. صفحه نمایش یک File manager ، Text editor ، Spreadsheet و Music player را در گوشه سمت راست پایین نشان میدهد.
تا اینجا همه چیز عادی و آشنا است. اما چیزی هست که در این تصویر دیده نمیشود، یک مرورگر اینترنت با دهها Tab که به طور همزمان باز شدهاند!!!
این Tabها پر از عناوین جالب، فیلمهای خنده دار، تبلیغات کالاهای ورزشی، فروشگاههای آنلاین و یک سایت پرداخت با رسید پرداخت شده برای یک بلیط سریع هستند. همه این سایتها یک ویژگی مشترک دارند: بدون جاوا اسکریپت به سختی امکان پذیر خواهند بود.
سپس یک کلیک ساده روی بنر تبلیغاتی صفحه دیگری را فعال میکند. این صفحه حاوی اسکریپتی است که به یک سایت بانکی آنلاین متصل میشود و بی سر و صدا پول را از حساب کاربر به کارت مهاجم منتقل میکند.
خوشبختانه امروزه مرورگرها به لطف SOP (Same-Origin Policy) این امکان را حذف میکنند. SOP تضمین میکند که اسکریپتهای اجرا شده در یک صفحه وب به دادههای اشتباه دسترسی ندارند.
اگر اسکریپتها از دامنه دیگری بارگیری شده باشند، مرورگر نمیتواند آنها را اجرا کند. اما آیا داستان همینجا به پایان میرسد؟!
اگر چنین بود که دیگر این مقاله وجود نداشت. مجرمان سایبری از روشهای مختلفی برای دور زدن SOP و سوء استفاده از آسیب پذیریهای برنامه استفاده میکنند و در صورت موفقیت، باعث میشوند مرورگر کاربر، یک اسکریپت دلخواه را در یک صفحه مشخص اجرا کند.
پایه ریزی یک حمله برای آلوده کردن یک وبسایت به چه طریق انجام میشود؟
قرار است SOP به اسکریپتها تنها زمانی اجازه دهد، که بارگیری اسکریپت از همان دامنه صفحه ای که کاربر در حال مشاهده آن است باشد و در حقیقت، مهاجمان دسترسی مستقیم به سرورِ مسئول صفحه ی نمایش داده شده توسط مرورگر، ندارند.
مهاجمان چگونه این کار را انجام میدهند؟ آسیب پذیریهای برنامه میتواند با استفاده از درج قطعات و کدهای مخرب در محتوای صفحه به مهاجمان کمک کند.
به عنوان مثال ، یک موتور جستجوی معمولی هنگام نمایش نتایج جستجو، درخواست کاربر را تکرار میکند. اگر کاربر سعی کند رشته “
” را پیدا کند، آیا محتویات صفحه نتایج جستجو منجر به اجرای این اسکریپت میشود و آیا کادر محاورهای با پیام “1” ظاهر میشود؟
این بستگی به این دارد که توسعه دهندگان برنامه وب چگونه ورودی کاربر را تأیید کرده و آن را به یک قالب امن تبدیل کنند.
مشکل اصلی در این است که کاربران طیف گستردهای از نسخههای مرورگر را اجرا میکنند، از آخرین پیش آلفا تا نسخههایی که دیگر پشتیبانی نمیشوند. هر مرورگر صفحات وب را به شیوه ای متفاوت مدیریت میکند.
در برخی موارد، حملات XSS میتواند زمانی موفقیت آمیز باشد که ورودیها به اندازه کافی فیلتر نشده باشند. بنابراین اولین قدم در حمله اسکریپتنویسی متقابل (XSS) تعیین نحوه جاسازی دادههای کاربر در یک صفحه وب است.
حملات اسکریپت نویسی متقابل (XSS) - ستاک فناوری ویرا
پایه ریزی یک حمله XSS برای آلوده کردن یک وبسایت
انواع حمله XSS
حملات اسکریپتنویسی متقابل (XSS) بر سه نوع هستند:
1-XSS ذخیره شده
XSS ذخیره شده مخربترین آسیب پذیری است. این حمله زمانی رخ میدهد که بار اطلاعات مخرب ارائه شده توسط مهاجم در سرور ذخیره شود. این محموله دائماً در معرض صفحه وب قرار میگیرد و هنگامی که کاربر عملیات مرور معمولی را انجام میدهد فعال میشود.
2- XSS منعکس شده
این آسیب پذیری متداول اسکریپت نویسی زمانی ایجاد میشود که دادههای ارائه شده توسط کاربران، معمولاً از طریق پارامترهای درخواست HTTP (به عنوان مثال؛ ارسال فرم) در صفحه بدون فیلتر یا ذخیره مناسب، نمایش داده شود.
3- XSS بر اساس DOM (Document Object Model)
حملات XSS بر اساس DOM یک نوع آسیبپذیری اسکریپتنویسی بین سایتها است که هنگامی رخ میدهد که جاوا اسکریپت دادهها را از منبع کنترل شده مهاجم دریافت کرده و برای اصلاح محیط DOM ارسال میکند. این باعث میشود مرورگر قربانی به طور غیر منتظره اجرا شود.
پیشگیری از حملات XSS
برنامههای کاربردی از نظر پیچیدگی اسکریپتنویسی متقابل میتوانند چالش برانگیز باشند. بنابراین، ایمنسازی آنها در برابر حملات اسکریپتنویسی متقابل (XSS) دشوار است. اما با اقدامات پیشگیرانه مناسب، میتوانید برنامه وب خود را از این حملات محافظت کنید.
– باید ورودی دریافت شده از سمت کاربر را فیلتر کنید.
– در خروجی، دادههای خروجی را کدگذاری کنید تا با پیادهسازی ترکیبی از کدگذاری HTML ، URL ، جاوا اسکریپت و CSS ، آنها را از فعالیت بازدارید.
– با استفاده از ابزارهای اسکنر آسیب پذیری وب، میتوانید برنامه وب خود را برای آسیبپذیریهای احتمالی XSS اسکن کنید.
– پیادهسازی header مناسب و مسدود کردن XSS در پاسخهای HTTP که انتظار نمیرود شامل HTML یا JavaScript باشد و مطمئن شوید که مرورگرها پاسخ مورد نظر را اجرا میکنند.
– همچنین میتوانید سیاست امنیت محتوا (CSP: Content Security Policy) را برای مهار تأثیر مخرب هر گونه آسیبپذیری دیگر XSS پیادهسازی کنید.
منبع
https://www.setakit.com/
این روز ها با افزایش وب سایت ها و کاربران اینترنت ، امنیت وب سایت روز به روز احمیت بیشتر می گیرد و برای اینکه این مقوله امنیت وب سایت از خاطر طراحان وب سایت فراموش نشود شاید هر روز ده ها مقاله مختلف نوشته و منتشر میابد اما واقع مشکل کجاست
شاید بشه از مهم ترین مقوله های امنیت به مورد زیر اشاره کرد
- استفاده از سیستم تشخیص هویت
- تنظیم CustomErrors
- Debug در سیستم های تحت توسعه دات نت
- لاگ رویداد ها و مدیریت خطاها
- تنظیمات دیتا بیس
- SQL Injection
- xss
- FileUpload
- اعتبار سنجی ViewState
- رمز نگاری اطلاعات (Encryption)
- هش کردن اطلاعات مهم (Hashing)
- رمزکردن متن های اتصال
- انتی ربات ها
و شاید صدها موارد ریز و درشت دیگر که می توانه شرایط هک شدن سایت را برای
نفوذ گر فراهم بیاره اما در این میان با برسی بیشتر سایت های هک شده شاید
یک مورد دیگر هم جلب توجه می کنه و ان هم بیشتر سایت ها از cms های اماده
استفاده می کنند و متاسفانه از نسخه های قدیمی بله درسته جوملا ، وردپرس و
... از جمله این سامانه های مدیریت محتوا هستند که به دلیل سورس باز بودن
این سامانه ها همه نفوذگر ها با برسی این سورس ها شاید صدها به خصوص در
نسخه های قدیمی راه برای نفوذ بی دردسر و با هزینه کم پیدا می کنند حالا
این سوال پیش میاد که ایا رایگان بودن این مدیریت محتوا می ارزند به اندازه
امنیت پایدار وب سایت های طراحی اختصاصی ان ؟!؟!
وحال هک شدن بیش از 500 سایت ایرانی در یک روز توسط تیم TeaM System Dz
با یک مرورکوچک می توان پی برد که این سایتها همگی ازمدیریت محتوای CMS اماده استفاده میکنند و بدون توجه به باگهای مدیریت محتوا همچون جوملا و وردپرس و عدم بروزرسانی به هنگام این سامانه های مدیریت محتوا خودرا اماه هک شدن توسط نفوذگر ها قرار میدهند
اگر نیازمند به یک طراحی وب سایت امن هستید می توانید با ما در تماس باشید
چرا امنیت وب سایت مهم است؟
امنیت وردپرس موضوعی است که از اهمیت زیادی برای هر صاحب وب سایتی برخوردار است. در حالی که نرم افزار اصلی وردپرس بسیار ایمن می باشند و توسط صدها نفر از توسعه دهندگان به طور منظم کنترل می شود، اما کارهای زیادی را می توان برای ایمن نگه داشتن سایت شما انجام داد. امنیت تنها به معنای رفع خطر کردن نمی باشد و همچنین در مورد کاهش خطر است. به عنوان یک مالک وب سایت، موارد زیادی وجود دارد که می توانید برای بهبود امنیت وردپرس خود انجام دهید. نکات امنیتی وردپرس که از ژاکت برای شما نقل می کنیم یک سری اقدامات است که می توانید برای محافظت از وب سایت خود در برابر آسیب پذیری های امنیتی انجام دهید.
یک سایت هک شده وردپرس می تواند آسیب جدی به درآمد و اعتبار کسب و کار شما وارد کند. هکرها می توانند اطلاعات کاربران، رمزهای عبور، نرم افزارهای مخرب را سرقت کنند و حتی می توانند بدافزار را به دستگاه کاربران شما وارد کنند. بدتر از همه، ممکن است شما تنها در ازای پرداخت باج به هکرها قادر باشید که به وب سایت خود دسترسی پیدا کنید.
خود هسته وردپرس بسیار امن است. وردپرس همچنین دارای هزاران افزونه و قالب است که می توانید بر روی وب سایت خود آن را نصب کنید. این افزونه ها و قالب ها توسط توسعه دهندگان شخص ثالث که مرتباً نیز آن را به روزرسانی می کنند، نگهداری می شود. این به روزرسانی های وردپرس برای امنیت و ثبات سایت وردپرسی شما بسیار مهم است. شما باید اطمینان حاصل کنید که هسته وردپرس، افزونه ها و موضوع وردپرس شما به روز باشد. پس لازم است افزونه ها و قالب های خود را از مرجع معتبری مثل zhaket تهیه کرده باشید از از اولین گام امنیت یعنی مخرب نبودن کدها اطمینان داشته باشید. سایر گام هایی که در امنیت وردپرس مهم است را به نقل از ژاکت در ادامه ذکر می کنیم:
WordPress Security: 17 tips for keeping your website secure [2020]
گام های ضروری در امنیت وردپرس
سایت وردپرس خود را به SSL / HTTPS منتقل کنید.
SSL یک پروتکلی است که انتقال داده را بین وب سایت شما و مرورگر کاربران رمزگذاری می کند. این رمزگذاری باعث می شود که سرقت اطلاعات را دشوار شود. هنگامی که SSL را فعال کردید، وب سایت شما به جای HTTP از HTTPS استفاده می کند، همچنین علامت قفل کنار آدرس وب سایت خود را در مرورگر مشاهده خواهید کرد. بنابراین امروزه استفاده از SSL برای همه وب سایت های وردپرس خود از همیشه آسان تر است. اکنون بسیاری از شرکت های میزبان گواهی SSL رایگان برای وب سایت وردپرس شما را ارائه می دهند .
نام کاربری پیش فرض “مدیر” را تغییر دهید.
در زمان های قدیم، نام کاربری مدیر پیش فرض وردپرس “admin” بود. از آنجا که نام های کاربری نیمی از اطلاعات ورود به سیستم را تشکیل می دهند، این حملات را برای هکرها آسان تر می کند. خوشبختانه، وردپرس از آن زمان تاکنون این مورد را تغییر داده است و اکنون شما را ملزم به انتخاب نام کاربری سفارشی در زمان نصب وردپرس می کند .با این حال، برخی از نصب کنندگان وردپرس با یک کلیک، هنوز نام کاربری مدیر پیش فرض را روی “admin” تنظیم می کنند.
امکان ویرایشگر پرونده ها را غیرفعال کنید.
وردپرس دارای یک ویرایشگر کد داخلی است که به شما امکان می دهد قالب ها و پرونده های پلاگین خود را از قسمت مدیر وردپرس ویرایش کنید. این ویژگی می تواند یک خطر امنیتی باشد به همین دلیل توصیه می کنیم آن را خاموش کنید و از آن استفاده نکنید.
در برخی از دایرکتوری های وردپرس امکان اجرای فایل PHP را غیرفعال کنید.
روش دیگر برای سخت کردن امنیت وردپرس شما غیرفعال کردن اجرای فایل PHP در فهرست هایی است که نیازی به آن نیست مانند / wp-content / uploads /.. در این پوشه لزومی ندارد فایل های دستوری php قابلیت اجرا داشته باشند.
تلاش های ورود به سیستم را محدود کنید.
به طور پیش فرض، وردپرس به کاربران اجازه می دهد تا هر زمان که بخواهند وارد سیستم شوند. این باعث می شود سایت وردپرسی شما در برابر حملات brute force آسیب پذیر شود. هکرها با تلاش برای ورود به سیستم با ترکیبات مختلف سعی در استفاده از رمز عبور دارند. با محدود کردن تلاش های ناموفق برای ورود به سیستم، کاربر واقعی می تواند به راحتی وارد شود. اگر از فایروال برنامه وب که قبلاً ذکر شد استفاده می کنید، به طور خودکار از آن مراقبت می شود.
رعایت امنیت وردپرس ضامن کسب و کار آنلاین شماست.
WordPress Security Statistics 2020 - WP Manage Ninja
تأیید اعتبار دو عامل را اضافه کنید.
روش احراز هویت دو عاملی، کاربران را با حفظ امنیت مجبور به ورود می کند. اولین مورد نام کاربری و رمز عبور است و مرحله دوم نیاز به احراز هویت با استفاده از دستگاه یا برنامه جداگانه دارد. اکثر وب سایت های آنلاین برتر مانند Google ، Facebook ، Twitter به شما امکان می دهند آن را برای حساب های خود فعال کنید. همچنین می توانید همان عملکرد را به سایت وردپرس خود اضافه کنید.
پیشوند پایگاه داده وردپرس را تغییر دهید.
به طور پیش فرض، وردپرس از wp_ به عنوان پیشوند تمام جداول موجود در پایگاه داده وردپرس شما استفاده می کند. اگر سایت وردپرس شما از پیشوند پایگاه داده پیش فرض استفاده می کند، حدس زدن نام جدول شما برای هکرها آسان تر است. به همین دلیل است که توصیه می کنیم آن را تغییر دهید. توجه: اگر این کار در سایت شما به درستی انجام نشود، می تواند سایت شما را خراب کند. فقط در صورت احساس راحتی با مهارت رمزگذاری، اقدام کنید.
نقش میزبانی وردپرس و هاست در امنیت یک سایت
سرویس میزبانی وردپرس شما مهم ترین نقش را در امنیت سایت وردپرسی شما دارد. یک ارائه دهنده میزبانی معتبراقدامات اضافی را برای محافظت از سرورهای خود در برابر تهدیدات معمول انجام می دهد. در اینجا نحوه کار یک شرکت میزبان وب خوب در پس زمینه برای محافظت از وب سایت ها و داده های شما ارائه شده است.
آن ها به طور مداوم شبکه خود را از نظر فعالیت مشکوک کنترل می کنند.
همه شرکت های میزبان خوب ابزارهایی برای جلوگیری از حملات گسترده DDOS در اختیار دارند.
آن ها نرم افزار سرور، نسخه های php و سخت افزار خود را به روز نگه می دارند تا از سوءاستفاده آسیب پذیری های امنیتی در نسخه قدیمی توسط هکرها جلوگیری کنند.
آن ها آماده استفاده از نقشه های بازیابی حوادث هستند که به آن ها این امکان را می دهد که از داده های شما در صورت تصادف بزرگ محافظت کنند.
در یک برنامه میزبانی مشترک، شما منابع سرور را با بسیاری از مشتریان دیگر به اشتراک می گذارید. این در صورتی که هکر بتواند از یک سایت همسایه برای حمله به وب سایت شما استفاده کند خطر آلودگی بین سایت را باز می کند.
یک نسخه ی پشتیبان گیری از وردپرس نصب کنید.
پشتیبان گیری اولین دفاع شما در برابر هرگونه حمله وردپرس است. به یاد داشته باشید، هیچ چیز 100٪ امن نیست. اگر وب سایت های دولتی قابل هک باشند، وب سایت های شما نیز می توانند مورد حمله قرار بگیرند. در صورت بروز اتفاقات بد، پشتیبان گیری به شما امکان می دهد که سرعت سایت وردپرس خود را بازیابی کنید.
نمایه سازی فهرست را غیرفعال کنید.
هکرها می توانند از فهرست دایرکتوری استفاده کنند تا بفهمند آیا پرونده ای با آسیب پذیری های شناخته شده دارید یا خیر، بنابراین آن ها می توانند با استفاده از این پرونده ها به سایت شما دسترسی پیدا کنند. افراد دیگر می توانند از فهرست دایرکتوری برای جستجوی پرونده ها و فایل های شما، کپی کردن تصاویر، یافتن ساختار دایرکتوری و سایر اطلاعات استفاده کنند. به همین دلیل توصیه می شود فهرست بندی ها را خاموش کنید.
XML-RPC را در وردپرس غیرفعال کنید.
XML-RPC به طور پیش فرض در وردپرس 3.5 فعال شده است زیرا به شما کمک می کند سایت وردپرس خود را با وب و برنامه های تلفن همراه متصل کنید. به دلیل ماهیت قدرتمند خود، XML-RPC می تواند حملات brute-force را به میزان قابل توجهی تقویت کند. به عنوان مثال، به طور معمول اگر یک هکر بخواهد 500 گذرواژه مختلف را در وب سایت شما امتحان کند، مجبور است 500 تلاش ورود به سیستم جداگانه انجام دهد که توسط پلاگین logdown lockdown گیر و مسدود می شود.
اما با XML-RPC ، یک هکر می تواند با استفاده از تابع system.multicall هزاران رمز عبور را با 20 یا 50 درخواست درخواست کند. به همین دلیل است که اگر از XML-RPC استفاده نمی کنید، توصیه می کنیم آن را غیرفعال کنید.
سه روش مختلف برای غیرفعال کردن XML-RPC در وردپرس وجود دارد که بهترین روش htaccess است زیرا کمترین میزان مصرف منابع را دارد.
سوالات امنیتی را به صفحه ورود به وردپرس اضافه کنید.
افزودن سوالات امنیتی به صفحه ورود به وردپرس دسترسی غیر مجاز را برای افراد دشوارتر می کند. با نصب افزونه WP Security Questions می توانید سوالات امنیتی را اضافه کنید. پس از فعال سازی، برای پیکربندی تنظیمات افزونه باید به صفحه تنظیمات »سوالات امنیتی بروید.
اسکن وردپرس برای بدافزارها و آسیب پذیری ها
اگر یک افزونه امنیتی وردپرس نصب کرده باشید، آن پلاگین ها به طور منظم سایت را از نظر بدافزار و نشانه های نقض امنیت بررسی می کنند. با این حال، اگر یک افت ناگهانی در بازدید از وب سایت یا رتبه بندی جستجو مشاهده کردید، ممکن است بخواهید به صورت دستی سایت خود را اسکن کنید. می توانید از افزونه امنیتی وردپرس خود استفاده کنید.
منبع
https://www.hamyarit
0 نظر
برای ثبت نظر لطفا کلیک کنید
لطفا برای ثبت نظر ابتدا وارد حساب کاربری خود شوید