Празнувайте с нас 15-ия ни рожден ден и вземете 25% отстъпка.

Вземете подарък чаша с избрани хостинг планове!

Добри практики за защита на WordPress сайт - експертно мнение на Атанас Йонков

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

Митът „WordPress е несигурен“ е сред най-разпространените, но реалността е по-различна: ядрото на WordPress включва механизми за защита срещу често срещани уязвимости, а най-сериозните рискове в практиката идват от необновявани теми и плъгини, слаби пароли, липса на 2FA, кракнат софтуер и човешки грешки.

В тази статия ще разгледаме най-честите рискове за сигурността на WordPress и основните практики за защита на сайта според експертното мнение на Атанас Йонков.

Атанас Йонков е опитен софтуерен разработчик и уеб консултант, създател дигитална агенция Nasio Themes специализирана в разработката на теми и плъгини за WordPress. Атанас Йонков е специализиран в разработката на теми и плъгини за WordPress, но препоръките, които предоставя за защита на WordPress сайтове, са действия, които той предприема ежедневно при управление и поддръжка на клиентски сайтове.

Несигурен ли е WordPress?

„WordPress e несигурен“. Това е често срещан мит, който не отговаря на истината. Всъщност ядрото на WordPress не отстъпва по сигурност на другите CMS системи и се изискват по-малкo усилия и ресурси да бъде защитен спрямо персонализирани решения, при които се изисква по-голям бюджет, време и експертиза от страна на разработчика, за да бъде сайтът надеждно защитен. Сигурността е една от най-строго следените неща при разработката на WordPress. Именно затова тази платформа включва в ядрото си защити от всички познати уязвимости, между които XSS, SQLI, CSRF и други, за които ще говорим малко по-късно.

По-сигурен ли е WordPress от другите платформи?

Това е важен въпрос при избор на платформа, с която да изработите сайта си, която няма еднозначен отговор. Най-големите конкуренти към днешна дата са SaaS платформите като Shopify, Wix, Webflow и др. Всички тези платформи по същество предоставят затворена услуга, която е направена за ваше удобство, но Ви ограничава според параметрите, които платформата предлага. От друга страна, WordPress като софтуер с отворен код и десетки хиляди теми и плъгини от разработчици от цял свят предоставя неограничени възможности за персонализиране, но със свободата идват и повече отговорности. При SaaS услугите, Вие няма нужда да обновявате Вашия сайт, да инсталирате плъгини за сигурност или да конфигурирате Вашия хостинг. Доставчикът на услугата се грижи за това вместо Вас. Това звучи супер на пръв поглед, но далеч не Ви гарантира автоматична сигурност и спокойствие. SaaS услугата може да реши едностранно да увеличи таксите или да промени или дори суспендира текущия план, на който се намирате и Вие нямате избор освен да се съгласите с новите условия. В същото време, фактът, че доставчикът Ви се грижи за сигурността на сайта Ви, съвсем не означава, че сте имунизирани от заплахи, свързани със сигурността.

Например през 2020 г. данните за вход на някои търговци в Shopify биват компрометирани. През 2016 г. пък уязвимост в Wix оставя милиони сайтове незащитени. Използването на SaaS услуги дава удобство и илюзия за сигурност, но в същото време предоставя лимитирани възможности за персонализация в сравнение с WordPress. В същото време WordPress като софтуер с отворен код Ви дава неограничена свобода и възможности за персонализация благодарение на богатата екосистема от десетки хиляди теми и плъгини и най-голямата потребителска база в света (повече от 60% от всички CMS платформи са задвижвани от WordPress). Със свободата обаче идват и отговорностите – ако сайтът Ви бъде хакнат, вие сте тези, които трябва да разрешите проблема. Именно затова, защитата на WordPress сайта зависи най-вече от това как се управлява сайта.

Популярни потребителски грешки в сигурността

В много случаи пробиви в сигурността се осъществяват не заради самия софтуер, а от грешки, които администраторите на сайтовете допускат. Дори добре защитена система може да бъде компрометирана при потребителско невнимание и неспазаване на правила за сигурност. Именно затова човешкият фактор си остава ключов за сигурността на сайта. Ето кои са най-честите потребителски грешки, които биха могли да доведат до компрометиране на сайта.

Уязвимости на Вашия компютър

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

Уязвимости в мрежата

Мрежовата инфраструктура е критичен компонент от сигурността, тъй като през нея преминава целият трафик между потребителя и системите, които използва. Несигурни Wi-Fi мрежи, неправилно конфигурирани рутери или липса на криптиране могат да позволят прихващане на данни и атаки тип „man-in-the-middle“. Препоръчително е да не използвате публични мрежи без парола и винаги да използвате VPN.

Използване на несигурни пароли

