امروزه طیف گستردهای از کسب و کارها وارد بازار مجازی شدهاند و با راه اندازی یک وب سایت محصولات خودشان را عرضه میکنند. تقریبا از زمان جهانی شدن اینترنت مبحث امنیت اولین دغدغه کاربران بوده است و با توجه به گسترش تجارت الکترونیک و تبادلات مالی و اطلاعاتی، امنیت وب سایت و برنامههای تحت وب اهمیت چند برابری پیدا کرده است.
در حالی که اهمیت امنیت وب مسلم و واضح است، حفاظت در برابر تهدیدات امنیتی وب هر روز چالش برانگیزتر میشود. از خنثی سازی حملات گرفته تا مقابله با کمبودها در فریمورکها و منابع، بخشهای امنیت فناوری اطلاعات هنگام تلاش برای ایمن سازی وب با چالشهای جدی روبرو میشوند. در گذشته، مسئولین امنیت سایبری شرکتها مجموعهای از راه حلهای داخلی را برای امنیت وب به کار میگرفتند.
اما به طور فزایندهای سازمانها به راه حلهای جامع امنیت وب، از طریق فناوریهای یکپارچه و مبتنی بر فضای ابری که کار را ساده تر کرده و هزینه و ریسک را کاهش میدهد، روی آوردهاند. و از آنجا که مهاجمان اغلب از ایمیل و کانالهای وب استفاده میکنند، یک استراتژی یکپارچه برای محافظت از آن ضروری است.
به طور کلی، امنیت وب به اقدامات و پروتکلهای حفاظتی که سازمانها برای محافظت از سایت، سازمان یا برنامه تحت وب در برابر مجرمان سایبری و تهدیدهای آنان اتخاذ میکند، میگویند. امنیت وب برای تداوم تجارت و محافظت از دادهها، کاربران و شرکتها در برابر خطرات حیاتی است.
عوامل زیادی در امنیت وب و حفاظت از وب سایت وجود دارد. هر وب سایتی که ایمن است، توسط انواع مختلف بازرسیها و تکنیکهای ایمنی کنترل میشود. یک ابزار امنیتی وب سایت، سایت را در فواصل دورهای اسکن میکند تا بداند فعالیت مشکوکی وجود دارد یا خیر.
هنگامی که فعالیت مشکوک ردیابی میشود، ابزارهای امنیتی وب سایت بلافاصله آن را به اطلاع کارشناسان امنیتی میرسانند. علاوه بر این، افراد کلیدی سازمان نیز هشدار دریافت میکنند. به سادگی، ابزارهای امنیتی وب سایت در شناسایی و حذف بدافزارهایی که سعی میکنند بر وب سایت تأثیر بگذارند یا در حال حاضر آنچنان مورد توجه نیستند، کمک میکند.
پروژه امنیت وب برنامه کاربردی باز یا OWASP یک سازمان غیرانتفاعی بین المللی است که به امنیت برنامههای وب اختصاص داده شده است. یکی از اصول اصلی OWASP این است که همه مطالب آن آزادانه در دسترس باشد و به راحتی در وب سایت آنها قابل دسترسی باشد، و این باعث میشود که هر کسی بتواند امنیت برنامه وب خود را ارتقا دهد.
شاید شناخته شدهترین پروژه آنها لیست 10 مورد برتر OWASP است. لیست 10 مورد برترOWASP گزارشی است که به طور مرتب به روز میشود و نگرانیهای امنیتی مربوط به امنیت برنامههای تحت وب را تشریح میکند و بر 10 خطر مهم تمرکز میکند.
حملات injection زمانی اتفاق میافتد که دادههای نامعتبر در برنامه تحت وب از طریق یک ورودی (input) یا برخی دیگر از دادهها به مفسر کد ارسال میشود.
با تأیید و یا پاک سازی دادههای ارسال شده توسط کاربر می توان از حملات Injection جلوگیری کرد. (اعتبار سنجی به معنای رد دادههای مشکوک است، در حالی که پاک سازی مربوط به پاکسازی قسمتهای مشکوک دادهها اشاره میکند.) علاوه بر این، ادمین پایگاه داده میتواند کنترلهایی را برای به حداقل رساندن اطلاعاتی که یک حمله Injection میتواند در معرض دید قرار دهد، تنظیم کند.
آسیب پذیری در سیستمهای احراز هویت (ورود) میتواند به مهاجمان اجازه دسترسی به حسابهای کاربری و حتی توانایی به خطر انداختن کل سیستم با استفاده از یک حساب ادمین را بدهد. استراتژیهایی مانند احراز هویت دو مرحلهای یا محدود کردن تعداد تلاش برای ورود به حساب کاربری میتوانند مانع مهاجمان شوند.
اگر وب سایتها از دادههای حساس مانند اطلاعات مالی و گذرواژهها محافظت نکنند، مهاجمان میتوانند به آن دادهها دسترسی پیدا کرده و با فروش آن برای اهداف پلید استفاده کند.
با رمزگذاری تمام دادههای حساس و همچنین غیرفعال کردن ذخیره سازی (Cache) اطلاعات حساس، میتوان خطر لو رفتن دادهها را به حداقل رساند. علاوه بر این، توسعه دهندگان برنامههای وب باید مراقب باشند که اطمینان حاصل کنند که هیچ گونه اطلاعات حساس را بیدلیل Cache نمیکنند.
این حمله به وب سایتی است که ورودی XML را دریافت میکند. این ورودی میتواند به یک موجودیت خارجی اشاره کند و سعی کند از آسیب پذیری تجزیه کننده سوء استفاده کند. "موجودیت خارجی" در این مبحث به یک واحد ذخیره سازی مانند هارد دیسک اشاره دارد. بهترین راه برای جلوگیری از حملات XEE این است که وب سایتها نوع سادهتری از دادهها را بپذیرند.
کنترل دسترسی و نشست به سیستمی گفته میشود که دسترسی به اطلاعات یا عملکردها را کنترل میکند. کنترل ناموفق دسترسیها به مهاجمان اجازه میدهد تا احراز هویت را دور زده و کارهایی را انجام دهند که گویی کاربران بالا رتبه سایت مانند کاربر ادمین هستند. کنترل نشست را میتوان با اطمینان از اینکه وب سایت از توکنهای احراز هویت استفاده میکند و کنترلهای دقیق بر روی آنها تنظیم میکند، ایمن کرد.
پیکربندی نادرست امنیتی رایج ترین آسیب پذیری در لیست است و اغلب نتیجه استفاده از تنظیمات پیش فرض یا نمایش خطاهای بیش از حد گسترده است. لذا برای حفظ امنیت وب باید این مورد را رعایت کرده تا از نفوذ و حملات در امان بود.
آسیب پذیریهای CSS زمانی رخ میدهد که برنامههای تحت وب به کاربران اجازه میدهند کدی را به یک آدرس url یا به وب سایتی که توسط سایر کاربران مشاهده میشود، اضافه کنند. این لینک ممکن است دارای کد جاوا اسکریپت مخرب باشد که در انتهای آدرس اینترنتی نشان شده باشد. اگر سایت مقصد به درستی در برابر CSS محافظت نشده باشد، در صورت کلیک روی لینک، این کد مخرب در مرورگر قربانی اجرا میشود.
این تهدید بسیاری از وب سایتها را که اغلب دادهها را serialize و deserialize میکنند، هدف قرار میدهد. Serialization به معنای برداشتن اشیاء از کد برنامه و تبدیل آنها به فرمت قابل استفاده برای اهداف دیگر مانند ذخیره دادهها بر روی دیسک است.
Deserialization دقیقاً برعکس است: تبدیل دادههای serialize شده به اشیایی که سایت میتواند از آنها استفاده کند. یک deserialization ناامن نتیجه برگرداندن دادهها از منابع نامعتبر است و میتواند عواقب جدی مانند حملات DDoS در پی داشته باشد.
بسیاری از وب دولوپرهای مدرن از مولفههایی مانند کتابخانهها و فریمورکها در برنامههای تحت وب خود استفاده میکنند. برخی از مهاجمان به دنبال آسیب پذیریهایی در این مولفهها هستند که میتوانند از آنها برای سازماندهی حملات استفاده کنند.
برای به حداقل رساندن این خطر، توسعه دهندگان وب باید کتابخانهها یا فریمورکهای بلا استفاده را از پروژه خود حذف کرده و همچنین اطمینان حاصل کنند که آنها را از یک منبع معتبر دریافت میکنند و از به روز بودن آنها اطمینان حاصل کنند.
بسیاری از وب سایتها اقدامات کافی را برای تشخیص نفوذ انجام نمی دهند. به طور متوسط زمان کشف نفوذ در حدود 200 روز پس از وقوع آن است. این به مهاجمان زمان زیادی برای آسیب رساندن قبل از هرگونه واکنشی را میدهد.
OWASP توصیه میکند که وب دولوپرها و یا همان توسعه دهندگان وب باید لاگ و نظارت مداوم داشته باشند و همچنین برنامههای واکنش به حوادث را پیاده سازی کنند تا اطمینان حاصل شود که آنها از حملات به سایت خود مطلع هستند.