Изпратете запитване

Ще се радваме да обсъдим Вашия проект.

Сигурност · Спешно

Сайтът ми е хакнат: какво да правите в първите 60 минути

от Владо ≈ 13 мин четене

Ако четете това в момент на паника, започнете от таблицата в раздел 02. Тя е за първите петнадесет минути и е по-важна от всичко останало в статията, защото повечето трайни щети при хакнат сайт се нанасят не от нападателя, а от собственика в първия час след откриването.

Има богата литература как да защитите сайт. Почти няма нищо за това какво се прави, след като защитата е пробита — а точно там редът на действията определя дали ще изгубите един ден или три седмици.

хакнат сайт първи действия в първите 60 минути

Накратко

  • Не изтривайте нищо в първия час. Унищожавате следите как е влязъл нападателят.
  • Не възстановявайте бекъп като първо действие — връщате и уязвимостта.
  • Паролите се сменят отвън навътре: хостинг → база → WordPress → salts.
  • Ключовете за сигурност в wp-config.php са стъпката, която почти всички пропускат.
  • Ако са изтекли лични данни, имате 72-часово задължение по GDPR. Това е ваше, не на изпълнителя.

01Първо: наистина ли е хакнат

Не всяко странно поведение е хакване. Бял екран, изчезнало меню или счупен дизайн най-често са конфликт след ъпдейт на плъгин. Преди да обявите инцидент, проверете дали симптомите са от списъка, който наистина означава компрометиране.

Разграничаване на компрометиране от обикновена техническа авария.
СимптомКакво означава
Search Console показва Проблеми със сигурносттаПочти сигурно компрометиране. Google дава и примерни адреси.
Пренасочване към чужд сайт само при идване от GoogleКласически признак. Кодът разпознава източника и щади директните посещения.
Нови администраторски потребители, които не сте създавалиКомпрометиране с осигурен постоянен достъп.
При търсене site:вашдомейн.bg излизат чужди странициИнжектирано съдържание, често на чужд език.
Домейнът ви е в списък за спам или писмата спряха да се доставятСайтът изпраща спам от ваше име.
Бял екран или грешка след ъпдейтНай-вероятно конфликт, не хакване.
Сайтът е бавен от няколко дниОбикновено хостинг или плъгин. Проверете, но не панирайте.

Ако нито един от първите пет реда не важи, вероятно нямате инцидент по сигурността, а технически проблем. Спестете си следващите пет раздела.

02Първите 15 минути: четирите неща, които да НЕ правите

Това е най-важната част. Всяко от четирите действия по-долу изглежда логично и всяко от тях удължава възстановяването.

1. Не изтривайте файлове. Първият инстинкт е да намерите подозрителния файл и да го унищожите. Проблемът е, че така губите единствената информация за как е влязъл нападателят — датите на промяна, логовете, следите. Без нея чистите симптома и оставяте вратата отворена. Направете пълно копие на всичко, преди да пипнете каквото и да е.
2. Не възстановявайте стар бекъп като първо действие. Бекъпът от преди седмица връща сайта в работно състояние — заедно с уязвимостта, през която е влязъл нападателят. Ако не сте затворили входа, повторното заразяване е въпрос на дни. Освен това ако компрометирането е станало по-рано, отколкото мислите, „чистият“ бекъп също е заразен.
3. Не сменяйте първо паролата на WordPress. Ако нападателят има достъп до хостинга или до базата данни, смяната на администраторската парола не го изгонва — той просто я вижда или я сменя обратно. Редът има значение и е описан в раздел 04.
4. Не подавайте заявка за преглед в Google. Преди сайтът да е реално изчистен, заявката ще бъде отхвърлена, а следващата се разглежда по-бавно. Изчакайте.

03Ограничаване на щетата

Целта на този етап не е да оправите сайта, а да спрете нанасянето на нови щети — на вас и на посетителите ви.

  1. Направете копие на текущото състояние

    Пълен архив на файловете плюс експорт на базата данни, с ясно име, че е заразено копие. Това е доказателственият материал и застраховката ви, ако при чистенето счупите нещо.

  2. Сложете сайта в режим на поддръжка

    По-добре е посетителите да видят страница „временно недостъпен“, отколкото да бъдат пренасочени към зловреден сайт. Ако сайтът раздава злонамерено съдържание, всяка минута работа вреди на репутацията на домейна.

  3. Спрете изходящата поща

    Компрометираните сайтове масово се използват за спам. Ако не спрете това, домейнът влиза в черни списъци и после месеци наред служебните ви писма отиват в спам. Поискайте от хостинга да проверят опашката за изходяща поща.

  4. Проверете дали проблемът е само вашият сайт

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

