چگونه به خبرنامه جلوگیری از گذاشتن تزریق حملات


دانلود ما گزارش عمق: راهنمای نهایی برای در تزریق SQL T فروشندگان امنیت

روش هک کردن است که بیش از پانزده سال پیش کشف شد و هنوز هم به devastatingly موثر امروز اثبات است. آن را در آستانه انتخابات ریاست جمهوری آمریکا سال 2016 به سازش داده های شخصی از 200.000 ایلینوی رای دهندگان و همچنین در مشخصات بالا حملات علیه سازمان هایی مانند سونی پیکچرز و پی بی اس و مایکروسافت و یاهو، منطقه مرکزی سیستم های پرداخت و حتی استفاده می شود سازمان سیا.

SQL یا زبان پرس و جو ساختار ، فرمان و کنترل زبان برای پایگاه داده های رابطه ای مانند مایکروسافت SQL سرور اوراکل و MySQL است. در توسعه وب مدرن این پایگاه داده اغلب در پایان برنامه های کاربردی وب و سیستم های مدیریت محتوا در PHP, ASP.NET و یا دیگر معنی زبان برنامه نویسی نوشته شده که مطالب و رفتار بسیاری از وب سایت ساخته شده است در اطلاعات در یک پایگاه داده استفاده می شود سرور.

حمله موفقیت آمیز در پایگاه داده است که قادر به اجرای برنامه وب سایت یا وب، مانند حمله تزريق SQL است بای پس ورود به سایت می تواند بالقوه به هکر طیف گسترده ای از قدرت، از تغییر وب سایت محتوا (“برد”) دو گرفتن اطلاعات حساس مانند اطلاعات کاربری حساب یا اطلاعات کسب و کار داخلی. لیست دستورات تزریق SQL است که اساسا همان فهرست دستورات پایگاه داده، آنهایی که فاجعه آمیز مانند قطره جدول شامل.

آیا دو vulnerable.txt حمله تزريق SQL.

اولین گام در جلوگیری از حمله تزريق SQL است که (در صورت وجود) ایجاد برنامه های خود را “vulnerable.txt” هستند. بهترین راه برای انجام این کار این است که برای راه اندازی حملات خود را برای دیدن اینکه آیا آنها موفق هستند. اما پس از آن کار بی اهمیت برای ساخت قطعه کد است که می تواند به پرس و جو به تلاش کنید مصالحه پایگاه داده تزریق است SQL یک زبان پیچیده است. https://o1.qnsr.com/log/p.gif?;

= خوب خبر این است که این لازم نیست: همه شما باید انجام دهید است به اجرا گذاشتن تزریق حمله ابزار خودکار به کار شما.

یک مثال Havij یک ابزار است که توسط متخصصان امنیتی ایران توسعه یافته است. آن نقطه در یک هدف بالقوه و پروب نسخه سایت برای تعیین چه نوع از پایگاه داده استفاده شده است. با استفاده از دانش که نسخه سپس نمایش داده شد دو پروب ویژگی های پایگاه داده ایجاد شده. کمی نیاز به هیچ تخصص SQL از کاربر نهایی نسخه بالقوه می تواند زمینه های، جداول، عصاره و افسردگی داده گاهی پر از هدف.

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

ابزار دیگر (منبع باز) عبارتند از: خودکار تزریق SQL SQLmap و jSQL. كرديد SQL نسخه گرافیکی از SQLmap است.

این ابزار قدرتمند تزریق SQL قرار حمله یک زرادخانه است که در غیر این صورت خواهد بود محدود به کارشناسان-به دست هر کسی که احساس می کند مانند حمله به برنامه های خود را. به همین دلیل ارزش تست برنامه های خود را با این ابزار است و قبل از اینکه کسی مخرب پیدا کرد آنها را رفع هر گونه آسیب پذیری آنها دو نور را.

مراحل برای جلوگیری از حملات تزریق SQL

خبر خوب این است که در واقع بسیاری از چیزهایی است که صاحبان وب سایت می توانید برای جلوگیری از تزریق SQL هست. اگرچه هیچ چیز مثل ادم راه حل در امنیت شبکه موانع بسیار خوبی می تواند در مسیر تلاش تزریق SQL قرار می گیرد.

