جاوا لائبریری Log4j میں بدنام زمانہ خطرے کے لیے ایمرجنسی پیچ فول پروف نہیں ہے۔ اپاچی سافٹ ویئر فاؤنڈیشن ایک نیا ورژن جاری کر رہا ہے تاکہ اس خطرے کو ہمیشہ کے لیے ٹھیک کیا جا سکے۔
جاوا کے لیے ایک بے حد مقبول لائبریری میں کمزوری عالمی آئی ٹی کے منظر نامے کو ہلا کر رکھ رہی ہے۔ یہ اندازہ لگایا گیا ہے کہ لائبریری زیادہ تر کارپوریٹ ماحول میں موجود ہے۔
Log4j بنیادی طور پر لاگنگ کے لیے استعمال ہوتا ہے۔ درخواستوں میں واقعات کو نوٹ کے ساتھ رجسٹر کیا جا سکتا ہے۔ لاگ ان کی کوشش کے بعد لاگ ان تفصیلات کے پرنٹ آؤٹ کے بارے میں سوچیں۔ یا، جاوا میں ویب ایپلیکیشن کی صورت میں، براؤزر کا نام جس سے صارف رابطہ قائم کرنے کی کوشش کر رہا ہے۔
بعد کی مثالیں عام ہیں۔ دونوں صورتوں میں، ایک بیرونی صارف لاگ کو متاثر کرتا ہے جو Log4j آؤٹ پٹ کرتا ہے۔ اس اثر کو غلط استعمال کرنا ممکن ہے۔ 4 ستمبر 13 اور دسمبر 2013، 5 کے درمیان کسی بھی Log2021j ورژن کے لاگز جاوا ایپلیکیشنز کو مقامی ڈیوائس پر ریموٹ سرور سے کوڈ چلانے کی ہدایت کرنے کے قابل ہیں۔
2013 سے، Log4j ایک API: JNDI، یا Java Naming and Directory Interface پر کارروائی کر رہا ہے۔ JNDI کا اضافہ جاوا ایپلیکیشن کو مقامی ڈیوائس پر ریموٹ سرور سے کوڈ چلانے کی اجازت دیتا ہے۔ پروگرامرز ایپلی کیشن میں ریموٹ سرور کے بارے میں تفصیلات کی ایک لائن شامل کرکے ہدایت دیتے ہیں۔
مسئلہ یہ ہے کہ نہ صرف پروگرامرز ایپلی کیشنز میں قاعدہ شامل کرنے کے قابل ہیں۔ فرض کریں Log4j لاگ ان کی کوششوں کے صارف ناموں کو لاگ ان کرتا ہے۔ جب کوئی صارف نام کی فیلڈ میں مذکورہ لائن میں داخل ہوتا ہے، Log4j لائن کو چلاتا ہے اور جاوا ایپلیکیشن مخصوص سرور پر کوڈ کو چلانے کے لیے ایک کمانڈ کی ترجمانی کرتی ہے۔ ایسا ہی ان معاملات میں ہوتا ہے جہاں Log4j ایک HTTPS درخواست کو لاگ کرتا ہے۔ اگر آپ براؤزر کا نام لائن میں تبدیل کرتے ہیں، تو Log4j لائن چلاتا ہے، بالواسطہ طور پر اسے کوڈ کو اپنی مرضی کے مطابق چلانے کی ہدایت دیتا ہے۔
ایمرجنسی پیچ بھی غیر محفوظ ہو سکتا ہے۔
9 دسمبر کو یہ خطرہ بڑے پیمانے پر سامنے آیا۔ اپاچی سافٹ ویئر فاؤنڈیشن، Log4j کے ڈویلپر نے خطرے کو دور کرنے کے لیے ایک ہنگامی پیچ (2.15) جاری کیا۔ تب سے، سافٹ ویئر فروشوں کے لیے ورژن 2.15 پر کارروائی کرنا اور تنظیموں کے لیے ایک پیچ فراہم کرنا اولین ترجیح رہی ہے۔
تاہم، سیکورٹی تنظیم LunaSec کا کہنا ہے کہ پیچ مکمل طور پر واٹر ٹائٹ نہیں ہے۔ کسی ترتیب کو ایڈجسٹ کرنا اور لاگ ان JNDI کمانڈز کو لاگو کرنا ممکن رہتا ہے۔
براہ کرم نوٹ کریں: متعلقہ ترتیب کو دستی طور پر ایڈجسٹ کیا جانا چاہیے، تاکہ 2.15 کے غیر ترمیم شدہ متغیرات واقعی محفوظ ہوں۔ بہر حال، Luna Sec تجویز کرتا ہے کہ سپلائرز اور تنظیمیں Log4j 2.16 کو اپ ڈیٹ کریں۔ 2.16 اپاچی سافٹ ویئر فاؤنڈیشن نے LunaSec کے جواب میں شائع کیا تھا۔ نیا ورژن کمزور ترتیب کو مکمل طور پر ہٹا دیتا ہے، جس سے غلط استعمال کے حالات پیدا کرنا ناممکن ہو جاتا ہے۔