Log poisoning — hujumchi jurnalga ataylab shakllantirilgan ma’lumot kiritib, log tahlilini chalg‘itishi, soxta hodisa yaratishi yoki keyingi ko‘ruvchi tizimda xavfli talqin keltirib chiqarishi holatidir. Agar zaharlangan log keyinchalik include qilinsa yoki web interfeysda escaping qilinmasa, ta’sir command execution yoki XSSgacha kengayishi mumkin.
Inyeksiya shakllari
Foydalanuvchi agenti, URL, username va xato matni ko‘pincha jurnalga kiradi. Newline va control character yordamida hujumchi yangi soxta qator, severity yoki timestamp yaratishi mumkin. ANSI escape terminal ko‘rinishini o‘zgartiradi. CSV formula spreadsheetda ochilganda bajarilishi, HTML dashboard esa escape qilinmagan qiymatni markup sifatida talqin qilishi mumkin.
Structured logging JSON fieldlar orqali matn va jurnal strukturasini ajratadi. Logger kutubxonasi newline va control belgilarini xavfsiz kodlaydi. Qo‘lda string concatenation o‘rniga parametrli log API ishlatiladi. Biroq JSONni HTMLga chiqarishda yana kontekstga mos escaping zarur; bitta qatlamdagi kodlash boshqa sinkni avtomatik xavfsiz qilmaydi.
Maxfiy ma’lumot
Poisoningdan tashqari, xom requestni loglash token, parol, cookie va shaxsiy ma’lumotni yig‘adi. Allowlist fieldlar yoziladi, secretlar redaction qilinadi. Redaction regex’ga yolg‘iz tayanmaydi; credential strukturali field sifatida loggerga umuman berilmaydi. Log retention ma’lumot sezgirligiga mos belgilanadi.
Integrity
Hujumchi serverni buzsa logni o‘chirishi yoki o‘zgartirishi mumkin. Append-only remote collector, transport TLS va access control dalil yaxlitligini oshiradi. Hash chain yoki imzolangan batch o‘zgarishni aniqlashi mumkin, ammo vaqt sinxronlash va key boshqaruvi kerak. Ilova hisobiga log storage’ni o‘chirish ruxsati berilmaydi.
LFI zanjirida hujumchi avval logga til kodi ko‘rinishidagi matn yozadi, so‘ng serverdan log faylni include qildiradi. Buni to‘xtatish uchun include path userdan olinmaydi, log executable katalogdan tashqarida va ilova faqat zarur ruxsatda ishlaydi. Faqat log matnini escape qilish asosiy include zaifligini tuzatmaydi.
Kuzatuv va foydalanish
Log parser invalid JSON, kutilmagan multiline va juda uzun fieldni quarantine qiladi. Dashboard hech qachon raw HTML bajarmaydi. Alert qoidasi attacker-controlled fieldni query yoki shellga biriktirmaydi. Export qilingan CSV xavfli boshlang‘ich belgilarni neutral qiladi.
Incident tahlilida log mutlaq haqiqat deb qabul qilinmaydi. Load balancer, database audit va tracing kabi mustaqil manbalar bilan korrelyatsiya qilinadi. Soxta qatorning kelib chiqishi raw transport metadata va collector sequence orqali aniqlanadi.
Amaliy nazorat
Structured JSON logging newline orqali soxta qator yaratishni cheklaydi, ammo dashboardda HTML escaping va CSV eksportida formula neutralization baribir kerak. Log poisoning bo‘yicha nazorat faqat bitta input filterga tayanmaydi. API erkin sintaksis o‘rniga aniq identifikator va typed parametr qabul qiladi, jarayon esa least privilege bilan ishlaydi. Normal holat bilan birga encoding, duplicate, timeout, parallel so‘rov va qisman nosozlik test qilinadi. Production telemetry xato turi, kechikish va rad etilgan urinishlarni ko‘rsatadi, maxfiy payloadni to‘liq jurnalga yozmaydi. O‘zgarish avval kichik doirada sinovdan o‘tib, regression kuzatilmagach kengaytiriladi. Incident runbook ta’sirlangan obyektlarni aniqlash, credential yoki holatni tiklash va sababni kod darajasida bartaraf etishni belgilaydi.
Collector qabul qilgan yozuvga ishonchli timestamp, source identity va sequence qo‘shadi. Ilova yuborgan shu nomli fieldlar alohida namespace’da saqlanadi. Imzolangan yoki append-only saqlash muhim audit izining keyinchalik o‘zgartirilganini aniqlash imkonini beradi.
Bog‘liq tushunchalar
Structured logging, Log injection, Local File Inclusion, Audit log, XSS, Log integrity, Redaction