Audit qilish
Skanerlashning audit bosqichi — Burp ilovani zaifliklarga tekshiradigan bosqichdir. U ilovaning turli xil kirish ma'lumotlariga qanday javob berishini tahlil qiladi: oddiy trafikni kuzatadigan passiv skan tekshiruvlari, o'zgartirilgan so'rovlarni yuboradigan aktiv skan tekshiruvlari va qaytarilgan kodning JavaScript tahlilidan foydalanadi.
Odatiy holda, Burp crawl (saytni aylanib chiqish) davomida birinchi element topilishi bilanoq audit qilishni boshlaydi. Bu unga butun crawl tugashini kutmasdan, muammolar haqida ertaroq xabar berish imkonini beradi. Bu xatti-harakatni allow crawl and audit to run in parallel sozlamasi orqali o'zgartirishingiz mumkin.
Audit bosqichlari
Burp o'z auditini uchta bosqichga ajratadi. Bu audit bosqichlarining har biri ilovani turli nuqtai nazardan o'rganadi va aniq zaifliklarni topish uchun maqsadli skan tekshiruvlaridan foydalanadi. Bu Burp'ga takroriy tekshiruvlardan qochish, kengroq doiradagi muammolarni aniqlash va unumdorlikni oshirish uchun vazifalarni parallel bajarish imkonini beradi.
Uchta audit bosqichi quyidagilardir:
- Passiv audit bosqichi: odatiy foydalanuvchi faoliyati davomida ochiladigan zaifliklarni aniqlash uchun trafikni kuzatadi. Passiv audit bosqichi haqida batafsil ma'lumot oling.
- Aktiv audit bosqichi: ilova kutilmagan yoki zararli kirish ma'lumotlarini qanday qayta ishlashini aniqlash uchun o'zgartirilgan so'rovlarni yuboradi. Aktiv audit bosqichi haqida batafsil ma'lumot oling.
- JavaScript tahlili bosqichi: mijoz tomonidagi koddagi DOM-ga asoslangan zaifliklarni aniqlash uchun qaytarilgan JavaScript'ni tahlil qiladi. JavaScript tahlili bosqichi haqida batafsil ma'lumot oling.
Qo'shimcha ma'lumot
Burp Scanner topa oladigan zaifliklarning to'liq ro'yxati uchun Burp Scanner aniqlaydigan zaifliklar bo'limiga qarang.
Passiv audit bosqichi
Passiv audit bosqichida Burp ilovaning odatiy trafigini hech qanday qo'shimcha yoki o'zgartirilgan so'rov yubormasdan tahlil qiladi. Bu unga oddiy brauzerda ko'rish davomida ochiladigan zaifliklarni, masalan, HTTP xabarlaridagi serializatsiya qilingan obyektlarni aniqlash imkonini beradi.
Tez-tez uchraydigan passiv muammolarni birlashtirish
Passiv usulda aniqlangan ba'zi muammolar ilova ichidagi bir necha joyda paydo bo'lishi mumkin. Bu ko'pincha umumiy shablonlar yoki butun platforma bo'ylab noto'g'ri sozlamalar tufayli yuz beradi. Shovqinni kamaytirish uchun Burp bu bir xil muammolarni birlashtiradi va eng mos darajada — masalan, veb-ildiz yoki umumiy papka darajasida — bitta nusxa sifatida xabar qiladi. Muammoning barcha alohida holatlari hisobotda dalil sifatida saqlanib qoladi.
Aktiv audit bosqichi
Aktiv audit bosqichida Burp zaifliklarni tekshirish uchun so'rovlarga o'zgartirilgan kirish ma'lumotlarini joylashtiradi. Bu skan tekshiruvlari qat'iyligi bo'yicha farqlanadi: ilova kirish ma'lumotlarini qanday qayta ishlashini sinash uchun kichik o'zgartirishlardan tortib, real hujumlarga taqlid qiluvchi agressiv sinovlargacha.
Yengil aktiv skan tekshiruvlari
Yengil aktiv skan tekshiruvlari xavfsizlik sozlamalaridagi xatolar va zaif xavfsizlik nazoratlarini aniqlash uchun oz sonli o'zgartirilgan so'rovlarni yuboradi. Bu skan tekshiruvlari so'rovdagi kichik o'zgarishlar kutilmagan xatti-harakatni ochib beradigan zaifliklarni, masalan, ixtiyoriy origin'ga ishonadigan CORS muammosini aniqlashga yordam beradi va ilovaga zararli bo'lib ko'rinishi ehtimoli past.
O'rta darajadagi aktiv skan tekshiruvlari
O'rta darajadagi aktiv skan tekshiruvlari ilova zararli deb talqin qilishi mumkin bo'lgan o'zgartirilgan so'rovlarni yuboradi. Bu skan tekshiruvlari ilova zararli kirish ma'lumotlarini ekspluatatsiya qilinishi mumkin bo'lgan tarzda qayta ishlaydigan zaifliklarni, masalan, OS command injection muammosini aniqlashga yordam beradi.
Eslatma
Ishlab turgan tizimlarda o'rta darajadagi aktiv skan tekshiruvlarini bajarayotganda ehtiyot bo'ling. Ular xavfsizlik ogohlantirishlarini ishga tushirishi, foydalanuvchilarni tizimdan chiqarib yuborishi yoki boshqa kutilmagan ta'sirlarga sabab bo'lishi mumkin. Skan tekshiruvlarini Scan checks sozlamasi orqali yoqishingiz yoki o'chirishingiz mumkin.
Intruziv aktiv skan tekshiruvlari
Intruziv aktiv skan tekshiruvlari real hujumlarni simulyatsiya qiladi va ilovani yoki uning ma'lumotlarini o'zgartirish yoxud shikastlash bo'yicha sezilarli xavf tug'diradi. Bu skan tekshiruvlari kritik zaifliklar, masalan, SQL injection, ekspluatatsiya qilinishi mumkinligini tasdiqlashga urinadi.
Eslatma
Agar ishlab turgan tizimlarda intruziv aktiv skan tekshiruvlarini bajarishga qaror qilsangiz, o'ta ehtiyotkor bo'ling. Ular ma'lumotlarning butunlay yo'qolishiga, xizmat uzilishlariga yoki boshqa qaytarib bo'lmaydigan oqibatlarga sabab bo'lishi mumkin. Skan tekshiruvlarini scan checks sozlamasi orqali yoqishingiz yoki o'chirishingiz mumkin.
JavaScript tahlili bosqichi
Burp DOM-ga asoslangan xavfsizlik muammolarini aniqlash uchun ilova javoblaridagi JavaScript'ni statik va dinamik tahlil kombinatsiyasidan foydalangan holda tahlil qiladi. Bu gibrid yondashuv Burp'ga har bir usulni alohida qo'llashdan ko'ra kengroq doiradagi zaifliklarni yuqoriroq aniqlik bilan topish imkonini beradi va qamrovni maksimallashtirib, noto'g'ri musbat natijalarni minimallashtiradi.
Statik JavaScript tahlili
Burp JavaScript kodining tuzilishini uni bajarmasdan o'rganish uchun statik tahlildan foydalanadi; bu unga ish vaqtida ishga tushmasligi mumkin bo'lgan kod yo'llaridagi potentsial xavfsizlik muammolarini aniqlash imkonini beradi. U kodni abstrakt sintaksis daraxtiga (AST) ajratadi va undan ma'lumotlar ilova bo'ylab qanday oqishini kuzatishda foydalanadi. Xususan, u quyidagilarni qidiradi:
- Ifloslangan manbalar (tainted sources): hujumchi nazorat qilishi mumkin bo'lgan kirish ma'lumotlari.
- Xavfli sink'lar (dangerous sinks): ishonchsiz kirish ma'lumotlari zarar keltirishi mumkin bo'lgan kod joylari.
- Taint yo'llari: zararli ma'lumotlar manbadan sink'gacha o'tishi mumkin bo'lgan marshrutlar.
Statik tahlil ish vaqtidagi xatti-harakatga tayanmagani uchun u dinamik tahlil o'tkazib yuborishi mumkin bo'lgan muammolarni aniqlay oladi. Masalan, aniq kirish ma'lumotlari kombinatsiyalari yoki ilova holatlarini talab qiladigan kod yo'llarini. Biroq, statik tahlil yolg'iz o'zi noto'g'ri musbat natijalarni belgilashi mumkin, masalan, ba'zi erishib bo'lmaydigan yo'llarni haqiqiy deb hisoblashi yoki maxsus validatsiya mantiqi kabi kontekstni o'tkazib yuborishi mumkin. Burp buni statik va dinamik tahlilni birlashtirish orqali yumshatadi — bu qo'shimcha kontekst beradi va ilova amalda qanday ishlashini tasdiqlashga yordam beradi. Faqat statik tahlil orqali aniqlangan muammolarga dinamik tahlil bilan tasdiqlanganlarga qaraganda pastroq ishonch reytingi beriladi.
Dinamik JavaScript tahlili
Burp JavaScript bajarilishini kuzatish uchun dinamik tahlildan foydalanadi; bu unga potentsial zaif kod yo'llari ish vaqtida ekspluatatsiya qilinishi mumkinligini tasdiqlash imkonini beradi. U ilova javobini o'rnatilgan headless brauzerga yuklaydi, hujumchi nazorat qilishi mumkin bo'lgan joylarda DOM'ga payload'larni kiritadi va javobdagi har qanday JavaScript'ni bajaradi. Qamrovni maksimallashtirish uchun Burp foydalanuvchi harakatlarini ham simulyatsiya qiladi, masalan, onclick hodisa ishlovchilarini ishga tushiradi.
Bajarish davomida Burp kiritilgan ma'lumotlar xavfli sink'ga yetib borishini kuzatadi. Agar yetib borsa, bu zaiflik ekspluatatsiya qilinishi mumkinligiga kuchli dalil bo'ladi.
Dinamik tahlil jonli bajarish muhitida ishlagani uchun u noto'g'ri musbat natijalarga ancha kam moyil. Biroq, agar sinov davomida kiritilgan ma'lumotlar sink'ga yetib bormasa, u muammolarni o'tkazib yuborishi mumkin. Bu ba'zi shartlar bajarilmaganda, masalan, ilovaning holati yoki boshqa kirish ma'lumotlarining qiymatlari tufayli sodir bo'lishi mumkin. Hatto bu shartlar sinov davomida mavjud bo'lmasa ham, hujumchi baribir kerakli kirish ma'lumotlarini taqdim etishi yoki ilova holatini o'zgartirishi mumkin. Burp buni dinamik va statik tahlilni birlashtirish orqali yumshatadi. Bu unga faqat bajarish davomida kuzatilmasligi mumkin bo'lgan qo'shimcha zaifliklarni aniqlash imkonini beradi.
Audit prioritizatsiyasi
Burp Scanner audit elementlarini ular ochib beradigan hujum yuzasi va ularda xavfsizlik zaifliklari bo'lish ehtimoliga qarab prioritetlashtiradi. Har bir elementga audit navbatidagi o'rnini belgilaydigan prioritet balli beriladi. Elementning prioritet balli ikkita omil bilan aniqlanadi:
- Hujum yuzasining ochilishi: element ilovaning qanchalik qismini potentsial hujumga ochib beradi. Hujum yuzasining ochilishi haqida batafsil ma'lumot oling.
- Qiziqish darajasi: element maxfiy ma'lumotlar bilan ishlashi yoki ilova xatti-harakatini xavfsizlik xavfini keltirib chiqaradigan tarzda o'zgartirishi qanchalik ehtimolli. Qiziqish darajasi haqida batafsil ma'lumot oling.
Prioritet balli qiziqish darajasiga nisbatan hujum yuzasining ochilishi foydasiga 80/20 nisbatda tortilgan. Buning sababi shundaki, ilovaning ko'proq qismini ochib beradigan elementlar kattaroq hujum xavfini tug'diradi, qiziqish darajasi esa tabiatan xavfli elementlarning e'tibordan chetda qolmasligini ta'minlaydi.
Burp crawl davomida yangi element topganida, audit navbatidagi barcha elementlarning prioritet ballarini qayta hisoblaydi. Bu eng qimmatli elementlarning doimiy ravishda prioritetlashtirilishini ta'minlaydi.
Hujum yuzasining ochilishi
Burp Scanner har bir audit elementi uchun hujum yuzasining ochilishi ballini hisoblaydi. Hujum yuzasining ochilishi — element ilovaning qanchalik qismini potentsial hujumga ochib berishi o'lchovidir.
Hujum yuzasining ochilishi elementning umumiy prioritet ballining 80% ini tashkil qiladi. U elementning kiritish nuqtalarini aniqlash va ularni audit navbatidagi boshqa elementlarning hamda joriy skanerlash davomida allaqachon audit qilingan elementlarning kiritish nuqtalari bilan solishtirish orqali hisoblanadi. Ko'p noyob kiritish nuqtasiga ega elementlar hujum yuzasini kengaytiradi va shu bilan ularning hujum yuzasi ochilishini oshiradi. Aksincha, kiritish nuqtalarining ko'pchiligini mavjud audit elementlari bilan baham ko'radigan elementlar kamroq yangi ochilish qo'shadi.
Crawl davomida yangi elementlar topilgani sari Burp audit navbatidagi barcha elementlar uchun hujum yuzasining ochilishini dinamik ravishda moslashtiradi. Bu auditning eng ko'p yangi hujum yuzasini keltiradigan elementlarni doimiy ravishda prioritetlashtirishini ta'minlaydi.
Qiziqish darajasi
Burp Scanner har bir audit elementi uchun qiziqish darajasi ballini hisoblaydi. Bu ball element ekspluatatsiya qilinsa maxfiy ma'lumotlarni ochib berishi yoki ilova xatti-harakatini o'zgartirishi qanchalik ehtimolli ekanini aks ettiradi.
Qiziqish darajasi elementning umumiy prioritet ballining 20% ini tashkil qiladi va uchta omil bilan aniqlanadi:
- Harakat turi: holatni o'zgartiruvchi HTTP metodlaridan (POST, PUT, PATCH, DELETE) foydalanadigan elementlar yuqoriroq ball oladi, chunki bu metodlar ekspluatatsiya qilinsa ma'lumotlarni o'zgartirish, kutilmagan xatti-harakatlarni keltirib chiqarish yoki kutilgan so'rov qayta ishlashini chetlab o'tish ehtimoli yuqoriroq.
- Kontent turi: HTML, JSON, XML yoki boshqa strukturalangan ma'lumotlarni o'z ichiga olgan elementlar yuqoriroq ball oladi, chunki bu formatlar odatda foydalanuvchi kiritgan ma'lumotlarni qayta ishlash va maxfiy axborot almashish uchun ishlatiladi. Bu ularni injection hujumlari va ma'lumotlarning oshkor bo'lish zaifliklari uchun tez-tez nishonga aylantiradi.
- Autentifikatsiya talabi: autentifikatsiya talab qiladigan elementlar yuqoriroq ball oladi, chunki ular cheklangan hududlarga yoki maxfiy funksionallikka kirish imkonini beradi va shu bois hujumchilar uchun qimmatliroq nishon hisoblanadi.
Kiritish nuqtalari
Burp Scanner payload'larni so'rovlar ichidagi turli joylarga joylashtirish uchun kiritish nuqtalaridan foydalanadi. Umuman olganda, kiritish nuqtasi so'rov ichidagi server tomonidagi ilova tomonidan qayta ishlanishi mumkin bo'lgan ma'lumot bo'lagini ifodalaydi. Quyidagi misolda so'rov ko'rsatilgan va kiritish nuqtalarining ba'zi keng tarqalgan turlari ajratib ko'rsatilgan:
Burp Scanner kiritish nuqtalarini alohida-alohida audit qiladi: ilovaning ushbu kirish ma'lumotini qanday qayta ishlashini sinash uchun har bir kiritish nuqtasiga navbat bilan payload'lar yuboradi.
Eslatma
Burp Suite Professional'da har bir audit qilingan so'rov uchun barcha kiritish nuqtalari ro'yxatini ko'rishingiz mumkin. Batafsil ma'lumot uchun Kiritish nuqtalarini ko'rish bo'limiga qarang.
Kiritish nuqtalari ichidagi ma'lumotlarni kodlash
Har bir kiritish nuqtasi odatda ma'lum turdagi ma'lumot kodlashini talab qiladi. Burp Scanner xom payload'larning tegishli ilova funksiyalariga yetib borishini ta'minlash uchun kiritish nuqtasi turiga qarab payload'larga kodlashni avtomatik qo'llaydi.
Masalan, Burp Suite quyidagi kiritish nuqtalaridagi parametrlarga quyidagi kodlashni qo'llaydi:
- Standart body parametrlari:
- JSON ma'lumotlari ichidagi parametrlar:
- XML ma'lumotlari ichidagi parametrlar:
Burp Scanner shuningdek ilova kiritish nuqtasi turiga bog'liq bo'lmagan kodlash turidan, masalan Base64'dan foydalanganini ham aniqlaydi:
Ichma-ich joylashgan kiritish nuqtalari
Ba'zi ilovalar bir formatni boshqasi ichiga joylashtirish uchun bir xil ma'lumotga bir necha qatlam kodlashni qo'llaydi. Burp Scanner bu xatti-harakatni aniqlaydi va o'z payload'lariga xuddi shu kodlash qatlamlarini avtomatik qo'llaydi.
Parametr joylashuvini o'zgartirish
Ba'zi ilovalar kirish ma'lumotini bir turdagi parametrga joylashtiradi, ammo u boshqa turdagi parametrda yuborilsa ham uni qayta ishlayveradi. Bu shuning uchun sodir bo'ladiki, ilovalar so'rovlardan kirish ma'lumotini olish uchun ishlatadigan ba'zi platforma API'lari kirish ma'lumotini saqlaydigan parametr turini hisobga olmaydi. Biroq, ba'zi ilova xavfsizlik choralari, masalan, firewall'lar faqat asl parametr turiga qo'llanilishi mumkin.
Bu xatti-harakatdan foydalanish uchun Burp Scanner bir kiritish nuqtasi turi uchun mo'ljallangan payload'larni boshqa kiritish nuqtasi turlariga joylashtira oladi. Bu himoyalarni chetlab o'tib, zaif ilova funksionalligiga yetib borishi mumkin bo'lgan so'rovlarni yaratadi. Masalan, agar payload URL query string parametri ichida yuborilsa, Burp mos payload'larni body parametri va cookie ichida ham yuborishi mumkin.
Tez-tez uchraydigan kiritish nuqtalari bilan ishlash
Ba'zi kiritish nuqtalari ilova ishlatadigan ko'pgina yoki barcha so'rovlarda mavjud bo'lishi mumkin, ammo qiziqarli hujum yuzasini ifodalamaydi. Masalan, ba'zi cookie'lar o'rnatilgandan keyin har bir so'rov ichida yuboriladi.
Bu kiritish nuqtalarini har bir so'rovda to'liq audit qilish juda ko'p ortiqcha ish keltirib chiqaradi. Burp Scanner odatiy holda tez-tez uchraydigan, ammo hech qanday muammo keltirib chiqarmaydigan kiritish nuqtalarini aniqlaydi va ularni yengilroq tarzda audit qiladi. Agar yengil audit server tomonida qayta ishlashdan darak beruvchi qiziqarli xatti-harakatni aniqlasa, Burp o'sha kiritish nuqtasini to'liq audit qilishga qaytadi.
Avtomatik sessiya boshqaruvi
Avtomatlashtirilgan crawl'dan keyin bajariladigan auditlar audit davomida sessiyani avtomatik saqlab turish uchun crawl natijalaridan foydalana oladi va bunda foydalanuvchidan hech qanday sozlash talab qilinmaydi.
Burp alohida so'rovni audit qilganda, crawl'ning boshlang'ich joyidan o'sha so'rovga yetib borishning eng qisqa yo'lini aniqlaydi:

Burp o'sha so'rovni haqiqiy sessiya ichida qayta-qayta yuborishning eng samarali usulini aniqlaydi. U sessiya tokenlarining yangi namunasini olish uchun yo'lni qaytadan bosib o'tadi. So'ngra u yo'ldagi barcha qadamlar bajarilmasa ham sessiya saqlanib qolishini tekshirish uchun yo'lning turli soddalashtirilgan variantlarini sinab ko'radi.
Ko'p hollarda oxirgi so'rovni shunchaki qayta-qayta yuborish mumkin. Bu bir necha sabablarga ko'ra sodir bo'lishi mumkin:
- So'rov sessiya tokenlarini o'z ichiga olmaydi.
- Ilova sessiya tokenlari sifatida qayta ishlatiluvchi cookie'lardan foydalanadi.
- So'rov ham cookie'larni, ham CSRF tokenlarini o'z ichiga oladi, ammo CSRF tokenlarini qayta-qayta ishlatish mumkin:
Burp Scanner audit qilinayotgan so'rovni yuborishdan oldin oldingi so'rovni yuborishi kerak bo'lishi mumkin. Bu odatda ilova bir marta ishlatiladigan CSRF tokenlaridan foydalansa sodir bo'ladi. Bu esa yangi token olish uchun oldingi so'rovni har safar qayta yuborishni zaruriy qiladi.