ده مرحله شما می توانید میزان قابل توجهی کاهش خطر سقوط قربانی اینجا هستید به حمله تزريق SQL: اعتماد

  1. هیچ کس: فرض همه کاربر ارسال شده داده ها بد است، بنابراین استفاده از ورودی اعتبار سنجی از طریق تابع مانند خروجی زیر را (mysql_real_escape_string) برای اطمینان از اینکه را در هر شخصیت های خطرناک مانند ‘ به SQL سوال در داده ها منتقل شوند. شما همچنین باید همه چیز را با فیلتر کردن داده های کاربر توسط زمینه sanitize. به عنوان مثال، آدرس ایمیل باید تنها شخصیت در یک آدرس پست الکترونیکی مجاز اجازه می دهد تا فیلتر شده، شماره تلفن باید به رقم مجاز در شماره تلفن و غیره اجازه می دهد فیلتر شده.
  2. دان ‘ استفاده از SQL پویا-نمایش داده شد با ورودی کاربر نمی ساخت: حتی خطاب داده روال ناقص می، بنابراین استفاده از اظهارات آماده نمایش داده شد پارامتر یا ذخیره شده روش عوض هر زمان ممکن است. اما فراموش نکنید که در حالی که روش های ذخیره شده جلوگیری از برخی از انواع حملات تزریق SQL، آنها قادر به محافظت در برابر بسیاری دیگر، بنابراین به طور انحصاری در استفاده از آنها را برای امنیت خود را تکیه می کنند.
  3. به روز رسانی و پچ: آسیب پذیری در برنامه های کاربردی و پایگاه داده است که هکرها می توانند بهره برداری با استفاده از تزریق SQL به طور منظم کشف هستند، بنابراین حیاتی برای اعمال وصله و به روز رسانی ها به زودی به عنوان عملی. راه حل مدیریت پچ ممکن است ارزش سرمایه گذاری.
  4. فایروال: در نظر بگیرید در وب برنامه فایروال (WAF)-نرم افزار و یا لوازم خانگی-اساس-به کمک فیلتر کردن داده های مخرب. آنهایی که خوب خواهد شد مجموعه ای جامع از قوانین پیش فرض و آن را آسان برای اضافه کردن امکانات جدید در هر زمان که لازم است. WAF می تواند بسیار مفید به ارائه برخی از حفاظت امنیت در مقابل آسیب پذیری های جدید قبل از پچ موجود است. محبوب ماژول ModSecurity رایگان، متن باز است که برای آپاچی مایکروسافت IIS و nginx وب سرور در دسترس است. ModSecurity پیچیده و همیشه در حال تکامل مجموعه ای از قوانین را برای فیلتر کردن درخواست های بالقوه خطرناک وب را فراهم می کند. آن دفاع تزریق SQL می تواند بیشترین تلاش برای دزدکی حرکت کردن SQL از طریق کانال های وب گرفتن.
  5. کاهش سطح حمله: دریافت خلاص از هر گونه عملکرد پایگاه داده که شما دان ‘ ŧ نیاز به جلوگیری از هکر بهره گیری از آن. به عنوان مثال، ریموت تمدید رویه ذخیره شده در کارشناسی ارشد گذاشتن پوسته فرمان ویندوز را تولید می کند و در رشته اعدام است که می تواند بسیار مفید واقع برای هکر عبور می کند. ویندوز روند تولید توسط ریموت همان امتیازات امنیتی به اشتراک گذاشتن و سرور خدمات است.
  6. استفاده از امتیازات مناسب: دان ‘ تی اتصال به پایگاه داده خود را با استفاده از حساب با دسترسی مدیر سطح مگر اینکه دلیلی قانع کننده برای انجام این کار وجود دارد. با استفاده از یک حساب دسترسی محدود به مراتب امن تر است و می توانید محدود یک هکر قادر به انجام است. به عنوان مثال، کد پشت صفحه ورود به سیستم باید پرس و پایگاه داده با استفاده از یک حساب تنها به جدول مربوطه اطلاعات کاربری محدود. این راه نقض از طریق این کانال قوی کند تر و سازش کل پایگاه داده.
  7. حفظ اسرار شما راز: گرفتن است که درخواست شما هنوز امن و بر این اساس با رمزگذاری یا هش کردن کلمات عبور و دیگر اطلاعات محرمانه از جمله رشته اتصال عمل می کنند.
  8. اطلاعات بیشتر از شما نیاز به فاش کردن نیست: هکرها می تواند در مورد معماری پایگاه داده از پیام های خطای زیادی پس که آنها را به نمایش اطلاعات حداقل اطمینان حاصل شود. “RemoteOnly” customErrors حالت استفاده (یا معادل) برای نمایش پیغام خطا پرگو در دستگاه محلی در حالی که تضمین این که هکر خارجی می شود چیزی بیش از این واقعیت است که اقدامات خود را در اینجا و یا منجر به خطا هنگام.
  9. به طور مداوم نظارت بر بیانیه های SQL از پایگاه داده متصل برنامه های کاربردی : این کمک می کند شناسایی اظهارات SQL سرکش و آسیب پذیری. مانیتورینگ ابزار است که یادگیری ماشینی و/یا تجزیه و تحلیل رفتاری می تواند بسیار مفید است.
  10. خرید نرم افزار بهتر: را کد نویسندگان مسئول برای چک کردن کد و قبل از تحویل نرم افزار رفع نقص امنیتی در برنامه های سفارشی.  حس نشان می دهد شرایط از این قرارداد نمونه به موافقت خود را با هر فروشنده نرم افزار ترکیب.

