API skanerlari uchun autentifikatsiyani sozlash
Ushbu mavzuda Burp Suite Professional'da faqat API'ga qaratilgan skanlar uchun autentifikatsiyani qanday sozlash tushuntiriladi.
Autentifikatsiya ma'lumotlarini sozlash Burp Scanner'ga cheklangan API endpointlariga kirish imkonini beradi. Bunday endpointlar ko'pincha API hujum yuzasining eng muhim qismlari hisoblanadi. Hozirda Burp quyidagi autentifikatsiya turlarini qo'llab-quvvatlaydi:
- Basic autentifikatsiya
- Bearer tokenlar
- API kalitlari
API ta'rifini yuklaganingizdan so'ng, autentifikatsiya usullarini API details > Authentication yorlig'ida ko'rish, qo'shish va tahrirlash mumkin.
Aniqlangan autentifikatsiya usullari
Siz OpenAPI ta'rifini yoki Postman Collection'ni yuklaganingizda, Burp uni tahlil qilib, endpointlarini aniqlaydi va ko'rsatilgan autentifikatsiya usullarini topadi. Agar Burp autentifikatsiya usullarini aniqlasa, ularni API details > Authentication yorlig'iga qo'shadi va quyidagicha belgilaydi:
- Detected: Burp tomonidan qo'llab-quvvatlanadi. Ma'lumotlarni qo'shgandan keyin skan davomida ishlatilishi mumkin.
- Unsupported: Burp tomonidan qo'llab-quvvatlanmaydi. Skan davomida ishlatib bo'lmaydi.
Eslatma
Burp autentifikatsiyani faqat OpenAPI ta'riflarida aniqlaydi. Agar siz SOAP API bilan ishlayotgan bo'lsangiz, barcha autentifikatsiya usullarini qo'lda qo'shish kerak bo'ladi.
Autentifikatsiya usullarini qo'shish
API ta'rifini yuklaganingizdan so'ng, Burp API'ingizni skanerlashda foydalanishi uchun autentifikatsiya usullarini qo'lda qo'shishingiz mumkin.
Basic autentifikatsiya
Basic autentifikatsiya usulini qo'shish uchun:
- API details > Authentication bo'limiga o'ting.
- New tugmasini bosing. Add authentication oynasi ochiladi.
- Type: Basic auth ni tanlang.
- Label: Ushbu autentifikatsiya usuli uchun noyob identifikator kiriting. Tanib olish oson bo'lgan nom tanlang.
- Add to: Burp skan davomida yuboradigan so'rovlarga ma'lumotlarni qayerga qo'shishini belgilaydi. Basic autentifikatsiya uchun bu doim Authorization header qilib o'rnatiladi.
- Username: Burp skan davomida foydalanishi uchun foydalanuvchi nomini kiriting.
- Password: Burp skan davomida foydalanishi uchun parolni kiriting.
- Save tugmasini bosing. Yangi autentifikatsiya usuli endi ro'yxatga qo'shiladi.
Bearer token
Bearer token autentifikatsiyasi uchun qat'iy (fixed) yoki dinamik tokenlardan foydalanishingiz mumkin.
Qat'iy bearer token
Qat'iy tokenlar - muddati tugamaydigan tokenlar. Agar tokeningiz uzoq muddatli bo'lsa yoki umuman muddati tugamasa, ushbu variantni tanlang. Siz tokenni qo'lda taqdim etasiz va Burp skan davomida yuboradigan tegishli so'rovlarga aynan shu tokenni qo'shadi.
Qat'iy bearer token qo'shish uchun:
- API details > Authentication bo'limiga o'ting.
- New tugmasini bosing. Add authentication oynasi ochiladi.
- Type: Bearer token ni tanlang.
- Label: Ushbu autentifikatsiya usuli uchun noyob identifikator kiriting. Tanib olish oson bo'lgan nom tanlang.
- Add to: Burp skan davomida yuboradigan so'rovlarga tokenni qayerga qo'shishini belgilaydi. Bearer tokenlar uchun bu doim Authorization header qilib o'rnatiladi.
- Token type: Fixed ni tanlang.
- Token: Burp skan davomida foydalanishi uchun tokenni kiriting.
- Save tugmasini bosing. Yangi autentifikatsiya usuli endi ro'yxatga qo'shiladi.
Dinamik bearer token
Dinamik tokenlar - qisqa muddatli va muntazam yangilanishi kerak bo'lgan tokenlar. Agar tokeningiz cheklangan muddatga ega bo'lsa, ushbu variantni tanlang. Burp skan davomida belgilangan oraliqlarda API'dan avtomatik ravishda yangi tokenlar so'raydi va tegishli so'rovlarga eng so'nggi tokenni qo'shadi.
Eslatma
Dinamik bearer tokenlarni sozlashda API hujjatlaringizga murojaat qilishingiz kerak bo'lishi mumkin.
Dinamik bearer token qo'shish uchun:
- API details > Authentication bo'limiga o'ting.
- New tugmasini bosing. Add authentication oynasi ochiladi.
- Type: Bearer token ni tanlang.
- Label: Ushbu autentifikatsiya usuli uchun noyob identifikator kiriting. Tanib olish oson bo'lgan nom tanlang.
- Add to: Burp skan davomida yuboradigan so'rovlarga tokenni qayerga qo'shishini belgilaydi. Bearer tokenlar uchun bu doim Authorization header qilib o'rnatiladi.
- Token type: Dynamic ni tanlang.
- Authentication service URL: API'ingizdan tokenlarni olish yoki yangilash uchun ishlatiladigan endpoint URL manzilini ko'rsating, masalan:
https://authservice.com/auth/token. Burp token olish so'rovlarini shu URL'ga yuboradi. - Method: Burp token olish so'rovlari uchun ishlatishini xohlagan metodni tanlang.
- Add header: Agar token olish so'rovlari maxsus sarlavhalarni talab qilsa, Add header tugmasini bosing va uning Name hamda Value qiymatlarini kiriting. Kerak bo'lsa, bir nechta sarlavha qo'shishingiz mumkin.
- Body: Token olish uchun zarur bo'lgan to'liq so'rov tanasini kiriting. Barcha majburiy maydonlarni qo'shing va autentifikatsiya xizmatingiz belgilagan formatdan foydalaning.
- Request new token every: Burp skan davomida qanchalik tez-tez yangi kalit yoki token so'rashini, uning amal qilish muddatiga qarab belgilang. Masalan, agar u har soatda muddati tugasa, oraliqni bir soat qilib belgilang. Shunda Burp joriy kalit / token muddati tugashidan yarim soniya oldin yangisini so'raydi.
- Token location: autentifikatsiya xizmatining javobidan tokenni ajratib olayotganda Burp qayerga qarashini belgilang:
- Agar token JSON javobda bo'lsa, aniq maydon nomini ko'rsatish uchun nuqta bilan ajratilgan nomlardan foydalaning. Masalan,
token.access_token. - Agar token XML javobda bo'lsa, tokenning joylashuvini ko'rsatish uchun XPath ifodasidan foydalaning. Masalan,
/response/token. - Agar butun javobni token sifatida ishlatmoqchi bo'lsangiz, bu maydonni bo'sh qoldiring.
- Agar token JSON javobda bo'lsa, aniq maydon nomini ko'rsatish uchun nuqta bilan ajratilgan nomlardan foydalaning. Masalan,
- Test: (Ixtiyoriy) Konfiguratsiyangizni tekshirish uchun Test tugmasini bosing. Burp sizning sozlamalaringiz bilan so'rov yuboradi va javobdan tokenni muvaffaqiyatli ajratib olish mumkinligini tasdiqlaydi.
- Save tugmasini bosing. Yangi autentifikatsiya usuli endi ro'yxatga qo'shiladi.
API kaliti / Maxsus token
API kaliti / Maxsus token autentifikatsiya usuli sizga API kaliti yoki maxsus tokenni sozlash hamda ushbu ma'lumot Burp skan davomida yuboradigan so'rovlarda aynan qayerda paydo bo'lishini belgilash imkonini beradi.
Siz qat'iy yoki dinamik kalitlar / tokenlardan foydalanishingiz mumkin.
Qat'iy API kaliti / Maxsus token autentifikatsiya usuli
Qat'iy API kalitlari / maxsus tokenlarning muddati tugamaydi. Agar kalitingiz / tokeningiz uzoq muddatli bo'lsa yoki umuman muddati tugamasa, ushbu variantni tanlang. Siz kalit / tokenni qo'lda taqdim etasiz va Burp skan davomida tegishli so'rovlarga aynan shu ma'lumotni qo'shadi.
Qat'iy API kaliti / maxsus token autentifikatsiya usulini qo'shish uchun:
- API details > Authentication bo'limiga o'ting.
- New tugmasini bosing. Add authentication oynasi ochiladi.
- Type: API key / Custom token ni tanlang.
- Label: Ushbu autentifikatsiya usuli uchun noyob identifikator kiriting. Tanib olish oson bo'lgan nom tanlang.
- Add to: Burp skan davomida yuboradigan so'rovlarga kalit / tokenni qayerga qo'shishini belgilang.
- Name: Add to ochiluvchi ro'yxatida tanlagan sarlavha, so'rov parametri yoki cookie nomini kiriting.
- Key / token type: Fixed ni tanlang.
- Key / token: Burp skan davomida foydalanishi uchun kalit / tokenni kiriting.
- Save tugmasini bosing. Yangi autentifikatsiya usuli endi ro'yxatga qo'shiladi.
Dinamik API kaliti / Maxsus token autentifikatsiya usuli
Dinamik API kalitlari / maxsus tokenlar qisqa muddatli bo'lib, muntazam yangilanishi kerak. Agar kalitingiz / tokeningiz cheklangan muddatga ega bo'lsa, ushbu variantni tanlang. Burp skan davomida belgilangan oraliqlarda API'dan avtomatik ravishda yangi kalitlar / tokenlar so'raydi va skan davomida tegishli so'rovlarga eng so'nggisini qo'shadi.
Dinamik API kaliti / maxsus token autentifikatsiya usulini qo'shish uchun:
- API details > Authentication bo'limiga o'ting.
- New tugmasini bosing. Add authentication oynasi ochiladi.
- Type: API key / Custom token ni tanlang.
- Label: Ushbu autentifikatsiya usuli uchun noyob identifikator kiriting. Tanib olish oson bo'lgan nom tanlang.
- Add to: Burp skan davomida yuboradigan so'rovlarga kalit / tokenni qayerga qo'shishini belgilang.
- Name: Add to ochiluvchi ro'yxatida tanlagan sarlavha, so'rov parametri yoki cookie nomini kiriting.
- Token type: Dynamic ni tanlang.
- Authentication service URL: API'ingizdan kalitlar / tokenlarni olish yoki yangilash uchun ishlatiladigan endpoint URL manzilini ko'rsating, masalan:
https://authservice.com/auth/token. Burp kalit / token olish so'rovlarini shu URL'ga yuboradi. - Method: Burp kalit / token olish so'rovlari uchun ishlatishini xohlagan metodni tanlang.
- Add header: Agar kalit / token olish so'rovlari maxsus sarlavhalarni talab qilsa, Add header tugmasini bosing va uning Name hamda Value qiymatlarini kiriting. Kerak bo'lsa, bir nechta sarlavha qo'shishingiz mumkin.
- Body: Kalit / token olish uchun zarur bo'lgan to'liq so'rov tanasini kiriting. Barcha majburiy maydonlarni qo'shing va autentifikatsiya xizmatingiz belgilagan formatdan foydalaning.
- Request new token every: Burp skan davomida qanchalik tez-tez yangi kalit yoki token so'rashini, uning amal qilish muddatiga qarab belgilang. Masalan, agar u har soatda muddati tugasa, oraliqni bir soat qilib belgilang. Shunda Burp joriy kalit / token muddati tugashidan yarim soniya oldin yangisini so'raydi.
- Key / token location: autentifikatsiya xizmatining javobidan kalit / tokenni ajratib olayotganda Burp qayerga qarashini belgilang:
- Agar kalit / token JSON javobda bo'lsa, aniq maydon nomini ko'rsatish uchun nuqta bilan ajratilgan nomlardan foydalaning. Masalan,
token.access_token. - Agar kalit / token XML javobda bo'lsa, uning joylashuvini ko'rsatish uchun XPath ifodasidan foydalaning. Masalan,
/response/token. - Agar butun javobni kalit / token sifatida ishlatmoqchi bo'lsangiz, bu maydonni bo'sh qoldiring.
- Agar kalit / token JSON javobda bo'lsa, aniq maydon nomini ko'rsatish uchun nuqta bilan ajratilgan nomlardan foydalaning. Masalan,
- Test: (Ixtiyoriy) Konfiguratsiyangizni tekshirish uchun Test tugmasini bosing. Burp sizning sozlamalaringiz bilan so'rov yuboradi va javobdan tokenni muvaffaqiyatli ajratib olish mumkinligini tasdiqlaydi.
- Save tugmasini bosing. Yangi autentifikatsiya usuli endi ro'yxatga qo'shiladi.
Autentifikatsiya ma'lumotlari / usullarini tahrirlash
Siz qo'llab-quvvatlanadigan har qanday autentifikatsiya usuliga o'zgartirish kiritishingiz mumkin. Bularga Detected deb belgilangan usullar va siz qo'lda qo'shgan usullar kiradi.
Autentifikatsiya usulini tahrirlash uchun:
- Jadvaldan usulni tanlang va Edit tugmasini bosing. Bu Edit Authentication oynasini ochadi.
- Tahrirlanadigan maydonlarni yangilang. Qaysi maydonlarni yangilay olishingiz metod qanday qo'shilganiga bog'liq:
- Agar metod Burp tomonidan aniqlangan bo'lsa, siz faqat uning hisob ma'lumotlarini tahrirlashingiz mumkin.
- Agar metod qo'lda qo'shilgan bo'lsa, siz kiritgan har qanday konfiguratsiya qiymatini tahrirlashingiz mumkin.
- O'zgarishlaringizni tasdiqlash uchun Save tugmasini bosing. Ma'lumotlar autentifikatsiya usuliga qo'llaniladi.
Turli xil autentifikatsiya usullarini, jumladan dinamik tokenlarni qanday sozlashni bilish uchun quyidagiga qarang: Autentifikatsiya usullarini qo'shish.
Burp autentifikatsiya ma'lumotlarini qanday qo'llaydi
Burp API'ingizni skanerlaganda, o'z so'rovlariga autentifikatsiya ma'lumotlarini qo'shadi. Biroq, bir nechta usul so'rovning bir xil qismiga tegishli bo'lsa, ziddiyatlar yuzaga kelishi mumkin. Masalan:
- API kalitlari bir xil sarlavha yoki cookie nomiga ega bo'lsa, ular bir-biriga zid kelishi mumkin.
- Basic autentifikatsiya va bearer tokenlar to'qnashishi mumkin, chunki ikkalasi ham ma'lumotlarni Authorization header orqali yuboradi.
Bunday ziddiyatlar noto'g'ri ma'lumotlar yuborilishiga olib kelishi mumkin, natijada server so'rovni rad etadi. Buning oldini olish uchun Burp quyidagi mantiqni qo'llaydi:
Qo'lda qo'shilgan usullar o'rtasidagi ziddiyatlar
Burp siz allaqachon qo'shgan usullar bilan zid keladigan yangi autentifikatsiya usullarini saqlashingizga yo'l qo'ymaydi. Bu qo'lda qo'shilgan usullarning bir-biriga xalaqit bermasligini ta'minlaydi.
Aniqlangan usullar va qo'lda qo'shilgan usullar o'rtasidagi ziddiyatlar
Burp sizga autentifikatsiya usullarini qo'lda qo'shishga ruxsat beradi, hatto ular Detected usullar bilan zid kelsa ham. Buning sababi shundaki, Detected usullar OpenAPI ta'rifi yoki Postman Collection'da belgilanganidek, aniq endpointlarga bog'langan. Qo'lda qo'shilgan usullar esa skanerning boshqa barcha so'rovlar uchun autentifikatsiyadan o'tganligini ta'minlaydi.
Skan davomida ziddiyatlardan qochish uchun:
- Detected usullar uchun ma'lumotlar ularga bog'langan endpointlarga yuboriladigan so'rovlarda ishlatiladi.
- Qo'lda qo'shilgan usullar uchun ma'lumotlar boshqa har qanday endpointga yuboriladigan so'rovlarda ishlatiladi.