FixVibe
Covered by FixVibehigh

CORS Қате конфигурация: тым рұқсат беретін саясаттардың тәуекелдері

Түпнұсқалар арасындағы ресурстарды ортақ пайдалану (CORS) – бір шығу тегі саясатын (SOP) жеңілдетуге арналған шолғыш механизмі. Заманауи веб-қолданбалар үшін қажет болғанымен, сұраушының Түпнұсқа тақырыбын қайталау немесе «нөлдік» бастапқы деректі ақ тізімге енгізу сияқты дұрыс емес енгізу зиянды сайттарға жеке пайдаланушы деректерін эксфильтрациялауға мүмкіндік береді.

CWE-942

Әсер

Зиянкес [S2] осал қолданбасының пайдаланушыларынан құпия, аутентификацияланған деректерді ұрлай алады. Егер пайдаланушы осал қолданбаға кірген кезде зиянды веб-сайтқа кірсе, зиянды сайт қолданбаның API мекенжайына қайшы келетін сұраулар жасап, [S1][S2] жауаптарын оқи алады. Бұл жеке ақпаратты, соның ішінде пайдаланушы профильдерін, CSRF таңбалауыштарын немесе [S2] жеке хабарламаларын ұрлауға әкелуі мүмкін.

Негізгі себеп

CORS — серверлерге [S1] ресурстарын жүктеуге рұқсат етілген бастапқыларды (домен, схема немесе порт) көрсетуге мүмкіндік беретін HTTP тақырыбына негізделген механизм. Әдетте осалдықтар сервердің CORS саясаты тым икемді немесе нашар енгізілген [S2] болғанда пайда болады:

  • Шағылысқан түпнұсқа тақырыбы: Кейбір серверлер Origin тақырыбын клиент сұрауынан оқиды және оны Access-Control-Allow-Origin (ACAO) [S2] жауап тақырыбына қайталайды. Бұл кез келген веб-сайтқа [S2] ресурсына қол жеткізуге тиімді мүмкіндік береді.
  • Қате конфигурацияланбаған қойылмалы таңбалар: * қойылмалы таңба кез келген бастауға ресурсқа кіруге мүмкіндік бергенімен, оны тіркелгі деректерін (мысалы, cookie файлдары немесе авторизация тақырыптары) [S3] талап ететін сұраулар үшін пайдалану мүмкін емес. Әзірлеушілер жиі [S2] сұрауы негізінде ACAO тақырыбын динамикалық түрде жасау арқылы мұны айналып өтуге тырысады.
  • «Нөл» ақ тізімі: Кейбір қолданбалар null түпнұсқасын ақ тізімге енгізеді, ол қайта бағытталған сұраулар немесе жергілікті файлдар арқылы іске қосылуы мүмкін, бұл зиянды сайттарға кіруге рұқсат алу үшін null шығу тегі ретінде маскировка жасауға мүмкіндік береді. [S2][S3].
  • Талдау қателері: Origin тақырыбын тексеру кезіндегі регекс немесе жолды сәйкестендірудегі қателер шабуылдаушыларға trusted-domain.com.attacker.com [S2] сияқты домендерді пайдалануға мүмкіндік береді.

CORS сайт аралық сұрауды жалған жасаудан (CSRF) [S2] қорғау емес екенін ескеру маңызды.

Бетонды түзетулер

  • Статикалық ақ тізімді пайдаланыңыз: Access-Control-Allow-Origin тақырыбын сұраудың Origin [S2] тақырыбынан динамикалық түрде жасаудан аулақ болыңыз. Оның орнына сұраудың бастауын [S3] сенімді домендерінің қатты кодталған тізімімен салыстырыңыз.
  • «Нөл» түпнұсқадан аулақ болыңыз: null рұқсат етілген түпнұсқалардың ақ тізіміне ешқашан [S2] қоспаңыз.
  • Тіркелгі деректерін шектеу: Access-Control-Allow-Credentials: true тек [S3] арасындағы нақты өзара әрекеттесу үшін өте қажет болса ғана орнатыңыз.
  • Дұрыс тексеруді пайдаланыңыз: Бірнеше түпнұсқаны қолдау керек болса, Origin тақырыбының тексеру логикасы сенімді және ішкі домендер немесе ұқсас көрінетін [S2] домендері арқылы айналып өтуге болмайтынына көз жеткізіңіз.

FixVibe оны қалай тексереді

FixVibe енді мұны жабық белсенді тексеру ретінде қамтиды. Доменді растағаннан кейін active.cors синтетикалық шабуылдаушының шығу тегі бар active.cors бір шыққан API сұрауларын жібереді және CORS жауап тақырыптарын қарастырады. Ол жалпыға ортақ емес API соңғы нүктелеріндегі еркін шығу тегі, тіркелгі деректері бар CORS қойылмалы таңба және ашық CORS және қоғамдық актив шуын болдырмайды.