Мундариҷа[Пинҳон кардан][Намоиш]
Log4Shell, осебпазирии интернет, ба наздикӣ ба миллионҳо мошинҳо таъсир расонд. Log4j, як пораи норавшан, вале қариб дар ҳама ҷо паҳншудаи нармафзор, боиси он мегардад.
Log4j барои сабти ҳама амалҳое, ки дар паси парда дар системаҳои гуногуни компютерӣ рух медиҳанд, истифода мешавад.
Он ба китобхонаи кушодаасос асос ёфтааст, ки аз ҷониби корхонаҳо ва ҳатто ташкилотҳои давлатӣ дар аксари барномаҳо истифода мешаванд.
Яке аз бадтарин сӯрохиҳои амнияти киберӣ, ки то ҳол ошкор шудааст, муҳим аст, ки системаҳои худро аз ин осебпазирӣ муҳофизат кунед. Аммо чи тавр?
Биёед осебпазирии Log4j-ро ба таври муфассал омӯзем ва ҳама роҳҳои ҳалли имконпазирро барои ислоҳи он.
Log4j чист?
Log4j як аст манбаъи кушода чаҳорчӯбаи сабти ном, ки ба таҳиягарони нармафзор имкон медиҳад, ки маълумоти гуногунро дар замимаҳои худ сабт кунанд. Он як ҷузъи лоиҳаи Apache Logging Services мебошад, ки аз ҷониби Бунёди нармафзор Apache.
Садҳо вебсайтҳо ва барномаҳо Log4j-ро барои иҷрои амалиёти муҳим, аз қабили сабти маълумот барои ислоҳ ва дигар истифода истифода мебаранд.
Вақте ки шумо истиноди камбизоати онлайнро ворид мекунед ё пахш мекунед ва огоҳии хатогии 404 мегиред, ин як мисоли маъмулии Log4j дар ҷои кор аст. Веб-сервере, ки домени истиноди вебро идора мекунад, ки шумо ба он дастрасӣ пайдо кардаед, ба шумо хабар медиҳад, ки чунин веб саҳифа вуҷуд надорад. Он инчунин ҳодисаро дар Log4j барои маъмурони системаи сервер сабт мекунад.
Дар тамоми барномаҳои нармафзор, сигналҳои ташхисии шабеҳ истифода мешаванд. Масалан, дар бозии онлайни Minecraft, сервер Log4j-ро барои сабти фаъолият, ба монанди хотираи умумии истифодашуда ва дастурҳои корбар, ки ба консол фиристода шудааст, истифода мебарад.
Чӣ гуна осебпазирӣ пайдо мешавад?
Ҷустуҷӯҳо як хусусияти наве мебошанд, ки дар Log4j 2.0 ҷорӣ карда шудаанд, ки барои ворид кардани маълумоти иловагӣ ба сабтҳои журнал кӯмак мекунад. Яке аз ин ҷустуҷӯҳо ҷустуҷӯи JNDI (Java Nameming and Directory Interface) мебошад, ки API-и Java барои иртибот бо хидмати директория мебошад.
Бо истифода аз ин равиш, ID-ҳои дохилии корбар метавонанд бо номҳои воқеии корбарон харита карда шаванд. Ин дархост осебпазирии нав кашфшудаи RCE-ро фош мекунад, зеро яке аз намудҳои маълумоте, ки сервери LDAP пешниҳод мекунад, URI мебошад, ки ба синфи Java ишора мекунад, ки баъдан ба хотира бор карда мешавад ва аз ҷониби мисоли Log4j идора мешавад.
Аз сабаби заъф дар тасдиқи вуруди китобхонаи Log4j, имкон дорад, ки сервери худсаронаи LDAP аз манбаи боваринок ворид карда шавад. Азбаски таҳиягарон гумон мекунанд, ки маълумоте, ки ба гузоришҳо фиристода мешавад, ҳамчун матни оддӣ коркард карда мешавад, ҳеҷ гуна тасдиқи вуруди иловагӣ анҷом дода намешавад ва вуруди хатарноки корбар ба гузоришҳо ворид мешавад.
Изҳороти сабт метавонад чунин бошад:
Корбари шубҳанок ҳоло ҷустуҷӯи JNDI-ро бо истинод ба сервери қаллобии LDAP дар параметри URL ворид мекунад. Ҷустуҷӯи JNDI чунин хоҳад буд:
Пас аз он китобхонаи Log4j бо ин сервери LDAP дар attacker.com сӯҳбат мекунад, то маълумоти директория, аз ҷумла арзишҳо барои Фабрикаи Java ва Java Codebase гиред.
Ин ду арзиш синфи Java-и ҳамлагарро дар бар мегиранд, ки баъдан ба хотира бор карда мешавад ва аз ҷониби мисоли Log4j иҷро карда мешавад ва иҷрои кодро анҷом медиҳад.
Кӣ дар хатар аст?
Осебпазирии Log4j бениҳоят васеъ буда, ба замимаҳои тиҷоратӣ, дастгоҳҳои воридшуда ва зерсистемаҳои онҳо таъсир мерасонад. Ба барномаҳои зарардида Cisco Webex, Minecraft ва FileZilla FTP дохил мешаванд.
Аммо, ин ба ҳеҷ ваҷҳ як рӯйхати пурра нест. Камбудӣ ҳатто ба миссияи Chopper Ingenuity Mars 2020, ки Apache Log4j-ро барои сабти рӯйдодҳо истифода мебарад, таъсир мерасонад.
Ҷамъияти амниятӣ тартиб додааст рӯйхати системаҳои осебпазир. Бояд қайд кард, ки ин рӯйхатҳо пайваста нав карда мешаванд, аз ин рӯ, агар ягон барнома ё система нишон дода нашавад, фикр накунед, ки ба он таъсир нарасондааст.
Ба ин осебпазирӣ дучор шудан эҳтимол дорад ва ҳатто агар мушаххас бошад анбора технологӣ Java татбиқ намекунад, роҳбарони амният бояд интизор шаванд, ки системаҳои таъминкунандаи муҳим, таъминкунандагони SaaS, провайдерҳои хостинги абрӣ ва провайдерҳои веб-сервер ин корро кунанд.
Чӣ тавр осебпазирии Log4j-ро тафтиш кардан мумкин аст?
Қадами аввал муайян кардани он аст, ки оё ҳамла аллакай рух додааст. Шумо метавонед ин корро тавассути тафтиши сабтҳои система барои пораҳои боркунии RCE анҷом диҳед.
Агар дар ҷустуҷӯи истилоҳот ба мисли "jndi", "ldap" ё "$::" ягон гузориш пайдо шавад, муҳаққиқони амният бояд минбаъд таҳқиқ кунанд, то бубинанд, ки ин ҳамлаи қонунӣ буд ё танҳо изи ангушт.
Бисёр ҳамлаҳо дар ваҳшӣ ошкор карда шуданд, ки ягон борҳои зарароварро наоварданд. Бо вуҷуди ин, онҳо аз ҷониби коршиносони амниятӣ анҷом дода шуданд, то муайян кунанд, ки чӣ қадар барномаҳо ба ин ҳамла осебпазиранд.
Қадами навбатӣ истифодаи китобхонаи Log4j барои муайян кардани ҳамаи лоиҳаҳо мебошад. Агар версияҳои байни 2.0-beta9 ва 2.14.1 истифода шаванд, лоиҳа метавонад осебпазир бошад.
Бо дарназардошти душворӣ дар муайян кардани он, ки ин осебпазирӣ дар куҷо вуҷуд дорад, бартарӣ додан мумкин аст, ки лоиҳа ҳассос аст ва навсозии китобхона беҳтарин роҳи амал барои бартараф кардани хатари иҷроиши код мебошад.
Лоиҳа осебпазир нест, агар версияи истифодашуда камтар аз 2.0-beta 9 бошад, гарчанде ки китобхонаи Log4j бояд то ҳол навсозӣ шавад, зеро версияҳои диапазони 1.x кӯҳнаанд ва дигар навсозӣ намегиранд.
Новобаста аз он ки лоиҳаи ҳассос кашф шудааст, тавсия дода мешавад, ки он тафтиш карда шавад, то бубинад, ки ягон маълумоти бо истифода аз Log4j сабтшуда дорои маълумотест, ки корбар метавонад онро тағир диҳад. URL-ҳо, параметрҳои дархост, сарлавҳаҳо ва кукиҳо намунаи ин маълумот мебошанд. Агар яке аз инҳо сабт шуда бошад, лоиҳа зери хатар аст.
Ин дониш метавонад ба шумо дар омӯхтани гузоришҳои система ва муайян кардани он, ки оё барномаи веби шумо аллакай ҳамла шудааст, кӯмак кунад.
Воситаҳои ройгони онлайн мавҷуданд, ки метавонанд осебпазир будани барномаи вебро муайян кунанд. Яке аз ин барномаҳо мебошад Шикорчии Log4Shell. Он манбаи кушода аст ва дар он дастрас аст GitHub.
Агар минтақаи осебпазири код дар замимаи онлайн ошкор шавад, сарбории аз ҷониби абзори ошкоршуда пешниҳодшуда метавонад барои ворид кардани он ба замимаи веб истифода шавад. Воситаи озмоишӣ пайвастҳои байни замимаи веби шумо ва сервери LDAP-и онҳоро ошкор мекунад, агар осебпазирӣ истифода шавад.
Роҳҳо барои ислоҳи осебпазирии Log4j
Қадами аввал ин навсозии Log4j аст, ки шумо метавонед онро бо истифода аз менеҷерҳои муқаррарии бастаҳо ё тавассути зеркашии он мустақиман аз ин анҷом диҳед. саҳифа.
Инчунин тавассути гузоштани тағирёбандаи муҳити FORMAT MSG NO LOOKUPS ба ҳақиқӣ, истисмори осебпазириро коҳиш додан мумкин аст. Аммо ин чораи муқобил танҳо барои версияҳои Log4j аз 2.10 калонтар ё баробар аст.
Биёед ҳоло вариантҳои алтернативӣ дида бароем.
1. Роҳҳои бартарафсозии версияи Log4j 2.17.0
Барои муҳофизат аз Log4Shell, бешубҳа тавсия дода мешавад, ки версияи Log2.15.0j 4 -ро истифода баред, аммо агар ин имконнопазир бошад, ҳалли дигар дастрас аст.
Версияҳои 2.7.0 ва дертар аз Log4j: Муҳофизат аз ҳама гуна ҳамла тавассути тағир додани формати рӯйдодҳои сабтшуда бо истифода аз синтаксиси фоизи m nolookups барои маълумоти аз ҷониби корбар пешниҳодшуда имконпазир аст. Ин навсозӣ таҳрири файли конфигуратсияи Log4j-ро барои тавлиди версияи нави барнома талаб мекунад. Дар натиҷа, пеш аз ҷойгиркунии ин версияи нав, марҳилаҳои тасдиқи техникӣ ва функсионалӣ бояд такрор карда шаванд.
Версияҳои Log4j 2.10.0 ва баъдтар: Инчунин бо гузоштани параметри конфигуратсияи log4j2.formatMsgNoLookups ба ҳақиқӣ, масалан, ҳангоми оғоз кардани мошини виртуалии Java бо опсияи -Dlog4j2, аз ҳама гуна ҳамла муҳофизат кардан мумкин аст.” formatMsgNoLookups = true, Варианти дигар ин нест кардани синфи JndiLookup аз аргументи classpath аст, ки вектори асосии ҳамларо нест мекунад (муҳаққиқон эҳтимолияти вектори дигари ҳамларо истисно намекунанд).
Amazon Web Services як hotpatch пешниҳод мекунад, ки "бояд ба хатари шумо истифода шавад." Дигар "усулҳо" ба монанди Logout4Shell, ки "ин осебпазириро бар зидди худ истифода мебаранд" нашр шудаанд. Коршиноси амниятӣ қонунӣ будани ин иқдомро зери суол мебарад, ки "хакер кардани мошин барои ислоҳи онро" дар бар мегирад.
2. Мушкилот дар Log4j v2.17.0 ҳал карда шуд.
Барои версияҳои калонтар аз 2.10: Log4j2.formatMsgNoLookups бояд ҳақиқӣ таъин карда шаванд.
Барои версияҳои 2.0 то 2.10.0: Фармони зеринро иҷро кунед, то синфи LDAP-ро аз Log4j хориҷ кунед.
Log4j2.formatMsgNoLookups бояд дар танзимоти система ба true муқаррар карда шавад.
Кам кардани таъсир дар JVM
Митигатсия бо параметрҳои JVM дигар имкон нест. Усулҳои дигари сабукгардонӣ бомуваффақият идома доранд. Агар имконпазир бошад, ба версияи Log4j 2.17.0 навсозӣ кунед. Барои Log4j v1 дастури муҳоҷират мавҷуд аст.
Агар навсозӣ имконнопазир бошад, боварӣ ҳосил кунед, ки ҷузъҳои паҳлӯи муштарӣ ва сервер дорои -Dlog4j2.formatMsgNoLookups = моликияти воқеии система мебошанд.
Лутфан қайд кунед, ки Log4j v1 ба охири умри худ (EOL) расидааст ва дигар ислоҳи хатогиҳоро қабул намекунад. Дигар векторҳои RCE низ ба Log4j v1 осебпазиранд. Аз ин рӯ, мо хоҳиш мекунем, ки ҳарчи зудтар ба Log4j 2.17.0 навсозӣ кунед.
3. Тадбирҳои коҳиш додани таъсир
Истисморҳои ҷорӣ ҳатто агар Log4j дар баъзе мавридҳо осебпазир бошад, кор карда наметавонанд, масалан, агар мошини мизбон версияи Java-ро аз 6u212, 7u202, 8u192 ё 11.0.2 баландтар иҷро кунад.
Ин ба он вобаста аст, ки Java номгузорӣ ва интерфейси директория (JNDI) беҳтари муҳофизати боркунии синфи дурдаст дар версияҳои ҷорӣ, ки барои ҳамла зарур аст.
Ғайр аз он, бо версияҳои Log4j калонтар аз 2.10, масъаларо тавассути гузоштани арзиши системаи formatMsgNoLookups ба ҳақиқӣ, таъмини аргументи JVM -Dlog4j2.formatMsgNoLookups = true ё нест кардани синфи JndiLookup аз роҳи синф пешгирӣ кардан мумкин аст.
Дар ҳамин ҳол, то ислоҳи ҳолатҳои осебпазир, осебпазириро метавон бо истифода аз усулҳои зерин ҳал кард:
- Хусусияти системаро log4j2.formatMsgNoLookups барои >=2.10 ба ҳақиқӣ таъин кунед.
- Опсияи муҳити LOG4J FORMAT MSG NO LOOKUPS-ро барои >=2.10 ба ҳақиқӣ таъин кунед.
- JndiLookup.class-ро аз роҳи синф барои 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
Log4j ҳама ҷост, махсусан ҳоло, ки осебпазирӣ истифода мешавад. Барои ҷамъбаст, танҳо ба шумо лозим аст, ки аломатҳои зеринро дар гузоришҳои тафтишкардаи Log4j дохил кунед.
Ва ин файли Java-ро, ки дар охири URL ҷойгир аст, зеркашӣ ва иҷро мекунад. Ин ҳамон қадар оддӣ аст, зеро он драмавӣ аст.
Тавре ки шумо медонед, барои бартараф кардани ин осебпазирии Log4Shell (CVE-2.17.0-4) навсозӣ кардани log2021j ба версияи >= 44228 муҳим аст.
Агар ин имконнопазир бошад:
Барои барномаҳое, ки версияҳои китобхонаи Log4j 2.10.0 ва дертарро истифода мебаранд, инчунин имконпазир аст, ки аз ҳама гуна ҳамлаҳо бо гузоштани параметри конфигуратсияи log4j2.formatMsgNoLookups ба ҳақиқӣ муҳофизат карда шавад, масалан, ҳангоми оғоз кардани мошини виртуалии Java бо -Dlog4j2.formatMsgNoLookups = true вариант.
Варианти дигар ин нест кардани синфи JndiLookup аз аргументи classpath аст, ки вектори асосии ҳамларо нест мекунад (муҳаққиқон мавҷудияти вектори дигари ҳамларо истисно намекунанд).
Шарҳ
Ташкилотҳое, ки дудилаанд ё намехоҳанд ба системаҳои ҳассос ислоҳот ворид кунанд (ё онҳое, ки мехоҳанд кафолатҳои иловагӣ насб кунанд) бояд дар бораи инҳо фикр кунанд:
- Боварӣ ҳосил кунед, ки тамоми трафик тавассути iSensor/ваф/IPS. Ин метавонад ҳамларо аз дастрасӣ ба система нигоҳ дорад.
- Маҳдуд кардани миқдори трафик, ки метавонад ба системаи ҳассос дастрас бошад, агар система ба интернет пайваст набошад, дастрасӣ ба танҳо IPS ва диапазонҳои муҳим ва боэътимодро маҳдуд кунед.
- Коҳиш додани трафики содиротии мизбон. Азбаски ин ҳамла тавассути пайвастшавӣ ба сервери фиребгар амал мекунад, ҳама суроғаҳои IP ва портҳои зиёдатӣ бояд дар девори девор баста шаванд.
- Агар хидмат дигар талаб карда нашавад, он бояд то омода шудани ислоҳ ғайрифаъол карда шавад.
хулоса
Камбудиҳои Log4j ҷомеаи моро ба ҳайрат овард ва ба мо хотиррасон кард, ки то чӣ андоза мо ба нармафзори кушодаасос вобастаем.
Log4j беназир аст. Он на системаи амалиётӣ аст, на браузер ва на нармафзор. Баръакс, он чизест, ки барномасозон китобхона, баста ё модули кодро меноманд. Он танҳо ба як ҳадаф хидмат мекунад, яъне сабти рӯйдодҳои дар сервер.
Одамоне, ки код менависанд, бартарӣ медиҳанд, ки ба он чизе, ки нармафзори онҳоро фарқ мекунад, тамаркуз кунанд. Онхо ба аз нав ихтироъ кардани чарх манфиатдор нестанд. Дар натиҷа, онҳо ба миқдори зиёди китобхонаҳои мавҷудаи кодҳо, ба монанди Log4j, такя мекунанд.
Модули Log4j аз Apache, нармафзори аз ҳама васеъ истифодашавандаи веб-сервер гирифта шудааст. Аз ин рӯ, онро дар миллионҳо серверҳо пайдо кардан мумкин аст. Аз ин рӯ, таҳдидҳои амниятӣ афзоиш меёбанд.
Умедворам, ки қарорҳои дар боло зикршуда ба шумо дар бехатарии дастгоҳҳои худ кӯмак мекунанд.
Барои маълумоти бештар муфид аз олами технологӣ ба HashDork обуна шавед.
Дин ва мазҳаб