Broken Access Control Prevention
To avoid broken access control is to develop and configure software with a security-first philosophy. That’s why it is important to work with a developer to make sure there are security requirements in place.
The technical recommendations by OWASP to prevent broken access control are:
With the exception of public resources, deny by default.
Implement access control mechanisms once and reuse them throughout the application, including minimizing CORS usage.
Model access controls should enforce record ownership, rather than accepting that the user can create, read, update, or delete any record. Note: For example, if a user logs in as “John,” he could only create, read, update or delete records associated with the ID of “John,” never the data from other users.
Unique application business limit requirements should be enforced by domain models.
Disable web server directory listing and ensure file metadata (e.g. .git) and backup files are not present within web roots.
Log access control failures, alert admins when appropriate (e.g. repeated failures). Note: We recommend our free plugin for WordPress websites, that you can download directly from the official WordPress repository.
Rate limit API and controller access to minimize the harm from automated attack tooling.
JWT tokens should be invalidated on the server after logout.
Developers and QA staff should include functional access control units and integration tests.
Buzilgan kirish nazorati Veb-sayt xavfsizligida kirishni boshqarish, ularning ehtiyojlariga qarab, tashrif buyuruvchilar qaysi bo'limlar yoki sahifalarga kirishi mumkinligiga cheklov qo'yish demakdir. Misol uchun, agar sizda elektron tijorat do'koningiz bo'lsa, yangi mahsulotlarni qo'shish yoki yaqinlashib kelayotgan bayramlar uchun reklama aktsiyasini o'rnatish uchun sizga administrator paneliga kirishingiz kerak bo'lishi mumkin. Biroq, boshqa hech kimga kerak bo'lmaydi. Veb-saytingizning qolgan mehmonlariga sizning kirish sahifangizga kirishiga ruxsat berish faqat elektron tijorat do'koningizni hujumlar uchun ochadi. Va bu bugungi kunda deyarli barcha asosiy kontentni boshqarish tizimlari (CMS) bilan bog'liq muammo. Odatiy bo'lib, ular butun dunyo bo'ylab administratorga kirish sahifasiga kirish huquqini beradi. Ularning aksariyati sizni ikki faktorli autentifikatsiya usulini (2FA) o'rnatishga majburlamaydi. Yuqoridagilar sizni birinchi navbatda xavfsizlik falsafasi bilan dasturiy ta'minotni ishlab chiqish haqida ko'p o'ylashga majbur qiladi. Buzilgan kirishni boshqarishga misollar Quyida biz "kirish" deb hisoblagan narsalarga misollar keltiramiz: Xostingni boshqarish / ma'muriy panelga kirish FTP / SFTP / SSH orqali serverga kirish Veb-saytning ma'muriy paneliga kirish Serveringizdagi boshqa ilovalarga kirish Ma'lumotlar bazasiga kirish Hujumchilar avtorizatsiya kamchiliklaridan quyidagi maqsadlarda foydalanishlari mumkin: Ruxsatsiz funksiyalarga va/yoki maʼlumotlarga kirish Nozik fayllarni ko'rish Kirish huquqlarini o'zgartirish Kirish nazoratining buzilishi qanday xavf-xatarlarga ega? OWASP ma'lumotlariga ko'ra, kirish nazorati buzilganda nima bo'lishi mumkinligiga bir nechta misollar: Stsenariy №1: Ilova hisob ma'lumotlariga kiruvchi SQL chaqiruvida tasdiqlanmagan ma'lumotlardan foydalanadi: pstmt.setString(1,request.getParameter("acct")); ResultSetresults =pstmt.executeQuery( ); Tajovuzkor istalgan hisob raqamini jo‘natish uchun brauzerdagi “acct” parametrini shunchaki o‘zgartiradi. To'g'ri tekshirilmagan bo'lsa, tajovuzkor har qanday foydalanuvchining hisobiga kirishi mumkin. http://example.com/app/accountInfo?acct=notmyacct Stsenariy №2: Buzg'unchi oddiygina URL manzillarini ko'rishga majbur qiladi. Administrator sahifasiga kirish uchun administrator huquqlari talab qilinadi. http://example.com/app/getappInfo http://example.com/app/admin_getappInfo Ishlab chiquvchilar yuqoridagi stsenariylar bilan ko'proq tanish bo'lishadi, lekin esda tutingki, kirishni boshqarishning buzilgan zaifliklari deyarli har bir veb-texnologiyalar orqali ko'p shakllarda ifodalanishi mumkin; barchasi veb-saytingizda nima ishlatganingizga bog'liq. Buzilgan kirish nazorati xavfini kamaytirish Buzilgan kirish nazorati xavfini kamaytirish uchun nima qilishingiz mumkin: Eng kam imtiyozli tushunchalarni qo'llang - vazifaga mos keladigan rolni qo'llang va faqat ushbu vazifani bajarish uchun zarur bo'lgan vaqt miqdori uchun va undan ortiq emas. Sizga kerak bo'lmagan yoki foydalanuvchi ularni talab qilmaydigan hisoblardan xalos bo'ling. Serverlaringiz va veb-saytlaringizni tekshiring - kim nima, qachon va nima uchun. Iloji bo'lsa, barcha kirish nuqtalaringizga ko'p faktorli autentifikatsiyani qo'llang. Kirish oynalaringizni kamaytirish uchun kirish nuqtalarini kerak bo'lguncha o'chiring. Serveringizdan keraksiz xizmatlarni olib tashlang. Tarmoqqa ulangan ilovalarga nisbatan tashqaridan foydalanish mumkin bo'lgan ilovalarni tekshiring. Agar siz veb-saytni ishlab chiqayotgan bo'lsangiz, ishlab chiqarish qutisi sinovdan o'tmasdan yangilanishlarni ishlab chiqish, sinab ko'rish yoki surish uchun joy bo'lmasligi kerakligini yodda tuting. Buzilgan kirishni boshqarishning oldini olish Buzilgan kirish nazoratini oldini olish uchun dasturiy ta'minotni birinchi navbatda xavfsizlik falsafasi bilan ishlab chiqish va sozlash kerak. Shuning uchun xavfsizlik talablari mavjudligiga ishonch hosil qilish uchun ishlab chiquvchi bilan ishlash muhimdir. OWASP tomonidan ruxsatni boshqarish buzilishining oldini olish bo'yicha texnik tavsiyalar quyidagilardir: Davlat resurslaridan tashqari, sukut bo'yicha rad eting. Kirishni boshqarish mexanizmlarini bir marta amalga oshiring va ularni butun dastur davomida qayta ishlating, shu jumladan CORSdan foydalanishni minimallashtirish. Modelga kirishni boshqarish vositalari foydalanuvchi har qanday yozuvni yaratishi, o'qishi, yangilashi yoki o'chirishi mumkinligini qabul qilishdan ko'ra, yozuv egaligini ta'minlashi kerak. Eslatma: Masalan, agar foydalanuvchi “John” sifatida tizimga kirsa, u faqat “John” identifikatori bilan bog‘liq yozuvlarni yaratishi, o‘qishi, yangilashi yoki o‘chirishi mumkin, boshqa foydalanuvchilarning ma’lumotlarini hech qachon. Noyob ilovalar biznes chegarasi talablari domen modellari tomonidan bajarilishi kerak. Veb-server kataloglari ro'yxatini o'chirib qo'ying va fayl metama'lumotlari (masalan, .git) va zaxira fayllar veb-ildizlarda mavjud emasligiga ishonch hosil qiling. Jurnalga kirishni boshqarishdagi nosozliklar, kerak bo'lganda administratorlarni ogohlantirish (masalan, takroriy nosozliklar). Eslatma: Biz WordPress veb-saytlari uchun bepul plaginimizni tavsiya qilamiz, uni to'g'ridan-to'g'ri WordPress rasmiy omboridan yuklab olishingiz mumkin. Avtomatlashtirilgan hujum vositalaridan zararni kamaytirish uchun tezlik chegarasi API va kontrollerga kirish. JWT tokenlari chiqishdan keyin serverda bekor qilinishi kerak. Ishlab chiquvchilar va QA xodimlari funktsional kirishni boshqarish bloklari va integratsiya testlarini o'z ichiga olishi kerak.
Do'stlaringiz bilan baham: |