88
تشکر

انواع روش های حمله و نفوذ به سایت

hacking

hacking

در این پست قصد داریم در مورد انواع روش های نفوذ و حمله به سایت ها و برنامه های تحت وب، مطالبی رو ارائه کنیم که امیدواریم هر چند اندک ولی مفید واقع شود.

این روزها کمتر کسی پیدا میشود که با معنی و اصطلاح هک آشنایی نداشته باشد، هک به معنی نفوذ و حمله با اهداف تعیین شده می باشد. البته واژه هک گستره‌ی طولانیی دارد و هر شخص با توجه به تجربیات خود این واژه را تفسیر می‌کند، و ما نیز با توجه به تجربیاتمان این واژه را تفسیر و روش های نفوذ به سایت ها و دلایل اصلی هک شدن سایت ها را بیان خواهیم کرد…

در ادامه همراه ما باشید.

SQL Injection

این حمله معرف همگان هست. این حمله برای نفوذ در کوئری‌های دیتابیس اجرا شده و برای اجراء کوئری های دلخواه نفوذگر، استفاده میشود.

XSS

توسط این حمله کدهای اسکریپت سمت کلاینت مورد نظر نفوذگر، از طریق صفحات سایت شما اجرا میشوند. یعنی اسکریپت ها  در صفحات تزریق میشوند. این حمله‌ایی مستقیم به خود سایت نیست، بلکه حمله به کاربران سایت است و با این روش می‌توان محتویات کوکی‌های لاگین یا سشن کاربران را سرقت کرد و نفوذگر بعد از اینکار میتواند بجای کاربران لاگین کند و یا درصورتی که اطلاعات مهم دیگری نیز در کوکی ها موجود باشد از آن اطلاعات سوء استفاده‌های دیگری هم انجام خواهد داد.

XSRF

بوسیله‌ی این حمله یک دستور/عملیات از سمت کاربر بدون اینکه کاربر متوجه موضوع باشد میتواند در سایتی که احتمالا کاربر در آن لاگین است اجرا شود. یعنی کاربر بدون اینکه متوجه شود، آدرسی از سایت هدف را که عملیات خاصی انجام میدهد در مرورگر خودش تحت ظاهرا سایت دیگری باز میکند. این حمله نیز از دسته حملات مستقیم به سایت نیست و کاربر را هدف قرار میدهد.

Header Injection

این حمله به فرمهای تماسی که از ایمیل استفاده میکنند و کاربر ایمیل خودش را در فیلد مربوطه در فرم وارد میکند و بعد این آدرس ایمیل بدون اعتبار سنجی کردن در قسمت هدرهای تابع mail درج میشود که بوسیله‌ی این روش میتوانند از طریق فرم تماس شما به هر شخص دیگری که میخواهند ایمیل ارسال کنند و این ایمیل از طرف سایت شما ارسال خواهد شد، بنابراین به این طریق مسئولیت هر عملی به عهده شما میباشد و ضمنا میتوانند با ایمیل های جعلی که ظاهرا از طرف سایت شماست اقدام به فریب و کلاهبرداری از کاربران بکنند. با این روش میتوان ایمیل های دارای ضمیمه هم ارسال کرد و ضمیمه ممکن است دارای فایل اجرایی یک برنامهء جاسوسی باشد.

DDOS ATTACK

حمله  DoS یا  Distributed Denial of Service نوعی از حمله است که هدف آن، از کار اندازی سیستم هدف با استفاده از هدر دادن منابع آن است. طوری که سیستم سرویس دهنده دیگر توانایی پاسخ گویی به کاربران عادی خود را نداشته باشد.

سرقت session یا اطلاعاتش

در راحتترین و خطرناک ترین سناریو در این حمله، فرد دیگری که با شما هاست مشترک (هاست های اشتراکی) دارد میتواند به راحتی سشن (session) کاربران شما را سرقت کرده و با مشخصات کاربری آنان وارد سایت شما شده و یا اطلاعات درون سشن کاربران سایت شما را بخواند. ضمنا حتی ممکن است سشن شما را که بعنوان ادمین لاگین هستید سرقت کند و بنابراین دسترسی ادمین به نرم افزار سایت شما را بدست بیارورد.

کرک هش پسوردها

