در سال جاری سایت های زیادی در داخل ایران هک شده اند. شاید یکی از دلایل اصلی آن این باشد که مدیران این سایت ها توجهی به تست نفوذ بر روی سایت خود نداشته اند دربخش یک مقاله ارائه شده به صورت کلی و بسیار خلاصه به انواع روش های حمله و نفوذ به سایت اشاره خواهد شد در بخش 2 و 3 سعی بر معرفی نرم افزار ها و ابزارهای مرتبط با ارزشیابی ضریب نفوذ سایت و نهایتا ارائه ملاحظات فنی در خصوص ارتقا ضریب نفوذ ناپذیری و امنیت داده و اطلاعات در سایت اشاره خواهد شد.
این مقاله صرفا برای آگاهی برنامه نویسان از روش های حمله و نفوذ به وبسایت ها است تا در ساخت اپلیکیشن های خود دقت بیشتر به خرج دهند.
انواع روش های حمله و نفوذ به سایت
SQL Injection
این حمله معرف همگان هست. این حمله برای نفوذ در کوئریهای دیتابیس اجرا شده و برای اجراء کوئری های دلخواه نفوذگر، استفاده میشود.
http:// www.example.com/show.php ? SELECT * FROM users WHERE name = '"+userName+"';
XSS
توسط این حمله کدهای اسکریپت سمت کلاینت مورد نظر نفوذگر، از طریق صفحات سایت شما اجرا میشوند. یعنی اسکریپت ها در صفحات تزریق میشوند. این حملهایی مستقیم به خود سایت نیست، بلکه حمله به کاربران سایت است و با این روش میتوان محتویات کوکیهای لاگین یا سشن کاربران را سرقت کرد و نفوذگر بعد از اینکار میتواند بجای کاربران لاگین کند و یا درصورتی که اطلاعات مهم دیگری نیز در کوکی ها موجود باشد از آن اطلاعات سوء استفادههای دیگری هم انجام خواهد داد.
XSRF
بوسیلهی این حمله یک دستور/عملیات از سمت کاربر بدون اینکه کاربر متوجه موضوع باشد میتواند در سایتی که احتمالا کاربر در آن لاگین است اجرا شود. یعنی کاربر بدون اینکه متوجه شود، آدرسی از سایت هدف را که عملیات خاصی انجام میدهد در مرورگر خودش تحت ظاهرا سایت دیگری باز میکند. این حمله نیز از دسته حملات مستقیم به سایت نیست و کاربر را هدف قرار میدهد.
Header Injection
این حمله به فرمهای تماسی که از ایمیل استفاده میکنند و کاربر ایمیل خودش را در فیلد مربوطه در فرم وارد میکند و بعد این آدرس ایمیل بدون اعتبار سنجی کردن در قسمت هدرهای تابع mail درج میشود که بوسیلهی این روش میتوانند از طریق فرم تماس شما به هر شخص دیگری که میخواهند ایمیل ارسال کنند و این ایمیل از طرف سایت شما ارسال خواهد شد، بنابراین به این طریق مسئولیت هر عملی به عهده شما میباشد و ضمنا میتوانند با ایمیل های جعلی که ظاهرا از طرف سایت شماست اقدام به فریب و کلاهبرداری از کاربران بکنند. با این روش میتوان ایمیل های دارای ضمیمه هم ارسال کرد و ضمیمه ممکن است دارای فایل اجرایی یک برنامهء جاسوسی باشد.
http://www.nyphp.org/phundamentals/8_Preventing-Email-Header-Injection
DDOS ATTACK
حمله DoS یا Distributed Denial of Service نوعی از حمله است که هدف آن، از کار اندازی سیستم هدف با استفاده از هدر دادن منابع آن است. طوری که سیستم سرویس دهنده دیگر توانایی پاسخ گویی به کاربران عادی خود را نداشته باشد.
CMD => Ping 192.168.1.1 -t -l 6500
سرقت session یا اطلاعاتش
در راحتترین و خطرناک ترین سناریو در این حمله، فرد دیگری که با شما هاست مشترک (هاست های اشتراکی) دارد میتواند به راحتی سشن (session) کاربران شما را سرقت کرده و با مشخصات کاربری آنان وارد سایت شما شده و یا اطلاعات درون سشن کاربران سایت شما را بخواند. ضمنا حتی ممکن است سشن شما را که بعنوان ادمین لاگین هستید سرقت کند و بنابراین دسترسی ادمین به نرم افزار سایت شما را بدست بیارورد.
کرک هش پسوردها
در این روش نفوذگر از هش پسوردهای کاربران به خود پسوردها میرسد که نه تنها امنیت اکانت فعلی کاربران در سایت را از بین میبرد بلکه میتواند برای حمله به اکانتهای دیگر، کاربران در سایتهای دیگر، هم مورد استفاده قرار دهد (خیلی از کاربران از یک پسورد برای چند اکانت و در سایتهای مختلف استفاده میکنند که این روش انتخاب رمز باعث بروز مشکلات امنیتی جدی میگردد).
register_globals
البته این یک حمله نیست ولی یک ویژگی قابل سوء استفاده می باشد که باید یا غیرفعالش کرد یا کدهای لازم را با توجه به خطراتش نوشت.
دسترسی مستقیم به فایلهای اینکلودی
باید از دسترسی مستقیم به فایلهای اینکلودی خودتان از طریق وب جلوگیری کنید.
Remote file inclusion
در این روش نفوذگر میتواند فایل مورد نظر خودش را (که میتواند در هاست شما یا هاست دیگری باشد) بجای فایلهای برنامهء شما اینکلود(include) کند.
Session fixation
در این روش نفوذگر میتواند قربانی را فریب داده تا با Session ID ای که نفوذگر تعیین میکند یا برای نفوذگر مشخص هست، در سایت مورد نظر لاگین کند و بعد نفوذگر میتواند با استفاده از Session ID بجای قربانی در سایت مورد نظر لاگین شود.
http://website.com/
دلایل هک شدن وب سایت ها
Cross site scripting یا XSS
این مشکل زمانی ایجاد می شود که اطلاعات ارسالی بین کاربران و سایت بدون بررسی و اعتبار سنجی لازم توسط نرم افزار سایت صورت گیرد. در این حالت هکرها میتوانند اسکریپتهایی را همراه اطلاعات به نرم افزار سایت تزریق کنند و این اسکریپتها هنگام نمایش اطلاعات در مرورگر دیگر کاربران سایت اجرا شده و مشکلاتی همچون سرقت اطلاعات نشست (Session) و دسترسی به اختیارات و اطلاعات دیگر کاربران و یا تغییر در صفحات سایت را ایجاد کند.
Injection flaws
در این شیوه هکر به همراه بخشی از اطلاعات یا پارامترهای ارسالی به سایت دستورات غیر مجازی که امکان خواندن، تغییر یا حذف یا درج اطلاعات جدید را فراهم میکند نیز تزریق میکند. یکی از معمول ترین این روشها SQL Injection است که امکان تغییر در اطلاعات و جداول بانک اطلاعاتی یا تغییر در درخواستها از بانک اطلاعات (مانند تعیین اعتبار کاربر و کلمه) را امکان پذیر میکند.
Malicious file execution
این مسئله به هکر ها اجازه اجرای برنامه یا کدی را میدهد که امکاناتی در تغییرات یا مشاهده اطلاعات یا حتی تحت کنترل گرفتن کل نرم افزار سایت یا سیستم را میدهد. این مشکل در سایتهایی که امکان ارسال فایل را به کاربران بدون بررسی ماهیت اطلاعات را می دهد اتفاق می افتد (مثلا ارسال یک اسکریپ PHP یا ASP به جای فایل تصویری توسط کاربر)
Insecure direct object reference
این مشکل عموما در دستکاری پارامترهای ارسالی به صفحات یا اطلاعات فرمهایی هست که بصورت مستقیم به فایل، جداول اطلاعاتی، فهرستها یا اطلاعات کلیدی اتفاق می افتد و امکان دسترسی یا تغییر فایلهای اطلاعاتی دیگر کاربران را ایجاد میکند. (مانند ارسال کد کاربر یا نام فایل مخصوص او بصورت پارامتر در آدرس صفحه که با تغییر آن امکان دسترسی یا تغییر در اطلاعات کاربر دیگری وجود خواهد داشت)
Cross site request forgery
در اینگونه حملات هکر کنترل مرورگر قربانی را یدست آورده و زمانی که وی وارد سایت (login) شده درخواستهای نادرستی را به سایت ارسال می کند. (نمونه آن چندی پیش دز سایت myspace اتفاق افتاده بود و هکری با استفاده از یک کرم اینترنتی پیغامی را در میلیونها صفحه کاربران این سایت نمایش داد)
Information leakage and improper error handling
همانطور که از نام این مشکل مشخص است زمانی که در خطاهای نرم افزار سایت به شکل مناسبی مدیریت نشوند در صفحات خطا اطلاعات مهمی نمایش داده شود که امکان سوء استفاده از آنها وجود داشته باشد.(نمونه ای از همین مشکل چندی پیش برای یکی از سایتهای فارسی نیز بوجود آمد و اطلاعات کاربری و کلمه عبور اتصال به بانک اطلاعات در زمان خطا نمایش داده می شد و باعث سوء استفاده و تغییر اطلاعات کاربران این سایت شد).
Broken authentication and session management
این مشکل در زمانی که نشست کاربر (session) و کوکی اطلاعات مربوط به ورود کاربر به دلایلی به سرقت میرود یا به دلیلی نیمه کاره رها میشود، ایجاد میشود. یکی از شیوههای جلوگیری از این مشکل رمزنگاری اطلاعات و استفاده SSL است.
Insecure cryptographic storage
این مشکل نیز چنانچه از عنوان آن مشخص است بدلیل اشتباه در رمزنگاری اطلاعات مهم (استفاده از کلید رمز ساده یا عدم رمز نگاری اطلاعات کلیدی) است.
Insecure communications
ارتباط ناامن نیز مانند مشکل قبلی است با این تفاوت که در لایه ارتباطات شبکه است. هکر در شرایطی میتواند اطلاعات در حال انتقال در شبکه را مشاهده کند و از این طریق به اطلاعات مهم نیز دست پیدا کند. همانند مشکل قبلی نیز استفاده از شیوه های رمزنگاری و SSL راه حل این مشکل است.
Failure to restrict URL access
برخی از صفحات سایتها (مانند صفحات بخش مدیریت سایت) میبایست تنها در اختیار کاربرانی با دسترسی خاص باشند. اگر دسترسی به این صفحات و پارارمترهای ارسالی آنها به شکل مناسبی حفاظت نشده باشد ممکن است هکرها آدرس این صفحات را حدس بزنند و به نحوی به آنها دسترسی پیدا کنند.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید