এসকিউএল ইঞ্জেকশনের বিরুদ্ধে সুরক্ষা: আপনার ডাটাবেসে আক্রমণটি এইভাবে কাজ করে

Anonim

বর্তমান ডিবি ইঞ্জিন র‌্যাঙ্কিং অনুসারে ওরেচল, মাইএসকিউএল এবং মাইক্রোসফ্ট এসকিউএল সার্ভারের মতো রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (আরডিবিএমএস) বাজারে সর্বাধিক জনপ্রিয়। যেহেতু এগুলি খুব নির্ভরযোগ্য হিসাবে বিবেচিত হয় এবং ডেটাসেটগুলিতে অসঙ্গতি এড়ায়, দশক ধরে তারা বেশিরভাগ সংস্থায় ডাটাবেসের জন্য প্রতিষ্ঠিত স্ট্যান্ডার্ড।

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

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

spoods.de
SQL Injection
এসকিউএল ইঞ্জেকশন
ছবি: ম্যাক্সএক্স স্টুডিও - শাটারস্টক ডটকম

সরল চিরসবুজ

আক্রমণ পদ্ধতিটি 1998 সালে আবিষ্কৃত হয়েছিল এবং তখন থেকে এটি একটি অন্যতম স্থায়ী হুমকী হিসাবে বিবেচিত হয়। স্বাধীন ওপেন ওয়েব অ্যাপ্লিকেশন সুরক্ষা প্রকল্প (ওডাব্লুএএসপি) দ্বারা নিয়মিত প্রকাশিত শীর্ষ 10 ওয়েব অ্যাপ্লিকেশন সুরক্ষা ঝুঁকির মধ্যে (পিডিএফ), এসকিউএলিকে ২০১০ সাল থেকে ধারাবাহিকভাবে প্রথম স্থান দেওয়া হয়েছে। আগস্ট 2019 এ, শোষণটি টানা চতুর্থ বছরের জন্য ইস্রায়েলি সুরক্ষা বিক্রেতা চেকপয়েন্টের মাসিক গ্লোবাল থ্রেট ইনডেক্সের সর্বাধিক শোষিত দুর্বলতার তালিকার শীর্ষে ছিল।

ভুল নয়। সুতরাং, মার্চ 2019 এ, অনলাইন শপ সফ্টওয়্যার ম্যাজেন্টোতে একটি ফাঁক আবিষ্কার হয়েছিল এবং বন্ধ হয়ে গেছে, ডিলারদের ডাটাবেসগুলি থেকে গ্রাহকের ডেটা পড়তে পারে। 2018 সালে, কানাডিয়ান ইন্টারনেট সার্ভিস পভার আলটিমা ওয়েবসাইটটিতে একটি সমস্যা (একটি সফ্টওয়্যার বা প্রোগ্রামিং ত্রুটি ছিল যা কম্পিউটার প্রোগ্রামগুলির ত্রুটির দিকে পরিচালিত করে) ঘটেছিল, যার সম্পর্কে তথাকথিত অন্ধ এসকিউএল ইঞ্জেকশন (এটি আরও পরে) একের সাথে সম্ভব হয়েছিল বিস্তৃত গ্রাহক ডাটাবেস অ্যাক্সেস করতে।

এসকিউএলআই হ্যাকারদের কাছে এত জনপ্রিয় হওয়ার কারণ হ'ল এটি খুব সাধারণ আক্রমণ। 2018 সালে লাস ভেগাসে অনুষ্ঠিত 26 তম ডিইএফ কন হ্যাকিং সম্মেলনে, এগারো বছর বয়সী এক শিশু এসকিউএলির মাধ্যমে দশ মিনিটের মধ্যে ফ্লোরিডা রাজ্য নির্বাচন উপস্থিতির ওয়েবসাইটের একটি অনুলিপি হ্যাক করতে এবং এটিকে পরিচালনা করতে সক্ষম হয়েছিল।

