بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
سالها پیش زمانیکه صحبت از یک نرم افزار کاربردی در یک شبکه می شد ، به سراغ استفاده از نرم افزارهایی می رفتیم که قصد استفاده از آن سرویس را داشت دارای این دو قسمت بود :
یک قسمت بر روی سرور نصب می شد و قسمت دیگر بر روی کامپیوتری نصب می شد ، با گذشت زمان و رواج یافتن نرم افزار های کاربردی تحت وب این تفکر رواج یافت که اینگونه نرم افزارهای تحت وب دارای امنیت و کاربرد ساده تری نسبت به نرم افزاهای گذشته هستند و به شدت شروع به رشد کردند ، به گونه ای که امروزه اکثر نرم افزارهایی که برای شبکه نوشته می شود در قالب نرم افزارهای کاربردی تحت وب می باشد .
تحت وب بودن یک نرم افزار هم مزیت است و هم دارای عیب های زیادی می باشد، مزیت استفاده از این نرم افزارها این است که شما دیگر نیازی به استفاده از یک نرم افزار Agent برای متصل شدن به سرور اصلی خود ندارید و صرفا با وارد کردن آدرس URL سرور نرم افزار کاربردی تحت وب ، می توانید به آن وصل شده و از سرویس های آن استفاده کنید ، اما همین موضوع می تواند نقطه ضعف بزرگی برای اینگونه سیستم ها باشد ، یک هکر یا مهاجم نیز به همان سادگی که شما می توانید به نرم افزار خود متصل شوید می تواند به سیستم شما متصل شود ، در ساختار های قدیمی همین وجود Agent تا حدودی کار را برای هکرها سخت تر می کرد . یکی از مواردی که تحت وب بودن نرم افزارها خطر آفرین است این است که شما هر اندازه شبکه خود را امن کنید در نهایت به دلیل استفاده از نرم افزارهای تحت وب منتشر شده به بیرون از سازمان ، می توان به شبکه شما دسترسی و نفوذ کرد ، به شکل زیر دقت کنید .
اسلاید 2 :
حملات نوع خاصی وجود دارند که به Web Application Attacks یا حملات به نرم افزارهای کاربردی مشهور هستند ، اینگونه حملات با توجه به گسترش روز افزون وب سایت ها و نرم افزارهای تحت وب بصورت فزاینده ای در حال زیاد شدن هستند.
در بهترین شرایط ممکن اگر کسی بخواهد جلوی اینگونه حملات را بگیرد مدت زمانی طول می کشد که در همین زمان می توان از نقاط ضعف بوجود آمده استفاده کرده و به هدف حمله کرد . به نقاط ضعفی که هنوز شناسایی نشده اند و بروز رسانی امنیتی برای آنها ارائه نشده است در اصطلاح Zero Day گفته می شود.
در zero-day مدافع زمانی برای آماده شدن برای دفاع در مقابل حمله ندارد.
اسلاید 3 :
I.Cross Site Scripting (XSS)
II.SQL Injection
III.XML Injection
IV.Command Injection
V.Directory Traversal
اسلاید 4 :
- مخفف کلمه Cross-Site Scripting بصورت CSS می باشد اما این مخفف به دلیل اینکه با ساختاری به نام CSS که در طراحی وب وجود دارد شباهت دارد به XSS تغییر داده شد .
- این نوع حمله که همانطور که از نامش پیداست از ساختار اسکریپت نویسی استفاده می کند ، به نرم افزارهای تحت وب از طریق اسکریپت نویسی حمله می کند . هدف اصلی این نوع حمله بدست آودن اطلاعات از کاربران و کلاینت هایی است که به سرور متصل می شود .
- اکثر کدهایی که توسط هکر ها در نرم افزارهای تحت وب وارد می شود که در سمت کلاینت اجرا شود و معمولا به زبان جاوا اسکریپت نوشته می شود.
اسلاید 5 :
- همیشه در هر جا نامی از Inject کردن شنیدید ، به این معناست که حمله از طریق وارد کردن اطلاعات به درون یک فیلد اطلاعاتی انجام می شود .
- XSS که به نام XSS Injection نیز معروف است نیز از این مورد استثناء نیست ، در این نوع حمله هکر به دنبال فیلد های ورود اطلاعاتی می گردد که در وب سایت مورد نظر قرار دارد و در صورت عدم رعایت موارد امنیتی مناسب در وب سرور می تواند به آن وب سایت حمله کند. بیشتر اطلاعاتی که از طریق XSS بدست می آید از طریق Cookie هایی است که کلاینت بر روی مرورگر خود بر جای می گذارد .
- در صورتیکه برنامه نویس وب سایت شما در فیلد های ورودی اطلاعات خود اعتبارسنجی یا Validation را انجام ندهد ، آن وب سایت مستعد بروز حملات XSS خواهد بود .
اسلاید 6 :
- حملات XSS خود به دو دسته بندی تقسیم می شوند که به عنوان انعکاس و ذخیره شناخته می شوند .
- در حملات از نوع انعکاس ، هکر یک حفره امنیتی و راهی برای استفاده از آن پیدا می نماید تا کاربر ناشناس را به یک برنامه وب دارای آسیب پذیری XSS هدایت کند . در این هنگام حمله انجام شده است . این حمله به وسیله یک سری از پارامترهای URL که با URL ارسال می شوند، انجام می شود.
- در حملات از نوع ذخیره ، هکر کدهای مخربی را که یک کاربر در آینده آنها را فراخوانی می کند ذخیره می نماید. در واقع یک کاربر ندانسته به کدهای مخرب برخورد می نماید و کدهای مخرب اجرا می شوند. مسئله اینجاست که هنگام ذخیره سازی کدها و همچنین هنگام واکشی آنها اعتبارسنجی ورودی ها و خروجی ها انجام نشده است.
- نکته حائز اهمیت این است که حتی درصورت اعتبارسنجی یا Validation کدها در هنگام ذخیره نمودن آنها، چک نمودن خروجی ها و اعتبار سنجی آنها نیز لازم است.
اسلاید 7 :
همانطور که می دانید واژه SQL:
مخفف کلمه Structured Query Language می باشد که زبانی برای برقرار ارتباط با پایگاه های داده می باشد ، این زبان می تواند برای انجام پرسش و پاسخ یا Query گرفتن از پایگاه های داده ای مانند Ms SQL یا My SQL یا Oracle یا هر پایگاه داده مشابهی مورد استفاده قرار بگیرد. همانطور که قبلا هم اشاره کردیم هرگاه نامی از Injection یا تزریق به گوشمان خورد بلافاصله باید به این فکر بیوفتیم که می توانیم دستورات تعریف نشده ای را به سمت سرور مقصد ارسال و پاسخ دلخواه خود را بدست بیاوریم. ساختار کاری حملات SQL Injection به این صورت است که هرگاه فیلد ورود و خروج اطلاعاتی وجود داشته باشد که در پس زمینه آن یک پایگاه داده باشد، می توانیم با وارد کردن دستورات غیرمعمول زبان SQL در این فیلد ها پاسخ هایی از سرور مورد نظر دریافت کنیم که حاوی اطلاعات حساس می باشند.
اسلاید 8 :
یکی از فیلدهایی که در وب سایت ها بسیار مورد حملات SQL Injection قرار می گیرد ، فیلد Forgot Password یا فراموشی رمز عبور است. از این فیلد زمانی استفاده می شود که کاربر رمز عبور خود را فراموش کرده است و می خواهد با وارد کردن ایمیل خود ، رمز عبور را بازیابی کند تا بتواند مجددا وارد وب سایت بشود.
SELECT fieldlist FROM table WHERE field =
‘whatever’ or ‘a’=‘a’
در این حالت و با وارد کردن دستور بالا توسط هکر ، کلیه ایمیل هایی که در پایگاه داده وجود دارد به نمایش در می آیند.
اسلاید 9 :
شناسایی فیلدهای مختلف موجود در دیتابیس
whatever’ AND email IS NULL;
شناسایی نام جدول های دیتابیس
whatever’ AND 1=(SELECT COUNT(*) FROM tab name);
پیدا کردن کاربرانی با مشخصات تعیین شده
whatever’ OR full _ name LIKE ‘%itpro.ir%’
تمامی اطلاعات موجود در جدول حذف می شوند
whatever’; DROP TABLE members;
اسلاید 10 :
قبل از اینکه در خصوص این نوع حملات صحبت کنیم بهتر است بدانیم که منظور از Markup Language چیست ؟
کلماتی مثل XML مخفف& Extensible Markup Language : HTMLمخفف Hyper Text Markup Language می باشند .
: Markup Language
زبانی است که شیوه نمایش اطلاعات در صفحات وب را نشان می دهد . به این معنی که شما با استفاده از این زبان می توانید به متن های خود یادداشت یا حاشیه اضافه کنید. در این میان معروف ترین زبان های Markup به نام HTML و XML شناخته می شوند. اکثر وب سایت ها و نرم افزارهای تحت وبی که امروزه مشاهده می کنید با استفاده از یک روش داده های خود را ذخیره می کنند ، معمولترین روش استفاده از یک پایگاه داده مانند SQL سرور می باشد .