Log4Shell, ຊ່ອງໂຫວ່ທາງອິນເຕີເນັດ, ເມື່ອບໍ່ດົນມານີ້ໄດ້ສົ່ງຜົນກະທົບຕໍ່ເຄື່ອງນັບລ້ານ. Log4j, ຊອບແວທີ່ບໍ່ຊັດເຈນແຕ່ເກືອບທຸກແຫ່ງຫົນ, ເຮັດໃຫ້ເກີດມັນ.
Log4j ຖືກນໍາໃຊ້ເພື່ອບັນທຶກການດໍາເນີນການທັງຫມົດທີ່ເກີດຂື້ນຢູ່ເບື້ອງຫຼັງໃນຫຼາຍໆລະບົບຄອມພິວເຕີ.
ມັນແມ່ນອີງໃສ່ຫ້ອງສະຫມຸດບັນທຶກແຫຼ່ງເປີດທີ່ຖືກນໍາໃຊ້ໂດຍທຸລະກິດແລະແມ້ກະທັ້ງອົງການຈັດຕັ້ງຂອງລັດຖະບານໃນຄໍາຮ້ອງສະຫມັກສ່ວນໃຫຍ່.
ເປັນຫນຶ່ງໃນຂຸມຄວາມປອດໄພ cyber ທີ່ຮ້າຍແຮງທີ່ສຸດທີ່ເຄີຍຖືກເປີດເຜີຍ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະປົກປ້ອງລະບົບຂອງທ່ານຈາກຊ່ອງໂຫວ່ນີ້. ແຕ່, ແນວໃດ?
ລອງສຳຫຼວດຊ່ອງໂຫວ່ຂອງ Log4j ໂດຍລະອຽດ ແລະວິທີການແກ້ໄຂທີ່ເປັນໄປໄດ້ທັງໝົດສຳລັບມັນ.
Log4j ແມ່ນຫຍັງ?
Log4j ເປັນ ເປີດເຜີຍແຫຼ່ງ ກອບການບັນທຶກທີ່ຊ່ວຍໃຫ້ຜູ້ພັດທະນາຊອບແວສາມາດບັນທຶກຂໍ້ມູນທີ່ແຕກຕ່າງກັນພາຍໃນແອັບພລິເຄຊັນຂອງພວກເຂົາ. ມັນເປັນອົງປະກອບຂອງໂຄງການບໍລິການບັນທຶກ Apache, ເຊິ່ງດໍາເນີນການໂດຍ Apache Software Foundation.
ຫຼາຍຮ້ອຍເວັບໄຊທ໌ແລະແອັບຯໃຊ້ Log4j ເພື່ອປະຕິບັດການທີ່ສໍາຄັນເຊັ່ນ: ຂໍ້ມູນບັນທຶກສໍາລັບການ debugging ແລະການນໍາໃຊ້ອື່ນໆ.
ເມື່ອທ່ານປ້ອນຂໍ້ມູນຫຼືຄລິກໃສ່ການເຊື່ອມຕໍ່ອອນໄລນ໌ທີ່ບໍ່ດີແລະໄດ້ຮັບການແຈ້ງເຕືອນຄວາມຜິດພາດ 404, ນີ້ແມ່ນຕົວຢ່າງເລື້ອຍໆຂອງ Log4j ໃນບ່ອນເຮັດວຽກ. ເຊີບເວີເວັບທີ່ແລ່ນໂດເມນຂອງລິ້ງເວັບທີ່ທ່ານພະຍາຍາມເຂົ້າເຖິງແຈ້ງໃຫ້ທ່ານຮູ້ວ່າບໍ່ມີຫນ້າເວັບດັ່ງກ່າວຢູ່. ມັນຍັງບັນທຶກເຫດການໃນ Log4j ສໍາລັບຜູ້ເບິ່ງແຍງລະບົບຂອງເຄື່ອງແມ່ຂ່າຍ.
ຕະຫຼອດໂຄງການຊອບແວ, ສັນຍານການວິນິດໄສທີ່ຄ້າຍຄືກັນແມ່ນໃຊ້. ສໍາລັບຕົວຢ່າງ, ໃນເກມ Minecraft ອອນໄລນ໌, ເຄື່ອງແມ່ຂ່າຍໃຊ້ Log4j ເພື່ອບັນທຶກກິດຈະກໍາເຊັ່ນ RAM ທັງຫມົດທີ່ໃຊ້ແລະຄໍາແນະນໍາຂອງຜູ້ໃຊ້ທີ່ຖືກສົ່ງໄປໃນ console.
ຊ່ອງໂຫວ່ເກີດຂຶ້ນແນວໃດ?
ການຊອກຫາແມ່ນຄຸນສົມບັດໃຫມ່ທີ່ນໍາສະເຫນີໃນ Log4j 2.0, ເຊິ່ງຊ່ວຍໃຫ້ການລວມເອົາຂໍ້ມູນເພີ່ມເຕີມເຂົ້າໃນລາຍການບັນທຶກ. ຫນຶ່ງໃນການຄົ້ນຫາເຫຼົ່ານີ້ແມ່ນການຊອກຫາ JNDI (Java Naming and Directory Interface), ເຊິ່ງເປັນ Java API ສໍາລັບການສື່ສານກັບບໍລິການໄດເລກະທໍລີ.
ການນໍາໃຊ້ວິທີການນີ້, ID ຜູ້ໃຊ້ພາຍໃນສາມາດຖືກແຜນທີ່ກັບຊື່ຜູ້ໃຊ້ຕົວຈິງ. ການສອບຖາມນີ້ເປີດເຜີຍຄວາມອ່ອນແອຂອງ RCE ທີ່ຄົ້ນພົບໃຫມ່, ເນື່ອງຈາກວ່າຫນຶ່ງໃນປະເພດຂໍ້ມູນທີ່ສະຫນອງໂດຍເຄື່ອງແມ່ຂ່າຍ LDAP ແມ່ນ URI ຊີ້ໄປຫາຫ້ອງຮຽນ Java, ເຊິ່ງຫຼັງຈາກນັ້ນຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາແລະດໍາເນີນການໂດຍຕົວຢ່າງ Log4j.
ເນື່ອງຈາກຄວາມອ່ອນແອໃນການກວດສອບການປ້ອນຂໍ້ມູນຂອງຫ້ອງສະໝຸດ Log4j, ມັນເປັນໄປໄດ້ທີ່ຈະໃສ່ເຊີບເວີ LDAP ທີ່ບໍ່ໜ້າເຊື່ອຖືຈາກແຫຼ່ງທີ່ບໍ່ເຊື່ອຖືໄດ້. ເນື່ອງຈາກວ່ານັກພັດທະນາສົມມຸດວ່າຂໍ້ມູນທີ່ຖືກສົ່ງໄປຫາບັນທຶກຈະຖືກຈັດການເປັນຂໍ້ຄວາມທໍາມະດາ, ບໍ່ມີການກວດສອບການປ້ອນຂໍ້ມູນເພີ່ມເຕີມ, ແລະການປ້ອນຂໍ້ມູນຂອງຜູ້ໃຊ້ອັນຕະລາຍເຂົ້າໄປໃນບັນທຶກ.
ຄໍາຖະແຫຼງທີ່ບັນທຶກອາດຈະເບິ່ງຄືວ່ານີ້:
ຕອນນີ້ຜູ້ໃຊ້ທີ່ເປັນອັນຕະລາຍຈະໃສ່ການຄົ້ນຫາ JNDI ໂດຍອ້າງອີງໃສ່ເຊີບເວີ LDAP ທີ່ຂີ້ຮ້າຍຢູ່ໃນພາລາມິເຕີ URL. ການຄົ້ນຫາ JNDI ຈະເປັນດັ່ງຕໍ່ໄປນີ້:
ຈາກນັ້ນຫ້ອງສະໝຸດ Log4j ສົນທະນາກັບເຊີບເວີ LDAP ນີ້ຢູ່ທີ່ attacker.com ເພື່ອໃຫ້ໄດ້ຮັບຂໍ້ມູນໄດເລກະທໍລີ, ລວມທັງຄ່າສໍາລັບ Java Factory ແລະ Java Codebase.
ສອງຄ່າເຫຼົ່ານີ້ລວມມີ Java class ຂອງຜູ້ໂຈມຕີ, ເຊິ່ງຫຼັງຈາກນັ້ນຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາແລະຖືກປະຕິບັດໂດຍຕົວຢ່າງ Log4j, ສໍາເລັດການປະຕິບັດລະຫັດ.
ໃຜມີຄວາມສ່ຽງ?
ຊ່ອງໂຫວ່ຂອງ Log4j ແມ່ນກວ້າງຂວາງຢ່າງບໍ່ໜ້າເຊື່ອ, ສົ່ງຜົນກະທົບຕໍ່ແອັບພລິເຄຊັນທຸລະກິດ, ອຸປະກອນຝັງຕົວ ແລະລະບົບຍ່ອຍຂອງພວກມັນ. ແອັບທີ່ໄດ້ຮັບຜົນກະທົບລວມມີ Cisco Webex, Minecraft, ແລະ FileZilla FTP.
ຢ່າງໃດກໍຕາມ, ນີ້ບໍ່ແມ່ນບັນຊີລາຍຊື່ທັງຫມົດ. ຂໍ້ບົກຜ່ອງດັ່ງກ່າວໄດ້ສົ່ງຜົນກະທົບຕໍ່ພາລະກິດຂອງ Ingenuity Mars 2020, ເຊິ່ງໃຊ້ Apache Log4j ສໍາລັບການບັນທຶກເຫດການ.
ຊຸມຊົນຄວາມປອດໄພໄດ້ລວບລວມ a ບັນຊີລາຍຊື່ຂອງລະບົບທີ່ມີຄວາມສ່ຽງ. ມັນເປັນສິ່ງ ສຳ ຄັນທີ່ຈະຕ້ອງສັງເກດວ່າລາຍຊື່ເຫຼົ່ານີ້ ກຳ ລັງປັບປຸງຢ່າງຕໍ່ເນື່ອງ, ສະນັ້ນຖ້າໂຄງການຫຼືລະບົບໃດ ໜຶ່ງ ບໍ່ຖືກສະແດງ, ຢ່າຄິດວ່າມັນບໍ່ໄດ້ຮັບຜົນກະທົບ.
ການເປີດເຜີຍຕໍ່ກັບຊ່ອງໂຫວ່ນີ້ແມ່ນຂ້ອນຂ້າງມີແນວໂນ້ມ, ແລະເຖິງແມ່ນວ່າສະເພາະ ເຕັກໂນໂລຢີ stack ບໍ່ໄດ້ໃຊ້ Java, ຜູ້ບໍລິຫານດ້ານຄວາມປອດໄພຄວນຄາດຫວັງວ່າລະບົບຜູ້ສະຫນອງທີ່ສໍາຄັນ, ຜູ້ສະຫນອງ SaaS, ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຄລາວ, ແລະຜູ້ໃຫ້ບໍລິການເຊີບເວີທີ່ຈະເຮັດແນວນັ້ນ.
ວິທີກວດສອບຊ່ອງໂຫວ່ຂອງ Log4j?
ຂັ້ນຕອນທໍາອິດແມ່ນເພື່ອກໍານົດວ່າການໂຈມຕີໄດ້ເກີດຂຶ້ນແລ້ວ. ທ່ານສາມາດເຮັດແນວນັ້ນໄດ້ໂດຍການກວດເບິ່ງບັນທຶກລະບົບສໍາລັບ RCE payload fragments.
ຖ້າການຄົ້ນຫາສໍາລັບຄໍາສັບຕ່າງໆເຊັ່ນ "jndi", "ldap", ຫຼື "$::" ໃຫ້ຜົນໄດ້ຮັບໃດໆ, ນັກຄົ້ນຄວ້າຄວາມປອດໄພຄວນຄົ້ນຫາຕື່ມອີກເພື່ອເບິ່ງວ່າມັນເປັນການໂຈມຕີທີ່ຖືກຕ້ອງຫຼືພຽງແຕ່ການພິມນິ້ວມື.
ການໂຈມຕີຫຼາຍຄັ້ງໃນປ່າທໍາມະຊາດໄດ້ຮັບການຄົ້ນພົບທີ່ບໍ່ໄດ້ສົ່ງອອກ payloads ອັນຕະລາຍໃດໆ. ຢ່າງໃດກໍຕາມ, ພວກເຂົາເຈົ້າໄດ້ຖືກປະຕິບັດໂດຍຜູ້ຊ່ຽວຊານດ້ານຄວາມປອດໄພເພື່ອກໍານົດຈໍານວນແອັບຯທີ່ມີຄວາມສ່ຽງຕໍ່ການໂຈມຕີນີ້.
ຂັ້ນຕອນຕໍ່ໄປແມ່ນການນໍາໃຊ້ຫ້ອງສະຫມຸດ Log4j ເພື່ອກໍານົດໂຄງການທັງຫມົດ. ຖ້າໃຊ້ເວີຊັນລະຫວ່າງ 2.0-beta9 ແລະ 2.14.1, ໂຄງການດັ່ງກ່າວສາມາດມີຄວາມອ່ອນໄຫວ.
ເນື່ອງຈາກຄວາມຫຍຸ້ງຍາກໃນການກໍານົດບ່ອນທີ່ມີຊ່ອງໂຫວ່ນີ້, ມັນສາມາດຖືວ່າໂຄງການດັ່ງກ່າວມີຄວາມອ່ອນໄຫວແລະການປັບປຸງຫ້ອງສະຫມຸດແມ່ນການປະຕິບັດທີ່ດີທີ່ສຸດເພື່ອກໍາຈັດອັນຕະລາຍຂອງການປະຕິບັດລະຫັດ.
ໂຄງການດັ່ງກ່າວບໍ່ມີຄວາມສ່ຽງຖ້າເວີຊັນທີ່ໃຊ້ແມ່ນຫນ້ອຍກວ່າ 2.0-beta 9, ເຖິງແມ່ນວ່າຫ້ອງສະຫມຸດ Log4j ຄວນຈະຍັງໄດ້ຮັບການຍົກລະດັບເພາະວ່າຮຸ່ນໃນຂອບເຂດ 1.x ແມ່ນເກົ່າແລະບໍ່ໄດ້ຮັບການປັບປຸງອີກຕໍ່ໄປ.
ບໍ່ວ່າໂຄງການທີ່ມີຄວາມອ່ອນໄຫວຖືກຄົ້ນພົບ, ມັນໄດ້ຖືກແນະນໍາໃຫ້ກວດເບິ່ງວ່າຂໍ້ມູນໃດໆທີ່ເຂົ້າສູ່ລະບົບ Log4j ມີຂໍ້ມູນທີ່ຜູ້ໃຊ້ສາມາດປ່ຽນແປງໄດ້. URLs, ຕົວກໍານົດການຮ້ອງຂໍ, headers, ແລະ cookies ແມ່ນຕົວຢ່າງຂອງຂໍ້ມູນນີ້. ຖ້າຫນຶ່ງໃນບັນດາເຫຼົ່ານີ້ຖືກບັນທຶກ, ໂຄງການແມ່ນຢູ່ໃນອັນຕະລາຍ.
ຄວາມຮູ້ນີ້ສາມາດຊ່ວຍໃຫ້ທ່ານ delving ເພີ່ມເຕີມເຂົ້າໄປໃນບັນທຶກຂອງລະບົບແລະການກໍານົດວ່າຄໍາຮ້ອງສະຫມັກເວັບໄຊຕ໌ຂອງທ່ານໄດ້ຖືກໂຈມຕີແລ້ວ.
ມີເຄື່ອງມືອອນໄລນ໌ຟຣີທີ່ສາມາດກວດພົບວ່າແອັບພລິເຄຊັນເວັບມີຄວາມສ່ຽງ. ຫນຶ່ງໃນໂຄງການເຫຼົ່ານີ້ແມ່ນ Log4Shell ລ່າ. ມັນເປັນແຫຼ່ງເປີດແລະມີຢູ່ໃນ GitHub.
ຖ້າຫາກວ່າພື້ນທີ່ທີ່ມີຄວາມສ່ຽງຂອງລະຫັດໃນຄໍາຮ້ອງສະຫມັກອອນໄລນ໌ໄດ້ຖືກຄົ້ນພົບ, payload ສະຫນອງໃຫ້ໂດຍເຄື່ອງມືເປີດເຜີຍສາມາດຖືກນໍາໃຊ້ເພື່ອໃສ່ມັນເຂົ້າໄປໃນຄໍາຮ້ອງສະຫມັກເວັບໄຊຕ໌. ເຄື່ອງມືທົດສອບຈະເປີດເຜີຍການເຊື່ອມຕໍ່ລະຫວ່າງແອັບພລິເຄຊັນເວັບຂອງເຈົ້າ ແລະເຊີບເວີ LDAP ຂອງເຂົາເຈົ້າ ຖ້າຊ່ອງໂຫວ່ຖືກຂູດຮີດ.
ວິທີແກ້ໄຂເພື່ອແກ້ໄຂຊ່ອງໂຫວ່ Log4j
ຂັ້ນຕອນທໍາອິດແມ່ນການປັບປຸງ Log4j, ທີ່ທ່ານສາມາດເຮັດໄດ້ໂດຍການນໍາໃຊ້ຕົວຈັດການຊຸດປົກກະຕິຫຼືໂດຍການດາວໂຫຼດໄດ້ໂດຍກົງຈາກນີ້. Page.
ມັນຍັງເປັນໄປໄດ້ທີ່ຈະຫຼຸດລົງການຂູດຮີດຂອງຊ່ອງໂຫວ່ໂດຍການກໍານົດຕົວແປສະພາບແວດລ້ອມ FORMAT MSG NO LOOKUPS ເປັນຄວາມຈິງ. ມາດຕະການຕ້ານນີ້, ແນວໃດກໍ່ຕາມ, ສາມາດໃຊ້ໄດ້ກັບລຸ້ນ Log4j ທີ່ໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບ 2.10 ເທົ່ານັ້ນ.
ຕອນນີ້ໃຫ້ພວກເຮົາພິຈາລະນາທາງເລືອກອື່ນ.
1. ວິທີແກ້ໄຂບັນຫາສໍາລັບ Log4j ເວີຊັນ 2.17.0
ມັນແນ່ນອນແນະນໍາໃຫ້ໃຊ້ Log4j ຮຸ່ນ 2.15.0 ເພື່ອປ້ອງກັນ Log4Shell, ຢ່າງໃດກໍຕາມ, ຖ້າສິ່ງນີ້ເປັນໄປບໍ່ໄດ້, ວິທີແກ້ໄຂອື່ນໆແມ່ນມີຢູ່.
ເວີຊັນ 2.7.0 ແລະຕໍ່ມາຂອງ Log4j: ມັນເປັນໄປໄດ້ທີ່ຈະປ້ອງກັນການໂຈມຕີໃດໆໂດຍການປ່ຽນຮູບແບບຂອງເຫດການທີ່ຈະເຂົ້າສູ່ລະບົບໂດຍໃຊ້ syntax ເປີເຊັນ m nolookups ສໍາລັບຂໍ້ມູນທີ່ສະຫນອງໂດຍຜູ້ໃຊ້. ການປັບປຸງນີ້ຮຽກຮ້ອງໃຫ້ມີການແກ້ໄຂໄຟລ໌ການຕັ້ງຄ່າ Log4j ເພື່ອສ້າງເວີຊັນໃຫມ່ຂອງໂຄງການ. ດັ່ງນັ້ນ, ກ່ອນທີ່ຈະນໍາໃຊ້ສະບັບໃຫມ່ນີ້, ຂັ້ນຕອນການກວດສອບດ້ານວິຊາການແລະການເຮັດວຽກຕ້ອງໄດ້ຮັບການຊ້ໍາອີກ.
Log4j ເວີຊັ່ນ 2.10.0 ແລະຕໍ່ມາ: ມັນຍັງສາມາດປ້ອງກັນການໂຈມຕີໃດໆໂດຍການຕັ້ງພາລາມິເຕີການຕັ້ງຄ່າ log4j2.formatMsgNoLookups ເປັນຄວາມຈິງ, ຕົວຢ່າງເຊັ່ນ, ເມື່ອເລີ່ມຕົ້ນເຄື່ອງ virtual Java ດ້ວຍຕົວເລືອກ -Dlog4j2." formatMsgNoLookups = true, ທາງເລືອກອື່ນແມ່ນການຖອນຊັ້ນ JndiLookup ອອກຈາກ classpath argument, ເຊິ່ງຈະເອົາ vector ການໂຈມຕີຕົ້ນຕໍ (ນັກຄົ້ນຄວ້າບໍ່ໄດ້ກໍານົດຄວາມເປັນໄປໄດ້ຂອງ vector ການໂຈມຕີອື່ນ).
Amazon Web Services ສະຫນອງ hotpatch ທີ່ "ຄວນຈະຖືກໃຊ້ໃນຄວາມສ່ຽງຂອງທ່ານເອງ." "ເຕັກນິກອື່ນໆ," ເຊັ່ນ Logout4Shell, ເຊິ່ງ "ໃຊ້ຈຸດອ່ອນນີ້ຕໍ່ກັບຕົວມັນເອງ," ໄດ້ຖືກຈັດພີມມາ. ຜູ້ຊ່ຽວຊານດ້ານຄວາມປອດໄພຕັ້ງຄໍາຖາມກ່ຽວກັບຄວາມຖືກຕ້ອງທາງດ້ານກົດຫມາຍຂອງການເຄື່ອນໄຫວນີ້, ເຊິ່ງກ່ຽວຂ້ອງກັບ "ການ hack ເຄື່ອງເພື່ອແກ້ໄຂມັນ."
2. ບັນຫາໄດ້ຮັບການແກ້ໄຂໃນ Log4j v2.17.0.
ສໍາລັບລຸ້ນທີ່ໃຫຍ່ກວ່າ 2.10: Log4j2.formatMsgNoLookups ຄວນຖືກຕັ້ງເປັນ true.
ສໍາລັບຮຸ່ນ 2.0 ຫາ 2.10.0: ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອເອົາຊັ້ນ LDAP ອອກຈາກ Log4j.
Log4j2.formatMsgNoLookups ຄວນຖືກຕັ້ງເປັນ true ໃນການຕັ້ງຄ່າລະບົບ.
ການຫຼຸດຜ່ອນໃນ JVM
ການຫຼຸດຜ່ອນດ້ວຍພາລາມິເຕີ JVM ບໍ່ແມ່ນທາງເລືອກອີກຕໍ່ໄປ. ວິທີການຫຼຸດຜ່ອນຄວາມອື່ນໆຍັງສືບຕໍ່ປະສົບຜົນສໍາເລັດ. ອັບເກຣດເປັນ Log4j ເວີຊັ່ນ 2.17.0 ຖ້າເປັນໄປໄດ້. ມີຄູ່ມືການເຄື່ອນຍ້າຍສໍາລັບ Log4j v1.
ຖ້າການອັບເດດບໍ່ສາມາດເຮັດໄດ້, ໃຫ້ແນ່ໃຈວ່າອົງປະກອບດ້ານລູກຄ້າ ແລະຝ່າຍເຊີບເວີມີ -Dlog4j2.formatMsgNoLookups = true system property set .
ກະລຸນາຮັບຊາບວ່າ Log4j v1 ໄດ້ເຖິງຈຸດສິ້ນສຸດຂອງຊີວິດ (EOL) ແລະຈະບໍ່ໄດ້ຮັບການແກ້ໄຂຂໍ້ຜິດພາດອີກຕໍ່ໄປ. vector RCE ອື່ນໆແມ່ນຍັງອ່ອນໄຫວຕໍ່ກັບ Log4j v1. ດັ່ງນັ້ນ, ພວກເຮົາຮຽກຮ້ອງໃຫ້ທ່ານຍົກລະດັບ Log4j 2.17.0 ໄວເທົ່າທີ່ຈະໄວໄດ້.
3. ມາດຕະການຫຼຸດຜ່ອນ
ການຂຸດຄົ້ນໃນປັດຈຸບັນບໍ່ສາມາດເຮັດວຽກໄດ້ເຖິງແມ່ນວ່າ Log4j ມີຄວາມອ່ອນໄຫວໃນບາງກໍລະນີ, ເຊັ່ນວ່າເຄື່ອງໂຮດກໍາລັງແລ່ນ Java ຮຸ່ນທີ່ສູງກວ່າ 6u212, 7u202, 8u192, ຫຼື 11.0.2.
ນີ້ແມ່ນເນື່ອງມາຈາກການທີ່ດີກວ່າ Java Naming and Directory Interface (JNDI) ການປ້ອງກັນການໂຫຼດຫ້ອງຮຽນຫ່າງໄກສອກຫຼີກໃນສະບັບປະຈຸບັນ, ເຊິ່ງເປັນສິ່ງຈໍາເປັນສໍາລັບການໂຈມຕີປະຕິບັດງານ.
ນອກຈາກນັ້ນ, ດ້ວຍສະບັບ Log4j ທີ່ມີຂະຫນາດໃຫຍ່ກວ່າ 2.10, ບັນຫາສາມາດຫຼີກເວັ້ນໄດ້ໂດຍການກໍານົດຄ່າລະບົບ formatMsgNoLookups ເປັນ true, ສະຫນອງ JVM argument -Dlog4j2.formatMsgNoLookups = true, ຫຼືການລຶບຊັ້ນ JndiLookup ຈາກ classpath.
ໃນເວລານີ້, ຈົນກ່ວາກໍລະນີທີ່ມີຄວາມສ່ຽງຈະຖືກແກ້ໄຂ, ຊ່ອງໂຫວ່ສາມາດແກ້ໄຂໄດ້ໂດຍໃຊ້ເຕັກນິກຂ້າງລຸ່ມນີ້:
- ຕັ້ງຄຸນສົມບັດຂອງລະບົບ log4j2.formatMsgNoLookups ເປັນ true ສໍາລັບ >=2.10.
- ຕັ້ງຕົວເລືອກສະພາບແວດລ້ອມ LOG4J FORMAT MSG NO LOOKUPS ເປັນ true ສໍາລັບ >=2.10.
- ເອົາ JndiLookup.class ອອກຈາກ classpath ສໍາລັບ 2.0-beta9 ຫາ 2.10.0: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
ການປະຕິບັດທີ່ດີທີ່ສຸດຫນຶ່ງທີ່ແນະນໍາແມ່ນເພື່ອຈໍາກັດການຈາລະຈອນຂາເຂົ້າອິນເຕີເນັດໃຫ້ພຽງແຕ່ພອດທີ່ເຫມາະສົມ.
ເຖິງແມ່ນວ່າການໂຈມຕີສ່ວນໃຫຍ່ໃນພາກສະຫນາມຈະຖືກສົ່ງຜ່ານ HTTP, ຊ່ອງໂຫວ່ອາດຈະຖືກຂູດຮີດໂດຍຜ່ານໂປໂຕຄອນໃດໆທີ່ບັນທຶກຂໍ້ມູນການປ້ອນຂໍ້ມູນຂອງຜູ້ໃຊ້ໂດຍໃຊ້ Log4j.
ຢ່າງໃດກໍ່ຕາມ, ການປັບປຸງ log4j 2.17.0 ແມ່ນການແກ້ໄຂທີ່ດີທີ່ສຸດເພາະວ່າຜູ້ໃດຜູ້ຫນຶ່ງສາມາດຄົ້ນພົບວິທີການເພີ່ມເຕີມຕໍ່ກັບບັນຫາ. ຍິ່ງໄປກວ່ານັ້ນ, ຜູ້ເຜີຍແຜ່ແລະຜູ້ຜະລິດຈໍານວນຫຼາຍໄດ້ປະກາດການປັບປຸງການບໍລິການຫຼືແອັບຯຂອງພວກເຂົາ.
4. Log4Shell vulnerability patch
Log4j ແມ່ນມີຢູ່ທົ່ວທຸກມຸມ, ໂດຍສະເພາະໃນປັດຈຸບັນທີ່ຊ່ອງໂຫວ່ຖືກຂູດຮີດ. ເພື່ອສະຫຼຸບ, ສິ່ງທີ່ທ່ານຕ້ອງເຮັດແມ່ນລວມເອົາຕົວອັກສອນຕໍ່ໄປນີ້ຢູ່ໃນບັນທຶກທີ່ກວດສອບໂດຍ Log4j.
ແລະນີ້ຈະດາວໂຫລດແລະປະຕິບັດໄຟລ໌ Java ທີ່ຢູ່ໃນຕອນທ້າຍຂອງ URL. ມັນກົງໄປກົງມາຍ້ອນວ່າມັນເປັນລະຄອນ.
ຕາມທີ່ທ່ານຮູ້, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະອັບເກຣດ log4j ເປັນເວີຊັນ >= 2.17.0 ເພື່ອແກ້ໄຂຊ່ອງໂຫວ່ຂອງ Log4Shell (CVE-2021-44228).
ຖ້າອັນນີ້ເປັນໄປບໍ່ໄດ້:
ສໍາລັບແອັບພລິເຄຊັນທີ່ໃຊ້ຫ້ອງສະໝຸດ Log4j ເວີຊັ່ນ 2.10.0 ແລະຕໍ່ມາ, ຍັງສາມາດປ້ອງກັນການໂຈມຕີໃດໆ ໂດຍການຕັ້ງຄ່າພາລາມິເຕີການຕັ້ງຄ່າ log4j2.formatMsgNoLookups ເປັນ true, ຕົວຢ່າງ, ໃນຂະນະທີ່ເລີ່ມ Java virtual machine ກັບ -Dlog4j2.formatMsgNoLookups = true ທາງເລືອກ.
ທາງເລືອກອື່ນແມ່ນການລຶບຫ້ອງຮຽນ JndiLookup ອອກຈາກການໂຕ້ຖຽງ classpath, ເຊິ່ງຈະເອົາ vector ການໂຈມຕີຕົ້ນຕໍ (ນັກຄົ້ນຄວ້າບໍ່ໄດ້ປະຕິເສດການມີຢູ່ຂອງ vector ການໂຈມຕີອື່ນ).
ຫມາຍເຫດ
ອົງການຈັດຕັ້ງທີ່ລັງເລ ຫຼືບໍ່ເຕັມໃຈທີ່ຈະປັບປ່ຽນລະບົບທີ່ອ່ອນໄຫວ (ຫຼືຜູ້ທີ່ຕ້ອງການຕິດຕັ້ງການປົກປ້ອງພິເສດ) ຄວນຄິດກ່ຽວກັບ:
- ໃຫ້ແນ່ໃຈວ່າການຈະລາຈອນທັງໝົດຖືກສົ່ງຜ່ານ iSensor/waff/IPS. ນີ້ສາມາດຮັກສາການໂຈມຕີຈາກການເຂົ້າຫາລະບົບ.
- ການຈໍາກັດຈໍານວນການຈະລາຈອນທີ່ສາມາດບັນລຸລະບົບທີ່ອ່ອນໄຫວຖ້າລະບົບບໍ່ຈໍາເປັນຕ້ອງເຊື່ອມຕໍ່ກັບອິນເຕີເນັດ, ຈໍາກັດການເຂົ້າເຖິງພຽງແຕ່ IPS ທີ່ສໍາຄັນແລະເຊື່ອຖືໄດ້.
- ການຫຼຸດຜ່ອນການຈະລາຈອນຂາອອກທີ່ໄດ້ຮັບອະນຸຍາດຂອງເຈົ້າພາບ. ເນື່ອງຈາກວ່າການໂຈມຕີນີ້ດໍາເນີນການໂດຍການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຂອງ rogue, ທັງຫມົດທີ່ຢູ່ IP ແລະພອດ superfluous ຄວນໄດ້ຮັບການສະກັດຢູ່ໃນໄຟວໍ.
- ຖ້າການບໍລິການບໍ່ຈໍາເປັນ, ມັນຄວນຈະຖືກປິດໃຊ້ງານຈົນກ່ວາການແກ້ໄຂແມ່ນກຽມພ້ອມ.
ສະຫຼຸບ
ຂໍ້ບົກພ່ອງຂອງ Log4j ເຮັດໃຫ້ຊຸມຊົນຂອງພວກເຮົາຕົກໃຈ ແລະເຕືອນພວກເຮົາທຸກຄົນວ່າພວກເຮົາເພິ່ງພາອາໄສຊອບແວໂອເພນຊອດແນວໃດ.
Log4j ເປັນເອກະລັກ. ມັນບໍ່ແມ່ນລະບົບປະຕິບັດການ, ຫຼືບໍ່ແມ່ນຕົວທ່ອງເວັບ, ແລະບໍ່ແມ່ນຊອບແວ. ແທນທີ່ຈະ, ມັນແມ່ນສິ່ງທີ່ນັກຂຽນໂປລແກລມຫມາຍເຖິງຫ້ອງສະຫມຸດ, ຊຸດ, ຫຼືໂມດູນລະຫັດ. ມັນພຽງແຕ່ຮັບໃຊ້ຈຸດປະສົງຫນຶ່ງ, ນັ້ນແມ່ນ, ການຮັກສາບັນທຶກຂອງສິ່ງທີ່ເກີດຂື້ນໃນເຄື່ອງແມ່ຂ່າຍ.
ຄົນທີ່ຂຽນລະຫັດມັກສຸມໃສ່ສິ່ງທີ່ເຮັດໃຫ້ຊອບແວຂອງພວກເຂົາໂດດເດັ່ນ. ເຂົາເຈົ້າບໍ່ສົນໃຈໃນການປະດິດລໍ້. ດັ່ງນັ້ນ, ພວກເຂົາເຈົ້າອີງໃສ່ plethora ຂອງຫ້ອງສະຫມຸດລະຫັດທີ່ມີຢູ່ແລ້ວ, ເຊັ່ນ Log4j.
ໂມດູນ Log4j ແມ່ນມາຈາກ Apache, ຊອບແວເຊີບເວີເວັບທີ່ໃຊ້ຢ່າງກວ້າງຂວາງທີ່ສຸດ. ນັ້ນແມ່ນເຫດຜົນທີ່ວ່າມັນສາມາດຖືກຄົ້ນພົບຢູ່ໃນເຄື່ອງແມ່ຂ່າຍຫຼາຍລ້ານ. ດ້ວຍເຫດນີ້, ໄພຂົ່ມຂູ່ດ້ານຄວາມປອດໄພເພີ່ມຂຶ້ນ.
ຂ້ອຍຫວັງວ່າວິທີແກ້ໄຂຂ້າງເທິງຈະຊ່ວຍໃຫ້ທ່ານຮັກສາອຸປະກອນຂອງທ່ານໃຫ້ປອດໄພ.
ຕິດຕາມ HashDork ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມຈາກໂລກເຕັກໂນໂລຢີ.
ອອກຈາກ Reply ເປັນ