অন্যদিকে, প্রতিরক্ষা ব্যবস্থাগুলি যতটা কার্যকর তত কার্যকর। নিম্নলিখিতটিতে, বিভিন্ন ধরণের এসকিউএলআই বর্ণনা করা হয় এবং প্রতিরক্ষা সংক্রান্ত বিকল্পগুলি উপস্থাপন করা হয়।

ছায়াময় প্রকারের

কী ধরণের এসকিউএল ইঞ্জেকশন জড়িত তা বিবেচনা না করেই, প্রতিবার আক্রমণকারী কোনও ওয়েব অ্যাপ্লিকেশনের ডাটাবেস ক্যোয়ারিতে নির্বিচারে এসকিউএল কোড প্রেরণ করে। এটি বিভিন্ন উপায়ে ঘটতে পারে।

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

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

অন্ধ এসকিউএল টাইপ আক্রমণগুলি ওয়েব অ্যাপ্লিকেশনগুলিতে আক্রমণ যাগুলি এসকিউএলআইকে সক্রিয়ভাবে অবরুদ্ধ করে না, তবে ইঞ্জেকশনের ফলাফল দৃশ্যমানভাবে প্রদর্শন করে না। পরিবর্তে, তারা হয় কোনও আপাত প্রতিক্রিয়া, বা সাধারণ ত্রুটি বার্তাগুলি প্রদর্শন করে না, উদাহরণস্বরূপ, এসকিউএল কোয়েরির বাক্য গঠনটি ভুল বলে নির্দেশ করে। যদিও পৃষ্ঠাটি এই ক্ষেত্রে কোনও ডেটা সরবরাহ করে না, বৈধ এসকিউএল ইনজেক্ট করা লজিক্যাল স্টেটমেন্টের ফলাফলের উপর নির্ভর করে এটি কিছুটা আলাদা।

তথ্যটি এই পদ্ধতিতে সরাসরি চিহ্নিত করা যায়নি, বরং সত্য বা মিথ্যা প্রশ্নের একটি সিরিজের মাধ্যমে এবং তারপরে ডাটাবেস থেকে সরানো হয়েছে। এই পদ্ধতিটি খুব সময় সাশ্রয়ী বলে মনে করা হয়। তবে একবার দুর্বলতা এবং পছন্দসই তথ্য পাওয়া গেলে, আক্রমণগুলির সেটগুলির একটি সরঞ্জামের সাহায্যে স্বয়ংক্রিয় করা যেতে পারে।

সেকেন্ড-অর্ডার এসকিউএল ইঞ্জেকশন আক্রমণগুলি স্নিগ্ধর মধ্যে অন্যতম, কারণ তারা তত্ক্ষণাত কার্যকর হয় না, তবে পরবর্তী সময়ে। এই জাতীয় দূষিত কিন্তু নিষ্ক্রিয় এসকিউএল আদেশগুলি অ্যাপ্লিকেশন দ্বারা সঠিকভাবে এনকোড করা যায় এবং ডাটাবেসে বৈধ এসকিউএল হিসাবে সংরক্ষণ করা যায়। তারপরে, যদি অ্যাপ্লিকেশনটির অন্য কোনও অংশ, যা এসকিউএলআইয়ের বিরুদ্ধে সুরক্ষিত নাও হতে পারে, তবে স্টোরেজ এসকিউএল স্টেটমেন্টটি অন্য প্রসঙ্গে প্রয়োগ করে, সময়-বিলম্বিত আক্রমণ শুরু হবে।

একটি সাধারণ এসকিউএলআই আক্রমণের উদাহরণ

উদাহরণস্বরূপ, ধরুন কোনও সংস্থা একটি ওয়েব অ্যাপ্লিকেশন তৈরি করেছে যেখানে গ্রাহকরা তাদের গ্রাহকের নম্বর প্রবেশ করে তাদের প্রোফাইল অ্যাক্সেস করতে পারবেন। অ্যাপ্লিকেশনটির সম্মুখভাগ প্রবেশ করা নম্বরটিকে ব্যাকএন্ডে পুনঃনির্দেশ করে। ডাটাবেসটি একটি এসকিউএল কল চালায় এবং ফলাফলটি প্রয়োগ করে, যা এটি ব্যবহারকারীকে প্রদর্শন করে।

