অজানা উত্স থেকে ব্যাকআপ পুনরুদ্ধার করার সুরক্ষা?


31

পরিস্থিতি : আপনাকে একটি ডাটাবেস ব্যাকআপ দেওয়া হয়েছে এবং এটি একটি সার্ভারে পুনরুদ্ধার করতে বলা হয়েছে (এটি ইতিমধ্যে অন্যান্য ডাটাবেসগুলি হোস্ট করছে) তবে ব্যাকআপটি কী আছে বা উত্সটি বিশ্বাসযোগ্য হওয়া উচিত কিনা সে সম্পর্কে কোনও কার্যকর তথ্য দেওয়া হয়নি।

প্রশ্ন 1 : ভালভাবে দূষিত হতে পারে এমন ব্যাকআপ পুনরুদ্ধার করার সম্ভাব্য প্রভাবগুলি কী কী?

প্রশ্ন 2 : আপনি সম্ভাব্য-দূষিত ব্যাকআপ পুনরুদ্ধারের প্রভাব থেকে অন্য ডাটাবেসে আপনার সার্ভার / ডেটা রক্ষা করতে আপনি কী করতে পারেন? RESTORE VERIFYONLYএকটি ভাল প্রথম পদক্ষেপ বলে মনে হবে। চূড়ান্ত উত্তরটি সম্ভবত 'বাহ্যিক বিশ্বের অ্যাক্সেসবিহীন একটি স্যান্ডবক্স ভিএম-তে ডাটাবেস পুনরুদ্ধার করুন', তবে আসুন ধরে নেওয়া যাক বিকল্পটি টেবিলের বাইরে রয়েছে। এই পরিস্থিতিতে আর কী করা উচিত?


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

খুব আশ্চর্যজনক কেউ সিএলআর পদ্ধতি বা কার্যকারিতাগুলির সম্ভাব্য ঝুঁকি উল্লেখ করেনি। (ডিফল্টরূপে আর অক্ষম থাকবে না)
ALZDBA

উত্তর:


21

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

এসকিউএল সার্ভারটি কোনও সার্ভারে পুনরুদ্ধার করার পরে ডাটাবেসের মধ্যে কিছু বিট কোড স্বয়ংক্রিয়ভাবে কার্যকর করতে কোনও ডাটাবেসের মধ্যে প্রয়োগ করা যায় এমন কোনও সেটিং নেই। এটি যদি আমি করতাম তবে মাইক্রোসফ্ট পণ্যটির জন্য সাধারণ মাপদণ্ডের শংসাপত্রটি আলগা করে দেবে expect এটি আমার কাছে কোনও ডিবিএমএসে থাকা বাগের ত্রুটিযুক্ত।


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

পরিষেবা ব্রোকারের মাধ্যমে কী ধরণের কোড কার্যকর করা যেতে পারে? আমি কখনই এটি ব্যবহার করি না বা সেট আপ করি না।
শন মেল্টন

সক্রিয়করণ সঞ্চিত পদ্ধতি। টেকনেট.মাইক্রোসফট.ইন- ইউস
জন সেগেল

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

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

11

কিছু প্রতিরোধের পদক্ষেপ রয়েছে যা আপনি করতে পারেন।

  1. নিশ্চিত হয়ে নিন যে পুনরুদ্ধার করা ডাটাবেসে একজন সিসাদমিন ছাড়া অন্য কারও অ্যাক্সেস নেই।
  2. পুনরুদ্ধার সম্পন্ন হওয়ার পরে একক ব্যবহারকারী মোডে ডিবি রাখুন।
  3. সমস্ত ডাটাবেসের ভিতরে সঞ্চিত পদ্ধতি এবং ফাংশন এবং ট্রিগারগুলির কোড পরীক্ষা করে দেখুন।
  4. কোনও সততা সংক্রান্ত সমস্যা নেই তা নিশ্চিত করার জন্য একটি ডিবিসিসি চেকডিবি সঞ্চালন করুন।
  5. ব্যবহারকারীরা যা ডাটাবেসে অ্যাক্সেস পেয়েছিল এবং তাদের সবগুলি মুছে ফেলা হয়েছে তা পরীক্ষা করুন।
  6. আপনার দ্বারা পরীক্ষিত নির্দিষ্ট অবজেক্টগুলিতে খুব সীমাবদ্ধ অ্যাক্সেসের অনুমতি দেওয়া শুরু করুন।

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


10

আমি এখানে পৌঁছনো, কিন্তু আমি অন্তত একটি বিপজ্জনক পরিস্থিতি মনে করতে পারেন: আপনি একটি ডাটাবেস একটি আছে পুনঃস্থাপন filetable , ঐ ফাইলগুলি এখন আপনার নেটওয়ার্কে ডিফল্টরূপে (আপনার SQL সার্ভার এবং বিশেষভাবে) আছে। আপনি একটি ভাইরাস পুনরুদ্ধার করতে পারে।

