6 آسیبپذیری رایج امنیتی در وبسایتها

بسیاری از متخصصین فناوری اطلاعات (IT) و امنیت وب باید هوشیار باشند و از خود در برابر تهدیدات حفاظت کنند. هیچکس تا زمانی که نداند باید از خود در برابر چه چیزی محافظت کند، امن نیست. در اینجا 6 مورد از آسیبپذیریهای امنیتی را که باید به آنها توجه کنید معرفی میکنیم.
رایجترین آسیبپذیریهای امنیتی
1. SQL INJECTIONS
تزریق SQL یکی از آسیبپذیریهای امنیتی اپلیکیشن وب است که یک حملهکننده از کد اپلیکیشن استفاده میکند تا به محتویات فاسد پایگاه داده دسترسی پیدا کند. اگر این دسترسی موفقیت آمیز باشد، حمله کننده میتواند، دادههایی را در پایگاه داده فرد انتهایی ایجاد کند، بخواند، بروز رسانی کند، تغییر دهد یا پاک نماید. تزریقSQL یکی از شایعترین انواع آسیبپذیریهای امنیتی اپلیکیشن میباشد.
2. حملات تزریق کد یا اسکریپت (CROSS SITE SCRIPTING)، به اختصار XSS
XSS، اپلیکیشن کاربر را از طریق تزریق کد (عموماً اسکریپتهای سمت کلاینت مثل جاوا اسکریپت) در خروجی اپلیکیشن وب، هدف قرار میدهد. مفهوم XSS این است که اسکریپتهای سمت کلاینت اپلیکیشن وب را جمع میکند تا آنها را به روش مطلوب حمله کننده اجرا نماید. XSS اجازه میدهد که حمله کننده اسکریپتهایی را در مرورگر قربانی اجرا کند که میتواند نشست (Session) قربانی را بدزدد، رابط کاربری وبسایتها را خراب کند یا قربانی را به سایت مخرب دیگری ببرد.
3. حملات نقض احراز هویت و مدیریت نشست
حملات نقض احراز هویت و مدیریت نشست (BROKEN AUTHENTICATION & SESSION MANAGEMENT) شامل چندین مشکل امنیتی هستند، همه آنها با هویت کاربر ارتباط دارند. اگر اطلاعات احراز هویت و شناسههای نشست، حفاظت نشوند، یک هکر میتواند نشست فعال را بدزدد و از هویت کاربر استفاده کند.
4. ارجاع مستقیم به اشیاء به صورت ناامن
ارجاع مستقیم به اشیاء به صورت ناامن (INSECURE DIRECT OBJECT REFERENCES) هنگامی است که یک اپلیکیشن تحت وب یک ارجاع به شیء پیاده سازی داخلی را افشا می کند. پیادهسازی داخلی شامل فایل، رکوردهای پایگاه داده، دایرکتوری و کلیدهای پایگاه داده است. هنگامی که یک اپلیکیشن، ارجاعی را به یکی از این اشیاء URL افشا میکند، هکر میتواند این مقادیر را جمعآوری کند تا به دادههای شخصی کاربر دسترسی پیدا کند.
این نوع حمله از سادهترین ولی کاربردیترین نوع حملات است و برای توضیح آن یک مثال میزنیم. فرض کنید کاربر معتبری وجود دارد که به نامهای با شناسه 1 دسترسی دارد و به نامه با شناسه ۲ دسترسی ندارد. نرمافزار به صورت نام امنی برای مشاهده یک نامه به کاربر شناسه، نامه را در آدرس URL دریافت میکند و آن را به کاربر نمایش میدهد. کاربر با توجه به دسترسیای که دارد ابتدا درخواست مشاهده نامه با شناسه 1 را میدهد. بعد از نمایش نامه متوجه میشود که در آدرس URL متغیری وجود دارد که مقدار آن 1 است. کاربر این مقدار را 2 میکند و درخواست جدیدی به سرور ارسال مینماید. بهاینترتیب کاربر به صورت ناامن ارجاع مستقیم به نامه با شناسه 2 داشته است و اگر نرمافزار دسترسی کاربر بر روی این نامه را بررسی نکند کاربر به هدف خود دست یافته و اطلاعاتی که به آن دسترسی نداشته را به دست آورده است.
نرمافزار، شناسه واقعی اشیاء را از طریق الگوریتمی به اطلاعات دیگری تبدیل میکند و فقط خود نرمافزار میداند که چه شناسهای تبدیل به چه اطلاعاتی شده است. به عنوان مثال عدد 1 را با یک رمزنگار که وابسته به کاربر یا نشست است رمزنگاری میکند و مقدار رمز شده xHTpC32Xt را برای کاربر ارسال میکند و در زمان درخواست کاربر انتظار دریافت مقدار رمز شده را دارد و فقط خود نرمافزار میتواند رمز را باز کند. با توجه به اینکه الگوریتم تبدیل دادهها به هم را فقط نرمافزار در اختیار دارد، هیچ کاربری نمیتواند مقداری را به صورت تصادفی تولید و درخواستی برای مشاهده آن دهد.
5. پیکربندی اشتباه امنیت
پیکربندی اشتباه امنیت موجب ایجاد چندین آسیبپذیری میشود، که دلیل اصلی همه آنها نبود پشتیبانی خوب و عدم توجه مناسب به پیکربندی اپلیکیشن های تحت وب است. باید برای فریم ورک ها، اپلیکیشن های سرور، وب سرور، سرور پایگاه داده و پلتفرمها یک پیکربندی امن تعریف شود و استقرار یابد. پیکربندی اشتباه امنیت، اجازه دسترسی هکر به دادههای محرمانه یا ویژگیهای سیستم را میدهد و میتواند منجر به ورود به کل سیستم گردد.
6. درخواستهای تقلبی از طریق سایت
CROSS-SITE REQUEST FORGERY به اختصار CSRF نوعی حمله است که کاربر برای انجام کارهایی که قصد انجام آنها را ندارد، فریب میخورد. یک وبسایت شخص ثالث به اپلیکیشن تحت وب درخواستی میفرستد که کاربری در حال حاضر برعلیه آنها (مثلاً بانک آنها) شناسایی شده است. سپس حمله کننده میتواند از طریق مرورگر قربانی به این اپلیکیشنها دسترسی پیدا کند. اهداف این حمله عموماً اپلیکیشنهای تحت وب شبکههای مجازی، کلاینتهای ایمیل، بانکداری الکترونیک و رابطهای کاربری وب دستگاههای شبکه هستند.
دقت کنید تا قربانی این نوع از حملات نشوید. راهکارهای امنیت وبسایت را یاد بگیرید و تمرین کنید و همیشه برای حفاظت از خودتان و آینده کمپانی از حملهای که شاید آسیب جدیای برساند، آماده باشید. بهترین راه برای بررسی آسیبپذیریهای امنیتی وبسایت، انجام بازرسیهای امنیتی (security audits) میباشد.
آیا میخواهید نحوه حفاظت از وبسایت در برابر آسیبپذیریهای امنیتی را بدانید؟ به زودی 8 روش برای بهبود امنیت سایت شما ارائه خواهیم داد.