به روز رسانی این مقاله 16 اوت 2012 نوشته شده توسط ویس هارون

.

تزریق SQL چیست و چگونه آن می تواند به شما صدمه دیده است؟


دانلود مقالات ما گزارش عمق: راهنمای نهایی برای فناوری اطلاعات فروشندگان امنیت

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

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

حملات تزریق SQL یک تهدید امنیتی جدی برای سازمان ها مطرح است. حمله تزريق SQL موفق می تواند در اطلاعات محرمانه بودن و حذف از دست رفته یا دزدیده شده نتیجه; وب سایت های مخدوش بودن; دسترسی به سیستم و یا حساب های غیر مجاز و در نهایت، سازش از ماشین های فردی یا کل شبکه.

چگونه حمله تزريق SQL به آثار

تصور کسی در دادگاه است و خواسته است به نام خود را ارائه. به جای نام واقعی خود را “جو Bloggs” دادن آنها به نام “انتشار جو Bloggs.” مورد می آید، بنابراین bailiff او منتشر قاضی کردن “انتشار جو Bloggs،” تماس می گیرد. https://o1.qnsr.com/log/p.gif?;

این نشان می دهد مفهوم حمله تزريق SQL. به جای نام واقعی، متهم عمدا شکل tes ula نامی است که به عنوان یک دستور منجر به ناخواسته تفسیر اقدام در این مورد، انتشار ناخواسته.

گذاشتن تزریق نمونه

در اینجا نمونه ای از چگونه حمله تزريق SQL می تواند در عمل انجام شده است. حمله به تمام اطلاعات در مورد کاربر از پایگاه داده جدول کاربران بدون دانستن نام کاربری یا رمز عبور تطبیق دسترسی طراحی شده است.

ممکن است کد برنامه SQL:

را انتخاب کنید * = از کاربران که در آن نام کاربری رمز عبور و ‘$username’ = ‘$password’

با استفاده از رابط وب حمله وارد کنید ممکن است در صورت درخواست، برای آنها نام کاربری و رمز عبور:

1′ یا ‘1’ = ‘ 1

و

1′ یا ‘1’ = ‘ 1

با وارد کردن این جفت عمدا فرموله شده نام کاربری و رمز عبور، مهاجم است به طور موثر تزریق دو کل یا حل و فصل کردن به پروسه تأیید هویت.

اجازه دهید نگاهی نزدیک تر به مراجعه کنید چگونه.

کد برنامه SQL رشته متن ساده مانند joebloggs برای نام کاربری و دیگر رشته های ساده مانند password123 برای رمز عبور انتظار بود.

آن سپس خط را تجزیه می:

را انتخاب کنید * از کاربران که در آن نام کاربری = ‘$username’ و رمز عبور = “$password”

به

را انتخاب کنید * = از کاربران که در آن نام کاربری رمز عبور و ‘joebloggs’ = ‘ password123

و دسترسی به داده ها برای کاربر joebloggs (اگر یکی وجود دارد) اگر رمز عبور برای آن کاربر password123.

اما مشکل. چه نرم افزار نیست که مهاجم وارد کنید نام کاربری و رمز عبور در این راه با استفاده هوشمندانه از apostrophes فرموله شده بود انتظار داشتم.

نتیجه است که پرس و جو به عنوان تجزیه:

را انتخاب کنید * از کاربران که در آن نام کاربری = ‘1’ یا ‘1’ = ‘1’ و رمز عبور = ‘1’ یا ‘1’ = ‘1’

