CWE — software va hardware’da uchraydigan umumiy zaiflik sabablarini tasniflaydigan ochiq ro‘yxat. To‘liq nomi Common Weakness Enumeration. CWE konkret productdagi bitta security bugni emas, shunday buglar paydo bo‘lishiga olib keladigan weakness turini ifodalaydi.
Masalan, ma’lum web applicationdagi SQL Injection uchun CVE bo‘lishi mumkin. Uning umumiy weakness turi esa SQL queryda maxsus elementlarni noto‘g‘ri boshqarishga oid CWE bilan bog‘lanadi.
CWE vazifasi
CWE security muammolarini yagona terminologiya bilan ifodalashga yordam beradi.
U:
- developerlar uchun weakness turini tushuntiradi;
- code scanner natijalarini tasniflaydi;
- security trainingga asos beradi;
- CVE recordlarini weakness bilan bog‘laydi;
- secure design va reviewga yo‘nalish beradi;
- turli vendor tool natijalarini solishtiradi.
CWE ro‘yxati faqat web zaifliklari bilan cheklanmaydi.
Weakness va vulnerability
Weakness — design, implementation, configuration yoki hardware’dagi xato turi.
Vulnerability — real product yoki tizimda exploit qilinishi mumkin bo‘lgan konkret holat.
Masalan:
CWE → xato turi
CVE → ma’lum productdagi konkret zaiflik
Bitta CWE ko‘plab CVE’lar bilan bog‘lanishi mumkin.
CWE identifikatori
Har entry odatda raqamli ID bilan belgilanadi:
CWE-79
CWE-89
CWE-22
ID entry’ni aniq reference qilishga yordam beradi.
Entry nomi, tavsifi, consequence, mitigation, example va relationshiplarni o‘z ichiga olishi mumkin.
Abstraksiya darajalari
CWE entrylari turli abstraksiya darajasida bo‘ladi.
Yuqori darajadagi entry umumiy weakness oilasini ifodalaydi.
Past darajadagi entry esa aniqroq implementation xatosini ko‘rsatadi.
Security report imkon qadar tekshirilgan va yetarlicha aniq CWE’ni tanlashi kerak.
Pillar
Pillar juda umumiy, yuqori darajadagi weakness tushunchasi.
U katta weakness oilalarini guruhlashga yordam beradi.
Pillar odatda code fix uchun yetarli darajada aniq emas.
U taxonomy va relationship tuzilmasida ishlatiladi.
Class
Class texnologiya yoki tildan nisbatan mustaqil umumiy weakness turini ifodalaydi.
Masalan, inputni noto‘g‘ri boshqarish yoki access control’dagi umumiy xato.
Classdan pastroq entrylar implementationga yaqinlashadi.
Base va Variant
Base ma’lum resource, behavior yoki technology kontekstida aniq weaknessni ifodalashi mumkin.
Variant esa ma’lum language, framework yoki implementationdagi yanada konkret ko‘rinish.
Scanner imkon qadar real topilmaga mos darajani tanlaydi.
Category
Category bir xil mavzu yoki maqsadga oid entrylarni guruhlaydi.
Category o‘zi texnik weakness bo‘lmasligi mumkin.
Masalan, ma’lum platforma, lifecycle bosqichi yoki security yo‘nalishidagi entrylar bir category ichida ko‘rsatilishi mumkin.
View
CWE View ro‘yxatni ma’lum auditoriya yoki maqsad bo‘yicha ko‘rsatadi.
Masalan:
- research;
- development;
- architectural concepts;
- ma’lum standard bilan mapping.
Bir entry bir nechta view ichida ko‘rinishi mumkin.
Relationship
CWE entrylari orasida:
- ChildOf;
- ParentOf;
- PeerOf;
- CanAlsoBe;
- Requires;
- StartsWith;
- FollowedBy
kabi relationshiplar bo‘lishi mumkin.
Bu weaknesslar qanday bog‘langanini va qaysi biri umumiyroq ekanini ko‘rsatadi.
Chain
Ayrim zaifliklar bitta weakness emas, ketma-ket xatolar natijasida paydo bo‘ladi.
Masalan:
input validation xatosi
→ path traversal
→ sensitive file disclosure
Bunday ketma-ketlik weakness chain sifatida ifodalanishi mumkin.
Composite
Composite bir nechta weaknessning birgalikdagi kombinatsiyasini ifodalaydi.
Ularning har biri alohida mavjud bo‘lishi mumkin, lekin xavf aynan kombinatsiya orqali kuchayadi.
Bu root cause tahlilida muhim.
CWE Top 25
CWE Top 25 keng tarqalgan va ta’siri yuqori software weaknesslarni ko‘rsatadigan davriy ro‘yxat.
U secure coding training va prioritetlash uchun foydali.
Lekin Top 25ga kirmagan weakness xavfsiz degani emas.
Application threat modeli va texnologiyasi alohida baholanadi.
Scanner natijasi
SAST, DAST yoki boshqa scanner topilmaga CWE ID biriktirishi mumkin.
Bu mapping:
- avtomatik va taxminiy bo‘lishi;
- juda umumiy entry tanlashi;
- false positivega tegishli bo‘lishi
mumkin.
Security engineer topilmaning real root cause’ini tekshiradi.
Secure development
CWE requirement va coding standardga aylantirilishi mumkin.
Masalan:
- injection weaknesslar uchun parameterized query;
- memory weaknesslar uchun safe API;
- access control weaknesslar uchun object-level check;
- path weaknesslar uchun canonicalization va allowlist.
CWE faqat xato nomi emas, prevention uchun reference vazifasini bajaradi.
CVE bilan bog‘lanish
CVE recordga tegishli CWE mapping qo‘shilishi mumkin.
Bu:
- qaysi weakness ko‘p CVE yaratishini ko‘rish;
- trainingni prioritetlash;
- root cause trendini kuzatish;
- vendor qualityni tahlil qilish
imkonini beradi.
Mapping noma’lum yoki yetarli ma’lumot bo‘lmasa umumiy entry ishlatilishi mumkin.
Mapping sifati
Security findingga CWE biriktirish faqat reportni chiroyli ko‘rsatish uchun emas. Juda umumiy Improper Input Validation entry’si asl root cause’ni yashirishi mumkin. Juda aniq variant esa yetarli evidence bo‘lmasa noto‘g‘ri bo‘ladi. Mapping source code, data flow va exploit sharti bilan tasdiqlanadi.
Trend tahlili
Tashkilot vaqt bo‘yicha qaysi CWE oilalari takrorlanayotganini kuzatishi mumkin. Masalan, access control yoki injection topilmalari ko‘paysa faqat alohida buglarni tuzatish emas, framework, coding standard va trainingni yangilash kerak. Bu defectlarni release’dan oldin kamaytirishga yordam beradi.
Hardware CWE
CWE faqat software bilan cheklanmaydi. Hardware design, debug interface, privilege va cryptographic implementationga oid weaknesslar ham tasniflanadi. Hardware fix ko‘pincha firmware, microcode yoki yangi revision talab qilishi mumkin.
Bog‘liq tushunchalar
Common Weakness Enumeration, CVE, Vulnerability, Software weakness, CWE Top 25, Category, View, Pillar, Class, Root cause, Secure coding