Eng og'ir hollarda so'rovlar orasidagi har bir o'tish bir martalik token bilan himoyalangan bo'ladi. Bu navigatsiya qat'iy nazorat qilinadigan yuqori xavfsizlikdagi ilovalarda sodir bo'lishi mumkin. Bunday vaziyatda so'rovni qayta-qayta yuborishning eng ishonchli usuli — boshlang'ich joyga qaytib, so'rovgacha bo'lgan to'liq yo'lni bosib o'tishdir.

Burp audit qilinishi kerak bo'lgan so'rovni qayta-qayta yuborishning eng samarali usulini aniqlagach, auditni amalga oshiradi.
Burp audit tekshiruvlarini bajarayotganda, sessiyasi hali ham haqiqiy ekanini tasdiqlash uchun ilova javoblarini vaqti-vaqti bilan kuzatib turadi. Agar sessiya hali ham haqiqiy bo'lsa, Burp tugallangan audit tekshiruvlarida nazorat nuqtasi (checkpoint) qo'yadi.
Agar Burp sessiya endi haqiqiy emasligini aniqlasa, u oxirgi nazorat nuqtasiga qaytadi va o'sha yerdan davom etadi. Bu sessiya boshqaruvi yukini minimallashtirishga yordam beradi va sessiyalar tez-tez yo'qolganda cheksiz sikllarning oldini oladi. Masalan:

