Log4j ຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພທີ່ຮ້າຍແຮງທີ່ສຸດ
1. Log4j ແມ່ນຫຍັງ?
Log4j ແມ່ນໂປຣແກຣມ open source ໜຶ່ງທີ່ມາຈາກພື້ນຖານຂອງ Apache ແລະ ເປັນ Loggin Library ທີ່ໃຊ້ Java.
Library ນີ້ເປັນເຄື່ອງມືທີ່ໃຊ້ໃນການອອກຈາກ Logs ເພື່ອຈຸດປະສົງໃນການບຳລຸງຮັກສາ ແລະ ບໍລິຫານຈັດການໂປຣແກຣມ ແລະ ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນການບໍລິການທີ່ໃຊ້ Java.
ຜູ້ໂຈມຕີສາມາດໄດ້ຮັບສິດຂອງບໍລິການໄດ້ ໂດຍການໃຊ້ຊ່ອງໂຫວ່ຂອງ Log4j ໃນການຣັນໂຄດຈາກໄລຍະໄກ (CVE-2021-44228), ເຊິ່ງໄດ້ຖືກຄົ້ນພົບຄັ້ງທໍາອິດໃນ Apache Log4j.
ນີ້ໝາຍຄວາມວ່າ ຜູ້ໂຈມຕີສາມາດໃຊ້ຟັງຊັ່ນ Lookup ເພື່ອຮັນໂຄດທີ່ໂຫລດຈາກເຄື່ອງເຊີເວີ LDAP ໄດ້ຕາມໃຈ.
[ຜູ້ໂຈມຕີສາມາດສົ່ງ ແລະ ຣັນຄຳສັ່ງທີ່ເປັນອັນຕະລາຍຈາກໄລຍະໄກໄດ້]
2. ຊ່ອງໂຫວ່ Log4j ແມ່ນຫຍັງ?
ໃນເດືອນພະຈິກຂອງປີຜ່ານມານີ້ ຊ່ອງໂຫວ່ດັ່ງກ່າວໄດ້ຖືກຄົ້ນພົບຄັ້ງທໍາອິດໃນ Alibaba ແລະ ນັບຕັ້ງແຕ່ນັ້ນມາກໍ່ມີການໂຈມຕີຫຼາຍຄັ້ງ ຜ່ານຊ່ອງໂຫວ່ ດັ່ງກ່າວ, ລວມທັງ DDoS, malware ແລະ ransomware.
ຊ່ອງໂຫວ່ Log4j ເກີດຂຶ້ນ ຈາກການຮຽກໃຊ້ lookup method ຂອງ JNDI ໂດຍບໍ່ໄດ້ມີການກວດສອບຄ່າການປ້ອນຂໍ້ມູນ (input value).
JNDI (Java Naming and Directory Interface):
ສະໜອງ Java applications ທີ່ມີຄວາມສາມາດໃນການຊອກຫາຊັບພະຍາກອນທີ່ຕ້ອງການ (ເຊັ່ນ: ຖານຂໍ້ມູນ) ແລະ ຂໍ້ມູນໂປຣແກຣມອື່ນໆ ທີ່ຈໍາເປັນສໍາລັບການດຳເນີນການ.
Lookup:
ຟັງຊັ່ນການໃຊ້ຊັບພະຍາກອນທີ່ພົບຜ່ານ JNDI
ຊ່ອງໂຫວ່ຂອງ Log4j ໄດ້ຖືກຈັດອັນດັບເປັນລະດັບ Critical, ໂດຍມີຄ່າເທົ່າກັບ 10 ຈາກລະດັບ 10 ໃນລະບົບການຈັດອັນດັບຊ່ອງໂຫວ່ທົ່ວໄປ (CVSS).
3. ເປັນຫຍັງມັນຈຶ່ງເປັນຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພທີ່ຮ້າຍແຮງທີ່ສຸດ?
Java ເປັນພາສາຂຽນໂປຣແກຣມທີ່ນິຍົມ ແລະ Log4j ເປັນ Logging Library ທີ່ນິຍົມໃຊ້ຢ່າງກວ້າງຂວາງທີ່ສຸດເມື່ອນຳໃຊ້ Java.
ເນື່ອງຈາກມີການໃຊ້ງານໃນບໍລິການດ້ານໄອທີ (IT) ຫຼາຍສິບພັນລາຍການ, ຊ່ອງໂຫວ່ນີ້ຈຶ່ງກາຍເປັນບັນຫາທີ່ຮ້າຍແຮງ.
ຊ່ອງໂຫວ່ຂອງ Log4j ຖືວ່າເປັນຊ່ອງໂຫວ່ທີ່ຮ້າຍແຮງທີ່ສຸດ, ເພາະວ່າ Java ແລະ Log4j ສາມາດໃຊ້ໄດ້ໃນ middleware* ເຖິງແມ່ນວ່າຈະບໍ່ມີໂປຣແກຣມ Java.
*Middleware: ຄອມພິວເຕີເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມທີ່ເອີ້ນວ່າ: 'ສະພາບແວດລ້ອມການຄຳນວນແບບກະຈາຍ (distributed computing environment)' ໂດຍການແບ່ງວຽກລະຫວ່າງຄອມພິວເຕີຫຼາຍຄອມພິວເຕີ. ໃນສະພາບແວດລ້ອມການຄຳນວນແບບກະຈາຍ (distributed computing environment) ນີ້, ຊອບແວທີ່ເຮັດໃຫ້ການສື່ສານລະຫວ່າງໂປຣແກຣມແອັບພຣີເຄຊັ່ນ ແລະ ສະພາບແວດລ້ອມເປັນໄປໄດ້ຢ່າງລຽບງ່າຍ ຊື່ງໂປຣແກຣມກໍາລັງປະຕິບັດການເຫຼົ່ານັ້ນເອີ້ນວ່າ ມິດໂດແວ (middleware).
4. ວິທີການປ້ອງກັນການໂຈມຕີ
ສິ່ງທໍາອິດທີ່ທ່ານຈໍາເປັນຕ້ອງເຮັດແມ່ນໃຫ້ແນ່ໃຈວ່າແອັບພຣີເຄຊັ່ນທີ່ທ່ານກໍາລັງໃຊ້ນັ້ນໃຊ້ Log4j.
. (Linux) ການກວດສອບເວີຊັ່ນຂອງ log4j-core
- dpkg-I | grep log4j - find / -name ‘log4j*’
. Lookup: (Windows) ກວດສອບເວີຊັ່ນການຕິດຕັ້ງຂອງ log4j
- ກວດສອບເວີຊັ່ນໂດຍໃຊ້ຟັງຊັ່ນ (function) ການຄົ້ນຫາ (log4j search) ຂອງ Windows Explorer.
. ຖ້າທ່ານໃຊ້ Java Spring Framework Maven, ໃຫ້ເປີດຟາຍ pom.xml ໃນ path ທີ່ຕິດຕັ້ງ log4j ແລະ ຄົ້ນຫາໂດຍຄົ້ນຫາ "log4j-core".
- ກວດສອບເວີຊັ່ນໂດຍໃຊ້ຟັງຊັ່ນ (function) ການຄົ້ນຫາ (log4j search) ຂອງ Windows Explorer.
UPDATE
ຖ້າທ່ານໃຊ້ Log4j, ການຕອບສະໜອງທີ່ມີປະສິດທິພາບທີ່ສຸດຄືການກຳຈັດຊ່ອງໂຫວ່ໂດຍການໃຊ້ການປັບປຸງ (update).
Logj4 ເວີຊັ່ນຫລ້າສຸດ (ມາຮອດ 2022. 01)
JAVA 8 ຫຼື ສູງກວ່າ
2.17.1 ຫຼື ສູງກວ່າ
JAVA 7
2.12.4 ຫຼື ສູງກວ່າ
JAVA 6
2.3.2 ຫຼື ສູງກວ່າ
* ອ້າງເຖິງການອອກແພັດ Patch ຄວາມປອດໄພຂອງແອັບພຣິເຄຊັ່ນ ແລະ KISA Bohonara & KrCERT/CC(www.boho.or.kr)
ລົບຟັງຊັນການຄົ້ນຫາ (Lookup)
. Remove JndiLookup Class
Ex.) * zip -q -d log4j-core-".jar org/apache/logging/log4j/core/lookup/JndiLookup.class"
. Utilze “log4j2.formatMsgNoLookups=true” or “spring.jndi.ignore=true” setting
ຈຳກັດສະຕຣິງ (string)
ຄວນກຳນົດນະໂຍບາຍ ການເຂົ້າ/ອອກ ທີ່ເໝາະສົມ ເພື່ອການກວດຈັບ/ການບລອກສະຕຣິງ (string) ໃຫ້ກັບບໍລິການ (service) ເພື່ອຈຳກັດສະຕຣິງ (string) ທີ່ສາມາດໂຈມຕີຊ່ອງໂຫວ່ໄດ້.
ເນື່ອງຈາກການພົບເຫັນຊ່ອງໂຫວ່ຂອງ Log4j ຍັງສືບຕໍ່, ພວກເຮົາຕ້ອງລະວັງການອັບເດດຄວາມປອດໄພ ແລະ ຊ່ອງໂຫວ່ຕ່າງໆ ເພື່ອປ້ອງກັນຄວາມເສຍຫາຍ.
Porher 15 November 2022 1510 reads
Print
1. Log4j ແມ່ນຫຍັງ?
Library ນີ້ເປັນເຄື່ອງມືທີ່ໃຊ້ໃນການອອກຈາກ Logs ເພື່ອຈຸດປະສົງໃນການບຳລຸງຮັກສາ ແລະ ບໍລິຫານຈັດການໂປຣແກຣມ ແລະ ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນການບໍລິການທີ່ໃຊ້ Java.
ຜູ້ໂຈມຕີສາມາດໄດ້ຮັບສິດຂອງບໍລິການໄດ້ ໂດຍການໃຊ້ຊ່ອງໂຫວ່ຂອງ Log4j ໃນການຣັນໂຄດຈາກໄລຍະໄກ (CVE-2021-44228), ເຊິ່ງໄດ້ຖືກຄົ້ນພົບຄັ້ງທໍາອິດໃນ Apache Log4j.
ນີ້ໝາຍຄວາມວ່າ ຜູ້ໂຈມຕີສາມາດໃຊ້ຟັງຊັ່ນ Lookup ເພື່ອຮັນໂຄດທີ່ໂຫລດຈາກເຄື່ອງເຊີເວີ LDAP ໄດ້ຕາມໃຈ.
[ຜູ້ໂຈມຕີສາມາດສົ່ງ ແລະ ຣັນຄຳສັ່ງທີ່ເປັນອັນຕະລາຍຈາກໄລຍະໄກໄດ້]
ໃນເດືອນພະຈິກຂອງປີຜ່ານມານີ້ ຊ່ອງໂຫວ່ດັ່ງກ່າວໄດ້ຖືກຄົ້ນພົບຄັ້ງທໍາອິດໃນ Alibaba ແລະ ນັບຕັ້ງແຕ່ນັ້ນມາກໍ່ມີການໂຈມຕີຫຼາຍຄັ້ງ ຜ່ານຊ່ອງໂຫວ່ ດັ່ງກ່າວ, ລວມທັງ DDoS, malware ແລະ ransomware.
ຊ່ອງໂຫວ່ Log4j ເກີດຂຶ້ນ ຈາກການຮຽກໃຊ້ lookup method ຂອງ JNDI ໂດຍບໍ່ໄດ້ມີການກວດສອບຄ່າການປ້ອນຂໍ້ມູນ (input value).
Lookup:
ຟັງຊັ່ນການໃຊ້ຊັບພະຍາກອນທີ່ພົບຜ່ານ JNDI
ຊ່ອງໂຫວ່ຂອງ Log4j ໄດ້ຖືກຈັດອັນດັບເປັນລະດັບ Critical, ໂດຍມີຄ່າເທົ່າກັບ 10 ຈາກລະດັບ 10 ໃນລະບົບການຈັດອັນດັບຊ່ອງໂຫວ່ທົ່ວໄປ (CVSS).
Java ເປັນພາສາຂຽນໂປຣແກຣມທີ່ນິຍົມ ແລະ Log4j ເປັນ Logging Library ທີ່ນິຍົມໃຊ້ຢ່າງກວ້າງຂວາງທີ່ສຸດເມື່ອນຳໃຊ້ Java.
ເນື່ອງຈາກມີການໃຊ້ງານໃນບໍລິການດ້ານໄອທີ (IT) ຫຼາຍສິບພັນລາຍການ, ຊ່ອງໂຫວ່ນີ້ຈຶ່ງກາຍເປັນບັນຫາທີ່ຮ້າຍແຮງ.
ຊ່ອງໂຫວ່ຂອງ Log4j ຖືວ່າເປັນຊ່ອງໂຫວ່ທີ່ຮ້າຍແຮງທີ່ສຸດ, ເພາະວ່າ Java ແລະ Log4j ສາມາດໃຊ້ໄດ້ໃນ middleware* ເຖິງແມ່ນວ່າຈະບໍ່ມີໂປຣແກຣມ Java.
*Middleware: ຄອມພິວເຕີເຮັດວຽກຢູ່ໃນສະພາບແວດລ້ອມທີ່ເອີ້ນວ່າ: 'ສະພາບແວດລ້ອມການຄຳນວນແບບກະຈາຍ (distributed computing environment)' ໂດຍການແບ່ງວຽກລະຫວ່າງຄອມພິວເຕີຫຼາຍຄອມພິວເຕີ. ໃນສະພາບແວດລ້ອມການຄຳນວນແບບກະຈາຍ (distributed computing environment) ນີ້, ຊອບແວທີ່ເຮັດໃຫ້ການສື່ສານລະຫວ່າງໂປຣແກຣມແອັບພຣີເຄຊັ່ນ ແລະ ສະພາບແວດລ້ອມເປັນໄປໄດ້ຢ່າງລຽບງ່າຍ ຊື່ງໂປຣແກຣມກໍາລັງປະຕິບັດການເຫຼົ່ານັ້ນເອີ້ນວ່າ ມິດໂດແວ (middleware).
ສິ່ງທໍາອິດທີ່ທ່ານຈໍາເປັນຕ້ອງເຮັດແມ່ນໃຫ້ແນ່ໃຈວ່າແອັບພຣີເຄຊັ່ນທີ່ທ່ານກໍາລັງໃຊ້ນັ້ນໃຊ້ Log4j.
. (Linux) ການກວດສອບເວີຊັ່ນຂອງ log4j-core
- dpkg-I | grep log4j - find / -name ‘log4j*’
. Lookup: (Windows) ກວດສອບເວີຊັ່ນການຕິດຕັ້ງຂອງ log4j
- ກວດສອບເວີຊັ່ນໂດຍໃຊ້ຟັງຊັ່ນ (function) ການຄົ້ນຫາ (log4j search) ຂອງ Windows Explorer.. ຖ້າທ່ານໃຊ້ Java Spring Framework Maven, ໃຫ້ເປີດຟາຍ pom.xml ໃນ path ທີ່ຕິດຕັ້ງ log4j ແລະ ຄົ້ນຫາໂດຍຄົ້ນຫາ "log4j-core".
- ກວດສອບເວີຊັ່ນໂດຍໃຊ້ຟັງຊັ່ນ (function) ການຄົ້ນຫາ (log4j search) ຂອງ Windows Explorer.UPDATE
ຖ້າທ່ານໃຊ້ Log4j, ການຕອບສະໜອງທີ່ມີປະສິດທິພາບທີ່ສຸດຄືການກຳຈັດຊ່ອງໂຫວ່ໂດຍການໃຊ້ການປັບປຸງ (update).
Logj4 ເວີຊັ່ນຫລ້າສຸດ (ມາຮອດ 2022. 01) |
|
JAVA 8 ຫຼື ສູງກວ່າ |
2.17.1 ຫຼື ສູງກວ່າ |
JAVA 7 |
2.12.4 ຫຼື ສູງກວ່າ |
JAVA 6 |
2.3.2 ຫຼື ສູງກວ່າ |
* ອ້າງເຖິງການອອກແພັດ Patch ຄວາມປອດໄພຂອງແອັບພຣິເຄຊັ່ນ ແລະ KISA Bohonara & KrCERT/CC(www.boho.or.kr)
ລົບຟັງຊັນການຄົ້ນຫາ (Lookup)
. Remove JndiLookup Class
Ex.) * zip -q -d log4j-core-".jar org/apache/logging/log4j/core/lookup/JndiLookup.class"
. Utilze “log4j2.formatMsgNoLookups=true” or “spring.jndi.ignore=true” setting
ຈຳກັດສະຕຣິງ (string)
ຄວນກຳນົດນະໂຍບາຍ ການເຂົ້າ/ອອກ ທີ່ເໝາະສົມ ເພື່ອການກວດຈັບ/ການບລອກສະຕຣິງ (string) ໃຫ້ກັບບໍລິການ (service) ເພື່ອຈຳກັດສະຕຣິງ (string) ທີ່ສາມາດໂຈມຕີຊ່ອງໂຫວ່ໄດ້.
ເນື່ອງຈາກການພົບເຫັນຊ່ອງໂຫວ່ຂອງ Log4j ຍັງສືບຕໍ່, ພວກເຮົາຕ້ອງລະວັງການອັບເດດຄວາມປອດໄພ ແລະ ຊ່ອງໂຫວ່ຕ່າງໆ ເພື່ອປ້ອງກັນຄວາມເສຍຫາຍ.