এটি নিজেই কিছু করবে না, অবশ্যই - ভাইরাসটি হঠাৎ সংবেদনশীল হয়ে ওঠে না - তবে আপনার ব্যবহারকারীরা যদি ফাইলটি অ্যাক্সেস করার চেষ্টা করেন তবে তারা সংক্রামিত হতে পারে। (আরে, আমি বলেছিলাম যে আমি পৌঁছেছি।) আমি এমন একটি দৃশ্য কল্পনা করছি যেখানে বাইরের হ্যাকার দরজাতে ম্যালওয়্যার পেতে চায় এবং তারপরে তিনি অ্যাকাউন্টে ববকে একটি ইমেল প্রেরণ করে বলেছিলেন, "এই ফাইলটি এখানে রয়েছে: q sqlserver \ filetableshare \ myvirus.exe "- সেই সময়ে এটি সনাক্ত না করেই আপনার ফায়ারওয়ালগুলি পেরিয়ে গেছে এবং আমরা এখন আপনার অভ্যন্তরীণ অ্যান্টিভাইরাস এবং অ্যান্টি-ম্যালওয়্যার সরঞ্জামগুলিতে নেমে এসেছি।


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

@ রেমুস রুসানু রকেটগুলি মস্কোতে চালাবেন, হাহাহাহা, দুর্দান্ত!
ব্রেন্ট ওজার

সামাজিক প্রকৌশল দৃষ্টিকোণ পছন্দ। একটি .bak ফাইল সহ একটি লক্ষ্যযুক্ত ইমেল লক্ষ্য উপর নির্ভর করে খুব আকর্ষণীয় হতে পারে।
ম্যাক্স ভার্নন

7

সত্যায়িত পুনরুদ্ধার একটি ভাল প্রথম পদক্ষেপ বলে মনে হবে। চূড়ান্ত উত্তরটি সম্ভবত 'বাহ্যিক বিশ্বের অ্যাক্সেসবিহীন একটি স্যান্ডবক্স ভিএম-তে ডাটাবেস পুনরুদ্ধার করুন', তবে আসুন ধরে নেওয়া যাক বিকল্পটি টেবিলের বাইরে রয়েছে। এই পরিস্থিতিতে আর কী করা উচিত?

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

মাইক্রোসফ্ট অনলাইন ডকুমেন্টেশন বলছে যে

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


7

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

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


ভাল যুক্তি. আমি অগত্যা "বৈধ ব্যাকআপ যাতে ম্যালওয়্যার রয়েছে" ফোকাস করা উচিত নয়, একটি অবৈধ ব্যাকআপের মাধ্যমে এসকিউএল সার্ভার ক্রাশ করাও "কী ভুল হতে পারে?" এর পুরোপুরি প্রাসঙ্গিক উত্তর?
সাইমন রিঘর্টস

5

অজানা উত্স থেকে কোনও অজানা ডাটাবেস পুনরুদ্ধার করার কী ঝুঁকি রয়েছে? কোনটিই নয়।

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


2

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

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

যদি তারা এই জাতীয় বিবৃতিতে স্বাক্ষর না করে তবে কিছু করার আগে তাদের উচ্চতর (গুলি) কে সতর্ক করুন। একজন পেশাদার হিসাবে, আপনার সিস্টেমকে যথাসম্ভব সুরক্ষা দেওয়া আপনার দায়িত্ব, কিছুটা বুদ্ধিমান উচ্চতর আপনাকে আদেশ করার আদেশ দেয় না কেন। আপনি বরখাস্ত হতে পারেন, তবে আপনি আপনার মাথা ধরে রাখতে পারেন এবং জানেন যে আপনি সঠিক কাজটি করেছেন।


2

এখানে প্রতি সুদূরপ্রসারী কিছু বাদে বলা যায় যে বিপদগুলি অনেক বেশি নয়। যেমনটি উল্লেখ করা হয়েছিল, একটি ডাটাবেস ব্যাকআপে স্বয়ংক্রিয়ভাবে চালিত স্টাফ থাকা শক্ত hard এটির জন্য একরকম বাহ্যিক ট্রিগার প্রক্রিয়া দরকার।

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

আপনার ডিবিএর অখণ্ডতা এবং আপনার উত্পাদনের পরিবেশের সুনিশ্চিত হওয়া কোনও উচ্চতর কর্তৃক প্রদত্ত যে কোনও আদেশের চেয়ে গুরুত্বপূর্ণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.