FixVibe
Covered by FixVibecritical

এসকিউএল ইনজেকশন: অননুমোদিত ডাটাবেস অ্যাক্সেস প্রতিরোধ করা

এসকিউএল ইনজেকশন (SQLi) একটি গুরুতর দুর্বলতা যেখানে আক্রমণকারীরা একটি অ্যাপ্লিকেশনের ডাটাবেস প্রশ্নে হস্তক্ষেপ করে। দূষিত SQL সিনট্যাক্স ইনজেকশনের মাধ্যমে, আক্রমণকারীরা প্রমাণীকরণ বাইপাস করতে পারে, পাসওয়ার্ড এবং ক্রেডিট কার্ডের বিবরণের মতো সংবেদনশীল ডেটা দেখতে পারে বা এমনকি অন্তর্নিহিত সার্ভারের সাথে আপস করতে পারে।

CWE-89

এসকিউএল ইনজেকশনের প্রভাব

SQL ইনজেকশন (SQLi) একজন আক্রমণকারীকে একটি অ্যাপ্লিকেশন তার ডাটাবেস [S1]-এ করা প্রশ্নের সাথে হস্তক্ষেপ করতে দেয়। প্রাথমিক প্রভাবের মধ্যে ব্যবহারকারীর পাসওয়ার্ড, ক্রেডিট কার্ডের বিবরণ এবং ব্যক্তিগত তথ্য [S1]-এর মতো সংবেদনশীল ডেটাতে অননুমোদিত অ্যাক্সেস অন্তর্ভুক্ত রয়েছে।

ডেটা চুরির বাইরে, আক্রমণকারীরা প্রায়শই ডাটাবেস রেকর্ডগুলি পরিবর্তন বা মুছে ফেলতে পারে, যার ফলে অ্যাপ্লিকেশন আচরণে ক্রমাগত পরিবর্তন বা ডেটা ক্ষতি [S1] হতে পারে। উচ্চ-তীব্রতার ক্ষেত্রে, SQLi ব্যাক-এন্ড পরিকাঠামোর সাথে আপস করতে, পরিষেবা অস্বীকার-আক্রমণ সক্ষম করতে, বা সংস্থার সিস্টেমগুলিতে একটি অবিরাম ব্যাকডোর প্রদান করতে বাড়ানো যেতে পারে।

মূল কারণ: অনিরাপদ ইনপুট হ্যান্ডলিং

এসকিউএল ইনজেকশনের মূল কারণ হল একটি SQL কমান্ড [S2]-এ ব্যবহৃত বিশেষ উপাদানগুলির অনুপযুক্ত নিরপেক্ষকরণ। এটি ঘটে যখন একটি অ্যাপ্লিকেশন সরাসরি কোয়েরি স্ট্রিং [S1][S2] এ বাহ্যিকভাবে প্রভাবিত ইনপুট সংযুক্ত করে SQL কোয়েরি তৈরি করে।

যেহেতু ইনপুটটি ক্যোয়ারী স্ট্রাকচার থেকে সঠিকভাবে বিচ্ছিন্ন নয়, ডাটাবেস ইন্টারপ্রেটার ব্যবহারকারীর ইনপুটের অংশগুলিকে আক্ষরিক ডেটা [S2] হিসাবে বিবেচনা না করে SQL কোড হিসাবে চালাতে পারে। এই দুর্বলতা SELECT স্টেটমেন্ট, INSERT মান, বা UPDATE স্টেটমেন্ট [S1] সহ একটি প্রশ্নের বিভিন্ন অংশে প্রকাশ করতে পারে।

কংক্রিট সংশোধন এবং প্রশমন

প্যারামিটারাইজড প্রশ্ন ব্যবহার করুন

এসকিউএল ইনজেকশন প্রতিরোধের সবচেয়ে কার্যকর উপায় হল প্যারামিটারাইজড কোয়েরি ব্যবহার করা, যা প্রস্তুত স্টেটমেন্ট [S1] নামেও পরিচিত। স্ট্রিংগুলিকে সংযুক্ত করার পরিবর্তে, ডেভেলপারদের এমন কাঠামোগত প্রক্রিয়া ব্যবহার করা উচিত যা ডেটা এবং কোড [S2] পৃথকীকরণ কার্যকর করে৷

সর্বনিম্ন বিশেষাধিকারের নীতি

অ্যাপ্লিকেশনগুলিকে তাদের কার্যগুলির জন্য প্রয়োজনীয় সর্বনিম্ন সুবিধাগুলি ব্যবহার করে ডাটাবেসের সাথে সংযুক্ত হওয়া উচিত [S2]৷ একটি ওয়েব অ্যাপ্লিকেশন অ্যাকাউন্টে প্রশাসনিক সুবিধা থাকা উচিত নয় এবং এটির [S2] ফাংশনের জন্য প্রয়োজনীয় নির্দিষ্ট টেবিল বা অপারেশনগুলিতে সীমাবদ্ধ থাকা উচিত।

ইনপুট বৈধকরণ এবং এনকোডিং

প্যারামিটারাইজেশনের প্রতিস্থাপন না হলেও, ইনপুট যাচাইকরণ ডিফেন্স-ইন-ডেপথ [S2] প্রদান করে। অ্যাপ্লিকেশানগুলির একটি গ্রহণযোগ্য-পরিচিত-ভাল কৌশল ব্যবহার করা উচিত, যাতে ইনপুট প্রত্যাশিত প্রকার, দৈর্ঘ্য এবং [S2] বিন্যাসের সাথে মেলে।

কিভাবে FixVibe এর জন্য পরীক্ষা করে

FixVibe ইতিমধ্যেই গেটেড active.sqli স্ক্যানার মডিউলের মাধ্যমে SQL ইনজেকশন কভার করে। সক্রিয় স্ক্যানগুলি শুধুমাত্র ডোমেনের মালিকানা যাচাইকরণ এবং প্রত্যয়নের পরে চালানো হয়। চেক ক্যোয়ারী প্যারামিটার সহ একই-অরিজিন GET এন্ডপয়েন্ট ক্রল করে, একটি বেসলাইন প্রতিক্রিয়া স্থাপন করে, SQL-নির্দিষ্ট বুলিয়ান অসঙ্গতিগুলি সন্ধান করে এবং শুধুমাত্র একাধিক বিলম্বের দৈর্ঘ্য জুড়ে সময় নিশ্চিতকরণের পরে একটি অনুসন্ধানের প্রতিবেদন করে। রিপোজিটরি স্ক্যানগুলি code.web-app-risk-checklist-backfill এর মাধ্যমে মূল কারণটি আগে ধরতেও সাহায্য করে, যা টেমপ্লেট ইন্টারপোলেশনের সাথে তৈরি কাঁচা SQL কলগুলিকে ফ্ল্যাগ করে।