সুতরাং আমাদের ব্যবহারকারী তার সম্মুখভাগে 1234567 নম্বর প্রবেশ করান।

ব্যাকএন্ডে থাকা ক্যোয়ারীটি এর মতো দেখতে পারে:

নির্বাচন করুন *

গ্রাহকদের কাছ থেকে

যেখানে গ্রাহক_আইডি = '1234567'

মনে করুন ব্যবহারকারী পরিবর্তে ওয়েব ফর্মের কোনও ক্ষেত্রে নিম্নলিখিত গ্রাহক নম্বরটিতে প্রবেশ করেছে:

1234567; * গ্রাহকদের যেখানে '1' = '1 মুছুন

ব্যাকএন্ডে থাকা ডাটাবেসগুলি তখন এই এসকিউএল চালিত করে:

নির্বাচন করুন *

গ্রাহকদের কাছ থেকে

WHERE গ্রাহক_আইডি = '1234567';

মুছে ফেলুন *

গ্রাহকদের কাছ থেকে

যেখানে 'x' = 'এক্স'

ডেটাবেসগুলি সেমিকোলন (;) দ্বারা পৃথক করে একাধিক এসকিউএল স্টেটমেন্ট কার্যকর করে। যদি একক উদ্ধৃতি চিহ্ন (') এর জন্য ইনপুট ছাঁটাই না করা হয় তবে আক্রমণকারী পুরো টেবিলটি মুছতে পারে

এটি ইচ্ছাকৃতভাবে সহজ উদাহরণ, তবে প্রতিটি এসকিউএলআই একই নীতিতে কাজ করে: একটি ওয়েব অ্যাপ্লিকেশনের মাধ্যমে সীমাহীন ইনপুটের মাধ্যমে, ডাটাবেসের যে কোনও এসকিউএল কোড কার্যকর করা হয়।

Eingaben bereinigen, Zfsrechte beschränken und die Verwendung von Stored Procedures sowie Prepared Statements heben das grundlegende Schutzniveau gegen SQLi erheblich.
এন্ট্রিগুলি পরিষ্কার করুন, অ্যাক্সেস রাইটসকে সীমাবদ্ধ করুন এবং সঞ্চিত পদ্ধতি এবং প্রস্তুত বিবৃতিগুলির ব্যবহার এসকিউএলআইয়ের বিরুদ্ধে সুরক্ষার প্রাথমিক স্তরে উল্লেখযোগ্যভাবে বৃদ্ধি করে।
ছবি: জো তেচাপানুপ্রেদা - শাটারস্টক ডটকম

আগুন দিয়ে আগুন যুদ্ধ

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

উদাহরণস্বরূপ, এসকিউএলম্যাপটি একটি ভাল বিকল্প হিসাবে এটি মাইএসকিউএল, ওরাকল, পোস্টগ্র্রেএসকিউএল, মাইক্রোসফ্ট এসকিউএল সার্ভার, মাইক্রোসফ্ট অ্যাকসেস, আইবিএম ডিবি 2 এবং এসএপি ম্যাক্সডিবি সহ প্রায় প্রতিটি বড় ডাটাবেস সমর্থন করে। এটি সমস্ত বড় অপারেটিং সিস্টেমের জন্য উপলব্ধ এবং ওয়েব অ্যাপ্লিকেশনগুলিতে সর্বাধিক সাধারণ ইঞ্জেকশন লুফোলগুলি স্বীকৃতি দেয়। এটি নির্ধারণ করা সহজ করে তোলে ইনপুট শুদ্ধ করার ব্যবস্থাগুলি আসলে কাজ করে কিনা।

এসকিউএলআই আবিষ্কার করুন

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

এসকিউএলআই প্রতিরোধ করুন

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

কর্পোরেট আইটি-তে আক্রমণভাগের বেশিরভাগ পৃষ্ঠের মতোই, ভাল প্যাচ স্বাস্থ্যকরন অনেক সমস্যা সমাধান করে। এটি নিয়মিতভাবে অ্যাপ্লিকেশন এবং ডেটাবেজে দুর্বলতাগুলি উদ্ঘাটন করে এবং ঠিক করে যা হ্যাকাররা এসকিউএল ইঞ্জেকশনের জন্য ব্যবহার করতে পারে। অতএব, প্যাচগুলি এবং আপডেটগুলি আপ টু ডেট রাখাই গুরুত্বপূর্ণ।

প্রাথমিক সুরক্ষার জন্য, এসকিউএল মাধ্যমে ডেটাবেস অ্যাক্সেস এমনভাবে পরিচালনা করা উচিত যাতে মৃত্যুদণ্ড কার্যকর হওয়ার আগে সমস্ত ইনপুট ব্যতিক্রম ছাড়াই পরিষ্কার হয়ে যায়। এর অর্থ হ'ল অস্বাভাবিক অক্ষরগুলি ম্যানিপুলেশন নির্দেশ করে এবং ইনপুটটি ভুলভাবে কমান্ড হিসাবে নেওয়া হবে না তা নিশ্চিত করার জন্য এস্কেপ সিকোয়েন্সগুলির মতো পদক্ষেপগুলি ব্যবহার করে। এছাড়াও, প্রসঙ্গ অনুসারে সমস্ত এন্ট্রি ফিল্টার করার পরামর্শ দেওয়া হয়। উদাহরণস্বরূপ, কোনও ফোন নম্বর কেবলমাত্র সংখ্যাসমূহ প্রবেশের অনুমতি দেয়। তথাকথিত প্রস্তুত বিবৃতিগুলি কোনও জিজ্ঞাসার উদ্দেশ্যকে পরিবর্তন হতে বাধা দেয়, এমনকি যদি কোনও আক্রমণকারী বিভিন্ন কমান্ডে টাইপ করে।

যদি সাফ হওয়া সত্ত্বেও একটি ফাঁক রয়েছে এমন পরিস্থিতিতে, ডাটাবেস ব্যবহারকারীদের অ্যাকাউন্ট সুবিধার সীমাবদ্ধ করা গুরুত্বপূর্ণ। ন্যূনতম অনুমতি নীতি প্রয়োগ করা উচিত। অ্যাপ্লিকেশনটির কাজ করার জন্য চালচালনের জন্য কেবল পর্যাপ্ত জায়গা রয়েছে - আর নেই। উদাহরণস্বরূপ, ওয়েব অ্যাপ্লিকেশন কেবল পঠনের অনুমতি পেতে পারে তবে কোনও লেখার অনুমতি পায় না। এছাড়াও, "ড্রপ ট্যাবলেটস" এর মতো কমান্ডগুলি, যা সম্পূর্ণ ডাটাবেস মুছে দেয়, কার্যকর করা উচিত নয়।

এছাড়াও, সঞ্চিত পদ্ধতিগুলি, যা একক কল দিয়ে ডাটাবেসে সঞ্চিত কমান্ডগুলির ক্রম সম্পাদন করে, এসকিউএলআইকে আরও শক্ত করে তোলে - যদি অসম্ভব না হয়। যদি ওয়েব অ্যাপ্লিকেশনটির জন্য কেবল কয়েকটি এসকিউএল ক্যুরিয়ারি চালানো দরকার হয় তবে এটির জন্য সঞ্চিত পদ্ধতিগুলি লেখা উচিত। সাধারণভাবে, কেবলমাত্র ডাটাবেস প্রশাসক সেগুলি তৈরি এবং সম্পাদনা করার জন্য অনুমোদিত। এটি লক্ষণীয় গুরুত্বপূর্ণ যে ইতিমধ্যে আক্রমণকারীদের কাছে পরিচিত অনেকগুলি ডাটাবেসে রেডিমেড স্টোরেজ প্রক্রিয়া রয়েছে। এগুলি একেবারে প্রয়োজনীয় না হলে সেগুলি সরিয়ে ফেলা উচিত।

যত্ন সেরা সুরক্ষা

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

আকর্ষণীয় নিবন্ধ

প্রস্তাবিত