অনেক টেকির মতো, আমি সম্প্রতি ইন্টারনেট এক্সপ্লোরার লিগ্যাসি স্ক্রিপ্টিং ইঞ্জিন (jscript.dll) এর একটি নতুন ক্রিটিক্যাল বালনरेবিলিটি এবং কীভাবে এটি সক্রিয়ভাবে এক্সপ্লয়েট হচ্ছে সে সম্পর্কে পরামর্শের ঝড় পড়েছি। নিজে থেকে, এটি ঘটতে পারে। কিন্তু যা আমাকে চিড়িয়েছিল সেটি হলো ওয়েব জগতের চারদিকে গ্লুম অ্যান্ড ডুম (gloom and doom) আভাস। অধিকাংশ প্যানিক, এই সমস্যাটি বিশ্লেষণ করার এবং দেখার”上 কEndeavour নেই যে এটি একটি elegante (সুন্দর) উপায়ে মিটিগেট করা যায় কিনা।
আসলে, মাইক্রোসফট একটি ওয়ার্কঅরাউন্ড লিস্ট করেছে - আপনি প্রভাবিত লাইব্রেরিতে অ্যাক্সেস ডিনাই (deny) করতে পারেন। কিন্তু এটি সাইড ইফেক্টও তৈরি করে। আপনি প্রিন্টিং, গ্রুপ পলিসি এডিটর অ্যাক্সেস, এবং কিছু অন্যান্য সমস্যা দেখতে পারেন। তাই আমি বসে চিন্তা করলাম, সিস্টেমকে সব Wonky (বিকৃত) না করে বালনরেবিলিটির প্রভাব কমানোর উপায় আছে কিনা?
সমস্যার পরিধি
বালনরেবিলিটি (ইন্টারনেট এক্সপ্লোরার) স্ক্রিপ্টিং ইঞ্জিনে বিদ্যমান। এর মানে যে কোনো প্রোগ্রাম যা এই ইঞ্জিনকে কল করে সেটি পটেনশিয়ালি মেমরি করাপশন ট্রিগার করতে পারে, এবং পটেনশিয়ালি আর্বিট্রারি কোড এক্সিকিউশনের দিকে নিয়ে যেতে পারে। প্রావাল্যভাবে, এর মানে ইন্টারনেট এক্সপ্লোরার, সম্ভবত মাইক্রোসফট অফিস, এবং হয়তো কিছু অদ্ভুত লিগ্যাসি অ্যাপ্লিকেশন, যা সাধারণ হোম এনভায়রনমেন্টে পাওয়া যাবে না।
সমাধান হলো ইন্টারনেট এক্সপ্লোরার রান না করা - এবং অন্যান্য প্রোগ্রামে অজানা ফাইল বা লিংক খোলা না করা। এটা সবসময় সত্য, যাই হোক। সমস্যাটি হলো, আপনি "অকস্মাত" ইন্টারনেট এক্সপ্লোরার খুললে কি হবে এমন একটি পেজে যা এই বালনরেবিলিটি ট্রিগার করতে পারে?
ইন্টারনেট এক্সপ্লোরার চালাবেন না
উইন্ডোজে দীর্ঘদিন ধরে নির্দিষ্ট অ্যাপ্লিকেশন ডিসঅ্যালো (disallow) করার অপশন আছে। এটি রেজিস্ট্রি বা গ্রুপ পলিসি এডিটর (প্রো ভার্সন ব্যবহারকারীদের জন্য) এর মাধ্যমে বাস্তবায়ন করা যায়, এবং লিস্ট করা প্রোগ্রামগুলো রান হতে বাধা দেয়। স্পেসিফিক্যালি, gpedit.msc লঞ্চ করুন, User Configuration > System-এ যান, এবং সেই পলিসি খুলুন যেটি পড়ে: Don't run specified Windows applications.
পলিসিটি ইনেইবল করুন। এবং তারপর, Options: এর অধীনে, Show-এ ক্লিক করুন এবং ডিসঅ্যালোড অ্যাপ্লিকেশন লিস্টে iexplore.exe যোগ করুন।
এখন, এটি অ্যাডভার্টাইজড মতো কাজ করে - কিন্তু শুধু তখনই যখন আপনি উইন্ডোজ এক্সপ্লোরার বা স্টার্ট মেনু ব্যবহার করে প্রোগ্রাম লঞ্চ করেন। এটি অন্যান্য মাধ্যমে অ্যাক্সেস ব্লক করবে না, এবং নই jscript.dll লাইব্রেরি ব্যবহার করা অ্যাপ্লিকেশনগুলোকে রোকবে। চিন্তা করবেন না, আমরা সেখানে যাব। আমি ধীরে ধীরে, লিনিয়ারলি প্রগতি করছি।
এবং অ্যাপ্লিকেশন যোগ করার জন্য রেজিস্ট্রি পাথ হলো:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
Image File Execution Options (IFEO)
আমরা GWX প্রসঙ্গে এই সুপার-ইউজফুল এবং পাওয়ারফুল ফিচারের কথা বলেছি। আপনি আপনার সিস্টেমের যেকোনো প্রোগ্রাম কীভাবে behave করে সেটা পরিবর্তন করতে এটি ব্যবহার করতে পারেন। মূলত, আমরা ডিবাগার ফাংশনালিটি ব্যবহার করব, এবং এইভাবে iexplore.exe-এর এক্সিকিউশনকে এর ডিফল্ট বিহেভিয়র থেকে একটি খালি cmd শেল চালানোর দিকে পরিবর্তন করব। মূলত, একটি ডামি রান যা কিছুই করে না এবং কোনো জাভাস্ক্রিপ্ট লাইব্রেরি ইনভোক করে না।
এটি করবে কী? এটি আপনাকে "রান" ইন্টারনেট এক্সপ্লোরার দেবে, কিন্তু পুরো রানটাইম কেবল কমান্ড প্রম্পট শেল স্পন (spawn) করবে যা সিম্পলি এক্সিট করবে। এর মানে, আপনি ইন্টারনেট এক্সপ্লোরার যেভাবে ইনভোক করুন না কেন, এটি আসলে রান করবে না, jscript.dll লাইব্রেরি মেমরিতে লোড হওয়ার রিস্ক কমিয়ে দেবে।
এখানে দ্রষ্টব্য, এটি শুধু ইন্টারনেট এক্সপ্লোরারকে প্রভাবিত করে, এবং অন্যান্য প্রোগ্রাম লাইব্রেরি ব্যবহার করার থেকেও বাধা দেয় না, যেমন মাইক্রোসফট ওয়ার্ড একটি ম্যালফর্মড এমবেডেড অবজেক্ট সহ ডকুমেন্ট দেখাচ্ছে যা jscript.dll ফাংশন রেফারেন্স করে। কিন্তু এটি লাইব্রেরি ব্যবহারের রিস্ক কমিয়ে দেয়, বিশেষ করে ইন্টারনেট এক্সপ্লোরার-এর মতো নেটওয়ার্ক-ক্যাপেবল প্রোগ্রামের দ্বারা। আপনার সিস্টেমের অন্যান্য টুলগুলো এখনও এই লাইব্রেরি রিকোয়ার করতে পারে, কিন্তু যদি তারা আবশ্যকভাবেই এক্সটার্নাল নেটওয়ার্ক রিসোর্সের সাথে কানেক্ট না করে, তবে রিস্ক কমে যায়।
IFEO-র কুল পার্ট হলো এটি রেজিস্ট্রি কী সেট করার বাইরে আর কিছুই দরকার নেই। আপনি যদি রিভার্ট-back করতে চান, শুধু Debugger স্ট্রিংটি ডিলিট করুন, এবং আপনার পুরানো ফাংশনালিটি ফিরে যাবে।
শেষে, আপনি যদি অ্যান্টি-ম্যালওয়্যার সফটওয়্যার ব্যবহার করেন, কিছু এটি IFEO হাইজ্যাক (hijack) হিসেবে দেখতে পারে। এই Фактের সচেতন থাকুন, এবং এগিয়ে যান, এবং হয়তো কম্পিউটার সিকিউরিটির একটি স্মার্টার উপায় আবার গ্রহণ করুন। কিন্তু এটি অন্য সময়ের টপিক।
jscript.dll-র কথা বলি
এখন, আমার উপরের কাজটি সমস্যাটি ফিক্স করে না। এটি এটির চারদিকে কাজ করে ইন্টারনেট এক্সপ্লোরার রান হয়ার চান্স কমিয়ে দিয়ে। প্রপার ফিক্স হলো লাইব্রেরি আপডেট করা। টেকনিক্যালি, আপনি "শুধু" নতুন প্যাচ করা ভার্সনটি পুরানোর উপরে কপি করতে পারেন, এবং কাজ শেষ। কিন্তু উইন্ডোজ আপডেট মেকানিজম একটু বেশি কমপ্লেক্স।
তাই মিটিগেশন হলো লাইব্রেরি থেকে এক্সিকিউটেবল পারমিশন সরানো। আপনি এটা কমান্ড লাইনে করতে পারেন, যেমন অ্যাডভাইজরি বলেছে, অথবা উইন্ডোজ এক্সপ্লোরার ব্যবহার করে করতে পারেন। কমান্ড লাইনের কারণ হলো (সিস্টেম) লাইব্রেরির ওনারশিপ নেওয়া, যাতে এর সিকিউরিটি সেটিংস পরিবর্তন করা যায়। অথবা, আপনি ExecTI ব্যবহার করে পারমিশন ম্যানিপুলেট করতে পারেন, একটি ইউটিলিটি যা আপনাকে হাইএস্ট প্রিভিলেজের সাথে প্রোগ্রাম রান করতে দেয়, যেমন আমি আমার উইন্ডোজ অ্যাডমিন ইউটিলিটির লিস্টে দেখিয়েছিলাম।
আপনি যা করতে চান সেটি হলো লিস্ট করা সব গ্রুপ বা ইউজারের জন্য Read & execute চেকবক্স মার্ক সরানো। কিন্তু তারপর, সাইড ইফেক্টগুলো! উদাহরণস্বরূপ, উপরে উল্লিখিত গ্রুপ পলিসি এডিটর সঠিকভাবে লঞ্চ হবে না যদি অ্যাডমিনিস্ট্রেটরদের জন্য এক্সিকিউট ডিনাই করা থাকে। এটি স্ট্যান্ডার্ড ইউজার হিসেবে রান করার গুরুত্বও উজাগর করে, কারণ আপনি ইউজারদের জন্য Jscript-এ নো এক্সিকিউট রাখতে পারেন, এবং আপনি এখনও ইন্টারনেট এক্সপ্লোরার ব্যবহার করতে পারবেন, সিস্টেম ফাংশনালিটির উপর কোনো প্রভাব ছাড়া।
JScript.dll এক্সিকিউট করার অনুমতি না থাকায় গ্রুপ পলিসি এডিটর। ভাঙা লে আউট।
কিন্তু যেহেতু এটাই সব কিছু, আপনি Read & execute ডিজেবল করতে পারেন, এবং এটি টগল করতে পারেন যখন আপনাকে দরকার, যতক্ষণ না আপনি অফিসিয়াল প্যাচ অ্যাপ্লাই করতে পারেন - যদি আপনি আসলে এটি অ্যাপ্লাই করতে চান। কিছু সিনেরিওতে, আপনি করতে নাও চান, বা পারেন না, এবং আপনাকে ইন্টারনেট এক্সপ্লোরার ব্যবহার করতে হতে পারে। কিন্তু হোম সেটআপে এটি সম্ভাব্য নয়। এবং আমি এন্টারপ্রাইজ সিকিউরিটির কথা বলছি না। তাই আপনার পিচফোर्कস (pitchforks) নিচে নামান। চূড়ান্তভাবে, আপনি ইন্টারনেট এক্সপ্লোরারের জন্যও একই জিনিসটি করতে পারেন - এক্সিকিউট পারমিশন সরান।
অন্যান্য জিনিস - লোকাল স্ক্রিপ্টিং
তারপর, আপনি যদি ইন্টারনেট এক্সপ্লোরার ব্যবহার করার প্রয়োজন পড়ে, আপনি ইন্টারনেট অপশনসের অধীনে Active Scripting ডিজেবল করতে পারেন। এটি পুরনো খবর, তাই আমি এখানে খুব ফোকাস করব না। একটি আরও প্র্যাক্টিক্যাল জিনিস হলো মাইক্রোসফট বেজড স্ক্রিপ্ট হোস্টের মাধ্যমে আপনার লোকাল ডিস্কে সঞ্চিত জাভাস্ক্রিপ্ট ফাইল অকস্মাত এক্সিকিউট হওয়া এড়ানো। এটি ডিফল্ট, এমনকি উইন্ডোজ ১০-এও। কিন্তু বাস্তবে, ব্রাউজার কনটেক্সটের বাইরে লোকালি জাভাস্ক্রিপ্ট ফাইল রান করার খুব কম কারণ আছে।
আপনি যা করতে চান সেটি হলো একটি ডামি জাভাস্ক্রিপ্ট ফাইল তৈরি করা, কিছুটা file.js মতো। রাইট ক্লিক > Open with, এবং তারপর যেকোনো টেক্সট এডিটর সিলেক্ট করুন (More apps-এর অধীনে)। এর মানে, আপনি যদি লোকালি সঞ্চিত একটি জাভাস্ক্রিপ্ট ফাইল ডাবল-ক্লিক করেন, এটি একটি টেক্সট ফাইল হিসেবে খুলবে।
উপসংহার
প্যানিককে আপনার কম্পাস (compass) बनने দেবেন না। কিছু সিকিউরিটি সমস্যা সিরিয়াস এবং স্ক্রুটিনির আশ্রয় নেয়। কিন্তু অন্যদেরও必然ই সত্য নয় যে তারা ইন্টারনেট চ্যাটারের উপর ভিত্তি করে সত্যিই এত ভয়ঙ্কর। এই কেসে, হ্যাঁ, এটি ভালো জিনিস নয়। অন্যদিকে, ইন্টারনেট এক্সপ্লোরার রান না করা প্রায় এটিকে সমাধান করে দেয়। আর, নোয়ব (n00b) হবেন না এবং বাম ডান র্যান্ডমলি ফাইল এক্সিকিউট করবেন না, এবং আপনি ঠিক থাকবেন।
এই আর্টিকেলে, আমি চেষ্টা করেছি আপনাকে একটি কিছুটা শান্ত ওভারভিউ দিতে কী কী আছে, এবং আপনার কাছে কী অপশনগুলো আছে। সবচেয়ে গুরুত্বপূর্ণ, আপনি IFEO-র fabulous magic (চমৎকার জাদু) ব্যবহার করতে পারেন ইন্টারনেট এক্সপ্লোরার রান হয়ে যাওয়া থেকে রোকতে, কোনো প্রশ্ন ছাড়া। এইভাবে, আপনি নানসেন্সের রিস্ক কমিয়ে আনবেন, হয় এটি পুরনো গেম লঞ্চার যা হায়ার্ডকোডেড iexplore.exe ব্যবহার করে মেসেজ বা ঘোষণা জন্য, অথবা আপনার নিজের twitchy fingers (চঞ্চল আঙ্গুল)। আপনি লাইব্রেরির এক্সিকিউট পারমিশনও ডিজেবল করতে পারেন, এবং আপনার সিস্টেম যদি স্ট্যান্ডার্ড ইউজারের সাথে সেটআপ থাকে, তবে আপনি হয়তো ডিজেবল্ড লাইব্রেরির কারণে কম হওয়া ফাংশনালিটির সাথে কম্প্রোমাইজ করবেন না। তাহলে সেটেল। আপনার ওয়েবজ (Webz) উপভোগ করুন।
চেয়ার্স।