এসকিউএল ইনজেকশন আক্রমণ ডায়নামিক কন্টেন্ট জেনারেট করার জন্য একটি ডাটাবেস ব্যাকএন্ড উপর নির্ভর করে ওয়েব অ্যাপ্লিকেশনগুলিতে অসাধারণ ঝুঁকি সৃষ্টি করে। আক্রমণের এই প্রকারে, হ্যাকার ডাটাবেসের দ্বারা জারি করা তাদের নিজস্ব এসকিউএল কমান্ডগুলিকে ইনজেক্ট করার জন্য একটি ওয়েব অ্যাপ্লিকেশনটি ম্যানিপুলেট করে। উদাহরণস্বরূপ, অনুচ্ছেদে এসকিউএল ইনজেকশন আক্রমণের নিবন্ধ দেখুন। এই প্রবন্ধে, আমরা আপনার ওয়েব অ্যাপ্লিকেশনগুলি পরীক্ষা করতে পারি এমন কয়েকটি উপায়ে নজর রাখুন যাতে তারা SQL ইনজেকশন আক্রমণের ঝুঁকিপূর্ণ কিনা তা নির্ধারণ করতে পারে।
স্বয়ংক্রিয় এসকিউএল ইনজেকশন স্ক্যানিং
একটি সম্ভাবনা একটি স্বয়ংক্রিয় ওয়েব অ্যাপ্লিকেশন দুর্বলতা স্ক্যানার ব্যবহার করা হচ্ছে, যেমন এইচপি এর ওয়েব ইনস্পেক্ট, আইবিএম এর অ্যাপসকান বা সেনজিক্স হাইলস্টর্ম। এই সরঞ্জামগুলি সমস্ত সম্ভাব্য এসকিউএল ইনজেকশন দুর্বলতার জন্য আপনার ওয়েব অ্যাপ্লিকেশন বিশ্লেষণ সহজ, স্বয়ংক্রিয় উপায় প্রস্তাব। তবে, তারা বেশ ব্যয়বহুল, সীট প্রতি $ 25,000 পর্যন্ত চলমান।
ম্যানুয়াল এসকিউএল ইনজেকশন টেস্ট
একটি দরিদ্র অ্যাপ্লিকেশন বিকাশকারী কি কি? আপনি কোনও ওয়েব ব্রাউজারের চেয়ে বেশি কিছু ব্যবহার করে এসকিউএল ইনজেকশন দুর্বলতার জন্য আপনার ওয়েব অ্যাপ্লিকেশনগুলি মূল্যায়ন করতে কিছু মৌলিক পরীক্ষা চালাতে পারেন। প্রথমত, সাবধানতার একটি শব্দ: আমরা যেসব পরীক্ষাগুলি বর্ণনা করি কেবলমাত্র মৌলিক এসকিউএল ইনজেকশন ত্রুটিগুলি সন্ধান করে। তারা উন্নত কৌশল সনাক্ত করবে না এবং ব্যবহার করার জন্য কিছুটা ক্লান্তিকর। আপনি এটি সামর্থ্য দিতে পারেন, একটি স্বয়ংক্রিয় স্ক্যানার সঙ্গে যান। তবে, আপনি যদি মূল্যের মূল্যটি পরিচালনা করতে না পারেন তবে ম্যানুয়াল পরীক্ষার একটি দুর্দান্ত পদক্ষেপ।কোনও অ্যাপ্লিকেশনটি দুর্বল কিনা তা মূল্যায়ন করার সবচেয়ে সহজ উপায় হল নিরীহ ইনজেকশন আক্রমণের সাথে পরীক্ষা করা যা আসলেই আপনার ডেটাবেসকে ক্ষতিগ্রস্ত করবে না যদি এটি সফল হয় তবে আপনাকে একটি প্রমাণটি সংশোধন করতে হবে এমন প্রমাণ সরবরাহ করবে। উদাহরণস্বরূপ, ধরুন আপনার একটি সহজ ওয়েব অ্যাপ্লিকেশন রয়েছে যা একটি ডাটাবেসের মধ্যে একজন ব্যক্তির সন্ধান করে এবং ফলাফল হিসাবে যোগাযোগের তথ্য সরবরাহ করে। যে পৃষ্ঠাটি নিম্নলিখিত URL ফর্ম্যাট ব্যবহার করতে পারে: http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike
আমরা অনুমান করতে পারি যে এই পৃষ্ঠাটি অনুরূপ একটি ক্যোয়ারী ব্যবহার করে একটি ডাটাবেস সন্ধান সঞ্চালন করে: ফোন নির্বাচন করুন
ডিরেক্টরি থেকে
যেখানে শেষ নাম = 'চ্যাপেল' এবং firstname = 'মাইক'
চলুন এই একটি বিট সঙ্গে পরীক্ষা। উপরে আমাদের ধারণার সাথে, আমরা URL এ সহজ পরিবর্তন করতে পারি যা এসকিউএল ইনজেকশন আক্রমণগুলির জন্য পরীক্ষা করে: http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1
যদি ওয়েব অ্যাপ্লিকেশনটি এসকিউএল ইনজেকশন এর বিরুদ্ধে সঠিকভাবে সুরক্ষিত না হয় তবে এটি কেবল এই জাল প্রথম নামটিকে এসকিউএল বিবৃতিতে ডাটাবেসটির বিরুদ্ধে চালানো হয়, যার ফলস্বরূপ: ফোন নির্বাচন করুন
ডিরেক্টরি থেকে
যেখানে শেষ নাম = 'চ্যাপেল' এবং firstname = 'মাইক'
এবং (জাল থেকে গণনা নির্বাচন করুন *)> 0
অথবা '1' = '1'
আপনি লক্ষ্য করবেন যে উপরে বর্ণিত সিনট্যাক্সটি মূল URL এর চেয়ে একটু আলাদা। ইউআরএল-এনকোডেড পরিবর্তনশীলকে তাদের ASCII সমতুল্যগুলির জন্য রূপান্তর করার স্বাধীনতা গ্রহণ করা সহজ করে তুলতে আমরা উদাহরণটি অনুসরণ করা সহজ করে দিয়েছি। উদাহরণস্বরূপ,% 3d হল '=' চরিত্রের জন্য URL-এনকোডিং। আমরা একই উদ্দেশ্যে জন্য কিছু লাইন বিরতি যোগ। আপনি যখন উপরে তালিকাভুক্ত URL টি দিয়ে ওয়েবপৃষ্ঠা লোড করার চেষ্টা করেন তখন পরীক্ষা আসে। যদি ওয়েব অ্যাপ্লিকেশনটি ভাল আচরণ করে তবে এটি ডাটাবেসের কাছে ক্যোয়ারীটি পাস করার আগে ইনপুট থেকে একক উদ্ধৃতিগুলি বের করে দেবে। এটি কেবল একটি প্রথম নাম সহ এমন কারো জন্য একটি অদ্ভুত সন্ধানের ফলাফল পাবে যা SQL এর গুচ্ছ অন্তর্ভুক্ত করে। নিচের অ্যাপ্লিকেশনের অনুরূপ অ্যাপ্লিকেশন থেকে আপনি একটি ত্রুটি বার্তা দেখতে পাবেন: ত্রুটি: কোনও ব্যবহারকারী মাইক + এবং + (+ নির্বাচন + গণনা (*) + জাল থেকে + পাওয়া যায়) +% 3e0 + OR + 1% 3d1
চ্যাপেল!
অন্যদিকে, যদি অ্যাপ্লিকেশনটি এসকিউএল ইনজেকশনটির জন্য ঝুঁকিপূর্ণ হয় তবে এটি সরাসরি ডাটাবেসের কাছে বিবৃতিটি প্রেরণ করবে, এর ফলে দুটি সম্ভাব্যতার মধ্যে একটি হতে পারে। প্রথমত, যদি আপনার সার্ভারের বিস্তারিত ত্রুটির বার্তাগুলি সক্রিয় থাকে (যা আপনাকে না করা উচিত), তাহলে আপনি এটিকে দেখতে পাবেন: মাইক্রোসফট ওএলবি ডিবি প্রোভাইডার ওডিবিসি ড্রাইভারের ত্রুটির জন্য '80040e37'
মাইক্রোসফট ওডিবিসি এসকিউএল সার্ভার ড্রাইভার এসকিউএল সার্ভার অবৈধ বস্তুর নাম 'জাল'।
/directory.asp, লাইন 13
অন্যদিকে, যদি আপনার ওয়েব সার্ভার বিস্তারিত ত্রুটির বার্তাগুলি প্রদর্শন না করে তবে আপনাকে আরো জেনেরিক ত্রুটি পাবেন, যেমন: অভ্যন্তরীণ সার্ভার ত্রুটিসার্ভারটি একটি অভ্যন্তরীণ ত্রুটি বা ভুল কনফিগারেশন সম্মুখীন হয়েছে এবং আপনার অনুরোধটি সম্পূর্ণ করতে অক্ষম ছিল।
ত্রুটির সময় সম্পর্কে জানার জন্য সার্ভার প্রশাসকের সাথে যোগাযোগ করুন এবং আপনি যা কিছু করতে পারেন তা ত্রুটিটির কারণ হতে পারে।
এই ত্রুটি সম্পর্কে আরও তথ্য সার্ভার ত্রুটির লগ পাওয়া যেতে পারে।
আপনি যদি উপরে দুটি ত্রুটিগুলির মধ্যে একটি পেয়ে থাকেন তবে আপনার অ্যাপ্লিকেশনটি এসকিউএল ইনজেকশন আক্রমণের পক্ষে ঝুঁকিপূর্ণ। এসকিউএল ইনজেকশন আক্রমণের বিরুদ্ধে আপনার অ্যাপ্লিকেশনগুলি সুরক্ষার জন্য আপনি নিতে পারেন এমন কয়েকটি পদক্ষেপের মধ্যে রয়েছে: ফলাফল মূল্যায়ন




