Модул 7 · 7.5
Хакнати сте: разпознаване, възстановяване и предотвратяване
Модул 7: Сигурност · Време за четене: 10 минути
Учебна цел: След този урок ще можете да разпознаете хакване, да го отстраните в правилния ред и да предотвратите повторното му случване.
Ключови понятия: сигнали за хакване, документиране, изолиране, замяна на всички пароли и salts, намиране на входната точка, логове, чисто резервно копие, чиста преинсталация, контролни суми, непознати администратори, PHP във uploads, mu-plugins, Search Console, докладване на нарушение на сигурността на данните
Какво представлява хакването
Даден сайт е хакнат, когато някой без разрешение е поел контрол над (част от) Вашия сайт: може да променя файлове или базата данни, или да изпълнява код. Често нападателят остава с достъп чрез задна врата (backdoor): скрит файл или откъс код, с който по-късно може да се върне, дори след като затворите първоначалната пролука.
Последното е същината на този урок: само премахването на видимата вреда не е достатъчно. Докато задната врата съществува, или пролуката, през която е влязъл, е отворена, случката ще се повтори. Често в рамките на дни.
Разпознаване
Сигнали (някои виждате сами, други трябва да потърсите):
- Google съобщава на Вашия сайт „Този сайт може би е хакнат“, или Search Console докладва проблем със сигурността.
- В резултатите от търсене (
site:example.com) се появяват страници, които не познавате, често на друг език или за лекарства, хазарт или фалшиви магазини. - Посетителите биват пренасочвани, често само ако идват през Google или от телефон. Вие не го виждате, защото сте влезли в профила си или идвате чрез отметка (bookmark). Проверете в поверителен прозорец чрез резултат от търсене.
- В Потребители се появява администратор, когото не познавате.
- Има PHP файлове в
wp-content/uploads, или файлове със странни имена в основната папка или вwp-content/mu-plugins. - Вашият хостинг доставчик или скенер за зловреден софтуер съобщава за заразени файлове; имейлите Ви се отхвърлят или пакетът Ви изпраща спам.
- Сайтът внезапно е бавен или мястото за съхранение се запълва.
Планът на действие
1. Запазете спокойствие и документирайте
Не изхвърляйте всичко веднага. Запишете какво виждате и от кога, направете снимки на екрана и направете копие на текущото състояние (файлове и база данни, или допълнително резервно копие чрез Вашия хостинг доставчик). Това копие Ви трябва, за да намерите входната точка, а и като доказателство. Не го съхранявайте в уеб папката.
2. Спрете вредата за посетителите
Изключете временно сайта или го поставете зад страница за поддръжка, особено ако посетителите биват пренасочвани към зловреден софтуер или фишинг. В DirectAdmin можете да спрете домейна; другаде може да помогне парола за целия сайт или временен index.html с съобщение.
3. Заменете всички пароли и ключове
Приемете, че нападателят знае всяка парола, която е била видима на или чрез сайта. Заменете, за предпочитане от друг (чист) компютър:
- паролата на Вашия хостинг панел и на всички FTP и SFTP профили (изтрийте профилите, които не използвате);
- паролата на потребителя на базата данни, и я адаптирайте в wp-config.php;
- паролите на всички администратори на WordPress, и изтрийте профилите, които не разпознавате;
- ключовете и salts в wp-config.php (урок 1.3). С това отпадат всички бисквитки за вход, включително тези на нападателя;
- паролите за приложения (урок 3.3) и API ключовете на свързани услуги;
- паролите за имейл, ако спам е бил изпращан през пощенска кутия.
След това включете двуфакторно удостоверяване навсякъде (урок 7.3).
4. Намерете входната точка
Без да знаете входната точка, не можете да сте сигурни, че е затворена. Най-честите причини (урок 7.1) и къде да търсите:
- Остаряло разширение или тема: кои компоненти изоставаха? Проверете имената в база данни за уязвимости (урок 5.3).
- Изтекла парола: проверете историята на входовете на Вашия хостинг панел и на FTP.
- Логовете на уеб сървъра: потърсете около момента на появата на първите странни файлове POST заявки към непознати файлове или към файлове на разширения, често от същия IP адрес.
- Файлове по дата: сортирайте в File Manager или чрез SFTP по дата на промяна. Файлове, променени едновременно, особено извън актуализация, заслужават внимание.
5. Почистване
Два пътя и често комбинация:
А. Възстановяване на чисто резервно копие отпреди хакването (урок 8.2). Изберете резервно копие от значително преди първите сигнали, тъй като нападателите понякога изчакват седмици. Възстановете напълно, така че добавените файлове да изчезнат. След това незабавно актуализирайте всичко (иначе пролуката ще се появи отново). Недостатък: всичко след резервното копие (публикации, поръчки) е загубено.
Б. Чисто изграждане наново със съществуващото съдържание:
- Заменете самия WordPress с нова копия от wordpress.org (wp-admin, wp-includes и отделните файлове; не wp-content и wp-config.php). С WP-CLI първо можете да проверите какво е променено:
wp core verify-checksums
wp plugin verify-checksums --allТези команди сравняват Вашите файлове с официалните версии и съобщават всеки променен или допълнителен файл (втората само за разширения от хранилището на wordpress.org).
- Изтрийте всички разширения и теми и ги инсталирайте отново от източника, в най-новата версия. Това, от което нямате нужда, няма да се върне.
- Проверете
wp-content/uploadsза PHP файлове и други файлове, които не са медия, иwp-content/mu-plugins. - Проверете
.htaccessза странни правила за пренасочване и wp-config.php за редове, които не разпознавате. - Проверете базата данни: непознати администратори, опциите
siteurl,homeиactive_pluginsвwp_options, и потърсете в публикациите вмъкнати скриптове (<scriptс подозрителни адреси). - Проверете планираните задачи: cron задания във Вашия хостинг панел и WP-Cron (с разширение или
wp cron event list).
Скенер за зловреден софтуер (от Вашия хостинг доставчик или разширение) помага при търсенето, но не разчитайте сляпо на него: това, което той не намира, все пак може да присъства.
6. Затваряне и проверка
- Актуализирайте всичко, подсилете сигурността (урок 7.4) и отново включете сайта.
- Маркиран ли е сайтът Ви от Google като небезопасен? Поискайте в Search Console при Проблеми със сигурността ново оценяване, едва след като всичко е чисто.
- Следете следващите седмици: нови файлове, нови администратори, съобщения от Вашия скенер. Ако се повтори, значи входната точка или задната врата все още не е намерена.
Лични данни: докладване на нарушение на сигурността на данните
Ако нападателите са имали достъп до лични данни (данни на клиенти от онлайн магазин, попълнени формуляри, списъци с членове, потребителите на Вашия сайт), това се счита за нарушение на сигурността на личните данни по смисъла на GDPR (ОРЗД). Трябва да го докладвате в рамките на 72 часа след откриването на Комисията за защита на личните данни (КЗЛД), освен ако не е вероятно то да породи риск за засегнатите лица (член 33 от GDPR). Ако рискът е висок, трябва да информирате и самите засегнати лица (член 34). Във всеки случай документирайте какво се е случило и какво сте направили, дори и ако не подавате сигнал. Ако се съмнявате, разгледайте сайта на нидерландския орган за защита на данните (урок 9.3), а за Вашата ситуация се обърнете към Комисията за защита на личните данни (КЗЛД).
Търсене на помощ
Почистването на хакнат сайт изисква време и опит. Ако не сте сигурни, че сте открили всичко, потърсете помощ: Вашия уеб разработчик, специализирана фирма или Вашия хостинг доставчик (някои хостинг доставчици, включително WebOké, предлагат тази услуга, обикновено срещу заплащане). Предоставете им копието от стъпка 1, какво сте видели и кога, и какво вече сте направили.
Обобщение
- Хакването често оставя задна врата; само премахването на видимата вреда не е достатъчно.
- Ред на действие: документиране, защита на посетителите, замяна на всички пароли и salts, намиране на входната точка, почистване, затваряне и проверка.
- Почистването може да стане чрез чисто резервно копие от значително преди хакването, или чрез чиста преинсталация на WordPress, разширенията и темите и проверка на uploads, mu-plugins, .htaccess и базата данни.
wp core verify-checksumsпоказва кои файлове на WordPress са променени.- Ако е ставало дума за лични данни, докладвайте нарушението в рамките на 72 часа на Комисията за защита на личните данни (КЗЛД), освен ако риск не е вероятен.
Тест
Задача
Задача D7.5: Вашият авариен план при хакване. Попълнете аварийния план за Вашия собствен сайт, така че да не Ви се налага да го измисляте в момента: къде се намират Вашите резервни копия и колко назад във времето стигат, кой разполага с кои пароли и как ще ги замените всички (списък), къде ще намерите логовете на Вашия хостинг доставчик, на кого ще се обадите за помощ, и какви лични данни има на Вашия сайт (за въпроса дали трябва да докладвате нарушение на сигурността на данните). След това направете упражнението: кои пет стъпки предприемате в първия час, когато получите съобщението „Този сайт може би е хакнат“, в какъв ред и защо точно в този ред?
Задача D7.5: Вашият авариен план при хакване
Тази задача изпълнявате сами; никой не я проверява. Отбележете какво сте направили и маркирайте задачата като изпълнена.
Първо документирайте (екранни снимки, запазени логове), преди да изтриете каквото и да е; защитете посетителите (сайтът офлайн или страница за поддръжка); сменете всички пароли и salts; потърсете входната точка; едва тогава възстановете чисто копие. Само възстановяване без затваряне на входната точка оставя вратата отворена.
Вашите отметки и бележки остават само в този браузър; не ги изпращаме никъде. Ако сте влезли, в Моите курсове запазваме само че сте изпълнили задачата.
Допълнително четене
Тези статии описват стъпките в панелите на WebOké; в други панели те работят по подобен начин.
- Ръководство за DirectAdmin 18.2: Моят сайт е хакнат: план за действие
- Помощ! Сайтът ми е хакнат. Как да го поправя или предотвратя?
- Ръководство за DirectAdmin 15.11: Imunify360: сканиране на уебсайта Ви за злонамерен софтуер
- Ръководство за DirectAdmin 17.2: Site summary & logs: лог файлът за грешки и лог файлът за достъп
- Ръководство за DirectAdmin 3.4: История на входовете: кой и кога е влизал?
- Нарушения на сигурността на данните (нидерландски орган за защита на данните, Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- Често задавани въпроси: моят сайт е хакнат (wordpress.org, на английски): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
