
آموزش مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core
آموزش مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، محافظت از اپلیکشن های ASP.NET و ASP.NET Core در برابر حملات تزریق (Injection Attacks) است که با نام اصلی Defeating Injection Attacks in ASP.NET and ASP.NET Core از شرکت Pluralsight منتشر شده است.
SQL Injection چیست؟
بسیاری از آسیب پذیری ها وجود دارند که اجازه می دهند که تا هکرها بتوانند داده هایی را از سازمان های مختلف به سرقت ببرند. حملات تزریق SQL و یا SQL Injection یکی از آنهاست. شاید بتوان گفت که حملات SQL Injection یکی از معمول ترین حملاتی است که در application layer استفاده می شود. زمانی که یک web application با تکنیک های کدنویسی نامناسب ساخته شود، یک هکر می تواند دستورات SQL را به درون برنامه تزریق نماید.

به این شکل یک هکر می تواند داده های web application را به سرقت برده و آنها را تغییر بدهد و یا حتی آنها را به طور کامل و همیشیگی پاک کند. به بیان ساده، تزریق SQL و یا SQL Injection حملاتی هستند که در آن یک کاربر بدخواه می تواند دستورات SQL را با استفاده از یک web page به درون برنامه شما تزریق کند. اینگونه از دستورات باعث شکسته شدن حفاظت های امنیتی web application خواهد شد.
حملات SQL Injection چه خطری دارند؟
فرض کنید که یک هکر اطلاعات مربوط به دستورات مربوط به SQL را به خوبی بلد است. بنابراین هکر می تواند به راحتی دیتابیس شما را تغییر بدهد. برای مثال فرض کنید هکر نام یکی از جداول دیتابیس را بداند.

بنابراین او می تواند به راحتی دستوراتی از قبیل insert و delete و update را در قالب SQL بر روی برنامه شما تزریق کند. فرض کنید که در دیتابیس یک table با نام MyTable وجود دارد. حالا اگر بخواهیم داده های درون این table را حذف کنیم می توانیم از دستور delete from MyTable استفاده کنیم.
مقابله با حملات SQL و NoSQL Injection در برنامههای ASP.NET Core
در آموزش Defeating Injection Attacks in ASP.NET and ASP.NET Core، روشهای عملی شناسایی و مقابله با حملات تزریق در چند نوع سیستم بررسی میشوند. تمرکز آموزش فقط به SQL Injection محدود نیست و حملات NoSQL Injection را نیز در بر میگیرد؛ موضوعی که برای برنامههایی با پایگاه دادههای متفاوت اهمیت دارد. با بررسی نمونههای عملی، میتوانید درک کنید چگونه ورودیهای کنترلنشده ممکن است بر نحوه اجرای دستورات یا تفسیر پرسوجوها اثر بگذارند. این شناخت به توسعهدهندگان کمک میکند هنگام پیادهسازی لایه دسترسی به داده، مرز میان داده ورودی و دستور اجرایی را جدیتر در نظر بگیرند.
یکی از نکات مهم آموزش، آموزش عملی مقابله با حملات تزریق SQL و NoSQL است. راهکار دفاعی باید با فناوری مورد استفاده و شیوه تعامل برنامه با پایگاه داده هماهنگ باشد؛ زیرا روشهای ایمنسازی در همه محیطها یکسان نیستند. همچنین در این آموزش تأکید میشود که پیادهسازی دستی Character Escaping راهکار مناسبی برای جایگزینی روشهای استاندارد مقابله با تزریق نیست. استفاده از قابلیتهای امن کتابخانهها و APIهای مرتبط، بهجای تلاش برای حذف دستی نویسههای خاص، میتواند از ایجاد آسیبپذیریهای ناشی از مدیریت ناقص ورودی جلوگیری کند.
جلوگیری از تزریق دستورات سیستمعامل در برنامههای وب
برخی برنامههای وب برای انجام وظایف مشخص به اجرای دستورات سیستمعامل نیاز دارند؛ برای مثال، ممکن است یک بخش از برنامه ابزاری خارجی را اجرا کند یا عملیاتی را از طریق فرایند دیگری انجام دهد. اگر ورودی کاربر بدون کنترل مناسب وارد دستور اجرایی شود، احتمال حمله تزریق دستورات سیستمعامل به وجود میآید. این آموزش با اختصاص بخشی از آموزش عملی به این نوع حمله، توسعهدهندگان را با یکی از خطرهای امنیتی مرتبط با اجرای فرایندهای خارجی آشنا میکند. درک این مسئله بهخصوص هنگام طراحی قابلیتهایی که داده دریافتی را به عملیات سیستمی مرتبط میکنند، اهمیت دارد.
در کنار حملات پایگاه داده، بررسی تزریق دستورات سیستمعامل کمک میکند دامنه تهدیدهای ورودیهای نامطمئن را گستردهتر ببینید. راهکارهای دفاعی باید بر اساس API مورد استفاده، نحوه ساخت دستور و میزان کنترل برنامه بر ورودیها انتخاب شوند؛ صرف حذف چند نویسه خاص نمیتواند امنیت اجرای دستور را تضمین کند. با توجه به اینکه آموزش هم محیط ASP.NET و هم ASP.NET Core را در عنوان خود پوشش میدهد، موضوع اصلی آن شناخت و کاهش خطر تزریق در برنامههای مبتنی بر این فناوریهاست. این آموزش برای توسعهدهندگانی کاربرد دارد که میخواهند نقاط حساس برنامه را شناسایی کنند و در طراحی کد، تصمیمهای امنیتی دقیقتری بگیرند.
سرفصل مطالب آموزش ویدیویی مقابله با حملات تزریق (Injection Attacks) در ASP.NET Core
فصل اول: مقدمه دوره آموزشی
- مقدمه
فصل دوم: مقابله کردن با حملات تزریق و یا Injection Attack ها
- مقدمه
- راه اندازی تنظیمات
- آموزش عملی: کار با Injection Attack ها
- شما نباید خودتان Character Escaping را پیاده سازی کنید
- آموزش عملی: مقابله کردن با حملات تزریق SQL
- آموزش عملی: مقابله کردن با حملات تزریق NoSQL
- آموزش عملی: مقابله کردن با حملات تزریق دستورات سیستم عامل
- جمع بندی دوره آموزشی