04Смяна на достъпите — редът е всичко

Отвън навътре. Ако направите обратното, нападателят наблюдава как сменяте вътрешните пароли и просто ги научава.

  • 1. Хостинг панел и FTP/SSH.Това е външната врата. Докато тя е отворена, всичко останало е без значение. Ако има допълнителни FTP акаунти, които не помните да сте създавали — изтрийте ги.
  • 2. Парола на базата данни.Сменя се на две места едновременно: в хостинг панела и в wp-config.php. Ако смените само едното, сайтът спира.
  • 3. Администраторските потребители в WordPress.Прегледайте целия списък. Изтрийте всеки акаунт, който не разпознавате, и понижете ролята на онези, които не се нуждаят от администраторски права.
  • 4. Ключовете за сигурност в wp-config.php.Това е стъпката, която почти всички пропускат. Осемте константи AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY и съответните SALT стойности подписват сесиите. Смяната им изхвърля всички влезли потребители, включително нападателя със открадната сесия. Нови стойности се генерират от официалния генератор на WordPress.
  • 5. Ключове към външни услуги.API ключове за плащания, куриери, имейл услуги, всичко записано в базата или в конфигурационни файлове. Приемете, че всяка тайна на сървъра е изтекла.
Защо salts са толкова важни: нападател, който е влязъл веднъж, обикновено си оставя валидна сесия или бисквитка. Смяната само на паролата не я анулира — тя остава активна до изтичането си. Смяната на ключовете обезсилва всички сесии мигновено. Ако направите само едно нещо от този раздел, направете това.

05Къде точно да търсите

Зловредният код рядко е на очевидно място. Ето местата, които проверяваме по ред, защото там се крие най-често.

МястоКакво търсите
wp-content/mu-plugins/Папка за задължителни плъгини, които се зареждат винаги и не се показват в обичайния списък. Любимо място за постоянство.
Планирани задачи (cron)Задача, която възстановява зловредния файл след като го изтриете. Ако заразата „се връща“, почти винаги е това.
Таблица wp_optionsИнжектиран код в записи като siteurl, home или в опции на тема.
Темата, особено functions.phpДобавен код в края на файла, често след стотици празни редове, за да не се вижда при бърз преглед.
Папката за качени файлове.php файлове в wp-content/uploads/ — там няма легитимна причина да има изпълним код.
Файлове, променени скороПодредете по дата на промяна. Групичка файлове, променени в един и същ момент, е ясна следа.
Деактивирани плъгиниДеактивираният плъгин не се обновява, но кодът му е на сървъра и остава уязвим.

Ако нямате достъп до сървъра или не се чувствате уверени с тези проверки, това е моментът да потърсите помощ. Часът, в който търсите наслуки, струва повече от часа, в който някой знае къде да гледа.

06Чистене или пресъздаване

Двата пътя не са равностойни и изборът зависи от един въпрос: знаете ли как е влязъл нападателят?

Ако не знаете входната точка, чистенето е козметика. Заразата ще се върне.

Чистене има смисъл, когато входната точка е установена — конкретен уязвим плъгин, изтекла парола, стара версия на PHP. Затваряте входа, чистите кода, сменяте достъпите.

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

За сайтове с много къстъм код втората опция е по-трудна и тогава чистенето е реалистичният път. За стандартен WordPress сайт с готова тема почти винаги избираме пресъздаването.

07Излизане от предупрежденията на Google

След като сайтът е реално чист — и само тогава:

  1. Проверете примерните адреси от Search Console

    Google дава конкретни адреси, на които е засякъл проблема. Отворете всеки от тях и се убедете, че е чист, преди да продължите.

  2. Подайте заявка за преглед

    В раздела Проблеми със сигурността. Опишете какво сте направили — установена входна точка, изчистен код, сменени достъпи. Конкретното описание помага.

  3. Поискайте преобхождане на засегнатите страници

    Ако е имало инжектирано съдържание, накарайте Google да преобходи тези адреси, за да изчезнат от резултатите.

  4. Проверете за черни списъци по пощата

    Ако домейнът е изпращал спам, попадането в списъци не се оправя само. Всеки от големите списъци има процедура за изваждане.

08Задължението, за което почти никой не пише

