ИнцидентиУязивмости, експлойти, ъпдейти

SC-403: зловредният код за WordPress, който се самовъзстановява

Напоследък WordPress е доста гореща тема, що се касае сигурност. След близо 10 години „мълчание“, изведнъж се появиха няколко критични уязвимости в ядрото на най-популярния CMS в света.

Освен ядрото, в последната седмица на август се появи един зловреден код, който ни грабна вниманието с устойчивостта си. Условното му име е SC-403 и има една неприятна особеност: изтривате заразения файл, а той се връща след секунди.

Причината е, че не става дума за един файл. Кодът се разписва на девет места едновременно – в темата, в базата данни, в drop-in файловете на WordPress, в паметта на PHP процеса, в скрити конфигурационни директиви и дори във вашия собствен браузър, през service worker. Изтриете ли едно копие, останалите го възстановяват. Затова стандартното почистване не просто не помага – то храни заразата.

Как се осъществява пробива

Зловредният код влиза през нещо дребно: остарял плъгин, слаба парола, бекдорнат модул от неофициален източник. Оттам нататък краде администраторски пароли, създава скрит админ акаунт, който не се вижда в списъка с потребители, подправя валидни сесии и се разпространява към всеки друг сайт на същия хостинг акаунт.

Ако подозирате компрометиране, най-важното правило е да не триете файлове един по един на жив сайт – така просто задействате възстановяването. Първо изолирайте сайта и спрете PHP процесите, после премахнете всички копия наведнъж, ротирайте паролите и ключовете в wp-config.php, унищожете сесиите и – това често се пропуска – изчистете service worker-а от браузъра на всеки администратор.

Скритият администратор се хваща лесно с директна заявка към базата, която кодът не може да филтрира:

SELECT u.user_login, u.user_email
FROM wp_users u
JOIN wp_usermeta um ON um.user_id = u.ID
WHERE um.meta_key = 'wp_capabilities'
AND um.meta_value LIKE '%administrator%';

Ако тук изскочи акаунт, който не виждате в администрацията – това е достатъчно доказателство.

За да не се ровите на ръка, публикувахме безплатен, отворен инструмент, който само сканира и докладва, но никога не трие: github.com/ux2dev/wordpress-sc403-cleaner.

AI казва тежката си дума

Истинската поука е по-скучна от самата заплаха. Едва ли зад SC-403 стои гений – просто устойчивост, която доскоро изискваше елитен екип, днес е евтина. А причината да е толкова упорит е една: при типичния споделен хостинг PHP процесът е собственик на файловете, които изпълнява. Тоест „да изпълниш код“ и „да презапишеш кода“ са едно и също право, и никаква настройка вътре в WordPress не го променя.

Затова и защитата не е в wp-config.php, а едно ниво по-надолу: PHP потребителят да не е собственик на кода, забранено изпълнение на PHP в uploads/, отделен потребител и пул за всеки сайт. Плюс двуфакторна автентикация за всички администратори, разбира се.

SC-403 не е силен. Просто границата на доверие стои на грешното място. Преместите ли я под PHP, всяко пробиване си остава инцидент, вместо да се превърне в постоянен наемател.

Покажи още
Back to top button