JavaScript-мен жұмыс істейтін веб-қосымшалар мен серверлер ReDoS шабуылдарының алдында осал болып табылады

JavaScript-мен жұмыс істейтін веб-қосымшалар мен серверлер ReDoS шабуылдарының алдында бұрыңғыша осал, деп ескертеді зерттеушілер. Аббревиатурасы да осындан пайда болған: regular expression (regex) және denial of service (DoS) жиынтығы ReDoS.

JavaScript-мен байланысты ReDoS осалдықтары мен шабуылдар алғашқы рет 2012 жылы сипатталған, алайда ол кезде JavaScript және Node.js бүгінгідей жаппай таралмаған болатын. Нәтижесінде проблемаға көп жылдар бойы іс жүзінде назар аударылмай, жағдай күрделене түсті. Осылай, 2017 жылы зерттеу жүргізіліп, оның нәтижелері: Node.js кітапханалары мен қосымшаларындағы барлық осалдықтардың 5% - бұл ReDoS екенін көрсетті.

Енді ескі проблемаға арналған жаңа баяндаманы Дармштадт техникалық университетінің мамандары ұсынды.  Олар ReDoS проблемасы бұрыңғыша өте қауіпті болып табылатынын ескертеді: Node.js белгілі модульдерінде бұрын белгісіз болған 25 осалдық айқындалды. Яғни зиянкестер осы шешімдердің кез келгенінде багтарды пайдаланып, осал сайттарға шабуыл жасай алады.

Проблемаларды пайдалану сервер эксплоиттағы мәтін ауқымымен не істеу керектігін анықтауға әрекет жасаған кезде сайттың бірнеше секундқа немесе минутқа «кідіруіне» әкеледі. Енгізу аяларында орнатылған көптеген regex-фильтрлер осындай тәсілмен жұмыс істейді, себебі фильтрлердің осы бөлігі XSS-ға қарсы. Қорытындысында, егер шабуыл жасаушы ресурсқа эксплоттарды жіберуді жалғастырса, «кідіру» едәуір уақытқа созылуы мүмкін.

Әзірлеушілер негізінен өз күшін дәлдеуге шоғырлайды, бірақ зиянкестерге ReDoS-шабуылдар жасау үшін істің кең аясын қалдырып, өнімділікке аса назар аудармайды, деп жазады мамандар. 

Осындай жағымсыз қорытындыға келіп, Дармштадт техникалық университетінің сарапшылары қанша «жұмыс істейтін» сайт  ReDoS алдында осал болатын тексеруді шешті. Node.js-те жұмыс істейтін 2846 белгілі ресурсты сканерлеп, олар айқындалған проблемалардың ең болмаса біреуінің алдында осал 339 сайтты анықтады. Осымен, аталған іріктеуге экстраполяциялау жүргізсе егер, ReDoS алдында осындай сайттардың жалпы санының  12% жуығы осал болып табылады.

Зерттеушілер табылған осалдықтар туралы модульдердің әзірлеушілерін әлдеқашан хабардар етіп, олардың кейбірлеулері патчтар дайындады. Сонымен қатар GitHub-та осал болуы ықтимал кітапханаларды тестілеуге арналған proof-of-concept эксплоиты жарияланды. Аталған репозиторииде егер қолжетімді болса, тиісті «бүтіндеулерге» сілтемелер табуға болады.