Як зламують сайти та як вам цього уникнути

Денис Куландін
Всього матеріалів: 5
Злом сайту – це отримання несанкціонованого доступу до файлів сайту або розділу адміністрування системи управління сайтом.
У цій статті ми не розглядатимемо злом хостингу, на якому працює сайт, і зосередимося тільки на зломі самого сайту.
Перш за все, варто зауважити, що якщо ви нічого не робитимете, то рано чи пізно сайт буде зламаний!
Справа в тому, що сучасні сайти WordPress налічують близько 500 тисяч рядків коду. Також це код здебільшого відкритий і будь-який може його аналізувати, у тому числі й щодо знаходження вразливостей. У такому величезному масиві рано чи пізно знайдуть помилку і зловмисники захочуть нею скористатися.
Сканування вразливостей
Сайт на типовій платформі, такий як WordPress, можна дізнатися з його характерних особливостей (сигнатур). Наприклад, адміністративна панель сайтів на WordPress знаходиться в підпапці "wp-admin". Просканувавши ваш сайт за набором сигнатур, можна дізнатися багато деталей: найменування та версію типової платформи, які доповнення встановлені та їх версії, список користувачів тощо.
Пам'ятаючи про те, що WordPress є однією з найпопулярніших платформ для створення сайтів, зрозуміло, що в Інтернеті існує безліч різних сканерів, які постійно сканують мережу в пошуках сайтів, заснованих на цій платформі. Коли ваш сайт буде просканований одним із сканерів, це питання найближчого часу.
Для того, щоб утруднити сканування вашого сайту, можна встановити доповнення, які приховуватимуть версію WordPress.
Крім цього, варто видалити усі неактивні доповненнята теми сайту. Те, що вони не активні, не означає, що їх не можуть використовувати для злому сайту. Також дуже важливо регулярно робити резервні копії вашого сайту. Навіть якщо ваш сайт буде зламаний, то це не завдасть вам серйозної шкоди, тому що ви завжди зможете відновитися з резервної копії.
Більш докладно про те, як правильно робити резервні копії, ви можете дізнатися зі статті «Як правильно налаштувати бекап для вашого сайту на WordPress і чому це важливо».
- встановіть доповнення для приховання версії сайту та його компонентів, а також налаштуйте firewall сайту (наприклад, за допомогою плагіна All In One WP Security & Firewall, Acunetix WP Security та інших);
- видаляйте неактивні плагіни та теми;
- регулярно робіть оновлення сайту;
- робіть регулярні бекапи.
Оновлення
Вкрай важливо для захисту сайту робити періодичні оновлення. Оновлення не лише закривають знайдені вразливості, але й можуть містити нову покращену функціональність, підвищувати швидкодію сайту.
Платформа WordPress хороша тим, що дуже зручно робити оновлення та майже всі компоненти сайту можна оновити: ядро сайту, розширення та теми оформлення.
Однак до процесу оновлення сайту потрібно підійти акуратно. На жаль, іноді розробники припускаються помилок у самих оновленнях. Ці помилки можуть призвести до того, що ваш сайт після оновлення погано працюватиме або зовсім перестане відображатися.
Якщо вашим сайтом користується багато людей, варто їх заздалегідь повідомити про майбутні роботи з оновлення. Слід вибрати та узгодити з іншими користувачами сайту найбільш вдалий для оновлення час.
Зазвичай найкращим часом для оновлення є час найменшої користувальницькоїактивності. Зазвичай це нічний годинник у вихідний день. Однак для того, щоб точно знати, коли на вашому сайті найменша активність, варто заглянути до аналітики сайту.
Щоб уникнути проблем, вкрай важливо перед початком оновлення зробити резервну копію сайту, якщо він у вас невеликий або хоча б бази даних сайту. Взагалі, на вашому сайті обов'язково має бути налаштований автоматичний процес створення резервних копій.
Після того, як ви знімете резервну копію, можна розпочинати оновлення. Але не поспішайте оновлювати все одразу! Оновлення варто робити поступово, крок за кроком, перевіряючи, чи відображаються сайт та оновлений компонент. У цьому випадку, якщо виникнуть проблеми, ви точно знатимете, який компонент став цьому виною.
Зламування паролів
Найпоширеніший спосіб зламати сайт – отримати паролі до адміністративної панелі сайту.
В основному паролі одержують такими способами:
- перехоплюють пароль, який було передано через незахищений протокол HTTP;
- підбирають пароль шляхом перебору;
- дешифрують пароль, отримавши доступ до бази даних сайту.
Перший спосіб заснований на тому, що дані передаються протоколом HTTP в нешифрованому вигляді. Будь-хто, хто отримає доступ до таких даних (а це може бути власник WiFi точки, до якої ви підключені, або будь-який сервер мережі, через який ваші дані передаються хостингу, де розташований ваш сайт), може їх прочитати!
Найкращим методом захисту від даного виду атаки є використання захищеного протоколу HTTPS, замість HTTP. Щоб захиститися від такої атаки, потрібно, щоб весь сайт або хоча б адміністративна панель вашого сайту були доступні лише захищеним протоколом HTTPS. Для цього знадобиться SSL-сертифікат. Завірені сертифікати стоятьгрошей та мають кінцевий термін дії.
Можна заощадити і самим завірити сертифікат, але такий сертифікат можна використовувати тільки для адміністративної панелі, оскільки при встановленні на весь сайт браузер видаватиме попередження про невідомий сертифікат, що суттєво знизить потік користувачів. На щастя, зараз можна отримати завірений сертифікат безкоштовно.
Найпростіший спосіб – скористатися сервісом CloudFlare. У цьому випадку вам не обов'язково встановлювати сертифікат на свій хостинг. Деталі того, як це працює, можна прочитати на сайті сервісу.
Якщо вам потрібен повноцінний засвідчений сертифікат, китайська компанія WoSign безкоштовно надає сертифікати на строк до трьох років.
Крім того, нещодавно з'явилася можливість отримати сертифікат від проекту Let's Encrypt. Проект спеціально був створений для того, щоб полегшити та здешевити встановлення сертифікатів, що дозволить багатьом сайтам перейти до шифрованих підключень. Правда, якщо ваш сайт працює не на вашому особистому сервері, а на сторонньому хостингу, то вам потрібно уточнити у вашого хостера, чи він підтримує цей проект.
Підбір пароля шляхом перебору.Атака шляхом перебору паролів – це дуже поширений у мережі метод атаки на сайти WordPress. Звичайно, ніхто не підбиратиме паролі вручну. Для вибору паролів існують спеціальні програми.
Розшифрування паролів з бази.Часто багато хто забуває, що, крім безпеки сайту, треба також подумати і про безпеку зберігання та передачі резервних копій сайту. Справа в тому, що якщо копію сайту, що містить базу даних, буде перехоплено, то зловмисник отримає доступ до всіх паролів. Щоправда, паролі будуть у шифрованому вигляді, але розшифрувати їх буде справою часу.
Що можназробити для захисту від такої атаки?
- Не використовуйте передачу незахищеними протоколами FTP. Використовуйте SFTP або SSH.
- По можливості використовуйте шифрування резервних копій або архіви пароля.
- Використовуйте складні паролі або парольні фрази, що включають цифри, малі та великі літери, символи та пробіли.
Складність пароля можна оцінити, наприклад, за допомогою цього сервісу (тільки не вводіть свій реальний пароль!). Паролі зручно зберігати у спеціальних програмах менеджерів паролів. Періодично змінюйте паролі (хоча б раз на рік).
Висновок
На жаль, повністю убезпечити ваш сайт від злому не вдасться. Справа в тому, що вам треба закрити всі можливі лазівки, а зловмиснику треба знайти лише одну єдину. Однак не варто засмучуватися. Якщо дотримуватись правил безпеки, то розкрити ваш сайт буде вкрай складно та довго.