Get Mystery Box with random crypto!

Internetga o't ketdi yohud ohirgi 10 yillikning eng katta kata | Jakhongir Rakhmonov - Tech

Internetga o't ketdi yohud ohirgi 10 yillikning eng katta katastrofasi

Java tili uchun yozilgan va juda keng qo'llaniladigan "library"dagi bir zaiflik sababli butun Internetga o't ketdi. Shu zaiflik sababli hakerlar dunyo bo'ylab juda ha ko'p millionlab kompyuterlarga va serverlarga kirib olib deyarli hohlagan ishlarini qilishmoqda. Masalan "crypto miner" lar o'rnatib qo'yishmoqda, passwordlar yoki boshqa muhim ma'lumotlarni o'g'irlashmoqda.

The Apacha Software Foundation bu zaiflikka 10 reytingini berdi. Maksimum nechi deysizmi? Topingchi? To'ppa to'g'ri. 10!

Bu qanday zaiflik ekanligiga to'xtalishdan oldin, sizlar bilan "logging" haqida gaplashishimiz kerak. "Logging" sizga dasturingizda nima bo'layotganidan habardor bo'lishga yordam beradi. Yani "Yangi foydalanuvchi ro'xyatdan o'tdi", "Foydalanuvchi #10 profilini yangiladi", "Admin quyidagi o'zgarishlarni qildi" va shunga o'xshash hodisalarni huddi jurnalga yozgan kabi yozib boradi.

Tabiiyki dasturingizda nima bo'layotganini bilishingiz juda muhim. Bo'lmasam huddi ko'zingiz bog'langandek bo'lib qoladi. Shuning uchun ham "logging" qilish muhim. Bu narsa muhim bo'lgani uchun deyarli hamma dasturlar bu ishni qiladi. Java dasturchilari shu ishni qilish maqsadida odatda log4j nomli libraryni ishlatishadi. Aynan shu libraryda aytib o'tilgan zaiflik topilgan.

Tasavvur qilinga, sanoqsiz dasturlar Javada yozilgan va ularning ko'pchiligi log4j librarysini ishlatadi. Shu dasturlar joylashgan hamma serverlar, yani kompyuterlar, shu zaiflik sababli hakerlar qo'liga tushib qolishi juda ham oson ishga aylanib qoldi.

Bu zaiflik qanday ishlashi haqida ko'p joyda yozildi. Lekin qisqacha qilib aytadigan bo'lsak, tepada aytib o'tilgan "jurnal" yani loglarni ma'lum bir formatda yozilsa hohlagan Java kodingizni shu dastur joylashgan kompyuterda ishga tushirib yuborishingiz mumkin.

Masalan siz Facebook profilingizga kirib ismingizni o'zgartirsangiz katta ehtimol bilan ushbu hodisa "log" qilinadi Facebook serverlari tomonidan. Siz haker sifatida buni bilasiz va ismingizni o'sha yomon formatda yozilgan va yomon ish qiladigan Java kodini ichiga olgan jumlaga o'zgartirasiz. Bu log bo'ladi va shu jumlangiz ichida yozilgan yomon Java kodi ishlab ketadi. Va tamom. Facebook serverlarida sizning yomon kodingiz ishlab ketdi.

Bu zaiflik Amazon, Apple, Cloudflare, Microsoft va millionlab boshqa kompaniyalar serverlarida ham topilgan. Bu katastrofa davlat miqyosida ham tan olingan. USA, Germaniya va boshqa davlatlar serverlarining havfsizligiga javob beruvchilar ham vahimada hozir.

Sizda ham dasturlaringiz Javada yozilgan bo'lsa va log4j kutubxonasini ishlatgan bo'lsangiz, qarab qo'ying Biz Anacondani loglarini tekshirganimizda shu zaiflikdan foydalanishga harakat qilib loglar jo'natib ko'rishganini ko'rdik. Yaxshiyam bizning dasturlar Pythonda yozilgan

Bu muammoni to'g'irlashga menimcha yillar ketadi. Chunki hammani ham bundan habari yo'q. Bo'lsa ham resurslari yo'q bo'lishi mumkin. Buni to'g'irlash ham oson ish emas. Bu kutubxonani yangi versiyasiga o'zgartirish kerak. Lekin muammo shundaki logging dasturni hamma qismida ishlatiladi va hamma joyni tekshirib chiqishga to'g'ri keladi bu o'zgarishni qilgandan so'ng.

Hullas, ishlar chatoq. Apokalipsis…aniqrog’i Javapokalipsis boshlandi. Dunyoni endi faqat Javatar qutqara oladi holos.

Aytgandima Java yaxshi emas deb

P.S. Java yomon, Python yaxshi degan gaplarni hammasi hazil. Hech qaysinisi PHPga yetmaydi.

P.S.S. Bu ham hazil.

@jakhonrakhmon