Log4Shell، هڪ انٽرنيٽ جي ڪمزوري، تازو متاثر ڪيو لکين مشينون. Log4j، سافٽ ويئر جو هڪ غير واضح اڃا تائين تقريبا هر جڳهه جو ٽڪرو، ان جو سبب بڻائيندو آهي.
Log4j استعمال ڪيو ويندو آهي لاگ ان ڪرڻ لاءِ انهن سڀني عملن جو جيڪي مختلف ڪمپيوٽر سسٽم ۾ مناظر جي پويان ٿين ٿا.
اهو هڪ اوپن سورس لاگنگ لائبريري تي مبني آهي جيڪو ڪاروبار ۽ حتي سرڪاري تنظيمن پاران استعمال ڪيو ويندو آهي اڪثر ايپليڪيشنن ۾.
هڪ بدترين سائبر سيڪيورٽي سوراخن مان هڪ آهي جيڪو ڪڏهن به ظاهر نه ڪيو ويو آهي، اهو ضروري آهي ته توهان جي سسٽم کي هن خطري کان بچائڻ لاء. پر ڪيئن؟
اچو ته تفصيل سان Log4j جي ڪمزورين کي ڳوليون ۽ ان لاءِ سڀ ممڪن حل حل ڪريون.
Log4j ڇا آهي؟
Log4j هڪ آهي کليل ذريعو لاگنگ فريم ورڪ جيڪو سافٽ ويئر ڊولپرز کي انهن جي ايپليڪيشنن ۾ مختلف ڊيٽا کي رڪارڊ ڪرڻ جي قابل بڻائي ٿو. اهو Apache Logging Services پروجيڪٽ جو هڪ حصو آهي، جيڪو هلائي ٿو ايپليڪيشن سافٽ ويئر فائونڊيشن.
سوين ويب سائيٽون ۽ ايپس استعمال ڪن ٿيون Log4j نازڪ عملن کي انجام ڏيڻ لاءِ جيئن ڊيبگنگ ۽ ٻين استعمالن لاءِ ڊيٽا لاگنگ ڪرڻ.
جڏهن توهان ان پٽ يا هڪ غريب آن لائن لنڪ تي ڪلڪ ڪريو ۽ هڪ 404 غلطي نوٽيس حاصل ڪريو، اهو ڪم تي Log4j جو بار بار مثال آهي. ويب سرور جيڪو ويب لنڪ جي ڊومين کي هلائي ٿو جنهن تائين توهان رسائي ڪرڻ جي ڪوشش ڪئي آهي توهان کي ٻڌائي ٿو ته اهڙو ڪو به ويب پيج موجود ناهي. اهو پڻ Log4j ۾ واقعن کي لاگ ان ڪري ٿو سرور جي سسٽم منتظمين لاءِ.
سافٽ ويئر پروگرامن جي دوران، ساڳئي تشخيصي سگنلن کي ملازمت ڏني وئي آهي. آن لائن راند Minecraft ۾، مثال طور، سرور استعمال ڪري ٿو Log4j سرگرمي کي لاگ ان ڪرڻ لاءِ جيئن ڪل RAM استعمال ٿيل ۽ صارف جي هدايتون ڪنسول ۾ موڪليون.
ڪمزوري ڪيئن ٿيندي آهي؟
Lookups Log4j 2.0 ۾ متعارف ٿيل ھڪ نئين خصوصيت آھي، جيڪا لاگ انٽريز ۾ اضافي معلومات شامل ڪرڻ ۾ مدد ڪري ٿي. انهن مان هڪ آهي JNDI (Java Naming and Directory Interface) لوڪ اپ، جيڪو ڊاريڪٽري سروس سان رابطي لاءِ جاوا API آهي.
هن طريقي کي استعمال ڪندي، اندروني يوزر آئي ڊيز کي اصل يوزر نالن سان ميپ ڪري سگهجي ٿو. هي سوال نئين دريافت ڪيل RCE جي خطري کي بي نقاب ڪري ٿو، ڇاڪاڻ ته LDAP سرور پاران مهيا ڪيل ڊيٽا جي قسمن مان هڪ هڪ URI آهي جيڪو جاوا ڪلاس ڏانهن اشارو ڪري ٿو، جيڪو پوء ميموري ۾ لوڊ ڪيو ويندو آهي ۽ Log4j مثال ذريعي هلندو آهي.
Log4j لائبريري جي ان پٽ جي تصديق ۾ ڪمزوري جي ڪري، اهو ممڪن آهي ته هڪ غير معتبر ذريعو مان هڪ خودمختيار LDAP سرور کي انجيڪشن ڪرڻ. ڇاڪاڻ ته ڊولپرز فرض ڪن ٿا ته لاگز ڏانهن موڪليل ڊيٽا کي سادي متن جي طور تي هٿ ڪيو ويندو، اضافي ان پٽ جي تصديق نه ڪئي وئي آهي، ۽ خطرناڪ صارف ان پٽ لاگز ۾ داخل ٿئي ٿو.
هڪ لاگ بيان هن طرح نظر اچي سگهي ٿو:
هڪ بدسلوڪي استعمال ڪندڙ هاڻي هڪ JNDI لوڪ اپ داخل ڪندو جيڪو URL پيٽرولر ۾ خراب LDAP سرور ڏانهن اشارو ڪري ٿو. JNDI جي ڳولا هن ريت هوندي:
Log4j لائبريري پوءِ ڊاريڪٽري جي معلومات حاصل ڪرڻ لاءِ حملي ڪندڙ.com تي هن LDAP سرور سان ڳالهائي ٿي، بشمول جاوا فئڪٽري ۽ جاوا ڪوڊ بيس جا قدر.
انهن ٻن قدرن ۾ حملو ڪندڙ جاوا ڪلاس شامل آهن، جيڪو پوءِ ميموري ۾ لوڊ ڪيو ويندو آهي ۽ Log4j مثال جي ذريعي عمل ڪيو ويندو آهي، ڪوڊ جي عمل کي مڪمل ڪندي.
خطري ۾ ڪير ڪير آهي؟
Log4j جي ڪمزوري ناقابل اعتبار حد تائين وسيع آهي، ڪاروباري ايپليڪيشنن، ايمبيڊڊ ڊوائيسز، ۽ انهن جي سب سسٽم کي متاثر ڪري ٿي. متاثر ٿيل ائپس ۾ Cisco Webex، Minecraft، ۽ FileZilla FTP شامل آهن.
بهرحال، هي هڪ مڪمل فهرست نه آهي. اهو نقص Ingenuity Mars 2020 chopper مشن کي به متاثر ڪري ٿو، جيڪو ايونٽ رڪارڊنگ لاءِ Apache Log4j استعمال ڪري ٿو.
سيڪيورٽي ڪميونٽي کي ترتيب ڏنو آهي خطرناڪ نظام جي فهرست. اهو نوٽ ڪرڻ ضروري آهي ته اهي لسٽون مسلسل اپڊيٽ ٿي رهيون آهن، تنهنڪري جيڪڏهن ڪو خاص پروگرام يا سسٽم نمايان نه آهي، فرض نه ڪريو ته اهو متاثر نه ٿيو آهي.
هن خطري جي نمائش ڪافي امڪان آهي، ۽ جيتوڻيڪ هڪ مخصوص ٽيڪنالاجي اسٽيڪ جاوا لاڳو نٿو ٿئي، سيڪيورٽي عملدارن کي اميد رکڻ گهرجي نازڪ سپلائر سسٽم، SaaS سپلائرز، ڪلائوڊ هوسٽنگ فراهم ڪندڙ، ۽ ويب سرور فراهم ڪندڙ ائين ڪرڻ لاء.
ڪيئن چيڪ ڪجي Log4j vulnerability لاءِ؟
پهريون قدم اهو طئي ڪرڻ آهي ته ڇا هڪ حملو اڳ ۾ ئي ٿي چڪو آهي. توھان ائين ڪري سگھو ٿا چيڪ ڪندي سسٽم لاگز لاءِ RCE پيل لوڊ ٽڪر.
جيڪڏهن اصطلاحن جي ڳولا جهڙوڪ "jndi"، "ldap"، يا "$::" ڪو لاگ حاصل ڪري ٿو، سيڪيورٽي محققن کي وڌيڪ ڳولڻ گهرجي ته اهو هڪ جائز حملو يا صرف فنگر پرنٽنگ هو.
جهنگ ۾ ڪيترائي حملا دريافت ڪيا ويا جيڪي ڪنهن به نقصانڪار پيل لوڊ نه پهچائيندا هئا. حالانڪه، اهي سيڪيورٽي ماهرن طرفان ڪيا ويا ته اهو طئي ڪيو وڃي ته ڪيتريون ئي ائپس هن حملي لاء خطرناڪ آهن.
ايندڙ قدم استعمال ڪرڻ آهي Log4j لائبريري سڀني منصوبن کي سڃاڻڻ لاءِ. جيڪڏهن نسخن جي وچ ۾ 2.0-beta9 ۽ 2.14.1 استعمال ڪيا وڃن، پروجيڪٽ حساس ٿي سگهي ٿو.
اهو طئي ڪرڻ ۾ مشڪل کي نظر ۾ رکندي هي خطرو ڪٿي موجود آهي، اهو بهتر ٿي سگهي ٿو ته پروجيڪٽ کي حساس آهي ۽ لائبريري کي اپڊيٽ ڪرڻ هڪ بهترين عمل آهي ڪوڊ جي عملدرآمد جي خطري کي ختم ڪرڻ لاءِ.
پروجيڪٽ خطرناڪ نه آهي جيڪڏهن استعمال ٿيل نسخو 2.0-beta 9 کان گهٽ آهي، جيتوڻيڪ Log4j لائبريري کي اڃا به اپڊيٽ ڪيو وڃي ڇاڪاڻ ته 1.x رينج ۾ ورجن پراڻا آهن ۽ هاڻي تازه ڪاريون حاصل نه ٿيون ڪن.
ڇا هڪ حساس پروجيڪٽ دريافت ڪيو ويو آهي، اهو مشورو ڏنو ويو آهي ته اهو ڏسڻ لاء چيڪ ڪيو وڃي ته ڇا ڪنهن به معلومات Log4j استعمال ڪندي لاگ ان معلومات تي مشتمل آهي جيڪا صارف تبديل ڪري سگهي ٿي. URLs، درخواست جي پيٽرولر، هيڊر، ۽ ڪوڪيز هن ڊيٽا جا مثال آهن. جيڪڏهن انهن مان هڪ لاگ ان ٿيل آهي، پروجيڪٽ خطري ۾ آهي.
هي علم توهان جي مدد ڪري سگهي ٿو سسٽم لاگز ۾ وڌيڪ ڊيل ڪرڻ ۽ اهو طئي ڪرڻ ۾ ته ڇا توهان جي ويب ايپليڪيشن اڳ ۾ ئي حملو ڪيو ويو آهي.
اتي مفت آن لائن اوزار آھن جيڪي معلوم ڪري سگھن ٿا جيڪڏھن ويب ايپليڪيشن ڪمزور آھي. انهن پروگرامن مان هڪ آهي Log4Shell شڪاري. اهو کليل ذريعو آهي ۽ دستياب آهي GitHub.
جيڪڏهن آن لائن ايپليڪيشن ۾ ڪوڊ جو هڪ خطرناڪ علائقو دريافت ڪيو ويو آهي، ظاهر ڪيل اوزار پاران مهيا ڪيل پيل لوڊ ان کي ويب ايپليڪيشن ۾ انجڻ ڪرڻ لاء استعمال ڪري سگهجي ٿو. جاچ وارو اوزار ظاهر ڪندو ته توهان جي ويب ايپليڪيشن ۽ انهن جي LDAP سرور جي وچ ۾ ٺاهيل رابطن کي جيڪڏهن نقصان جو استحصال ڪيو ويو.
Log4j جي ڪمزوري کي حل ڪرڻ لاءِ حل
پهريون قدم Log4j کي اپڊيٽ ڪرڻ آهي، جيڪو توهان ڪري سگهو ٿا عام پيڪيج مينيجرز کي استعمال ڪندي يا ان کي سڌو ڊائون لوڊ ڪندي هن تان صفحو.
اهو پڻ ممڪن آهي ته ماحول جي تبديليءَ واري FORMAT MSG NO LOOKUPS کي درست ڪرڻ سان ڪمزورين جي استحصال کي گهٽائڻ. هي جوابي ماپ، جيتوڻيڪ، صرف Log4j ورزن تي لاڳو ٿئي ٿو 2.10 کان وڌيڪ يا برابر.
اچو ته هاڻي متبادل اختيارن تي غور ڪريو.
1. Log4j ورزن 2.17.0 لاءِ حل
اهو يقيني طور تي مشورو ڏنو ويو آهي Log4j ورجن 2.15.0 استعمال ڪرڻ لاءِ Log4Shell کان بچاءُ لاءِ، جڏهن ته، جيڪڏهن اهو ممڪن ناهي، ٻيا حل موجود آهن.
Log2.7.0j جا ورجن 4 ۽ بعد ۾: اهو ممڪن آهي ته ڪنهن به حملي کان بچاءَ لاءِ واقعن جي فارميٽ کي تبديل ڪندي لاگ ان ٿيڻ لاءِ سيڪڙو m nolookups syntax استعمال ڪندي استعمال ڪندڙ طرفان فراهم ڪيل ڊيٽا لاءِ. ھن اپڊيٽ جي ضرورت آھي Log4j ڪنفيگريشن فائل کي ايڊٽ ڪرڻ لاءِ پروگرام جو نئون ورزن ٺاھيو. نتيجي طور، هن نئين نسخي کي ترتيب ڏيڻ کان اڳ، ٽيڪنيڪل ۽ فنڪشنل تصديق جي مرحلن کي بار بار ڪيو وڃي.
Log4j ورجن 2.10.0 ۽ بعد ۾: log4j2.formatMsgNoLookups configuration parameter کي درست ڪرڻ سان، مثال طور، جڏھن جاوا ورچوئل مشين کي -Dlog4j2 آپشن سان شروع ڪندي، ڪنھن حملي کان بچاءُ ڪرڻ به ممڪن آھي. formatMsgNoLookups = صحيح، ٻيو آپشن اهو آهي ته JndiLookup ڪلاس کي classpath دليل مان هٽايو وڃي، جيڪو مکيه حملي واري ویکٹر کي هٽائي ڇڏيندو (محقق ٻئي حملي جي ویکٹر جي امڪان کي رد نٿا ڪن).
Amazon ويب خدمتون مهيا ڪري ٿي هڪ هاٽ پيچ جيڪا آهي "استعمال ٿيڻ گهرجي توهان جي پنهنجي خطري تي." ٻيون ”ٽيڪنالاجي“، جهڙوڪ Logout4Shell، جيڪي ”پنهنجي خلاف هي ڪمزوري استعمال ڪن ٿيون،“ شايع ٿيل آهن. سيڪيورٽي ماهر هن اقدام جي قانونيت تي سوال ڪري ٿو، جنهن ۾ شامل آهي "هڪ مشين کي هيڪ ڪرڻ ان کي درست ڪرڻ."
2. مسئلو حل ڪيو ويو آهي Log4j v2.17.0 ۾.
2.10 کان وڌيڪ نسخن لاءِ: Log4j2.formatMsgNoLookups کي صحيح تي سيٽ ڪيو وڃي.
ورجن 2.0 کان 2.10.0 تائين: Log4j مان LDAP ڪلاس کي ختم ڪرڻ لاءِ ھيٺ ڏنل حڪم ھلايو.
Log4j2.formatMsgNoLookups کي سسٽم سيٽنگن ۾ صحيح طور تي سيٽ ڪيو وڃي.
JVM ۾ گھٽتائي
JVM پيٽرولر سان گهٽتائي هاڻي ڪو اختيار ناهي. ٻيا گھٽائڻ وارا طريقا ڪامياب ٿي رھيا آھن. جيڪڏهن ممڪن هجي ته Log4j ورجن 2.17.0 ڏانهن اپڊيٽ ڪريو. Log4j v1 لاءِ لڏپلاڻ جي ھدايت موجود آھي.
جيڪڏھن ڪا تازه ڪاري ممڪن نه آھي، پڪ ڪريو ته ڪلائنٽ-سائيڊ ۽ سرور-سائڊ حصن ۾ -Dlog4j2.formatMsgNoLookups = صحيح سسٽم ملڪيت سيٽ آھي.
مهرباني ڪري نوٽ ڪريو ته Log4j v1 پنهنجي زندگيءَ جي پڄاڻيءَ تي پهچي چڪو آهي (EOL) ۽ هاڻي بگ فيڪس حاصل نه ڪندو. ٻيا RCE ویکٹر پڻ حساس آهن Log4j v1. ان ڪري، اسان گذارش ڪريون ٿا ته توهان جلد کان جلد Log4j 2.17.0 تي اپ گريڊ ڪريو.
3. گھٽتائي جا قدم
موجوده ڪارناما ڪم نه ٿا ڪري سگهن جيتوڻيڪ Log4j ڪجهه حالتن ۾ حساس آهي، جهڙوڪ جيڪڏهن ميزبان مشين هلائي رهي آهي جاوا ورزن 6u212، 7u202، 8u192، يا 11.0.2 کان وڌيڪ.
اهو بهتر جاوا نامنگ ۽ ڊائريڪٽري انٽرفيس (JNDI) موجوده ورزن ۾ ريموٽ ڪلاس لوڊشيڊنگ تحفظ جي ڪري آهي، جيڪو حملي کي هلائڻ لاءِ ضروري آهي.
ان کان علاوه، 4 کان وڏي Log2.10j ورزن سان، مسئلي کان بچي سگھجي ٿو FormatMsgNoLookups سسٽم جي قيمت کي درست ڪرڻ سان، JVM دليل مهيا ڪرڻ -Dlog4j2.formatMsgNoLookups = صحيح، يا ڪلاس پاٿ مان JndiLookup ڪلاس کي حذف ڪرڻ سان.
ساڳئي وقت ۾، جيستائين ڪمزور واقعن کي مقرر نه ڪيو وڃي، هيٺ ڏنل ٽيڪنالاجي استعمال ڪندي خطري کي حل ڪري سگهجي ٿو:
- سيٽ ڪريو سسٽم جي ملڪيت log4j2.formatMsgNoLookups صحيح لاءِ >=2.10.
- ماحوليات جي آپشن کي سيٽ ڪريو LOG4J FORMAT MSG NO LOOKUPS صحيح لاءِ >=2.10.
- 2.0-beta9 کان 2.10.0 تائين ڪلاس پاٿ مان JndiLookup.class کي هٽايو: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
ھڪڙو تجويز ڪيل بھترين عمل آھي انٽرنيٽ ڏانھن نڪرڻ واري ٽرئفڪ کي صرف مناسب بندرگاھن تائين محدود ڪرڻ.
جيتوڻيڪ فيلڊ ۾ اڪثر حملا HTTP تي پهچائي رهيا آهن، نقصان ڪنهن به پروٽوڪول ذريعي استحصال ٿي سگهي ٿو جيڪو لاگ 4j استعمال ڪندي صارف ان پٽ ڊيٽا کي لاگ ان ڪري ٿو.
جڏهن ته، log4j 2.17.0 تي تازه ڪاري ڪرڻ هڪ بهترين علاج آهي ڇو ته ڪو ماڻهو ان مسئلي جي اضافي طريقي کي ڳولي سگهي ٿو. ان کان علاوه، ڪيترن ئي پبلشرز ۽ ٺاهيندڙن انهن جي خدمتن يا ايپس ۾ سڌارن جو اعلان ڪيو آهي.
4. Log4Shell ڪمزوري پيچ
Log4j تمام وسيع آهي، خاص طور تي هاڻي ته ڪمزورين جو استحصال ڪيو پيو وڃي. اختصار ڪرڻ لاءِ، توھان کي صرف ھيٺين اکرن کي شامل ڪرڻ جي ضرورت آھي لاگ 4j پاران معائنو ڪيل لاگز ۾.
۽ اهو URL جي آخر ۾ موجود جاوا فائل کي ڊائون لوڊ ۽ عمل ڪندو. اهو ايترو سڌو آهي جيترو اهو ڊرامي آهي.
جئين توهان کي خبر آهي، اهو ضروري آهي ته log4j کي اپڊيٽ ڪرڻ لاءِ ورجن >= 2.17.0 هن Log4Shell جي خطري کي دور ڪرڻ لاءِ (CVE-2021-44228).
جيڪڏهن اهو ممڪن ناهي ته:
ايپليڪيشنن لاءِ جيڪي Log4j لائبريري ورجن 2.10.0 ۽ بعد ۾ استعمال ڪن ٿيون، اهو پڻ ممڪن آهي ته ڪنهن به حملي کان بچاءُ ڪرڻ جي ذريعي ڪنفيگريشن پيراميٽر log4j2.formatMsgNoLookups کي درست ڪري، مثال طور، جاوا ورچوئل مشين کي شروع ڪرڻ دوران -Dlog4j2.formatMsgNoLookups = صحيح اختيار.
ٻيو آپشن اهو آهي ته JndiLookup ڪلاس کي classpath argument مان حذف ڪيو وڃي، جيڪو بنيادي حملي واري ویکٹر کي هٽائي ڇڏيندو (محقق ٻئي حملي واري ویکٹر جي وجود کي رد نٿا ڪن).
نوٽ
تنظيمون جيڪي حساس يا حساس نظامن ۾ ترميمون ڪرڻ لاءِ تيار نه آهن (يا جيڪي آهن پر اضافي حفاظتي اپاءَ نصب ڪرڻ چاهين ٿا) انهن کي سوچڻ گهرجي:
- پڪ ڪريو ته سڀ ٽرئفڪ هڪ iSensor ذريعي روٽ ڪئي وئي آهي/وف/IPS. هي حملي کي سسٽم تائين رسائي حاصل ڪرڻ کان بچائي سگهي ٿو.
- ٽرئفڪ جي مقدار کي محدود ڪرڻ جيڪا حساس سسٽم تائين پهچي سگهي ٿي جيڪڏهن سسٽم کي انٽرنيٽ سان ڳنڍڻ جي ضرورت ناهي، صرف ضروري ۽ قابل اعتماد IPS ۽ رينج تائين رسائي کي محدود ڪريو.
- ميزبان جي بااختيار نڪرڻ واري ٽرئفڪ کي گھٽائڻ. ڇاڪاڻ ته هي حملو هڪ روگ سرور سان ڳنڍڻ سان هلندو آهي، سڀئي غير ضروري IP پتي ۽ بندرگاهن کي فائر وال تي بلاڪ ڪيو وڃي.
- جيڪڏهن خدمت وڌيڪ گهربل نه آهي، ان کي بند ڪيو وڃي جيستائين فيڪس تيار نه ٿئي.
ٿڪل
Log4j جي خامين اسان جي ڪميونٽي کي حيران ڪري ڇڏيو ۽ اسان سڀني کي ياد ڏياريو ته اسان اوپن سورس سافٽ ويئر تي ڪيترا انحصار آهيون.
Log4j منفرد آهي. اهو نه ته هڪ آپريٽنگ سسٽم آهي، نه اهو هڪ برائوزر آهي، ۽ نه ئي اهو هڪ سافٽ ويئر آهي. بلڪه، اهو آهي جيڪو پروگرامر هڪ لائبريري، هڪ پيڪيج، يا ڪوڊ ماڊل طور حوالو ڏنو آهي. اهو صرف هڪ مقصد جي خدمت ڪري ٿو، اهو آهي، رڪارڊ رکڻ جيڪو سرور تي ٿئي ٿو.
ماڻهو جيڪي ڪوڊ لکندا آهن انهن تي ڌيان ڏيڻ چاهيندا آهن جيڪي انهن جي سافٽ ويئر کي مخصوص ڪري ٿو. اهي ڦيٿي کي ٻيهر ٺاهڻ ۾ دلچسپي نٿا رکن. نتيجي طور، اهي موجوده ڪوڊ لائبريرين جي گهڻائي تي ڀاڙين ٿا، جهڙوڪ Log4j.
Log4j ماڊل اپاچي مان نڪتل آهي، سڀ کان وڌيڪ استعمال ٿيل ويب سرور سافٽ ويئر. انهي ڪري اهو لکين سرورن تي ڳولي سگهجي ٿو. ان ڪري، سيڪيورٽي خطرن کي وڌايو.
مون کي اميد آهي ته مٿيون حل توهان جي ڊوائيسز کي محفوظ رکڻ ۾ مدد ڪن ٿيون.
ٽيڪ جي دنيا مان وڌيڪ مددگار معلومات لاءِ HashDork سان رابطو ڪريو.
جواب ڇڏي وڃو