Слабите пароли продължават да бъдат една от най-популярните вектори за атака. Пароли като „123456“, „admin“, „password“ и др. трябва да останат само в учебниците по киберсигурност като антипример и да не се ползват под никаква форма, дори и на тестови сървър. Лесно предвидими и кратки комбинации могат да бъдат разбити чрез автоматизирани атаки за броени секунди. Като добавим към слабата парола и липса на двуфакторно удостоверяване, подобен пропуск почти неминуемо ще доведе до директен неоторизиран достъп до административния панел на сайта Ви и до кражба на данни.

Инсталирай и забрави (Plug and play)

Подходът „инсталирай и забрави“ създава фалшиво усещане за сигурност, тъй като много потребители приемат, че като са инсталирали Wordfence или друг плъгин за сигурност, са си свършили работата по защитата на сайта и вече няма какво да го мислят. Реалността е, че Вашият сайт, също както човешкото тяло, изисква постоянна поддръжка. Освен това, всяка допълнителна функционалност, която добавяте без да сте сигурни, че знаете какво правите, увеличава риска от компрометиране на системата. Липсата на конфигурация, контрол и грижа превръща дори полезни инструменти в прашасали вехтории, които са потенциално опасни.

Мързелив администратор

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

Използване на нелицензиран софтуер

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

Фишинг измами

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

Ако темата Ви е интересна, препоръчваме да разгледате и нашия подробен наръчник за сигурност в WordPress: Наръчник за сигурност в WordPress: Как да защитите сайта си.

Популярни WordPress уязвимости

Докато ядрото на WordPress само по себе си е добре защитено, няма система, която да е имунизирана от атаки. В случаите когато бъде открита определена уязвимост, WordPress core се ъпдейтва и уязвимостта бива коригирана. В същото време, основният вектор на атака за WordPress сайтовете си остават темите и плъгините. Според изследване на Patchstack, повече от 99% от всички WordPress уязвимости идват от теми и плъгини. В най-честия случай пробойните идват от код на сайта, който не е обновяван с години, нискокачествен код, който не отговаря на изискванията за сигурност на WordPress, а в някои случаи и умишлено зловреден код, взет от нелицензиран източник като кракнати теми и плъгини. В тази секция ще разгледаме кои са най-честите уязвимости и пропуски, които хакерите биха могли да експлоатират, за да установят контрол на сайта Ви.

Cross-Site Scripting (XSS)

Това е една от най-често срещаните уязвимости, при които чрез незащитен потребителски интерфейс като контактни форми, коментари, форми за търсене и други може да доведе до кражба на потребителска сесия и дефакто контрол върху цялата апликация. За да се защитим от подобен род атаки, при разработката на код трябва да се водите от правилото “защити потребителя от него самия” – всички потребителски полета трябва да бъдат почистени от зловреден код (sanitized), а данните, които идват от базата данни трябва задължително да преминат през функции за безопасен изход (escaped). За съжаление, понякога се случва програмистът да пропусне да обезопаси по подходящ начин input полетата или изходящите данни, което може да позволи на хакера да извърши успешна XSS атака. Ако открием такъв проблем с някой от плъгините, които ползваме е необходимо незабавно да се свържем с автора и да сигнализираме за проблема.

SQL инжекции

SQL инжекциите се случват, когато предоставена от потребителя входна стойност не се валидира или почисти правилно. SQL инжектирането може да се случи и когато се използва грешна функция за почистване на входните данни (sanitization) или неправилна употреба на функциите на WordPress. SQL инжекциите са много опасни, защото биха могли да доведат до пълен неоторизиран контрол върху сайта.

Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery е често подценявана атака, която обаче също може да доведе до изтичане на информация и дори пълно компрометиране на сайта Ви. При CSRF атака, хакерът се опитва да заблуди вас като логнат администратор да отвори линк от зловреден сайт, чрез който хакерът да извърши заявка към Вашия сайт от ваше име. WordPress има изграден механизъм за противодействие, наречен нонс. Това представлява еднократна стойност, с която WordPress може да валидира легитимността на заявката. За целта обаче разработчика трябва да осигури наличието на нонс за всеки един персонализиран формуляр, линк или JavaScript заявка, която извършва действие като актуализиране на настройки, изтриване на съдържание или изпращане на чувствителни данни.

Добри практики за защита на Вашия сайт

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

Обновяване на WordPress, теми и плъгини

Редовното обновяване на WordPress, темите и плъгините е една от най-важните мерки за сигурност. Голяма част от пробивите в сигурността се случват именно чрез вече публично оповестени уязвимости, които са отстранени в по-нови версии. Поддържането на сайта чрез своевременно обновяване на кода минимизира риска от пробив и осигурява по-добра съвместимост и стабилност на сайта.

Редовни бекъпи

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

Използване на лицензиран софтуер

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

Използване на силни пароли

Силните пароли са основна защита срещу автоматизирани атаки като brute-force и credential stuffing. Административните акаунти трябва да използват дълги и уникални пароли, които включват комбинация от букви, цифри и специални символи. Добра практика е използването на мениджър на пароли, тъй като това елиминира нуждата от запомняне на лесни и повтарящи се комбинации. Също така е желателно да не се използва очевиден username като admin например.