Ilova xatolari bilan ishlash
Veb-ilovaning to'liq auditini o'tkazish invaziv jarayondir. Skanerlash davom etayotganda ulanish uzilishlari, uzatish taymautlari yoki backend komponentlarining ishlamay qolishi kabi muammolarga duch kelish odatiy hol. Bundan tashqari, veb-ilova firewall'lari kabi himoya vositalari aniq payload'lar yoki ba'zi parametrlardagi kutilmagan qiymatlar kabi omillarga asoslanib ulanishlarni uzishi mumkin.
Audit davomida Burp xato holatlarini batafsil tarzda kuzatib boradi. Agar ma'lum bir harakat xatoga sabab bo'lsa, Burp o'sha harakatni muvaffaqiyatsiz deb belgilaydi va keyingi harakatga o'tadi. Skanerlashlarni shunday sozlashingiz mumkinki, agar bir xil faollik darajasida takroriy harakatlar muvaffaqiyatsiz bo'lsa, butun daraja muvaffaqiyatsiz deb belgilanadi. Agar xatolar davom etaversa, Burp skanerlashning tobora ko'proq qismini muvaffaqiyatsiz deb belgilaydi, quyidagi tartibda:
- Alohida audit tekshiruvlari.
- Alohida kiritish nuqtalari.
- Audit qilinayotgan butun so'rov.
- Butun skanerlash.
Burp xatoga duch kelganda dastlab tafsilotlarni yozib oladi va skanerlashni davom ettiradi, chunki yakka xatolar odatiy holdir. Auditni tugatgach, Burp taymaut bo'lgan so'rovlarni qayta urinish uchun bir necha keyingi bosqichlarni bajaradi. Bu ma'lum bir ilova komponenti (masalan, backend ma'lumotlar bazasi) skanerlashning bir qismida muammoga duch kelgan hollarda foydalidir.
Burp shuningdek juda ko'p xato kuzatilsa skanerlashni pauza qilishi yoki to'xtatishi mumkin, shunda siz muammoni tekshira olasiz. Ilova barqarorlashgach, skanerlashni davom ettirishingiz yoki qaytadan bajarishingiz mumkin.