در این روش نفوذگر از هش پسوردهای کاربران به خود پسوردها میرسد که نه تنها امنیت اکانت فعلی کاربران در سایت را از بین میبرد بلکه میتواند برای حمله به اکانتهای دیگر، کاربران در سایتهای دیگر، هم مورد استفاده قرار دهد (خیلی از کاربران از یک پسورد برای چند اکانت و در سایتهای مختلف استفاده میکنند که این روش انتخاب  رمز باعث بروز مشکلات امنیتی جدی میگردد).

register_globals

البته این  یک حمله نیست ولی یک ویژگی قابل سوء استفاده می باشد که باید یا غیرفعالش کرد یا کدهای لازم را با توجه به خطراتش نوشت.

دسترسی مستقیم به فایلهای اینکلودی

باید از دسترسی مستقیم به فایلهای اینکلودی خودتان از طریق وب جلوگیری کنید.

Remote file inclusion

در این روش نفوذگر میتواند فایل مورد نظر خودش را (که میتواند در هاست شما یا هاست دیگری باشد) بجای فایلهای برنامهء شما اینکلود(include) کند.

Session fixation

در این روش نفوذگر میتواند قربانی را فریب داده تا با Session ID ای که نفوذگر تعیین میکند یا برای نفوذگر مشخص هست، در سایت مورد نظر لاگین کند و بعد نفوذگر میتواند با استفاده از  Session ID بجای قربانی در سایت مورد نظر لاگین شود.

دلایل هک شدن وب سایت ها

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

برخی از صفحات سایتها (مانند صفحات بخش مدیریت سایت) می‌بایست تنها در اختیار کاربرانی با دسترسی خاص باشند. اگر دسترسی به این صفحات و پارارمترهای ارسالی آنها به شکل مناسبی حفاظت نشده باشد ممکن است هکرها آدرس این صفحات را حدس بزنند و به نحوی به آنها دسترسی پیدا کنند.

جاوید خانلو

جاوید محمدخانلو هستم دانشجوی کارشناسی رشته نرم افزار ، در حال حاظر تو قزوین زندگی میکنم و تو زمینه های PHP,HTML,CSS,JQUERY,AJAX,,MYSQL,WordPress,C++,C,VB,NETWORK, فعالیت میکنم.

  • طراحی لوگو می‌گه:

    عالی بووووووووووووود ممنووووووووووووون

  • یعنی واقعا نمیدونستم اینهمه راه برای نفوذ به وبسایت ها وجود داره!! خیلی خوب که شما راه حل های این مشکلات رو توضیح دادید. واقعا ممنون

  • آروین می‌گه:

    سلام. بسیار عالی متشکرم

  • وحید می‌گه:

    باز هم مطالب مربوط امنیت(به صورت کاربردی) منتشر کنید.
    مثلا در مورد اشتباهاتی که ممکنه توی قسمت های مختلف یک سایت مرتکب بشیم.
    مثل اشتباهاتی که ممکنه در طی فرآیند password reset مرتکب بشیم.
    یه مطلب خوندم در مورد password reset خیلی خیلی خوب بود و باعث شد دست به کار بشم و اشتباهاتی که مرتکب شده بودم رو برطرف کنم.

    http://www.troyhunt.com/2012/05/everything-you-ever-wanted-to-know.html

    لطفا از این نوع مطالب بنویسید.
    تشکر

  • رضا رویائي می‌گه:

    عالی بود – جای خالی این پست توی آپارنت احساس می‌شد. 😉

  • سینا مجروح می‌گه:

    خیلی خوبه که در مورد امنیت توضیح دادید. مبحث مهمیه و امیدوارم ادامه دار باشه. خیلی عالی بود ممنون.

  • آرمان می‌گه:

    ازون مطالبی هست که خیلی دوست دارم بخونم.
    ممنون
    عالی

  • مرتضی می‌گه:

    کلا پروتکل ها رو بی خیال شدین؟ بعضی از اون ها از همه خطرناک ترند.

    • جاوید می‌گه:

      دوست عزیز ما فقط بخش کوچیکی از مبحث امنیت رو در اینجا ارائه کردیم ، در حالی که روش های خیلی زیادی برای هک و روش های بیشتری برای جلوگیری از هک وجود داره که با توجه به نیاز خودتون میتونید این موضوعات رو دنبال کنید.

      موفق باشید.

  • محسن شفیعی می‌گه:

    عالی بود. ممنون


  • نظرات این مطلب بسته است.