Tabl Cynnwys[Cuddio][Dangos]
Effeithiodd Log4Shell, bregusrwydd rhyngrwyd, yn ddiweddar ar filiynau o beiriannau. Mae Log4j, darn o feddalwedd aneglur ond bron ym mhobman, yn ei achosi.
Defnyddir Log4j i gofnodi'r holl weithredoedd sy'n digwydd y tu ôl i'r llenni mewn amrywiaeth o systemau cyfrifiadurol.
Mae'n seiliedig ar lyfrgell logio ffynhonnell agored a ddefnyddir gan fusnesau a hyd yn oed sefydliadau'r llywodraeth yn y mwyafrif o gymwysiadau.
Gan ei fod yn un o'r tyllau seiberddiogelwch gwaethaf a ddarganfuwyd erioed, mae'n hanfodol amddiffyn eich systemau rhag y bregusrwydd hwn. Ond sut?
Gadewch i ni archwilio bregusrwydd Log4j yn fanwl a'r holl atebion trwsio posibl ar ei gyfer.
Beth yw Log4j?
Log4j yn an ffynhonnell agored fframwaith logio sy'n galluogi datblygwyr meddalwedd i gofnodi data gwahanol o fewn eu cymwysiadau. Mae'n rhan o brosiect Gwasanaethau Logio Apache, sy'n cael ei redeg gan y Sefydliad Meddalwedd Apache.
Mae cannoedd o wefannau ac apiau yn defnyddio Log4j i gyflawni gweithrediadau hanfodol megis logio data ar gyfer dadfygio a defnyddiau eraill.
Pan fyddwch chi'n mewnbynnu neu'n clicio ar ddolen ar-lein wael a chael hysbysiad gwall 404, mae hon yn enghraifft aml o Log4j yn y gwaith. Mae'r gweinydd gwe sy'n rhedeg parth y ddolen we y ceisioch chi ei gyrchu yn eich hysbysu nad oes tudalen we o'r fath yn bodoli. Mae hefyd yn cofnodi'r digwyddiad yn Log4j ar gyfer gweinyddwyr system y gweinydd.
Trwy gydol rhaglenni meddalwedd, defnyddir signalau diagnostig tebyg. Yn y gêm ar-lein Minecraft, er enghraifft, mae'r gweinydd yn defnyddio Log4j i gofnodi gweithgaredd fel cyfanswm yr RAM a ddefnyddiwyd a chyfarwyddiadau defnyddiwr a anfonwyd i'r consol.
Sut mae'r bregusrwydd yn digwydd?
Mae edrychiadau yn nodwedd newydd a gyflwynwyd yn Log4j 2.0, sy'n helpu i ymgorffori gwybodaeth ychwanegol mewn cofnodion log. Un o'r chwiliadau hyn yw chwiliad JNDI (Java Enwing and Directory Interface), sef API Java ar gyfer cyfathrebu â gwasanaeth cyfeiriadur.
Gan ddefnyddio'r dull hwn, gellir mapio IDau defnyddwyr mewnol i enwau defnyddwyr gwirioneddol. Mae'r ymholiad hwn yn datgelu'r bregusrwydd RCE sydd newydd ei ddarganfod, gan mai un o'r mathau o ddata a gyflenwir gan y gweinydd LDAP yw URI sy'n pwyntio at ddosbarth Java, sydd wedyn yn cael ei lwytho i'r cof a'i redeg gan yr enghraifft Log4j.
Oherwydd gwendid yn nilysiad mewnbwn llyfrgell Log4j, mae'n bosibl chwistrellu gweinydd LDAP mympwyol o ffynhonnell nad yw'n ymddiried ynddi. Gan fod datblygwyr yn tybio y bydd data a anfonir i logiau yn cael ei drin fel testun plaen, ni chynhelir unrhyw ddilysiad mewnbwn ychwanegol, ac mae mewnbwn defnyddwyr peryglus yn mynd i mewn i'r logiau.
Gallai datganiad log edrych fel hyn:
Byddai defnyddiwr maleisus nawr yn mewnosod chwiliad JNDI yn cyfeirio at weinydd LDAP twyllodrus mewn paramedr URL. Byddai'r chwiliad JNDI fel a ganlyn:
Yna mae'r llyfrgell Log4j yn siarad â'r gweinydd LDAP hwn yn attacker.com i gael gwybodaeth cyfeiriadur, gan gynnwys gwerthoedd ar gyfer y Java Factory a Java Codebase.
Mae'r ddau werth hyn yn cynnwys dosbarth Java yr ymosodwr, sydd wedyn yn cael ei lwytho i'r cof a'i weithredu gan yr enghraifft Log4j, gan gwblhau'r gweithredu cod.
Pwy sydd mewn perygl?
Mae bregusrwydd Log4j yn hynod eang, gan effeithio ar gymwysiadau busnes, dyfeisiau wedi'u mewnosod, a'u his-systemau. Mae apiau yr effeithir arnynt yn cynnwys Cisco Webex, Minecraft, a FileZilla FTP.
Fodd bynnag, nid yw hon yn rhestr gyfan o bell ffordd. Mae'r diffyg hyd yn oed yn effeithio ar genhadaeth chopper Ingenuity Mars 2020, sy'n defnyddio Apache Log4j ar gyfer recordio digwyddiadau.
Mae'r gymuned ddiogelwch wedi llunio a rhestr o systemau bregus. Mae'n hanfodol nodi bod y rhestrau hyn yn cael eu diweddaru'n barhaus, felly os nad yw rhaglen neu system benodol yn cael sylw, peidiwch â chymryd yn ganiataol nad yw'n cael ei heffeithio.
Mae bod yn agored i'r bregusrwydd hwn yn eithaf tebygol, a hyd yn oed os yw'n benodol pentwr technoleg nad yw'n berthnasol Java, dylai swyddogion diogelwch ddisgwyl i systemau cyflenwyr hanfodol, cyflenwyr SaaS, darparwyr cynnal cwmwl, a darparwyr gweinydd gwe wneud hynny.
Sut i wirio am fregusrwydd Log4j?
Y cam cyntaf yw penderfynu a oes ymosodiad eisoes wedi digwydd. Gallwch wneud hynny trwy wirio logiau'r system am ddarnau o lwyth tâl RCE.
Os bydd chwiliad am dermau fel “jndi”, “ldap”, neu “$::” yn esgor ar unrhyw logiau, dylai ymchwilwyr diogelwch archwilio ymhellach i weld a oedd yn ymosodiad cyfreithlon neu ddim ond yn olion bysedd.
Darganfuwyd llawer o ymosodiadau yn y gwyllt nad oeddent yn achosi unrhyw lwythi cyflog niweidiol. Serch hynny, fe'u cynhaliwyd gan arbenigwyr diogelwch i benderfynu faint o apps oedd yn agored i'r ymosodiad hwn.
Y cam nesaf yw defnyddio llyfrgell Log4j i nodi pob prosiect. Os defnyddir fersiynau rhwng 2.0-beta9 a 2.14.1, gall y prosiect fod yn agored i niwed.
O ystyried yr anhawster wrth benderfynu lle mae'r bregusrwydd hwn yn bodoli, gall fod yn well rhagdybio bod y prosiect yn agored i niwed ac mai diweddaru'r llyfrgell yw'r ffordd orau o weithredu i ddileu'r perygl o weithredu cod.
Nid yw'r prosiect yn agored i niwed os yw'r fersiwn a ddefnyddir yn llai na 2.0-beta 9, er y dylid dal i uwchraddio'r llyfrgell Log4j oherwydd bod fersiynau yn yr ystod 1.x yn hen ac nad ydynt bellach yn cael diweddariadau.
P'un a ddarganfyddir prosiect sy'n agored i niwed, fe'ch cynghorir i'w wirio i weld a yw unrhyw wybodaeth a logir gan ddefnyddio Log4j yn cynnwys gwybodaeth y gall y defnyddiwr ei newid. Mae URLs, paramedrau ceisiadau, penawdau, a chwcis yn enghreifftiau o'r data hwn. Os caiff un o'r rhain ei gofnodi, mae'r prosiect mewn perygl.
Gall y wybodaeth hon eich helpu i ymchwilio ymhellach i logiau'r system a phenderfynu a oes rhywun eisoes wedi ymosod ar eich rhaglen we.
Mae yna offer ar-lein rhad ac am ddim a all ganfod a yw rhaglen we yn agored i niwed. Un o'r rhaglenni hyn yw Heliwr Log4Shell. Mae'n ffynhonnell agored ac ar gael ar GitHub.
Os darganfyddir maes cod sy'n agored i niwed yn y rhaglen ar-lein, gellir defnyddio'r llwyth tâl a ddarperir gan yr offeryn a ddatgelwyd i'w chwistrellu i'r rhaglen we. Byddai'r offeryn profi yn datgelu'r cysylltiadau a wneir rhwng eich rhaglen we a'u gweinydd LDAP pe byddai'r bregusrwydd yn cael ei ecsbloetio.
Atebion i drwsio bregusrwydd Log4j
Y cam cyntaf yw diweddaru Log4j, y gallwch chi ei wneud trwy ddefnyddio'r rheolwyr pecyn arferol neu trwy ei lawrlwytho'n uniongyrchol o hwn dudalen.
Mae hefyd yn bosibl lleihau'r gallu i ecsbloetio'r bregusrwydd trwy osod y newidyn amgylchedd FORMAT MSG NO LOOKUPS i wir. Fodd bynnag, dim ond i fersiynau Log4j sy'n fwy na neu'n hafal i 2.10 y mae'r gwrthfesur hwn yn berthnasol.
Gadewch inni nawr ystyried opsiynau amgen.
1. Workarounds ar gyfer fersiwn Log4j 2.17.0
Fe'ch cynghorir yn bendant yn gryf i ddefnyddio fersiwn Log4j 2.15.0 i amddiffyn yn erbyn Log4Shell, fodd bynnag, os nad yw hyn yn bosibl, mae atebion eraill ar gael.
Fersiynau 2.7.0 ac yn ddiweddarach o Log4j: Mae'n ymarferol amddiffyn rhag unrhyw ymosodiad trwy newid fformat y digwyddiadau i'w logio gan ddefnyddio cystrawen y cant m nolookups ar gyfer y data a ddarparwyd gan y defnyddiwr. Mae'r diweddariad hwn yn gofyn am olygu'r ffeil ffurfweddu Log4j i gynhyrchu fersiwn newydd o'r rhaglen. O ganlyniad, cyn defnyddio'r fersiwn newydd hon, rhaid ailadrodd y camau dilysu technegol a swyddogaethol.
Fersiynau Log4j 2.10.0 ac yn ddiweddarach: Mae hefyd yn bosibl amddiffyn rhag unrhyw ymosodiad trwy osod y paramedr cyfluniad log4j2.formatMsgNoLookups yn wir, er enghraifft, wrth gychwyn y peiriant rhithwir Java gyda'r opsiwn -Dlog4j2.” formatMsgNoLookups = gwir, Opsiwn arall yw tynnu'r dosbarth JndiLookup o'r ddadl classpath, a fydd yn tynnu'r prif fector ymosodiad (nid yw'r ymchwilwyr yn diystyru'r posibilrwydd o fector ymosodiad arall).
Mae Amazon Web Services yn darparu darn poeth y dylid ei ddefnyddio "ar eich menter eich hun." Mae “technegau,” eraill fel Logout4Shell, sy’n “defnyddio’r bregusrwydd hwn yn ei erbyn ei hun,” wedi’u cyhoeddi. Mae'r arbenigwr diogelwch yn cwestiynu cyfreithlondeb y symudiad hwn, sy'n golygu "hacio peiriant i'w drwsio."
2. Mae'r broblem wedi'i datrys yn Log4j v2.17.0.
Ar gyfer fersiynau mwy na 2.10: Log4j2.formatMsgNoLookups dylid gosod i wir.
Ar gyfer fersiynau 2.0 trwy 2.10.0: Rhedeg y gorchymyn canlynol i dynnu'r dosbarth LDAP o Log4j.
Dylid gosod Log4j2.formatMsgNoLookups yn wir yng ngosodiadau'r system.
Lliniaru yn JVM
Nid yw lliniaru gyda pharamedrau JVM bellach yn opsiwn. Mae dulliau lliniaru eraill yn parhau i fod yn llwyddiannus. Uwchraddio i fersiwn Log4j 2.17.0 os yn bosibl. Mae canllaw mudo ar gael ar gyfer Log4j v1.
Os nad yw diweddariad yn bosibl, sicrhewch fod gan y cydrannau ochr cleient ac ochr y gweinydd y set -Dlog4j2.formatMsgNoLookups = priodwedd system wir.
Sylwch fod Log4j v1 wedi cyrraedd diwedd ei oes (EOL) ac ni fydd yn derbyn atgyweiriadau nam mwyach. Mae fectorau RCE eraill hefyd yn agored i Log4j v1. Felly, rydym yn annog eich bod yn uwchraddio i Log4j 2.17.0 cyn gynted â phosibl.
3. Mesurau lliniaru
Ni all gorchestion cyfredol weithio hyd yn oed os yw Log4j yn agored i niwed mewn rhai achosion, megis os yw'r peiriant gwesteiwr yn rhedeg fersiwn Java sy'n uwch na 6u212, 7u202, 8u192, neu 11.0.2.
Mae hyn oherwydd gwell amddiffyniad Java Enwi a Chyfeiriadur Rhyngwyneb (JNDI) llwytho dosbarth o bell mewn fersiynau cyfredol, sy'n angenrheidiol ar gyfer yr ymosodiad i weithredu.
Ar ben hynny, gyda fersiynau Log4j yn fwy na 2.10, gellir osgoi'r mater trwy osod gwerth system formatMsgNoLookups yn wir, gan ddarparu'r ddadl JVM -Dlog4j2.formatMsgNoLookups = gwir, neu ddileu'r dosbarth JndiLookup o'r llwybr dosbarth.
Yn y cyfamser, nes bod yr achosion bregus wedi'u datrys, gellir mynd i'r afael â'r bregusrwydd gan ddefnyddio'r technegau isod:
- Gosod priodwedd y system log4j2.formatMsgNoLookups i wir am >=2.10.
- Gosodwch yr opsiwn amgylchedd LOG4J FORMAT MSG NO lookUPS i fod yn wir ar gyfer >=2.10.
- Tynnwch JndiLookup.class o'r llwybr dosbarth ar gyfer 2.0-beta9 i 2.10.0: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Un arfer gorau a argymhellir yw cyfyngu ar draffig sy'n mynd allan i'r rhyngrwyd i'r porthladdoedd priodol yn unig.
Er bod y rhan fwyaf o ymosodiadau yn y maes yn cael eu cyflwyno dros HTTP, gellir manteisio ar y bregusrwydd trwy unrhyw brotocol sy'n cofnodi data mewnbwn defnyddwyr gan ddefnyddio Log4j.
Fodd bynnag, diweddaru i log4j 2.17.0 yw'r ateb gorau oherwydd gall rhywun ddarganfod ymagwedd ychwanegol at y mater. Ar ben hynny, mae llawer o gyhoeddwyr a gweithgynhyrchwyr wedi cyhoeddi gwelliannau i'w gwasanaethau neu apiau.
4. clwt bregusrwydd Log4Shell
Mae Log4j yn hollbresennol, yn enwedig nawr bod y bregusrwydd yn cael ei ecsbloetio. I grynhoi, y cyfan sydd angen i chi ei wneud yw cynnwys y nodau canlynol yn y logiau a archwiliwyd gan Log4j.
A bydd hyn yn lawrlwytho ac yn gweithredu'r ffeil Java sydd wedi'i lleoli ar ddiwedd yr URL. Mae mor syml ag y mae'n ddramatig.
Fel y gwyddoch, mae'n hanfodol uwchraddio log4j i fersiwn >= 2.17.0 i unioni'r bregusrwydd Log4Shell hwn (CVE-2021-44228).
Os nad yw hyn yn bosibl:
Ar gyfer cymwysiadau sy'n defnyddio fersiynau llyfrgell Log4j 2.10.0 ac yn ddiweddarach, mae hefyd yn bosibl amddiffyn rhag unrhyw ymosodiad trwy osod y paramedr cyfluniad log4j2.formatMsgNoLookups i wir, er enghraifft, wrth gychwyn y peiriant rhithwir Java gyda'r -Dlog4j2.formatMsgNoLookups = gwir opsiwn.
Opsiwn arall yw dileu'r dosbarth JndiLookup o'r ddadl llwybr dosbarth, a fydd yn dileu'r fector ymosodiad cynradd (nid yw'r ymchwilwyr yn diystyru bodolaeth fector ymosodiad arall).
Nodyn
Dylai sefydliadau sy’n betrusgar neu’n amharod i wneud addasiadau i systemau sy’n agored i niwed (neu sydd ond yn dymuno gosod mesurau diogelu ychwanegol) feddwl am:
- Sicrhewch fod yr holl draffig yn cael ei gyfeirio trwy iSensor/WAF/IPS. Gall hyn atal yr ymosodiad rhag cael mynediad i'r system.
- Cyfyngu ar faint o draffig a all gyrraedd y system sy'n agored i niwed Os nad oes angen cysylltu'r system â'r rhyngrwyd, cyfyngu mynediad i IPS ac ystodau hanfodol a dibynadwy yn unig.
- Lleihau traffig awdurdodedig y gwesteiwr sy'n gadael. Oherwydd bod yr ymosodiad hwn yn gweithredu trwy gysylltu â gweinydd twyllodrus, dylid rhwystro pob cyfeiriad IP a phorthladd diangen ar wal dân.
- Os nad oes angen y gwasanaeth mwyach, dylid ei analluogi nes bod atgyweiriad yn barod.
Casgliad
Roedd diffygion Log4j wedi syfrdanu ein cymuned ac yn ein hatgoffa ni i gyd pa mor ddibynnol ydyn ni ar feddalwedd ffynhonnell agored.
Mae Log4j yn unigryw. Nid yw'n system weithredu, nac yn borwr, nac yn feddalwedd. Yn hytrach, dyma'r hyn y mae rhaglenwyr yn cyfeirio ato fel llyfrgell, pecyn, neu fodiwl cod. Dim ond un pwrpas sydd ganddo, hynny yw, cadw cofnod o'r hyn sy'n digwydd ar weinydd.
Mae'n well gan bobl sy'n ysgrifennu cod ganolbwyntio ar yr hyn sy'n gwneud eu meddalwedd yn wahanol. Nid oes ganddynt ddiddordeb mewn ailddyfeisio'r olwyn. O ganlyniad, maent yn dibynnu ar lu o lyfrgelloedd cod presennol, megis Log4j.
Mae'r modiwl Log4j yn deillio o Apache, y meddalwedd gweinydd gwe a ddefnyddir fwyaf. Dyna pam y gellir ei ddarganfod ar filiynau o weinyddion. Felly, cynyddu'r bygythiadau diogelwch.
Rwy'n gobeithio y bydd yr atebion uchod yn eich helpu i gadw'ch dyfeisiau'n ddiogel.
Cadwch lygad ar HashDork i gael mwy o wybodaeth ddefnyddiol o'r byd technoleg.
Gadael ymateb