Aктивиране на 2FA

Двoйното (или двуфакторно) удостоверяване значително повишава нивото на сигурност, като добавя допълнителен слой защита към входа на Вашия сайт. Дори, ако паролата бъде компрометирана, атакуващият няма да може да получи достъп без да разполага с телефона Ви. Това е една от най-ефективните и лесни за внедряване мерки за защита на административни акаунти. Повечето плъгини за сигурност предоставят тази функция, но ако не искате да ползвате всички други опции, можете да използвате специализиран плъгин за двойно удостоверяване като плъгинът Two Factor или WordFence Login Security.

Използване на VPS хостинг

Използването на надежден хостинг с отговорно защитен сървър е от ключово значение за сигурността на сайта. VPS хостингът и наетите сървъри (по-високите хостинг планове) като цяло предоставят по-високо ниво на контрол и изолация в сравнение със споделения хостинг, където използвате споделени ресурси и рискът от компрометиране е по-висок. Въпреки това е важно да се отбележи, че при самоуправляващите се сървъри, администраторът на услугата е самия клиент, а не хостинг компанията, което само по себе си би могло да се превърне в риск за сигурността в случай на неправилна конфигурация. На теория обаче, VPS решенията позволяват по-прецизна конфигурация, сигурна среда, много по-добра производителност и значително по-висока устойчивост срещу всякакъв вид атаки.

Използване на Cloudflare

Cloudflare играе ролята на щит за Вашия сайт като предоставя CDN, firewall и механизми за филтриране на злонамерен трафик. Той намалява натоварването върху сървъра и блокира голяма част от автоматизираните атаки още преди да достигнат до сайта. Допълнителни функции като DDoS защита и контрол върху достъпа значително подобряват цялостната сигурност на WordPress инсталацията. Можете допълнително да конфигурирате Cloudflare като въведете определени правила за сигурност. Аз лично намирам за добра практика ограничаването на директния достъп до определени WordPress файлове през браузъра. Според нуждите на сайта, може в някои специфични случаи да е необходим достъп до някои от тези файлове, така че тествайте след като приложите някои от правилата по-долу. В повечето случаи директен достъп до браузъра към тези файлове не е необходим и се използва основно от зловредни ботове като потенциален вектор за хакерска атака. В Security rules таба изберете Add new rule и в полето edit expression добавете следния израз:

(http.request.uri.path contains "/xmlrpc.php") or (http.request.uri.path contains "/wp-config.php") or (http.request.uri.path contains "/wp-blog-header.php") or (http.request.uri.path contains "/wp-load.php")

В полето Choose action избирате block.

Добра практика е и да ограничите достъпа до логин страницата като предоставите предизвикателство (captcha) за да ограничите постоянния иначе трафик от ботове, които могат в някои случаи дори да затруднят функционирането на сайта Ви. За целта може да добавите следното правило:

(http.request.uri.path contains "/wp-login.php")

В полето Choose action избирате managed challenge.

Безплатна и професионална миграция на сайт.

Допълнителни мерки за защита

Ако използвате Apache или Open Lite Speed сървър, можете да ограничите достъп до определени файлове през браузъра директно чрез .htaccess. Тези файлове са необходими на WordPress, но не е необходимо да се отварят през браузъра и често хакери се опитват да ги експлоатират.

# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

# BEGIN WordPress

Имайте предвид, че кодът няма да работи по очаквания начин на Multisite инсталация. Тествайте предварително преди да имплементирате на сървъра.

Ако не ползвате Cloudflare, можете също така да ограничите директен достъп през браузъра до определени кор файлове:

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteRule ^(xmlrpc|wp-config|wp-blog-header|wp-load)\.php$ - [F,L]
</IfModule>

Ако разполагате със собствен vps сървър, желателно е да използвате ssh ключ вместо парола за достъп до него и да деактивирате определени php функции като exec, shell_exec, proc_open и други, които хакерите биха могли да използват, за да се опитат да компрометират сайта Ви. Имайте предвид, че някои теми и плъгини имат нужда от някои от тези функции, затова отново тествайте след като ги деактивирате.

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

Използване на плъгини за защита

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

Заключение

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

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

Допълнителни материали:

Статия от Теодора Боянова

Теди има интереси в областта на Киберсигурността и успешно се дипломира с тази специалност в ВВМУ „Н. Й. Вапцаров“ гр. Варна, непосредствено след което се присъединява към нашия екип. Желае да се развива в сферата на дигиталния маркетинг, в областта на киберсигурността, цифровата криминалистика, SEO и др.

Социални мрежи:
Още статии от автора

Абонирайте се за нашия бюлетин

С абонамента си получаваш повече актуални новини и нашите специални промо оферти

Абонирайте се за нашия бюлетин