اگر رمز عبور خود را 1 در حال حاضر نرم افزار دسترسی به داده ها برای هر کاربر و یا اگر 1 = 1. و از وضعیت 1 = 1 است که همیشه درست است، این پرس و جوی SQL همیشه در روند تأیید اعتبار رمز عبور بای پاس شدن منجر شود.

(نمونه کد منبع از OWASP)

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

تصور کنید برای مثال یک برنامه پایگاه داده است که یک کارمند به نام خود را وارد یک زمینه و تعدادی مانند شماره تامین اجتماعی را در قسمت بعدی را قادر می سازد و این اطلاعات را در یک پایگاه داده به نام socsecnumbers ذخیره می کند.

برنامه احتمال فرم با بعضی از کد پشت آن به نام در فرم ’employeename’ را قبول داشته باشد. ممکن است قادر به انجام حمله تزريق SQL است که باعث می شود برنامه به اجرا گذاشتن فرمان رها کردن پایگاه داده socsecnumbers، که منجر به حذف و از دست دادن کامل اطلاعات کارمند مخرب (یا حمله خارجی) ذخیره شده در پایگاه.

برای انجام اینکار، به جای ورود به جو Bloggs، مهاجم می تواند نام جو Bloggs وارد کنید ‘); رها کردن پایگاه داده socsecnumbers; — ? نتیجه در فهم برنامه

:

‘جو Bloggs’); رها کردن پایگاه داده socsecnumbers; — ?’

بخش کلیدی این حمله، دوباره، از سوءاستفاده هاي احتمالي علامت است.  نتیجه این “شخصیت پس از جو Bloggs که پایگاه داده فکر می کند آن دریافت نام آن در انتظار به پایان رسید است. از آنجا که شخصیت های بیشتر وارد کرده اید، آن تصمیم می گیرد باید آنها را به عنوان کد SQL تفسیر. The); بنابراین پایگاه داده اجرا فرمان socsecnumbers رها کردن پایگاه داده که عبارت زیر بلافاصله اعدام باید معنی.

هنوز هم خواهد انتهایی ‘ بنابراین برای جلوگیری از بودن نام مشکل که وارد کد استفاده شده است که مهاجم با؛–چون به پایان می رسد; معنای حمل در اجرای قسمت بعدی نام، و–پایگاه داده برای دادن در آن خط چون بقیه این بیانیه باید به درمان به عنوان نظر می گوید.

فقط کار تزریق امنیت

گذاشتن حملات تزریق SQL هنگامی که برنامه به اجرای کد زیرا آن دریافت ورودی کاربر در فرم نیست انتظار فریب خورده است. این بدان معناست که حیاتی گذاشتن تزریق اقدام امنیتی انجام داده sanitization و اعتبار است. این به طور موثر لایه بازرسی به اطمینان حاصل شود که هر گونه اطلاعات ارائه شده غیر معمول است و ممکن است خطر تزریق SQL کیسه می افزاید.

Sanitization معمولا شامل اجرای هر گونه اطلاعات ارائه شده از طریق تابع (مانند خروجی زیر را mysql_real_escape_string تابع ()) اطمینان حاصل شود که هر شخصیت های خطرناک مانند ‘ به SQL سوال در داده ها منتقل شوند.

که در آن شامل اضافه کردن کد است که در تلاش برای اطمینان حاصل شود که هر گونه اطلاعات را مشاهده کنید در فرم است که انتظار می رود در نمونه های خاص که اعتبار کمی متفاوت است. در ابتدایی ترین سطح این اطمینان که حاوی آدرس ایمیل شامل “@” ثبت، زمانی که داده های عددی (مانند کد پستی) انتظار می رود که تنها رقم عرضه شده، و که طول قطعه داده ارسال شده بیش از حداکثر طول مورد انتظار است (بنابراین s شماره تامین اجتماعی نیست بیش از 9 رقمی باید باشد).

اعتبار سنجی اغلب انجام به دو روش: توسط شخصیت های خطرناک و یا ناخواسته blacklisting و whitelisting شخصیت تنها کسانی که در شرایط داده شده مجاز، که می تواند شامل کار بخشی از برنامه های. اگر چه ممکن است اعتبار محل در سمت سرویس گیرنده، هکرها می تواند تغییر و یا دریافت اطراف این، پس از آن ضروری است که تمام داده است دارای اعتبار در سمت سرور نیز به منظور کاهش خطر تزریق SQL.

برای مطالعه بیشتر در برای راه های بیشتری برای کاهش خطر تزریق SQL.

این به روز رسانی 23 ژوئن سال 2016 مقاله

.