Ако при инцидента са били достъпни лични данни на клиенти — имена, имейли, телефони, адреси за доставка, потребителски профили — това не е само техническо събитие. Това е нарушение на сигурността на личните данни по смисъла на GDPR.

Като администратор на данните вашата фирма има задължение да уведоми надзорния орган, в България Комисията за защита на личните данни, без необосновано забавяне и по правило в срок до 72 часа от узнаването. Ако рискът за засегнатите лица е висок, се уведомяват и самите те.

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

Отделно от уведомяването, трябва да документирате инцидента вътрешно — какво е станало, кога е установено, какви данни са засегнати, какви мерки са предприети. Този документ е нужен, дори когато уведомяване не се изисква.

Тази статия е практическа, не правна консултация. При инцидент с реален обем лични данни се консултирайте с юрист — сроковете са кратки и преценката какво точно е засегнато има значение.

09Първите 48 часа след чистенето

  • Наблюдавайте за връщане на заразата.Ако се върне в първите два дни, значи има останал механизъм за постоянство — планирана задача, mu-plugin или втори компрометиран сайт в същия акаунт.
  • Направете нов чист бекъп и го запазете отделно.Извън сървъра. Старите бекъпи от периода на заразата вече не са надеждни.
  • Обновете всичко до последна версия.Ядро, тема, плъгини, версия на PHP. Премахнете напълно всичко, което не използвате.
  • Включете двуфакторна автентикация.За всички администраторски акаунти. Това е мярката с най-голямо съотношение полза към усилие.
  • Проверете имейл доставимостта.Изпратете тест от външен адрес и проверете спам папката. Ако домейнът е бил в списъци, това е първият признак дали е излязъл.
  • Запишете какво е станало.Дата, входна точка, предприети действия. След шест месеца няма да помните, а информацията е ценна, ако се повтори.

Редът, не бързината

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

Ако запомните само едно от тази статия: направете копие, преди да пипнете нещо, и сменете паролите отвън навътре. Останалото се наваксва. Тези две неща — не.

Превенцията е отделна тема и я разглеждаме в ръководството за сигурност на WordPress. А ако не искате да мислите за това — редовните ъпдейти, бекъпите и наблюдението са част от поддръжката.

Владо
Senior WordPress Developer & SEO Expert

Помага на бизнеси да изграждат бързи, сигурни и видими в Google сайтове. Над едно десетилетие опит с WordPress, WooCommerce и техническо SEO.

Сподели:

Често задавани въпроси

Как да разбера със сигурност, че сайтът ми е хакнат?
Най-надеждната проверка е в Google Search Console, раздел Проблеми със сигурността, където Google посочва и конкретни примерни адреси. Други силни признаци са пренасочване към чужд сайт само при идване от търсачка, нови администраторски потребители, изходящ спам от домейна и появили се страници на чужд език при търсене site: с вашия домейн.
Какво НЕ трябва да правя веднага?
Не изтривайте файлове на сляпо и не възстановявайте стар бекъп като първо действие. Изтриването унищожава следите как е влязъл нападателят, а възстановяването на бекъп връща и самата уязвимост — сайтът се заразява отново в рамките на дни.
В какъв ред се сменят паролите?
Отвън навътре: първо хостинг панелът и FTP, после паролата на базата данни заедно с промяната в wp-config.php, след това администраторските потребители и накрая ключовете за сигурност в wp-config.php, което прекъсва всички активни сесии.
Трябва ли да съобщя на някого, ако са изтекли данни на клиенти?
Да. Ако са компрометирани лични данни, като администратор по GDPR имате задължение да уведомите Комисията за защита на личните данни без необосновано забавяне и по правило до 72 часа от узнаването. При висок риск се уведомяват и засегнатите лица. Задължението е на вашата фирма, не на изпълнителя.
Колко време отнема излизането от предупреждението на Google?
След реално изчистване и подадена заявка за преглед отговорът обикновено идва в рамките на няколко дни. Ако прегледът установи, че кодът още е там, заявката се отхвърля и следващата отнема повече време — затова се подава след, а не преди чистенето.
Заразата се върна след два дни. Защо?
Има останал механизъм за постоянство. Трите най-чести са: планирана задача, която възстановява файла; файл в папката mu-plugins, който не се вижда в обичайния списък с плъгини; или втори компрометиран сайт в същия хостинг акаунт, който заразява обратно.

Имате хакнат сайт в момента?

Правим спешно възстановяване — установяване на входната точка, чистене, връщане в индекса и затваряне на дупката, за да не се повтори.

Свържете се веднага