Bosh sahifa Wiki DoS

DoS

DoS — bitta yoki cheklangan manbadan service, qurilma yoki application resource’ini band qilib, qonuniy foydalanuvchilar uchun mavjudlikni buzishga qaratilgan hujum. Atama Denial of Service so‘zlaridan tuzilgan.

DDoS ko‘p tarqatilgan manbadan keladi, DoS esa bitta host, process yoki connectiondan ham bajarilishi mumkin. Hujumning ta’siri source sonidan ko‘ra nishondagi zaiflik va resource limitiga bog‘liq.

Resource exhaustion

DoS quyidagilarni tugatishi mumkin:

Resource qayta tiklanmaguncha service yangi request qabul qilmaydi.

Connection exhaustion

Attacker juda ko‘p connection ochib, ularni uzoq vaqt yopmasligi mumkin.

Server har connection uchun state saqlaydi.

Himoya:

  • connection limit;
  • idle timeout;
  • per-IP quota;
  • proxy;
  • backlog tuning;
  • request deadline.

Connection soni bilan birga har connectiondagi memory ham kuzatiladi.

Algorithmic complexity

Maxsus input algorithmning eng yomon holatini ishga tushirishi mumkin.

Masalan, parser, regular expression yoki hash collision katta CPU sarflaydi.

Traffic hajmi kichik bo‘lsa ham bitta request uzoq ishlashi mumkin.

Input limit va vaqt cheklovi qo‘llanadi.

ReDoS

Regular Expression Denial of Service noto‘g‘ri regular expression va maxsus matn orqali juda uzoq backtracking yaratadi.

User inputi ustida murakkab regex ishlatilsa CPU band bo‘lishi mumkin.

Safe regex, input length limit va timeout kerak.

Katta payload

Juda katta request body, archive, JSON nesting yoki decompression server memory va CPU’ni tugatishi mumkin.

Himoya:

  • maksimal body hajmi;
  • nesting limit;
  • compression ratio nazorati;
  • streaming parser;
  • upload quota;
  • vaqtinchalik storage limiti.

Logic DoS

Application business qoidasi suiiste’mol qilinadi.

Masalan:

Bu requestlar format jihatdan qonuniy bo‘lishi mumkin.

Disk exhaustion

Ko‘p log, upload, temporary file yoki failed job diskni to‘ldiradi.

Disk to‘lsa database va operatsion tizim ham xato berishi mumkin.

Quota, rotation, reserved space va alert ishlatiladi.

Queue saturation

Task producer consumerdan tezroq bo‘lsa queue cheksiz o‘sadi.

Bu memory yoki diskni tugatadi.

Bounded queue, backpressure, TTL va load shedding zarur.

Queue mavjudligi capacity muammosini abadiy hal qilmaydi.

Crash DoS

Maxsus packet yoki input process crashiga olib keladi.

Agar service avtomatik restart qilsa attacker xuddi shu requestni takrorlab crash loop yaratishi mumkin.

Crash signature bloklanadi va patch qo‘llanadi.

Infinite loop va deadlock

Noto‘g‘ri input applicationni infinite loop yoki lock holatiga keltirishi mumkin.

Threadlar tugamaydi va yangi requestlar queue’da qoladi.

Watchdog, timeout va concurrency monitoring buni aniqlaydi.

Authentication DoS

Login yoki password hashing qimmat operation bo‘lishi mumkin.

Attacker ko‘p noto‘g‘ri login yuborib CPU’ni band qiladi yoki accountlarni bloklatadi.

Rate limit user va source bo‘yicha muvozanatli bo‘lishi kerak.

Faqat account lockout attackerga userlarni bloklash imkonini bermasligi kerak.

Single-packet DoS

Ba’zi zaiflikda bitta maxsus packet yoki request service’ni crash qilishi mumkin.

Bunday holatda katta traffic shart emas.

Patch, protocol validation va IPS signature muhim.

DDoS bilan farqi

DoS source’ni bloklash osonroq bo‘lishi mumkin, ammo source spoofed yoki compromised proxy bo‘lsa farq kamayadi.

DDoS ko‘p manba va katta distributed capacity bilan keladi.

Himoya vositalari qisman umumiy: limit, timeout, validation va capacity isolation.

Bulkhead

Kritik va qimmat operationlar alohida worker, pool yoki queue’da ishlaydi.

Bitta endpoint barcha thread va database connectionni egallamaydi.

Bu bulkhead pattern orqali blast radiusni kamaytiradi.

Circuit breaker

Dependency sekin yoki xato bo‘lsa yangi requestlar vaqtincha tez rad etiladi.

Bu har requestni ishlamayotgan service’da uzoq kutishdan saqlaydi.

Circuit breaker hujumni bloklamaydi, ammo cascading failure’ni kamaytiradi.

Monitoring

DoS indikatorlari:

  • bitta source’dan ko‘p request;
  • CPU yoki memory spike;
  • active connection;
  • queue depth;
  • disk o‘sishi;
  • request duration;
  • timeout;
  • bir endpointdagi anomaliya.

Faqat umumiy trafikni kuzatish qimmat kichik requestlarni o‘tkazib yuborishi mumkin.

Himoya

Asosiy choralar:

Memory leak

Attacker takroriy request bilan applicationdagi memory leakni tezlashtirishi mumkin. Har requestdan keyin oz miqdor memory qaytmasa process asta-sekin limitga yetadi. Profiling, heap monitoring va request isolation muammoni aniqlaydi. Restart vaqtinchalik tiklaydi, lekin sababni bartaraf etmaydi.

Slow request

Client body yoki headerni juda sekin yuborib connectionni uzoq ushlab turishi mumkin. Reverse proxy minimal data rate, header timeout va body timeout qo‘llaydi. Application server internet clientlari bilan bevosita cheksiz connection saqlamaydi.

Cache exhaustion

Ko‘p noyob key bilan request yuborib cache’ni foydasiz data bilan to‘ldirish mumkin. Bu qonuniy hot itemlarni chiqarib, database yukini oshiradi. Cache key normalization, admission policy va per-tenant quota yordam beradi.

Bog‘liq tushunchalar

DDoS, Resource exhaustion, ReDoS, Rate limiting, Timeout, Bulkhead, Circuit breaker, Load shedding, Input validation, Availability