Накратко: Скенерът за зловреден софтуер на сайтове открива най-вече познати модели във файловете или във върнатата страница. Нов и прикрит код, задни врати в базата данни, чужди акаунти, cron задачи и SSH ключове често остават невидими. „Няма находки“ затова не означава „чисто“. Проверката става надеждна едва чрез комбинация от скенер, сравнение с оригинала, проверка на базата данни и системата, както и наблюдение на поведението.
Измамното спокойствие след зелената отметка
След PHP2Shell много оператори направиха очевидното: пуснаха скенер. Онлайн услуга проверява началната страница, плъгин за сигурност претърсва уеб директорията, резултатът е зелен. Така въпросът дали е станало нещо преди пача изглежда отговорен.
Проблемът е в принципа. Повечето скенери сравняват съдържание с модели на познат зловреден софтуер. За уязвимостите CVE-2026-109618 и CVE-2026-109619 обаче няма публикувани, потвърдени Indicators of Compromise; откриването се основава на анализ на поведението. Скенерът не може да търси следи, които никой не познава. В най-добрия случай той намира общ зловреден софтуер, зареден допълнително след пробив, стига да следва познати модели.
Това не прави скенерите безполезни. То означава само, че резултатът им трябва да се разглежда правилно. Кои признаци имат значение отвъд скенерите, описва Вече компрометиран ли съм?.
Скенери за зловреден софтуер на сайтове: три вида
| Вид | Какво вижда | Какво не вижда |
|---|---|---|
| Външен скенер (онлайн услуга) | върнати страници, вградени скриптове, пренасочвания, списъци с блокирани | файлове, база данни, акаунти, всичко, което се връща само при определени условия |
| Скенер в CMS (плъгин или разширение) | файлове в уеб директорията, частично съдържание на базата данни, сравнение с основни файлове | системно ниво, cron задачи, SSH; работи в евентуално компрометираната система |
| Скенер на сървъра (на базата на сигнатури) | всички четими файлове, и извън уеб директорията | непознати и прикрити модели, база данни, акаунти, поведение |
Външните скенери са полезни за откриване на видими последствия, например пренасочвания или записи в списъци с блокирани. Много хакове обаче връщат спам или пренасочващо съдържание само на определени посетители, например на търсачки или мобилни устройства. Тогава скенерът вижда чиста страница.
Скенерите в CMS имат повече поглед, но основен проблем: работят в същата система, която трябва да проверяват. Код с достатъчно права може да повлияе на резултатите им, да скрие файлове или да деактивира скенера. Сървърните скенери работят извън приложението, но остават зависими от модели.
Какво скенерите по принцип пропускат
Независимо от вида има области, които скенер на файлове или страници едва ли може да покрие:
- Нов или индивидуално прикрит код: всеки вариант, който изглежда различно от познатите модели, се промъква.
- Базата данни: скриптове в съдържание, променени настройки, тригери и чужди акаунти. Повече по темата в Проверка на базата данни за внедрен код.
- Достъпи: допълнителни администраторски акаунти, SSH ключове, потребители на базата данни, акаунти в панела на хостинга.
- Системни услуги и cron задачи: механизми, които редовно зареждат наново зловреден код.
- Незабележими промени в легитимни файлове: един-единствен допълнителен ред в основен файл, който изглежда безобиден.
- Изтекли данни: дали са копирани данни за достъп или данни на клиенти, не показва нито един скенер.
Какво вместо това създава сигурност
Повече сигурност носи комбинацията от видове проверки, които работят различно:
- Сравнение с оригинала: то открива всяка промяна в познати файлове, независимо от модели. Подходът описва Сравняване на основните файлове на CMS с оригинала.
- Целенасочено търсене на необичайното: PHP файлове в папки за качване, наскоро променени файлове, прикрит код, изпълними файлове във временни папки.
- Проверка на акаунти и системни услуги: сравнете потребители, ключове, cron задачи и услуги с известното еталонно състояние.
- Анализ на логове: заявки към непознати файлове, струпвания на грешки, необичайни влизания.
- Наблюдение на поведението: процеси на уеб сървъра, които стартират шел, неочаквани изходящи връзки, нови файлове в чувствителни папки.
Последната категория е най-важната, когато няма познати следи. Тя не пита как изглежда зловредният код, а какво прави. Процес на уеб сървъра, който изведнъж стартира шел, се забелязва, независимо колко е прикрит задействащият код.
Пускайте сървърния скенер от чиста система върху копие само за четене, вместо на самия подозрителен сървър. Така внедреният код не може да повлияе на резултата.
Как да използвате скенерите разумно
Скенерите имат своето място, като един инструмент между няколко. Външният скенер е подходящ за редовен контрол на видимите последствия, например седмично. Скенерът в CMS съобщава в ежедневието познат зловреден софтуер и променени основни файлове. Сървърният скенер допълва търсенето на познати модели в цялата файлова система.
Решаващо е как се подхожда към резултата. Находката е ясна задача за проверка и оправдава пълно разследване, защото рядко е засегнат само един файл. Празният резултат пък е само твърдение за проверените модели. Записвайте в документацията кой скенер кога и с какво състояние е работил и не пишете „системата е чиста“, а „не са намерени познати модели“.
За ръководството това означава: зелената отметка не замества проверка от някой, който разглежда заедно файловете, базата данни, акаунтите и поведението. След инцидент с възможно изпълнение на код, както е мислимо при PHP2Shell, тази проверка трябва да се проведе.
Ако скенер обаче съобщи находка, е нужно бързо, но подредено действие. Не изтривайте веднага докладвания файл чрез функцията на скенера. Първо запазете файла и логовете, за да може да се изясни как е попаднал на сървъра. Как протича пълно почистване, описва услугата Премахване на зловреден софтуер и уеб шелове.
Как помага PHP SOS конкретно?
- Комбинираме скенери със сравнение спрямо оригинала, целенасочено търсене и анализ на акаунти, услуги и логове.
- Проверяваме подозрителни системи чрез запазени копия, за да не влияе компрометираната система върху резултатите.
- Отбелязваме всеки резултат честно като доказан, вероятен или неизвестен.
- С мониторинга на сигурността за уеб сървъри наблюдаваме постоянно поведението на Вашите сървъри, не само познати модели.
Често задавани въпроси
Чист ли е сайтът ми, ако скенерът за зловреден софтуер не намери нищо?
Не непременно. Скенерите откриват най-вече познати модели. Нов или добре прикрит код, задни врати в базата данни, чужди акаунти, cron задачи и SSH ключове често остават неоткрити. Празният резултат е градивен елемент, а не оправдателна присъда.
Каква е разликата между външен скенер и скенер като плъгин?
Външният скенер извиква сайта отвън и вижда само това, което се връща. Скенерът като плъгин работи вътре в CMS и може да чете файлове, но работи в същата система, която евентуално е компрометирана. И двата имат собствени слепи петна.
Има ли сигнатури на скенери за PHP2Shell?
За PHP2Shell няма публикувани, потвърдени Indicators of Compromise. Затова скенерите не могат да търсят целенасочено сигурни следи от PHP2Shell. Откриването се основава на анализ на поведението и на търсене на общи признаци на компрометиране.
Кой скенер е най-добрият?
Въпросът подвежда. По-важна от конкретен продукт е комбинацията от различни видове проверки: сравнение с оригинала, търсене във файловете и базата данни, проверка на акаунти и системни услуги, както и наблюдение на поведението.