Накратко: Ако искате да премахнете зловреден софтуер от уебсайта си, изтриването на отделни файлове рядко стига. Първо запазваме находката, откриваме уеб шеловете, задните вратички и скритите задачи, изграждаме наново от надеждни източници и затваряме входния път. Едва тогава почистването е надеждно.
По какво разпознавате зловреден софтуер на уебсайта
Злонамереният код по уебсайтовете често се забелязва едва косвено. Типични са пренасочвания към чужди страници, спам съдържание, видимо само за търсачките или за мобилни устройства, предупреждение на Google в резултатите от търсенето, оплаквания от клиенти или блокиране от хостинг доставчика заради изпращане на спам. На сървъра се появяват непознати PHP файлове, нови администраторски акаунти, променени .htaccess файлове или необясними cron задачи.
След PHP2Shell се добавя още една грижа: чрез CVE-2026-109618 и CVE-2026-109619 атакуващите могат да изпълняват код без удостоверяване. Няма публикувани, потвърдени Indicators of Compromise; откриването се основава на анализ на поведението. Как обикновено изглеждат уеб шеловете и къде лежат, описва страницата Разпознаване и премахване на уеб шелове.
Премахване на зловреден софтуер от уебсайт: защо основателността е по-важна от бързината
Атакуващите рядко оставят само един файл. Обичайни са няколко задни вратички на различни места: в папките за качвания, в добавки или теми, в must-use добавки, в базата данни, в cron задачи или в допълнителни потребителски акаунти. Ако се изтрие само най-очевидният файл, злонамереният код се връща.
В същото време заразеното състояние е доказателство. Който почисти прибързано, губи възможността да установи дали са засегнати клиентски данни. Затова архивираме преди всяка промяна. Това отнема малко време и Ви оставя всички пътища отворени, включително по-късно уведомяване на надзорния орган или на застрахователя.
Актуализацията на PHP или на CMS не премахва злонамерен софтуер, който вече лежи на сървъра. А почистеният уебсайт бива заразен отново, докато входният път е отворен.
Къде обикновено се крие злонамереният код
Следните места проверяваме при всяко почистване, защото на практика те се оказват засегнати отново и отново:
| Място | Типична находка |
|---|---|
| Папка за качвания | PHP файлове с невинни имена или маскирани като изображение |
| Добавки, теми, модули | допълнителни файлове или променени оригинални файлове |
| Конфигурация | внедрени редове в .htaccess, .user.ini или във входните файлове |
| База данни | чужди администраторски акаунти, скриптове в съдържанието или в опциите |
| Система | cron задачи, допълнителни SSH ключове, процеси без разпознаваема цел |
| Кешове и временни папки | копия на злонамерен код, които се появяват отново след изтриването |
Важна е връзката: една-единствена находка рядко обяснява целия инцидент. Едва цялостната картина показва как е действал атакуващият и дали е взел данни за достъп.
Как помага PHP SOS конкретно?
- Архивиране: Правим копие на файловете, базата данни и логовете в заразеното състояние. То се запазва за по-късен анализ.
- Търсене: Сравняваме програмните файлове с оригиналите на производителя, проверяваме папките за качвания за изпълним код, претърсваме базата данни, cron задачите, потребителските акаунти и конфигурацията на сървъра. За WordPress среди действаме както е описано на страницата Намиране на задни вратички в WordPress.
- Почистване: Ядрото, разширенията и темите инсталираме наново от надеждни източници, вместо да кърпим подозрителни файлове поотделно. Собственото съдържание и качванията проверяваме отделно и преотстъпваме само това, което е безопасно.
- Затваряне на причината: Пачваме PHP и приложението, премахваме чужди акаунти и сменяме всички данни за достъп и ключове, които атакуващият може да е видял.
- Последващ контрол: Наблюдаваме уебсайта след почистването за нови промени и Ви подкрепяме да поискате проверка на предупреждение на Google през Search Console. Повече има на страницата Премахване на предупреждението на Google.
За администраторите, безопасен първи поглед към наскоро променените PHP файлове:
# PHP файлове в уеб директорията, променени през последните 10 дни
find /var/www -type f -name "*.php" -mtime -10 -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort
Резултатът е указание, а не доказателство: атакуващите могат да променят времевите печати.
Какво получавате и какво ни е нужно
Получавате доклад с намерените злонамерени компоненти и мястото на откриването им, мерките за почистване, списъка на сменените данни за достъп и вероятния входен път. При това ясно разграничаваме какво е доказано, какво е вероятно и какво е неизвестно.
От Вас ни е нужно:
- достъп до сървъра или хостинг панела, администрацията на CMS и базата данни
- лице за контакт, което може да одобрява смяна на пароли и изключвания
- информация за агенцията, разработчика или хостинг доставчика и за собствените корекции в системата
- налични резервни копия с дата, за да можем да преценим кое състояние може да е чисто
- достъп до Google Search Console, ако се показва предупреждение
Какво не обещаваме
Не обещаваме, че всяка задна вратичка на всяка система ще бъде открита със сигурност, ако логовете липсват или заразяването е отдавнашно. При неясно положение препоръчваме ново изграждане на свеж сървър, на който се прехвърля само проверено съдържание. Това е по-трудоемко, но често е по-надеждният път. Не прогнозираме и кога Google или други услуги ще премахнат предупреждение; това решават самите доставчици.
Ако трябва да се изясни по начин, годен пред съд, какво точно е станало и кои данни са засегнати, привличаме ИТ форензиката със специализирани партньори. При остра, все още продължаваща атака работата започва със спешната помощ при хакнат уебсайт.
Често задавани въпроси
Достатъчна ли е добавка със скенер за зловреден софтуер, за да се почисти сайтът ми?
Скенерът намира известни шаблони, но не всяка задна вратичка. Уеб шеловете често са прикрити, лежат в изображения, кешове или в базата данни или са закрепени като cron задача. Скенерът е помощно средство, а не пълно почистване.
Мога ли просто да възстановя старо резервно копие?
Само ако е сигурно, че копието е създадено преди проникването и ако след това входният път бъде затворен. Иначе сайтът е чист за кратко и бива заразен отново по същия начин.
Защо зловредният код се появява отново след изтриването?
Най-често има втора задна вратичка, cron задача, манипулиран администраторски акаунт или уязвимостта все още е отворена. Почистването остава трайно едва когато са намерени всички механизми за устойчивост (persistence) и е отстранена причината.
Премахва ли актуализацията на PHP наличния зловреден софтуер?
Не. Пачът затваря уязвимостта, но не премахва вече внедрен злонамерен софтуер. Това са две отделни работни стъпки.