Asosiy kontentga o‘tish
Innovialabs

STRIDE bo‘yicha tahdidlarni modellashtirish: jamoa uchun qo‘llanma

Chuqur4 daq

Qisqacha

STRIDE bo‘yicha tahdidlarni modellashtirish — tizimda ma’lumot qanday harakatlanishini chizish, ishonch darajasi o‘zgaradigan joylarni belgilash, har bir elementga oltita standart savol berish va haqiqiy xavflarni kod yozilishidan oldin ustuvor backlog vazifalariga aylantirish.

STRIDE bo‘yicha tahdidlarni modellashtirish nima

Tahdidlarni modellashtirish (threat modeling) — tizimda nima noto‘g‘ri ketishi mumkinligi va bunga qarshi nima qilishingiz haqidagi tuzilmali suhbat. U loyihalash bosqichida eng yaxshi ishlaydi: bu paytda kamchilikni tuzatish servisni qayta yozish emas, sxemani o‘zgartirish demakdir.

STRIDE — Microsoft’da yaratilgan oltita tahdid toifasidan iborat ro‘yxat:

HarfTahdidBuziladigan xususiyatMisol
SSpoofing — o‘zini boshqa qilib ko‘rsatishAutentifikatsiyaO‘g‘irlangan token bilan kirish
TTampering — o‘zgartirishYaxlitlikSo‘rovdagi narxni o‘zgartirish
RRepudiation — inkor etishInkor etib bo‘lmaslikFoydalanuvchi harakatni inkor qiladi, log esa yo‘q
IInformation disclosure — sizib chiqishMaxfiylikAPI boshqa foydalanuvchilar ma’lumotini qaytaradi
DDenial of service — xizmatdan mahrum qilishMavjudlikOg‘ir endpoint bazani ishdan chiqaradi
EElevation of privilege — huquqlarni oshirishAvtorizatsiyaOddiy foydalanuvchi admin metodini chaqiradi

Butun sessiya to‘rtta oddiy savolga quriladi: Nima qurayapmiz? Nima noto‘g‘ri ketishi mumkin? Bunga qarshi nima qilamiz? Yaxshi uddaladikmi?

1-qadam. Ma’lumotlar oqimi diagrammasini chizing

Ma’lumotlar oqimi diagrammasi (DFD) uchun atigi beshta element turi kerak:

  • Tashqi obyekt — siz nazorat qilmaydigan foydalanuvchi, hamkor tizimi yoki to‘lov provayderi.
  • Jarayon — sizning kodingiz: API, worker, frontend.
  • Ombor — ma’lumotlar bazasi, kesh, fayl ombori, navbat.
  • Ma’lumotlar oqimi — qanday ma’lumot va qanday uzatilishini ko‘rsatuvchi strelka (HTTPS, gRPC, webhook).
  • Ishonch chegarasi — ishonch darajasi o‘zgaradigan joydagi punktir chiziq.

Bitta funksiya yoki bitta servis darajasida qoling. Bir ekranga sig‘adigan sxema muhokama qilinadi, butun devorni egallagani esa e’tiborsiz qoladi. OWASP Threat Dragon kabi vositalar yordam beradi, lekin oddiy doska ham yaxshi ishlaydi.

2-qadam. Ishonch chegaralarini belgilang

Tahdidlarning aksariyati chegaralarda yashaydi. Odatiy chegaralar:

  • internet va sizning backend;
  • backend va uchinchi tomon API;
  • ommaviy servis va ichki admin panel;
  • ilova va ma’lumotlar bazasi;
  • multi-tenant tizimdagi ijarachilar.

Chegarani kesib o‘tgan har bir strelka — savol: buni kim yuboryapti, uni soxtalashtirish mumkinmi va ma’lumot zararli bo‘lsa nima bo‘ladi?

3-qadam. Har bir elementga STRIDE’ni qo‘llang

Elementma-element yuring. Har bir toifa hamma joyda dolzarb emas; keng tarqalgan moslik:

ElementDolzarb toifalar
Tashqi obyektS, R
JarayonS, T, R, I, D, E
OmborT, I, D (log saqlansa, R ham)
Ma’lumotlar oqimiT, I, D

Tahdidni aniq gap bilan yozing: «Hujumchi ushlab qolingan webhook’ni qayta yuborib, to‘lanmagan buyurtmani to‘langan deb belgilaydi». «Buzib kirish» kabi noaniq yozuvlarni tuzatib ham, test qilib ham bo‘lmaydi.

Sessiya uchun amaliy maslahatlar:

  • Dasturchi, QA, mahsulot jamoasidan kimnidir va iloji bo‘lsa, infratuzilmaga mas’ul odamni chaqiring.
  • Vaqtni cheklang: bitta funksiyaga 60–90 daqiqa.
  • Bir kishi sessiyani olib boradi va STRIDE savollarini beradi, boshqasi yozib boradi.
  • Qidiruv bosqichida yechimlar haqida bahslashmang. Avval yig‘amiz, keyin qaror qilamiz.

4-qadam. Ustuvorlikni belgilang

Tahdidlar ularni yopish uchun resursdan ko‘proq topiladi. Aniq formulalardan ko‘ra oddiy shkala yaxshiroq ishlaydi:

  • Zarar: nima yo‘qotiladi — pul, shaxsiy ma’lumotlar, mavjudlik, obro‘.
  • Ehtimollik: hujum qanchalik oson, ichki kirish kerakmi, tayyor vositalar bormi.

Buni yuqori / o‘rta / past darajalariga keltiring. Har bir tahdid uchun javobni tanlang: kamaytirish (himoya qo‘shish), yo‘q qilish (funksiya yoki ma’lumotni olib tashlash), o‘tkazish (buni hal qiladigan provayderga) yoki qabul qilish (qarorni va uni kim qabul qilganini qayd etish).

5-qadam. Tahdidlarni backlog vazifalariga aylantiring

Hujjatda qolib ketgan tahdidlar modeli hech narsani o‘zgartirmaydi. Yopiladigan har bir tahdid tekshiriladigan qabul mezonlariga ega vazifaga aylanadi:

Vazifa: to‘lov provayderidan kelgan webhook imzosini tekshirish. Tahdid: «provayder → backend» oqimida Tampering/Spoofing. Tayyor, qachonki: yaroqli imzosiz so‘rovlar rad etiladi; ruxsat etilgan vaqt oynasidan eski so‘rovlar rad etiladi; ikkala holat test bilan qoplangan.

Vazifalarni model bilan bog‘lang, xavfsizlik tekshiruvlarini definition of done’ga qo‘shing va arxitektura o‘zgarganda sxemaga qayting — yangi integratsiya, yangi ombor yoki yangi foydalanuvchi roli.

Ko‘p uchraydigan xatolar

  • Butun kompaniyani birdaniga modellashtirish. Pul, shaxsiy ma’lumotlar yoki kirish huquqlari bilan ishlaydigan bitta funksiyadan boshlang.
  • Buni relizdan keyin qilish. Unda hammasi hech kimda vaqt bo‘lmagan pentest hisobotiga aylanadi.
  • Faqat texnik tahdidlarni qidirish. Harakatni inkor etish va biznes-mantiqni suiiste’mol qilish, masalan cheksiz promokodlar, ham shunchalik muhim.
  • Mas’ul shaxs yo‘q. Qabul qilingan har bir xavfning egasi va qayta ko‘rib chiqish sanasi bo‘lishi kerak.

Ko‘p beriladigan savollar

Funksiya ma’lumotlar harakatini o‘zgartirganda unga qayting: yangi integratsiyalar, yangi omborlar, yangi rollar yoki boshqa infratuzilmaga ko‘chish. Interfeysdagi kichik o‘zgarishlar odatda buni talab qilmaydi.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.