জাভা লাইব্রেরি Log4j-এ কুখ্যাত দুর্বলতার জন্য জরুরী প্যাচটি নির্বোধ নয়। Apache সফ্টওয়্যার ফাউন্ডেশন একবার এবং সব জন্য দুর্বলতা ঠিক করতে একটি নতুন সংস্করণ প্রকাশ করছে৷
জাভার জন্য একটি জনপ্রিয় লাইব্রেরির একটি দুর্বলতা বিশ্বব্যাপী আইটি ল্যান্ডস্কেপকে কাঁপিয়ে দিচ্ছে। এটি অনুমান করা হয় যে গ্রন্থাগারটি বেশিরভাগ কর্পোরেট পরিবেশে বিদ্যমান।
Log4j মূলত লগিং এর জন্য ব্যবহৃত হয়। অ্যাপ্লিকেশনের ইভেন্টগুলি নোটের সাথে নিবন্ধিত হতে পারে। একটি লগইন প্রচেষ্টার পরে লগইন বিশদ একটি প্রিন্টআউট চিন্তা করুন. অথবা, জাভাতে একটি ওয়েব অ্যাপ্লিকেশনের ক্ষেত্রে, ব্যবহারকারী যে ব্রাউজারটির সাথে সংযোগ করার চেষ্টা করছেন তার নাম।
পরবর্তী উদাহরণগুলি সাধারণ। উভয় ক্ষেত্রেই, একটি বহিরাগত ব্যবহারকারী লগকে প্রভাবিত করে যা Log4j আউটপুট করে। সেই প্রভাবের অপব্যবহার করা সম্ভব। 4 সেপ্টেম্বর, 13 এবং 2013 ডিসেম্বর, 5-এর মধ্যে যে কোনও Log2021j সংস্করণের লগগুলি জাভা অ্যাপ্লিকেশনগুলিকে স্থানীয় ডিভাইসে একটি দূরবর্তী সার্ভার থেকে কোড চালানোর নির্দেশ দিতে সক্ষম।
2013 সাল থেকে, Log4j একটি API প্রক্রিয়া করছে: JNDI, বা Java নামকরণ এবং ডিরেক্টরি ইন্টারফেস। JNDI এর সংযোজন একটি জাভা অ্যাপ্লিকেশনকে স্থানীয় ডিভাইসে একটি দূরবর্তী সার্ভার থেকে কোড চালানোর অনুমতি দেয়। প্রোগ্রামাররা একটি অ্যাপ্লিকেশনে রিমোট সার্ভার সম্পর্কে বিশদ বিবরণের একটি লাইন যোগ করে নির্দেশ দেয়।
সমস্যাটি হল যে শুধুমাত্র প্রোগ্রামাররা অ্যাপ্লিকেশনগুলিতে নিয়ম যোগ করতে সক্ষম হয় না। ধরুন Log4j লগইন প্রচেষ্টার ব্যবহারকারীর নাম লগ করে। যখন কেউ ব্যবহারকারীর নামের ক্ষেত্রে পূর্বোক্ত লাইনে প্রবেশ করে, Log4j লাইনটি চালায় এবং জাভা অ্যাপ্লিকেশন নির্দিষ্ট সার্ভারে কোড চালানোর জন্য একটি কমান্ড ব্যাখ্যা করে। একই ক্ষেত্রে যেখানে Log4j একটি HTTPS অনুরোধ লগ করে। আপনি যদি একটি ব্রাউজারের নাম লাইনে পরিবর্তন করেন, Log4j লাইনটি চালায়, পরোক্ষভাবে এটিকে ইচ্ছামতো কোড চালানোর নির্দেশ দেয়।
জরুরী প্যাচও অনিরাপদ হতে পারে
9 ডিসেম্বর, দুর্বলতা ব্যাপকভাবে প্রকাশ পায়। Apache Software Foundation, Log4j এর বিকাশকারী, দুর্বলতা ঠিক করতে একটি জরুরী প্যাচ (2.15) প্রকাশ করেছে। তারপর থেকে, সফ্টওয়্যার বিক্রেতাদের সংস্করণ 2.15 প্রক্রিয়া করা এবং সংস্থাগুলির জন্য একটি প্যাচ প্রদান করা এটি একটি শীর্ষ অগ্রাধিকার।
তবে নিরাপত্তা সংস্থা লুনাসেক জানিয়েছে যে প্যাচটি সম্পূর্ণ জলরোধী নয়। একটি সেটিং সামঞ্জস্য করা এবং লগ ইন করা JNDI কমান্ড কার্যকর করা সম্ভব।
অনুগ্রহ করে মনে রাখবেন: প্রাসঙ্গিক সেটিং অবশ্যই ম্যানুয়ালি সামঞ্জস্য করতে হবে, যাতে 2.15 এর অপরিবর্তিত রূপগুলি প্রকৃতপক্ষে নিরাপদ। তবুও, Luna Sec সুপারিশ করে যে সরবরাহকারী এবং সংস্থাগুলি Log4j 2.16-এ আপডেট করুন৷ LunaSec এর প্রতিক্রিয়া হিসাবে Apache Software Foundation দ্বারা 2.16 প্রকাশিত হয়েছিল। নতুন সংস্করণটি সম্পূর্ণরূপে দুর্বল সেটিংটি সরিয়ে দেয়, যা অপব্যবহারের শর্ত তৈরি করা অসম্ভব করে তোলে।